이 게시물은 후니의 쉽게 쓴 CISCO 네트워킹 4판을 공부한 내용을 바탕으로 작성됨.
서브넷 마스크 Subnet Mask - 무엇인가?
class B 네트워크를 배정받았다고 생각해보자. class B는 네트워크 당 호스트 수가 65,534개로, 이를 그대로 사용하면 Broadcast domain이 상당히 커 실제 상황에서 이를 그냥 사용하는 것은 불가능하다. (6.5만개 호스트가 전부 같은 broadcast domain에 속한다고 생각해보라!)
→ 네트워크를 작게 쪼개주는 subnetting이 필요
예를 들어 class B 네트워크 150.150.0.0을 서브네팅 한다면 서브넷 마스크는 255.255.0.0에서 255.255.255.0이 되고, 150.150.1.0, 150.150.2.0 ... 으로 네트워크를 세분화 할 수 있다. 각 서브넷은 서로 다른 network가 되었으므로 서브넷 간 통신은 router를 이용하여야 한다.
서브넷 마스크는 항상 존재한다. 서브네팅을 했든 안했든 IP 주소가 존재하면 서브넷마스크도 존재한다. 그래야 그 주소가 서브네팅이 된 것인지 아닌지 파악할 수 있다.
서브넷 마스크 Subnet Mask란? → network part / host part를 나타내는 역할
디폴트 서브넷 마스크
Class A | 255.0.0.0 |
Class B | 255.255.0.0 |
Class C | 255.255.255.0 |
A는 1옥텟, B는 2옥텟, C은 3옥텟이 Network part라고 했었다. 즉 서브넷 마스크가 이진수로 1인 부분은 Network part이고, 0인 부분은 host part이다.
서브넷 마스크는 서브넷 네트워크를 쉽게 구하는 데 사용된다. 어떤 IP 주소와 그것의 서브넷 마스크가 있을 때 이 둘을 AND 연산하면 서브넷 네트워크 (network part)를 쉽게 얻어낼 수 있다.
IP 주소 | 210.100.100.1 |
서브넷 마스크 | 255.255.255.0 |
서브넷 네트워크 | 210.100.100.0 |
Class B network의 디폴트 서브넷 마스크는 255.255.0.0이다. 이때 네트워크를 쪼개기 위해서는 서브넷 마스크의 1인 부분이 더 많으면 된다. 예를들어 255.255.255.0 이라는 서브넷 마스크를 씌우는 것이다. 그러면 기존에 16옥텟이었던 호스트 부분이 8옥텟으로 줄어들고, 네트워크 부분이 8옥텟 늘어난다.
이처럼 서브넷 마스크를 조작하여 큰 네트워크를 작은 여러개의 네트워크로 바꾸는 것을 서브네팅이라고 한다.
(여기서는 이해하기 쉽게 1옥텟 단위로 subnetting을 했는데, 실전에서는 굳이 1옥텟 단위로 할 이유가 없다. 1bit, 2bits 등 자유롭게 서브네팅 할 수 있다.)
서브넷 마스크 Subnet Mask - 기본 성질
- 서브네팅을 통해 나뉘어진 네트워크들은 이제 서로 다른 네트워크이므로 router를 이용해야만 통신할 수 있다.
- 서브넷 마스크는 1이 연속적으로 등장해야 한다. 예를 들어 255.255.255.10 = 1111 1111. 1111 1111. 1111 1111. 0000 1010은 사용할 수 없다. 1의 사이에 절대 0이 껴서는 안된다.
- 255.255.255.252 = 1111 1111. 1111 1111. 1111 1111. 1111 1100은 가능하다.
예제 하나를 잠깐 보겠다.
IP 주소 | 130.15.121.13 |
서브넷 마스크 | 255.255.255.0 |
클래스 | B |
서브넷 | 130.15.121.0 |
맨 처음 옥텟이 130이므로 B class에 속하는 것은 자명하다. 이때 서브넷 마스크를 C class와 동일하게 255.255.255.0으로 지정해주면 해당 서브넷들은 Class C가 되는 것일까? 그렇지 않다. Class B를 서브네팅하여 Class C처럼 사용하는 것이지, 근본은 Class B로 동일하다.
서브넷 마스크 Subnet Mask - 약간의 활용
문제 1
공인 IP 주소 210.100.1.0 (subnet mask = 255.255.255.0)을 받았다고 하자. 요 하나의 큰 네트워크를 이용하여 PC 30대를 수용할 수 있는 네트워크 4개를 만들려면 어떻게 해야하는가?
먼저 한 네트워크에 PC 30대를 담당하기 위해 host part가 몇 비트 필요한지 파악해보자.
호스트 비트수 | 호스트 수 |
1 | 2 - 2 = 0 |
2 | 4 - 2 = 2 |
3 | 8 - 2 = 6 |
4 | 16 - 2 = 14 |
5 | 32 - 2 = 30 |
6 | 64 - 2 = 62 |
호스트 비트가 전부 0인 경우는 네트워크 그 자체를 의미하므로 사용이 불가능하고, 전부 1인 경우는 브로드캐스트 주소이므로 사용이 불가능하기 때문에 항상 전체에서 2개를 빼줘야 한다. 위 표에서 알 수 있듯이 PC 30개를 수용하기 위해서는 호스트 비트를 최소 5개 사용해야 한다.
호스트 비트 5개 할당하자. (IP 주소를 남김없이 효율적으로 사용하기 위해 서브네팅이 개발된 것이므로, 딱 5bit만 할당하는 것이 바람직하다.)
default subnet mask = 255.255.255.0000 0000
변경된 subnet mask = 255.255.255.sssh hhhh (s : subnet, h : host)
이때 사용자가 조작 가능한 network part는 3bits이므로 총 8개의 network를 가지며, 각각의 network는 호스트를 30대 수용할 수 있다.
문제 2
주어진 네트워크 : 201.222.5.0 (subnet mask : 255.255.255.0)
서브넷 요구조건 : 서브넷 당 호스트 5개 이상 / 총 서브넷 수 20개 이상
서브넷당 호스트가 5개 이상이려면 호스트 비트수를 3으로 설정하면 알맞다. (호스트 비트 3일때 호스트 수 6)
host bits를 3개 할당해보자.
default subnet mask = 255.255.255.0000 0000
변경된 subnet mask = 255.255.255.ssss shhh (s : subnet, h : host)
변경 가능한 네트워크 비트수가 5 = 총 32개의 서브넷을 얻을 수 있다.
가장 첫 번째 서브넷에 대하여 호스트 IP를 살펴보자.
201.222.5.0000 0000 | host part가 전부 0 : 네트워크 그 자체 |
201.222.5.0000 0001 | 201.222.5.1 (host 1) |
201.222.5.0000 0010 | 201.222.5.2 (host 2) |
201.222.5.0000 0011 | 201.222.5.3 (host 3) |
201.222.5.0000 0100 | 201.222.5.4 (host 4) |
201.222.5.0000 0101 | 201.222.5.5 (host 5) |
201.222.5.0000 0110 | 201.222.5.6 (host 6) |
201.222.5.0000 0111 | host part가 전부 1 : Broadcast 용 |
→ host part가 전부 0 / 1인 경우는 host에 할당하지 않는다는 것을 항상 명심해야 한다.
이번 게시글에서는 서브넷마스크와 서브네팅에 대하여 간단하게 알아보았다. 사실 수업들을 땐 진짜 이해가 안됐는데 후니 책으로 읽으니까 이해가 진짜 쉽다. 굿~
책에 있는 모든 내용을 담지는 않았지만, 서브넷마스크는 기본적이면서도 아주 중요한 개념이기 때문에 시간 될 때마다 책 꼼꼼히 읽어봐야겠다.
'네트워크' 카테고리의 다른 글
[네트워크] 8. VLAN (0) | 2023.12.24 |
---|---|
[네트워크] 7. 스패닝 트리 프로토콜 STP (0) | 2023.12.24 |
[네트워크] 5. IP, Class A B C (0) | 2023.12.23 |
[네트워크] 4. 브리지, 스위치 (1) | 2023.12.22 |
[네트워크] 3. TCP/IP, DHCP, 랜카드, 허브, 스위치 (1) | 2023.12.22 |