Subnet mask

2022. 4. 20. 22:16Network

공부한것을 기록한 것이므로 이미 아시는 분들은 스킵하시거나 참고만 해주시면 감사할 것 같습니다


○ background of subnet mask

IPv4는 IP클래스 단위로 IP를 나누어 사용자에게 할당하는 방법을 사용했었다. 이 경우 65,536개의 ip수를 할당 가능했다.

하지만 할당된 ip수에서 10,000개만 사용한다면 나며지 55,536개는 사용하지 않고 점유만 하고 굉장히 비효율적인 상태가 된다. 이러한 문제를 해결하기 위해 subnet mask가 등장하였고 이를 통해 ip 할당 범위를 더 작은 단위로 나눌수가 있음. 즉 subnet mask는 필요한 네트워크 주소만 호스트 ip로 할당 할수있게 되므로 네트워크를 방지할 수 있다.

 

○ what is subnet mask

네트워크 ID 와 호스트 ID를 구분하기 위해 사용됨

32bit 2진수로 표현함[ip주소와동일]

ex) subnet mask = 255.0.0.0 -> 11111111.00000000.00000000.00000000

네트워크 ID -> 1, 호스트 ID -> 0으로 표기함

연속된 1, 0으로 구성되어있지만 서로 각자 연속되게 표현되야됨 ex) 11111111.11111111.11111111.00000000

ip address에서 네트워크ID를 1로 표기하고 호스트 ID를 0으로 표기함

subnet mask의 값이 커질수록 더 작은 단위의 호스트영역이 생성됨

cmd에서 ipconfig/all 이라고 명령하면 subnet mask를 확인할 수 있움

○ how to find the subnet mask

만약 ip address가 192.168.123.130 -> 11000000.10101000.01111011.10000010 이고

subnet mask가 255.255.255.0 -> 11111111.11111111.11111111.00000000 라면 

subnet mask는 ip address와 AND 연산을 통해 새로운 네트워크영역, 호스트영역을 만들 수 있다

[논리 AND 연산 -> 1 AND 1 = 1, 1 AND 0 = 0, 0 AND 1 = 0, 0 AND 0 = 0] 

ex)

11000000.10101000.01111011.10000010[ip address]

AND

11111111.11111111.11111111.00000000[subnet mask]

-------------------------------------------------------------------------------

11000000.10101000.01111011.00000000[subnet network address]

위에서 알 수 있듯이 IP주소와 서브넷마스크를 논리 AND 연산하면 서브넷 네트워크를 구할 수 있다.

 

위를 토대로 정리를 해보면

ip address : 192.168.123.130 -> 11000000.10101000.01111011.10000010

subnet mask : 255.255.255.0 -> 11111111.11111111.11111111.00000000

network address : 192.168.123 -> 11000000.10101000.01111011

host address : .130

표기법 : 192.168.123.130/24

으로 정리 할 수 있겠다.

*

여기서 /24로 붙은 표현을 prefix라고 하는데 subnet mask를 표현하는 다른방법이고 네트워크ID의 bit 단위의 개수를 표시한다.

위에서 subnet mask의 3byte가 1로 되어있기 때문에 8^3인 24로 표기된 것이다. 만약 255.0.0.0 이라면 /8로 표시된다.

*

 

○ 기본 subnet mask

따로 서브넷 마스크를 생성하지 않아도 기본적으로 적용되어 있는 서브넷 마스크이다.
클래스 체계에 의해 기본적으로 네트워크를 나누기 위한 개념이다.

reference : http://egloos.zum.com/Yupp2/v/1916132

위에서 예시한 ip address가 192.168.123.130은 ip address class c 에 해당되므로 서브넷마스크가 255.255.255.0 인 것을 확인 할 수 가 있다.

각 클래스별로 추가적인 예시를 들면 다음과 같다.

 

A Class

ip address : 10.10.10.10

subnetmask : 255.0.0.0

10.10.10.10

[파란색:네트워크ID, 빨간색:호스트ID]

 

B Class

ip address : 172;16.1.10

subnetmask : 255.255.0.0

172.16.1.10

[파란색:네트워크ID, 빨간색:호스트ID]

 

C Class

ip address : 192.168.37.130

subnetmask : 255.255.255.0

192.168.37.130

[파란색:네트워크ID, 빨간색:호스트ID]

 

○ subneting

ip주소 낭비를 방지하기 위해 원본 네트워크를 여러개의 네트워크로 분리[자신의 네트워크 주소를 더 작은 서브 네트워크로 2의 제곱으로 나눔]하는 과정이다.

즉 subnet mask의 bit수를 1증가 -> 네트워크 2배 증가, 호스트수 2배 감소.

처음 예를 들은 192.168.123.130/24 표기법에서 1bit를 증가시키면 192.168.123.130/25로 변경되고 NetworkID 부분의 bit가 24bit -> 25bit로 증가해서 255.255.255.128이 되고 HostID 부분의 bit는 8bit -> 7bit로 감소한다.

 

192.168.123.130/24 -> 11000000.10101000.01111011.10000010

255.255.255.0 -> 11111111.11111111.11111111.00000000

                                         ↓

 

192.168.123.130/25 -> 11000000.10101000.01111011.10000010

255.255.255.128 -> 11111111.11111111.11111111.10000000

 

 

cf) subnet mask에 대해 잘 설명해 놓은 것이 있어서 참고하면 좋을 것 같습니다

https://www.youtube.com/watch?v=s_Ntt6eTn94 

 

 

 

 

 

 

 

'Network' 카테고리의 다른 글

Unicast & Broadcast & Multicast  (0) 2022.05.10
MAC address  (0) 2022.04.21
Ip address class  (0) 2022.04.20
Network table  (0) 2022.04.19
Firewall[inbound & outbound]  (0) 2022.04.19