IPv4의 Subnetting
서브넷팅이 필요한 이유
1. IP주소를 효율적으로 사용하여 낭비를 막기 위해서
2. 네트워크를 분리하여 보안성 강화를 위해서
만약 하나의 부서에서 필요한 IP주소의 개수는 총 6개인데 C class 주소대역대 하나를 할당해준다면...
할당된 IP의 총 개수는 256개로 낭비되는 IP가 많아진다. 따라서 남는 IP를 필요한 곳에 사용할 수 있도록 네트워크를 분할하는 작업이 필요하다.
FLSM (Fixed Length Subnet Mask)
고정된 크기의 Subnet-Mask를 사용하는 방식. 즉, 동일한 크기의 Subnet으로 나누는 방식을 말한다.
Subnetting 하는 방법
서브넷을 나누기 전에 각각의 네트워크에서 필요한 호스트의 수 또는 필요한 네트워크 수를 파악하여 필요한 만큼으로 서브넷을 나누어 서브넷마스크를 변경한다.
예를 들어, 218.128.32.0/24 라는 네트워크 주소 하나를 25개씩의 호스트가 있는 각각의 네트워크로 분할하려고 한다면,
하나의 네트워크 주소를 어떻게 필요에 따라 여러 개의 작은 네트워크로 나눌 수 있는지 알아보자.
먼저 218.128.32.0 이라는 서브넷 주소와 서브넷 마스크를 2진수로 바꾸어 본다.
ip address : 11011010.10000000.00100000.00000000
subnet mask : 11111111.11111111.11111111.00000000
위에서 서브넷마스크가 1로 표시된 부분은 모두 Network-ID로 사용된 부분이니 그 부분은 건들지 않고, 0으로 표시된 Host-ID 부분을 가지고 서브넷팅을 한다.
하나의 옥텟은 8bit로 이루어져있고, 하나의 bit는 2개의 정보를 표현할 수 있다.
25개의 호스트에 ip를 한 개씩 할당해주려면 한 네트워크당 ip가 최소 25개 이상은 있어야 하므로, 5개의 bit가 필요하다.
(5bit로는 32개의 정보를 나타낼 수 있다. 2의5승 = 32)
기존의 Host-ID 부분을 필요한 개수인 5개의 bit를 세어 자른다.
호스트의 수가 기준인 경우에는 오른쪽에서부터 세고, 네트워크의 수가 기준인 경우는 왼쪽에서 센다.
218.128.32.000|00000
←--Net---|-Host→
나뉘어진 부분을 기준으로 왼쪽은 Net-ID, 오른쪽은 Host-ID가 된다.
호스트 부분의 5개의 bit로 표현할 수 있는 수의 범위를 구해보면 아래와 같다.
0 ~ 31 (218.128.32.0 ~ 218.128.32.31)
32 ~ 63 (218.128.32.32 ~ 218.128.32.63)
64 ~ 95 (218.128.32.64 ~ 218.128.32.95)
96 ~ 127 (218.128.32.96 ~ 218.128.32.127)
128 ~ 159 (218.128.32.128 ~ 218.128.32.159)
160 ~ 191 (218.128.32.160 ~ 218.128.32.191)
192 ~ 223 (218.128.32.192 ~ 218.128.32.223)
224 ~ 255 (218.128.32.224 ~ 218.128.32.255)
각 범위가 서로 다른 네트워크를 의미하고, 범위 안의 숫자들은 각 네트워크 안에서 호스트로 할당해줄 수 있는 IP의 범위가 된다. 범위 맨 앞이 각 네트워크의 대표주소가 되고, 마지막 숫자가 브로드캐스트 숫자가 된다.
즉, 첫번째 범위를 보면 0 ~ 31 까지의 호스트를 가질 수 있다. 이 범위의 서브넷을 써보면 218.128.32.0 이라고 할 수 있고, prefix는 네트워크의 bit수가 3개가 더 늘었기 때문에 /24가 아닌 /27이 된다.
VLSM (Variable Length Subnet Mask)
서브넷팅을 할 수 있다면, VLSM은 어렵지 않다.
지금까지 설명한 서브넷팅은 동일한 크기로 네트워크를 나누는 방식이었고, VLSM은 동일하지 않은 크기로 나누는 방식을 말한다.
예를 들어 한 회사에 A, B, C 라는 세 개의 부서가 있고 그 부서마다 사용하고 있는 호스트의 수가 다르다고 가정해보자.
A부서 : 100개의 Host
B부서 : 25개의 Host
C부서 : 2개의 Host
세 부서에게 나눠주기 위해 FLSM으로 서브넷팅을 하는 경우 가장 큰 범위인 A부서의 Host수에 맞춰서 자르게 되고, 다른 부서에서는 사용하고 낭비되는 주소가 너무 많아지게 된다. 또한 필요한 IP의 수는 총 133개인데 A부서 기준으로 서브넷팅을 하면 C클래스 하나로 나누지 못하여 B클래스의 주소가 필요하다.
위와 같은 상황이 생기지 않도록 각 부서별로 필요한 만큼만 잘라서 사용하고 남은 주소 범위에서 또 다시 서브넷팅을 하여 할당하는 방식으로 각 네트워크 범위를 구해보자. 단, 서브넷팅을 할 때는 큰 범위부터 자르는 것이 효율적이다.
(예제 IP : 200.1.1.0/24)
A부서 : 필요한 IP개수 총 102개
102개의 IP를 생성하기 위해 필요한 bit 수 = 7bit
200.1.1.0|0000000
200.1.1.0|1111111
Network ID : 200.1.1.0/25
IP 범위 : 200.1.1.0 ~ 200.1.1.127
B부서 : 필요한 IP개수 총 27개
27개의 IP를 생성하기 위해 필요한 bit 수 = 5bit
200.1.1.100|00000
200.1.1.100|11111
Network ID : 200.1.1.128/27
IP 범위 : 200.1.1.128 ~ 200.1.1.159
C부서 : 필요한 IP개수 총 4개
4개의 IP를 생성하기 위해 필요한 bit 수 = 2bit
200.1.1.101000|00
200.1.1.101000|11
Network ID : 200.1.1.160/30
IP 범위 : 200.1.1.160 ~ 200.1.1.163
이미 잘라진 네트워크를 필요한 만큼 다시 자르게 되면 서브넷 마스크의 길이가 동일하지 않고 달라지게 된다.
그래서 이를 '다양한 길이의 서브넷 마스크' 라는 뜻의 VLSM이라고 부른다.
'[Network] Beginner' 카테고리의 다른 글
ARP (주소결정프로토콜) (5) | 2014.08.07 |
---|---|
Wildcard-Mask (와일드카드 마스크) (6) | 2014.07.26 |
Subnet-Mask (서브넷 마스크) (0) | 2014.07.21 |
3계층 보충-IPv4 (2) | 2014.07.21 |
3계층(Network) 세부설명 (0) | 2014.07.20 |