인터넷 초기 IP 할당은 클래스 단위로 이루어졌다.
A 클래스 xxx.___.___.___ 16M 개 IP 사용 가능 (약 100만개, 16M)
B 클래스 xxx.xxx.___.___ 64K 개 IP 사용 가능 (약 6만 5천개)
C 클래스 xxx.xxx.xxx.___ 256개 IP 사용 가능
IP 개수는 4G 개로 한정되어있는 상황이고
각 국가나 ISP가 가지고 있는 IP 개수는 더욱 부족하다.
xxx.xxx.0.0 ~ xxx.xxx.255.255 까지 B클래스 IP를 확보한 소규모 ISP가 있다고 하자.
인원 30명 회사 A 와 인원 70명 회사 B 에게 IP를 나누어줘야 한다.
가장 쉬운 방법은
A 회사에게 xxx.xxx.1.0/24 를 주고
B 회사에게 xxx.xxx.2.0/24 를 주는 방법이다.
하지만 이 방법은 IP 낭비가 너무 심하다.
30 + 70 합쳐서 100개도 안되기 때문에 잘하면 C클래스 하나에 넣을 수 있는 방법이 있을 것이고
이것이 바로 VLSM(Variable Length Subnet Masks ) 가변 길이 서브넷 마스크를 사용하는 것이다.
라우터를 3개 준비한다.
일단 R(m) 서브넷 마스크 xxx.xxx.1.0/24 로 C 클래스를 설정한다.
A회사는 30개 이므로 가장 가까운 2의 승수인 32(2의 5승)개 IP를 준다.
xxx.xxx.xxx.1.0/(32-5) = xxx.xxx.xxx.1.0/27
xxx.xxx.xxx.1.0/(256-32) = xxx.xxx.xxx.1.0/224
B회사는 70개 이므로 가장 가까운 2의 승수인 128(2의 7승)개를 줘야 한다.
이미 A회사에 32개를 줬으므로 32번째부터 시작한다.
xxx.xxx.xxx.1.32/(32-7) = xxx.xxx.xxx.1.32/25
xxx.xxx.xxx.1.32/(256-128) = xxx.xxx.xxx.1.32/128
만약 새로운 C회사가 12개를 필요로 한다면 16(2의 4승)개를 할당하면 되므로
A+B 회사 합친 32+128 = 160번째부터 시작한다.
xxx.xxx.xxx.1.160/(32-4) = xxx.xxx.xxx.1.160/28
xxx.xxx.xxx.1.160/(256-16) = xxx.xxx.xxx.1.160/240
빡빡하게 사용하고도 아직도 80개의 IP가 남았다 햐햐-_-


python 을 좋아하는 게임 프로그래머