안녕하세요 허언증입니다.
와일드카드 마스크 (Wildcard Mask) v.s 서브넷 마스크 (Subnet Mask)에 대해 설명을 하도록 하겠습니다. 글이 좋아 스크랩을 해 왔습니다. 밑에 글을 다 읽고 제가 정리한 해석을 읽어보시기 바랍니다.
저만의 해석을 하면
서브넷 마스크는 네트워크를 알기위해 연속적 인 1을 사용한다. 하지만 와일드카드 마스크는 연속적이지 않아도 되고 0일때 반응을 한다 입니다. 규칙이 정해져 있는 서브넷 마스크에 비해 와일드는 그에 비해 자기가 원하는 방향으로 0,1 을 이용해서 제어를 할 수 있어서 좋은 것같습니다. 막연히 넷마스크의 반대가 와일드카드 마스크라고 이해하면 닫힌 사고를 하는 느낌
subnet mask 는 1 일때 care, 0 일때 don't care 즉, 1일때 매칭되야하고 0일때는 관계없다는 의미입니다.
192.168.1.0 255.255.255.0 을 예로들면
192.168.1.0 11000000.10101000.00000001.00000000
255.255.255.0 11111111.11111111.11111111.00000000
자자 설명들어갑니다. 지금 subnet mask 설명하는 겁니다.
subnet mask 는 1 일때 상관합니다. 즉 1의 값이면 해당 비트는 똑같은 값을 가져온다고 이해해도 좋습니다.
그럼 아래와 같이 되죠
192.168.1.0 11000000.10101000.00000001.00000000
255.255.255.0 11111111.11111111.11111111.00000000
-----------------------------------------------------
192.168.1.0 11000000.10101000.00000001.00000000
그럼 192.168.1.111 은요? 뒤만 가지고 놀아봅시다.
111 = 01100100
0 = 00000000
--------------
값은? 00000000 --> 왜냐면 0 이면 상관안하니까요. 11111111(255) 가 와도 0 입니다.
그러면 network id (prefix) 는 192.168.1.0(11000000.10101000.00000001.00000000) 가 됩니다.
여기까지 Subnet Mask 이고요
Wildcard Mask 는 이 반대입니다. <-- 흔히 오해하는 부분이 여기때문에 그런것 같아요.
여기서 반대라는 의미는(매우 중요!!) 0 일때 상관하고 1 일때 무시한다는 거죠. --> 서브넷은 1 일때 상관, 0 일때 무시
그럼 똑같이 표현해 보겠습니다.
192.168.1.0 11000000.10101000.00000001.00000000
0.0.0.255 00000000.00000000.00000000.11111111
-----------------------------------------------------
192.168.1.0 11000000.10101000.00000001.00000000
그렇다면 어느부분에서 subnet mask 와 wildcard mask 가 다르냐?
사실 여기서부터가 제가 말씀드리고 싶었던 부분입니다.
Subnet mask 는 반드시 연속하는 비트만 사용가능하다는 조건이 있습니다.
즉 C 클래스 하나를 둘로 나눌려면 255.255.255.128 로 subnet mask 를 사용합니다.
2진수로 바꾸면 이렇게 되지요.
11111111.11111111.11111111.10000000
잘 보시면 전부 1 이라는 비트로 다 채워져 있는 것을 알수있습니다.
바로 subnet mask 의 조건을 확인할 수 있죠?
왜그럴까요? 네트워크 대역, 즉 범위의 구분을 위해 그렇습니다. 이분을 글로 설명하기란 쉽지가 않은데요.
ip 주소라는 논리적 체계 자체가 이렇게 설계되었습니다.
첫번째 옥텟의 첫비트가 0 으로 시작하면 A 클래스, 두번째 비트가 0 으로 시작하면 B 클래스, 세번째 비트가 0 으로 시작하면 C 클래스 ..... 이렇게 E 클래스까지
이러한 구분은 최초 IP 가 설계될때 흔히 우리가 클래스풀이라고 하는 메이저 네트워크를 구분할때 이러한 방법을 사용했습니다.
이와 같은 원리 하에 Subnet Mask 가 등장하게 되었습니다.
따라서 subnet mask 를 bit mask 라고도 부르는 이유가 여기에 있습니다.
/24, /25 이렇게 슬래쉬 다음에 subnet bit 를 붙여 표현하는 이유가 바로 앞서말한 subnet mask 는 연속한 비트여야만 한다는 조건이 있기때문에 이렇게 부를 수 있는겁니다.(사실 실무에서는 /bit mask 이표현을 더 많이 씁니다.)
반면에,
Wildcard Mask 는 그렇지 않습니다. 연속하는 비트만 사용해야한다는 룰이 적용되지 않습니다.
Wildcard Mask 는 ACL, 이나 IGP 등에서 광고할 네트워크(혹은 광고하는 interface) 를 지정하는 역할로 Subnet mask 와 목적이 다르게 설계되었습니다.
따라서 Wildcard Mask 를 사용하면 Subnet Mask 와는 다르게 덩어리로 선택 되는것이 아니라 하나하나 혹은 홀수만, 짝수만, 등등의 여러가지 형태의 지정이 가능합니다.
/24 네트워크 대역을 Wildcard Mask 로 선택하는 것은 이미 잘 알고 계시는 바와 같이
Subnet Mask 를 거꾸로 뒤집으시면 됩니다.
255.255.255.0 --> 0.0.0.255
혹은 255.255.255.255 -(빼기) subnet mask 이런식으로 계산하는 방법도 있습니다.
255.255.255.255
255.255.255.0
----------------
0.0.0.255
여기까지는 아시는 내용일테고요.
좀 특수한 경우를 살펴볼께요.
예를 들어 C 클래스의 홀수 ip 만 선택을 해보겠습니다.
192.168.1.000 11000000.10101000.00000001.00000000
192.168.1.001 11000000.10101000.00000001.00000001
192.168.1.002 11000000.10101000.00000001.00000010
192.168.1.003 11000000.10101000.00000001.00000011
192.168.1.004 11000000.10101000.00000001.00000100
192.168.1.005 11000000.10101000.00000001.00000101
192.168.1.006 11000000.10101000.00000001.00000110
192.168.1.007 11000000.10101000.00000001.00000111
192.168.1.008 11000000.10101000.00000001.00001000
192.168.1.009 11000000.10101000.00000001.00001001
...
...
...
192.168.1.254 11000000.10101000.00000001.11111110
192.168.1.255 11000000.10101000.00000001.11111111
-----------------------------------------------------------
홀수는 모두 맨마지막 비트가 1 로 끝나는 것을 알 수 있습니다.
Wildcard Mask 는 0 일때 상관하고 1 일때 무시합니다.
그럼 첫번째 부터 세번째 옥텟까지는 모두 일치해야하니까
상관하는 0.0.0(00000000.00000000.00000000) 이 되겠네요.
마지막 옥텟의 마지막 비트가 1 이되어야 하고 나머지 일곱비트는 무시해도 관계없으니까
변환을 해보면 11111110 이렇게 되면 맨 마지막에 1 만 상관하겠다는 의미가 됩니다.
그럼 11111110 을 10진값으로 변환하면 254 가 됩니다.
이제 Wildcard Mask 는 완성이 되었습니다. 하지만 홀수를 지정해야 하는 일이 남아있습니다.
즉, 어떤 prefix 에서 맨마지막 비트를 상관할거냐 하는 건데요 아래 두 표현의 차이를 살펴보시면 이해가 될 것같네요.
192.168.1.0 0.0.0.254
192.168.1.1 0.0.0.254
둘의 차이는 뭘까요?
192.168.1.0 0.0.0.254 는 맨마지막 비트가 0 으로 끝나는 것을 매칭하겠다 즉 짝수선택
192.168.1.1 0.0.0.254 는 맨마지막 비트가 1 으로 끝나는 것을 매칭하겠다 즉 홀수선택
이런 차이가 있습니다.
Wildcard Mask 를 이용하면 홀수,짝수 뿐만아니라 2진 비트의 매칭하는 룰에 따라 다양한 표현이 가능합니다.
출처 : https://m.blog.naver.com/kardiahk/10099385459
'# Network > [ 용어 정리 ]' 카테고리의 다른 글
[허언증/용어정리] Metric 이란? ( 메트릭 ) (0) | 2020.04.27 |
---|---|
[허언증/용어정리] loopback 이란? (루프백 이란?) (0) | 2020.04.26 |
[허언증/용어정리] Class Ful (클래스 풀) /ClassLess (클래스 리스) (0) | 2020.04.26 |
[허언증/용어정리] Distance Vector v.s Link State (0) | 2020.04.18 |
[허언증/용어정리] IGP v.s EGP (0) | 2020.04.18 |