Network Layer 2 - Subnet Mask

Subnet Mask(서브넷 마스크)


서브넷 마스크는 주어진 IP 주소를 네트워크 환경에 맞게 나누어 주기 위해서 씌워주는 2진수의 조합이다.

즉, 서브넷 마스크는, IP 주소를 가지고 어디까지가 네트워크 부분이고 어디까지가 호스트 부분인지 나타내는 역할을 한다.

또한, 호스트 숫자가 많은 커다란 네트워크를 여러개의 작은 네트워크로 나누어 쓰기 위한 방법이 서브넷 마스크 이다.

  • Default Subnet Mask
    • Class A : 255.0.0.0
    • Class B : 255.255.0.0
    • Class C : 255.255.255.0

서브넷 마스크 계산하기

AND 연산을 통해 IP 주소에 대한 Network 부분을 확인할 수 있다.

ex. 192.168.170.150 이라는 IP 주소와 255.255.255.0이라는 Subnetmask가 주어진다면

// 192.168.170.150 을 이진수로 변환(IP 주소)
1100 0000 . 1010 1000 . 1010 1010 . 1001 0110  -> 192.168.170.150
// 255.255.255.0 을 이진수로 변환(Subnet mask)
1111 1111 . 1111 1111 . 1111 1111 . 0000 0000  -> 255.255.255.0
// IP 주소와 Subnet mask를 AND 연산(Subnet network)
1100 0000 . 1010 1000 . 1010 1010 . 0000 0000  -> 192.168.170.0

서브넷 마스크 와 호스트 수

  • 호스트 부분이 모두 0 인 경우는 네트워크 주소로 호스트로 사용 불가
  • 호스트 부분이 모두 1 인 경우는 네트워크의 브로드캐스트 주소로 호스트로 사용 불가
  • 따라서 서브넷 마스크에서 사용가능한 호스트의 개수는 다음과 같다. 사용가능한 호스트 수 = $2^(호스트 비트 수) - 2$
    • -2는 네트워크 주소와 브로드캐스트 주소를 제외한 것
  • 예를 들어 255.255.255.252, /30의 경우 호스트 비트 수가 2 이므로 $2^2-2=2$ 로 2개의 호스트를 가질 수 있게 된다.
  • 또한, 20개의 서브넷 주소가 필요하면 최소 $2^5$ 이상이 필요하므로 255.255.255.224/27 의 서브넷 마스크가 필요하게 된다.

서브넷 마스크의 표시

서브넷 마스크는 2진수로 표현했을 때 왼편부터 연속적인 1로만 구성된다.

  • 사용가능한 서브넷 마스크 와 표현방법

    2진수 10진수 서브넷 마스크로 표현
    1111 1111 . 1111 1111 . 1111 1111 . 1111 1111 255.255.255.255 /32
    1111 1111 . 1111 1111 . 1111 1111 . 1111 1110 255.255.255.254 /31
    1111 1111 . 1111 1111 . 1111 1111 . 1111 1100 255.255.255.252 /30
    1111 1111 . 1111 1111 . 1111 1111 . 1111 1000 255.255.255.248 /29
    1111 1111 . 1111 1111 . 1111 1111 . 1111 0000 255.255.255.240 /28
    1111 1111 . 1111 1111 . 1111 1111 . 1110 0000 255.255.255.224 /27
    1111 1111 . 1111 1111 . 1111 1111 . 1100 0000 255.255.255.192 /26
    1111 1111 . 1111 1111 . 1111 1111 . 1000 0000 255.255.255.128 /25
    1111 1111 . 1111 1111 . 1111 1111 . 0000 0000 255.255.255.0 /24