📌INDEX
- 서브넷 마스크
- Prefix
- 서브넷팅
- 서브넷팅 계산
✔️ 서브넷 마스크
ip 주소체계의 network id와 host id를 서브넷 마스크를 통해 변경하여
네트워크 영역을 분리 또는 합체 시키는 개념으로,
네트워크를 분리하는것을 서브넷팅(subnetting), 합치는 것을 슈퍼넷팅(supernetting) 이라고 한다.
이때, IP주소 첫 비트부터 어디까지가 네트워크 부분인가를 알려주는 역할을 하며,
네트워크 부분은 1, 호스트 부분은 0로 나타낸다.
- 서브넷팅은 서브넷 마스크를 이용하여 host id를 network id로 변환 가능
- 슈퍼넷팅은 서브넷 마스크를 이용하여 network id를 host id로 변환 가능
- 서브넷 마스크의 형태는 ip주소와 같이 32bit의 2진수로 되어있으며, 8bit(1byte)마다 (dot)으로 구분
- ip와 똑같은 000.000.000.000의 모습이다. 형태가 같은 이유는 ip주소와 서브넷 마스크를 and연산하기 위해서이다.
✔️ Prefix
예로, 192.168.0.3/24
=> IP주소 뒤에 /24
, 이는 Prefix(접두어)로 서브넷 마스크의 bit 수를 의미한다.
옥탯의 8bit가 모두 1일 경우 10진수로 255가 되기에 /24
는 왼쪽부터 연속적으로 나열된 1bit의 수가 24개라는 뜻이다.
192.168.0.3/24
- IP주소:
192.168.0.3
-> C 클래스 - 서브넷 마스크:
255.255.255.0
- IP주소:
- 클래스별 서브넷 마스크
- A 클래스:
255.0.0.0
=>0.0.0
~255.255.255
= 16,777,216 - B 클래스:
255.255.0.0
=>0.0
~255.255
= 65,536 - C 클래스:
255.255.255.0
=>0
~255
= 256
- A 클래스:
✔️ 서브넷팅
IP를 효율적으로 낭비 없이 분배하고, Broadcast Domain의 크기를 작게 나눠주는 것으로,
Class별 default Subnet mask를 사용하지 않고, 적당한 크기의 Subnet mask(서브넷 마스크)로
사용자의 상황에 따라 하나의 네트워크를 작게 여러 개로 나눠 사용한다.
즉, ClassfulNetwork를 여러 개의 네트워크로 나누는 것으로, 네트워크가 분리되면,
서로 통신하기 위해서는 라우터를 통해서만 가능하다. 네트워크를 합치는 슈퍼넷팅과는 반대이다.
✔️ 서브넷팅 계산
Host ID를 Network ID로 변환하기 위해 bit씩 가져올 때마다
네트워크 크기는 2배로 증가하고 호스트 수는 2로 나누어지게 된다.
194.139.10.0/24
194.139.10.0
~194.139.10.255
194.139.10.0/25
➡️ 2^(25-24) = 1 ➡️ 265개를 2^1=2개로 나눔 ➡️ 265/2= 128 ➡️ 128씩 올림194.139.10.0
~194.139.10.127
194.139.10.128
~194.139.10.255
194.139.10.0/26
➡️ 2^(26-24) = 2 ➡️ 265개를 2^2=4개로 나눔 ➡️ 265/4= 64 ➡️ 64씩 올림194.139.10.0
~194.139.10.63
194.139.10.64
~194.139.10.127
194.139.10.128
~194.139.10.191
194.139.10.192
~194.139.10.255
각 네트워크의 첫번째 IP와 마지막 IP는 호스트로 할당할 수 없다.
- 가장 첫번째 IP => Network address
- 가장 마지막 IP => Broadcast address
기준 prefix
- prefix별 호스트 수 = 2^(32- 기준 prefix) - 2
- prefix별 네트워크 수 = 2^(prefix- default prefix)
- default prefix
- A 클래스:
/8
- B 클래스:
/16
- C 클래스:
/24
- A 클래스:
- default prefix
📌 계산 예제 실습
1. 172.168.100.5/22 의 네트워크 구간을 적어라.
172.168.100.5/22 는 B클래스 -> 앞의 2개 고정
2^(22-16) = 2^6 = 64
256/64 = 4 -> 4개식 올린다.
답:
172.168.0.0 ~ 172.168.3.255
172.168.4.0 ~ 172.168.7.255
172.168.8.0 ~ 172.168.11.255
...
172.168.100.0 ~ 172.168.103.255 => 속한 구간
2. 170.100.112.0/20 은 호스트 주소로 사용할 수 있는가?
170.100.112.0/20 은 B클래스 -> 앞의 2개 고정
2^(20-16) = 2^4 = 16
256/16 = 16 -> 16개씩 올린다.
네트워크 구간
170.100.0.0 ~ 170.100.15.255
170.100.16.0 ~ 170.100.31.255
170.100.32.0 ~ 170.100.47.255
...
170.100.112.0 ~ 170.100.127.255 -> 이 구간에서 첫번째 주소이다. 즉, 네트워크 주소이다.
답: 네트워크 주소이므로 호스트 주소(마지막 주소)로 사용할 수 없다.
3. 11.168.100.0/8 일 때, 사용자 1000명이 사용할 수 있도록 서브넷팅 하시오.
호스트 주소
/24 2^(32-24)-2 = 265-2
/23 2^(32-23)-2 = 512-2
/22 2^(32-22)-2 = 1024-2 -> 채택
2^(22-16) = 2^6 = 64
265/64 = 4 -> 4개씩 올린다.
11.168.100.0/8는 A클래스 -> 그러나 호스트 주소로 서브넷팅할 때는 기준 prefix의 default prefix로 서브넷팅한다.
1000개의 호스트를 위한 prefix => /22 -> 16과 24의 사이 => default prefix : /16
따라서 앞 2개 고정
네트워크 구간
11.0.0.0 ~ 11.0.3.255
11.0.4.0 ~ 11.0.7.255
...
11.0.252.0 ~ 11.0.255.255
11.1.0.0 ~ 11.1.3.255
11.1.4.0 ~ 11.0.7.255
...
11.1.252.0 ~ 11.1.255.255
11.2.0.0 ~ 11.2.3.255
11.2.4.0 ~ 11.2.7.255
...
11.2.252.0 ~ 11.2.255.255
...
11.168.100.0 ~ 168.103.255
4. 161.111.100.0/19 일 때, 네트워크 주소와 브로드캐스트 주소를 적으시오
161.111.100.0/19 는 B 클래스 -> default prefix : /16
2^(19-16) = 2^3 = 8
256/8 = 32
네트워크 구간
161.111.0.0 ~ 161.111.31.255
161.111.32.0 ~ 161.111.63.255
161.111.64.0 ~ 161.111.95.255
161.111.96.0 ~ 161.111.127.255 => 속하는 구간
네트워크 주소와 브로드캐스트 주소는 각각 네트워크 구간의 첫번째 주소와 마지막 주소이므로,
답:
네트워크 주소: 161.111.96.0
브로드캐스트 주소: 161.111.127.255