IP는 장비에 부여되는 가변적인 주소이다.
동일한 영역에 모여있는 장비는 연결되어 네트워크를 형성하는데, 이를 LAN(Local Area Network)이라 부른다. LAN의 입구 역할은 라우터가 하는데, 이를 게이트웨이(Gateway)라 부른다. 그러므로 한 LAN에서 다른 LAN으로 데이터를 전송하려면 우선 게이트웨이가 위치한 네트워크에 도착해야 한다.
집주소를 떠올리면 이해가 쉽다.
경복궁을 간다고 가정해보자. 경복궁 주소는 아래와 같다.
서울특별시 종로구 / 사직로 161
경복궁에 가려면 우선 서울특별시 종로구(네트워크 주소)에 가야한다. 그리고 상세주소인 사직로 161(호스트 주소)을 찾아가야 한다. IP도 마찬가지이다. 우선 네트워크를 찾아가야 되고 게이트웨이에 입성하면 호스트 주소로 장비를 찾아야 한다.
그러므로 IP에서 네트워크 주소와 호스트 주소를 분리할 수단이 필요한데, 그것이 서브넷 마스크(Subnet Mask)이다.
마스킹이란? (Masking)
서브넷 마스크 동작원리는 간단하다. 비트연산의 AND 연산을 이용하는 것이다.
IP : 203.230.8.2/24 ( IP주소 / 서브넷 마스크 )
서브넷 마스크 24의 의미는 1의 개수이다. IPv4는 8개의 bit 4개를 묶어 표현된다.
IP주소 : 11001011 / 11100110 / 00001000 / 00000010
서브넷 마스크 : 11111111 / 11111111 / 11111111 / 00000000 ( 1이 24개 )
IP주소와 서브넷 주소를 AND 연산하면 서브넷 주소가 1인 부분은 그대로 보존되지만, 0인 부분은 모두 0으로 바뀐다.
IP주소 : 11001011 / 11100110 / 00001000 / 00000010
서브넷 마스크: 11111111 / 11111111 / 11111111 / 00000000
네트워크 주소 : 11001011 / 11100110 / 00001000 / 00000000
IP주소에서 네트워크 주소를 추출하였다. 이를 마스킹(Masking)이라 부른다. IP주소와 서브넷 마스크를 알면 언제든지 IP주소에서 네트워크 주소를 추출할 수 있다.
서브넷이란? ( SubNet )
여기에는 한 가지 문제가 있다.
서브넷 마스크가 24이면 C클래스를 의미한다. C클래스는 호스트 주소로 256(0~255)개를 가진다. 0은 네트워크 주소, 255는 브로드캐스트 주소이므로 제외하면, 254개의 호스트를 부여할 수 있다.
그런데 203.230.8.0 네트워크에는 총 6대의 장비 밖에 없다. 남은 248개 IP는 모두 버리는거다. 이렇게 네트워크 주소를 C클래스 단위로 LAN에 배정하면 IP는 낭비된다. 그러므로 네트워크를 쪼개야 한다. 쪼개는 방법은 호스트 주소에 할당된 8bit 중 일부를 네트워크 주소로 할당하는 것이다.
203.230.8.0 네트워크에 할당된 호스트 주소는 203.230.8.0 ~ 203.230.8.255 이었다.
그럼 서브넷 마스크를 24에서 25로 1bit 올려보자.
서브넷 마스크 : 11111111 / 11111111 / 11111111 / 10000000 ( 1이 25개 )
그럼 네트워크 주소는 두 개로 분할된다.
1) 203.230.8.0
203.230.8.0~203.230.8.127 주소는 서브넷 마스크 25를 만나면 네트워크 주소는 모두 203.230.8.0로 동일하다.
IP주소 : 11001011 / 11100110 / 00001000 / 0XXXXXXX
서브넷 마스크 : 11111111 / 11111111 / 11111111 / 10000000
네트워크 주소 : 11001011 / 11100110 / 00001000 / 00000000
2) 203.230.8.128
203.230.8.128~203.230.8.255 주소는 서브넷 마스크 25를 만나면 네트워크 주소는 모두 203.230.8.128로 동일하다.
IP주소 : 11001011 / 11100110 / 00001000 / 1XXXXXXX
서브넷 마스크 : 11111111 / 11111111 / 11111111 / 10000000
네트워크 주소 : 11001011 / 11100110 / 00001000 / 10000000
그럼 이제 128개 중 8개의 IP를 사용하므로 120개를 낭비하게 되었다. 이전에 248개를 낭비했던 것보다 훨씬 좋아졌다. 이런 원리로 서브넷 마스크의 비트수를 1씩 올려 네트워크를 쪼개어 IP 낭비를 줄이는 것이다.
우리는 6대의 장비와 네트워크 주소, 브로드캐스트 주소까지 포함하여 8개의 IP가 필요하다. 호스트 개수 8개를 제공하는 서브넷 마스크는 29이다. 그러므로 아래와 같이 IP를 구성하면 된다.
위 LAN은 203.230.8.0 네트워크 주소를 배정받았다. 서브넷 마스크가 29이므로 8개의 호스트를 가질 수 있다. 장비는 6대이니 낭비되는 IP주소가 없다.
이와 같이,
서브넷 마스킹은 서브넷 마스크의 비트수를 올려서 네트워크를 쪼개어 IP낭비를 줄이는 기술이라고 할 수 있다.
참고자료
https://www.youtube.com/watch?v=o-NRjtQsJx4&t=1466s
'CS > NETWORK' 카테고리의 다른 글
[Network] VLSM ( Variable Length Subnet Mask ) (0) | 2023.09.14 |
---|---|
HDLC 프로토콜( High-Level Data Link Control ) (0) | 2021.06.24 |
프레임 구조 (0) | 2021.06.24 |
이더넷(Ethernet) (신호감지프로토콜) (0) | 2021.06.24 |
슬라이딩 윈도우 프로토콜 (흐름제어) (0) | 2021.06.24 |