서브넷 마스크는 네트워크를 분리할 때 사용되고
서브넷마스크를 이용해서 네트워크를 분리하는 것을 서브넷팅(subnetting)이라고 합니다.
서브넷 마스크는 IP와 동일하게 총 32비트의 크기에 4개의 옥텟으로 구분되어 지는데 IP와 다른 점은 최상위 비트부터 모두 1로 채워진다는 점
입니다.
예를 들면 255.128.0.0이라는 서브넷 마스크가 있고 이 녀석을 2진법으로 바꿔보면
1111 1111. 1000 0000. 0000 0000. 0000 0000이 됩니다. 1의 연속과 0의 연속으로 이루어져 있죠!
IP와 동일하게 생긴 이유는 IP와 서브넷마스크를 AND연산하기 위해서입니다. 이 연산을 통해서 Host IP를 얼마나 할당을 할 지 정하게 됩니다.
그리고 IP뒤에 /24 이런 식으로 표기된게 있는데 이건 서브넷마스크의 비트 수를 이야기하고 Prefix라고 합니다. 이 녀석으로 할당 가능한 Host IP의 수를 구할 수 있습니다. 서브넷 마스크는 최대 32비트까지라고 했으니 Prefix가 /24라면 32-24 = 8 즉 2^8-2를 해주면 Host IP의 수를 알 수 있습니다.
서브넷팅은 네트워크를 효율적으로 관리하기 위해서 사용되는 방법
으로, 네트워크 영역과, 호스트 영역을서브넷 마스크는 최대 32비트까지라고 했으니 Prefix가 /24라면 32-24 = 8 즉 2^8-2를 해주면 Host IP의 수를 알 수 있습니다.
ex ) 네트워크 192.168.32.0/24의 할당 가능한 Host IP는 2^(32-24)-2 = 254입니다.
서브넷 마스크가 1bit씩 증가할때마다 Host address는 절반씩 줄어들고 Network address는 두배로 늘어나게 됩니다. 즉, 192.168.32.0/24라는 하나의 네트워크가 있다면 이 녀석을 /25로 서브넷팅 한다면 할당 가능한 IP는 192.168.32.0 ~ 192.168.32.127, 192.168.32.128 ~ 192.168.32.255까지 두개의 네트워크로 나뉘고 할당 가능한 IP는 256개에서 128개로 절반으로 줄어들게 되는 거죠.
주어진 IP와 서브넷 마스크를 2진수로 변환하고 둘을 AND연산을 하면 네트워크 주소를 알 수 있습니다.
ex ) 124.179.179.188/29의 네트워크 주소를 구해보도록 합시다.
10진수로 변환하면 124.179.179.184가 나오게 됩니다.
이렇게 네트워크 주소를 구할 수 있습니다.
브로드캐스트도 네트워크 주소 구하는것과 크게 다르지 않습니다.
서브넷마스크의 역수를 IP와 OR연산을 하면 브로드캐스트 주소를 알 수 있습니다!
이렇게 서브넷 마스크의 역수를 IP와 OR연산을 하면 브로드캐스트의 주소를 알 수 있습니다.
참고자료