서브넷 마스크를 사용하는 목적을 잘 이해하기 위해서는 2장에서 '클래스'에 대해 보고오면 좋다.
[개발 기초/Network] - 2. IP 주소의 구조는?
서브넷팅 (Subnetting) 이란?
서브넷 마스크를 이해하기 위해서는 서브넷 마스크를 사용하는 목적인 서브넷팅에 대해서 먼저 알아야 한다.
전 장에서 봤듯이 네트워크는 호스트를 효율적으로 관리하기 위해서 클래스를 사용한다.
클래스마다 가질 수 있는 호스트의 수가 다른데, 이 클래스의 네트워크를 올바른 곳에 할당하는 것은 매우 중요하다.
네트워크가 할당할 수 있는 호스트를 낭비하는 극단적인 예시를 하나 들어보자.
A씨는 집에 스마트폰 하나와 컴퓨터 2대, 아이패드 1개를 가지고 있다.
그리고 그는 세상에 128개밖에 없는 A Class 네트워크중 하나를 할당 받았고,
이 네트워크가 가질 수 있는 호스트 수는 1600만여개 정도이다.
그가 사용하는 호스트 수는 4개 뿐이고, 나머지 1600만여개는 모두 낭비되는 중이다.
극단적인 예시지만, 개인용으로 쓰이는 가장 많은 C Class 네트워크 하나조차 무려 254개의 호스트를 가질 수 있다.
이러한 문제를 해결하기 위해,
Host ID를 변경하여 네트워크 영역을 분리하는 서브넷팅을 한다.
그렇다면 서브넷팅은 어떻게 이루어질까?
Subnettiing이 이루어지는 원리
다음 그림을 보자.
그림을 통해 볼 수 있듯이
서브넷팅은 후술할 Subnet Mask를 이용하여 Host 영역을 Network영역으로 변환하여 Network 수를 늘리고,
각 네트워크가 가질 수 있는 Host의 수를 줄이는 것이다. 이렇게 하면 더 많은 네트워크를 호스트의 낭비 없이 분배할 수 있다.
실제적으로 어떤 기술을 통해 작동하는지 함께 계산해보며 알아보자!
함께 네트워크를 공부하는 입장으로서 처음부터 차근 차근 계산해보겠다.
차분히 생각하며 정독한다면 분명히 완벽하게 이해할 수 있을 것이다.
Subnet Mask와 Subnetting 계산
서브넷 마스크는 IP주소와 똑같이 OOO.OOO.OOO.OOO의 형태를 가지고 있다.
다만, 우리가 외과 수술을 할 때, 필요한 부분에 집중하기 위해 수술 부위를 빼놓고는 덮어놓는 것 처럼
서브넷 마스크는 Host 영역에만 집중하기 위해 네트워크 영역을 255로 둔다.
이는 이진법 수 11111111(255)가 어떤 수와 AND 연산을 하면 그대로 나오기 때문이다.
간단한 예시를 들어보자
192.168.3.150/26 이라는 네트워크가 있다.
여기서 "/26"은 서브넷 마스크가 앞에서부터 1이 몇개 있는지를 나타내는 수이다.
C Class의 디폴트 서브넷 마스크는 255.255.255.0이지만 여기서 더 쪼개고 싶으면 이진수 앞에서부터 1을 늘려주어야 한다.
이 숫자에 따라 네트워크가 분리되는 정도가 달라진다. 일단 계산을 해보며 이해해보자.
\26에 따라, 서브넷 마스크는 111111111 . 11111111 . 11111111 . 11000000 가 된다.
이 둘을 AND 연산해보자.
Network 영역 | Host 영역 | |||
IP주소 | 11000000 (192) | 10101000 (168) | 00000011 (3) | 10010110 (150) |
서브넷 마스크 | 111111111 (255) | 11111111 (255) | 11111111 (255) | 11000000 (192) |
And 연산 | (192) | (168) | (3) | 함께 다루어보자. |
자! 네트워크 영역은 똑같이 나왔다.
Host 영역에서부터 잠시 집중해보자.
Host 영역에서 Network 영역처럼 귀속되는 부분이 생긴다.
Host 영역의 IP주소 10010110과 서브넷 마스크 11000000을 AND연산 하면
IP주소의 호스트 영역이 00000000 (0) 부터 01000000 (64) 이전 즉, 0 ~ 63까지 모두 같은 값을 가진다.
마찬가지로 01000000 (64) 부터 10000000 (128) 이전인 64 ~ 127
10000000 (128) ~ 11000000 (192) 이전인 128 ~ 191
11000000 (192) ~ 11111111 (255), 192 ~ 255까지 모두 같은 값을 가진다.
따라서 192.168.3.150은 192.1168.3.0의 네트워크 영역에서 변경되어 192.168.3.128의 네트워크 영역을 가지게 되는 것이다.
서브넷 마스크를 씌우기 전, 할당된 C Class 네트워크 영역에서 가질 수 있는 호스트는
192.168.3.0 부터 192.168.3.255까지로 256개이지만
서브넷팅 이후로는 4등분 되어
192.168.3.128 부터 192.168.3.191로 64개의 호스트를 가지는 IP 주소를 할당받는 것이다.
서브넷 마스크가 AND 연산을 통해 호스트 영역을 네트워크 영역으로 분리하는 과정을 다음 그림을 통해 이해해볼 수 있다.
서브넷 마스크 IP주소 계산 사이트
Default Subnet Mask
앞에서 계산해보며 이해했듯이 디폴트 자체로는 네트워크를 나눌 수 없다
A Class / 8
255 | 0 | 0 | 0 |
11111111 | 00000000 | 00000000 | 00000000 |
B Class / 16
255 | 255 | 0 | 0 |
11111111 | 111111111 | 00000000 | 000000000 |
C Class / 24
255 | 255 | 255 | 0 |
11111111 | 11111111 | 11111111 | 00000000 |
참고
'네트워크, 서버 > Network' 카테고리의 다른 글
9. 라우터(Router)와 라우팅(Routing) (0) | 2020.08.11 |
---|---|
8. DNS와 DHCP 프로토콜 (Application Layer) (0) | 2020.08.10 |
7. 전송계층의 프로토콜 TCP / UDP 란? (0) | 2020.08.10 |
6. OSI 7계층 모형과 TCP/IP (0) | 2020.08.10 |
5. Public(공인) IP vs Private(사설) IP (0) | 2020.08.10 |
4. 서브넷에서의 브로드캐스트/호스트 주소 (0) | 2020.08.10 |
2. IP 주소의 구조는? (0) | 2020.08.09 |
1. IP 주소란? (0) | 2020.08.09 |