Variable Length Subnet Mask
말 그대로 서브넷마다 서브넷 마스크의 길이를 자유자재로 사용하는 것을 의미
이를테면 어느 회사가 ISP로부터 200.1.1.0 네트워크 주소를 받았다.
이 회사는 네트워크를 다음과 같이 구분해서 이 주소를 효율적으로 사용하고자 한다.
1번 네트워크 : 60개의 Host
2번 네트워크 : 60개의 Host
3번 네트워크 : 30개의 Host
4번 네트워크 : 30개의 Host
5번 네트워크 : 10개의 Host
즉, 190개의 Host에게 IP주소를 설정하려고 한다.
이를 CIDR Subnetting을 이용해서 IP주소를 효율적으로 사용해보면
6개의 네트워크를 구분해야 하므로 8bit의 Host ID중 3bit를 Network ID로 빌려써야 한다.
그러면 네트워크 당 2^5=32개의 Host만 지원할 수 있게 된다.
하지만 이것은 1번, 2번 네트워크에는 사용할 수 없다.
그렇다고 60개의 Host를 위해 8bit의 Host ID중 6bit만 Host ID로 사용하면
Network ID부분은 2bit만 빌려쓸 수 있으므로 4개의 네트워크 밖에 지원하지 못한다.
이건 5개의 네트워크를 지원하지 못하므로 이 방법도 쓸 수 없다.
이렇게 CIDR을 이용해서 해결을 못하면 다음 방법 밖에 없음
· 네트워크 수를 줄인다.
· ISP로부터 네트워크 주소를 더 받아온다
· Private 네트워크로 변경한다.
하지만 위와 같은 방법을 하지 않아도 이 문제를 해결할 수 있는 것이 VLSM이다.
기존 CIDR Subnetting은 IP주소 전체의 Network ID를 계산해서 안된 것이다.
VLSM을 이용하면 네트워크마다 서브넷 마스크를 다르게 할 수 있다.
VLSM을 이용한 방법은 다음과 같이 계산한다.
먼저 Host가 가장 많이 필요한 서브넷부터 계산
1, 2번 네트워크 : 8bit의 Host ID중 6개의 bit만 Host ID로 사용하면 되므로
서브넷 마스크는 255.255.255.192를 사용하면 된다.
이렇게 해서 구한 서브넷 중 다음 서브넷을 각각 1, 2번 네트워크에 설정한다.
200.1.1.0 ~ 200.1.1.63
200.1.1.64 ~ 200.1.1.127
3, 4번 네트워크 : 8bit의 Host ID중 5개의 bit만 Host ID로 사용하면 되므로
서브넷 마스크는 255.255.255.224를 사용하면 된다.
1, 2번 네트워크가 200.1.1.0 ~ 200.1.1.127까지 사용하고 있으므로
3, 4번 네트워크는 128보다 커야 한다.
이렇게 해서 구한 서브넷 중 다음 서브넷을 각각 3, 4번 네트워크에 설정한다.
200.1.1.128 ~ 200.1.1.159
200.1.1.160 ~ 200.1.1.191
5번 네트워크 : 8bit의 Host ID중 4개의 bit만 Host ID로 사용하면 되므로
서브넷 마스크는 255.255.255.240를 사용하면 된다.
1, 2, 3, 4번 네트워크가 200.1.1.0 ~ 200.1.1.191까지 사용하고 있으므로
5번 네트워크는 192보다 커야 한다.
이렇게 해서 구한 서브넷 중 다음 서브넷을 각각 5번 네트워크에 설정한다.
200.1.1.192 ~ 200.1.1.207
정리하자면 다음과 같다.
1번 네트워크 : 200.1.1.0/26
2번 네트워크 : 200.1.1.64/26
3번 네트워크 : 200.1.1.128/27
4번 네트워크 : 200.1.1.160/27
5번 네트워크 : 200.1.1.192/28
위에서 보다시피 CIDR과 달리 서브넷마다 서브넷 마스크가 다르다.
따라서 보다 상세히 설정할 수 있어서 네트워크마다 Host의 IP주소 낭비가 적다
또한 200.1.1.208 ~ 200.1.1.255의 여유분이 있기 때문에 추후의 네트워크가 추가 되어도
이 주소를 사용하여 할당할 수 있다.
출처 [fz007]