서브넷 마스크의 개념에 앞서 서브네팅(Sub-netting)의 개념에 대해 먼저 알아야 합니다.
서브넷팅은 하나의 주 네트워크(Major Network)를 필요한 만큼 분할하여 상호 연결 망을 구축할 수 있게 해주는 것입니다. IP 주소의 고갈 문제를 해결하기 위해 설계된 개념이고 반대로 축약하는 개념은 수퍼넷팅(Super-netting)이라고 합니다.
예를 들어, 회사에 영업부(50명), 회계부(50명), 관리부(50명) 등이 존재하는데 이를 하나의 네트워크로 묶을 수도 있지만 이를 분할해서 네트워크를 구분 지어줍니다. 이 구분된 네트워크를 브로드캐스트 도메인(Broadcast Domain)이라고 하고 너무 큰 브로드캐스트 도메인은 자원을 효율적으로 분배하기 어려워서 속도가 느려집니다.
따라서, 서브넷팅으로 네트워크를 분할하게 되면 필요한 네트워크 주소만 호스트 IP로 할당해서 쓸모없이 버려지는 잉여 IP를 최소화 할수 있으며, Broadcast Domain Size를 줄여주므로 LAN의 Traffic을 줄일 수 있습니다. 또한 여러 네트워크로 분할 되므로 분할된 각 network(서로 다른 부서) 업무 간에 보안을 유지할 수 있습니다.
그렇다면 서브넷 마스크는 무엇인가??
- IP Address에서 첫비트부터 어디까지가 네트워크 부분인가 알려주는 역할.
- 쉽게 생각하면 IP주소에 마스크를 씌워서 어디까지가 네트워크 부분인가를 표시하는 것이다.
- 연속성이 존재해서 네트워크 부분 중간에 0이 들어갈 수 없다.
- 예를 들어, IP주소 192.168.1.1에 서브넷마스크가 255.255.255.0라면 255로 표시된 부분인 192.168.1. 까지는 네트워크 부분이고 0으로 표시된 부분인 .1은 호스트 부분이다. 다시 말해, 255는 이진법으로 표시하면 11111111이기 때문에 네트워크 부분인 것이다.
- 서브네팅한 네트워크 부분을 확인할 때는 IP주소와 Subnet mask를 AND연산해서 구한다. AND연산은 각 비트를 비교해서 모두 1인 경우에만 1값을 반환한다.
- 255.255.255.0 서브넷 마스크의 경우 24bit가 네트워크 부분이며, prefix표기법으로 /24 이다.
- AND연산을 통해서 네트워크 부분을 구하게 될 경우 Network Address를 구할 수 있으며, 이때 호스트 부분을 모두 1로 바꿀 경우 Braodcast Address를 구할 수 있다. 이 두가지 주소의 경우 호스트에 할당 할수 없으며 이를 제외한 나머지 IP주소가 호스트에 할당 가능한 주소(Assigned Address)이다.
- 따라서 위의 네트워크를 보면, 192.168.1.1/24 는 Network Address가 192.168.1.0 이고 Braodcast Address가 192.168.1.255이며, 할당 가능한 호스트는 192.168.1.1 부터 192.168.1.254까지 이다. 호스트 수는 254개 이며 이를 구하는 공식은 2의 호스트 비트수 제곱에서 2를 뺀 값이다.