본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Developer_Study/정보처리기사

[정보처리기사] 서브넷 1

by 케리's 2023. 2. 28.

01. 서브네팅 (Subneting)

1. 서브네팅이란?

대규모 네트워크를 서브넷이라는 작은 하위 네트워크로 나누는 과정.

이를 통해 IP 주소를 보다 효율적으로 사용하고 네트워크 구성을 개선할 수 있다.

 

2. Class

 IP 주소를 효율적으로 관리하기위해 특정 범위로 나누어 놓은것

Class 설명
A Class (대규모 네트워크 지원) 네트워크 주소 범위 1.0.0.0 ~ 126.0.0.0
Host ID 갯수 약 1670만개 - 2,3,4 옥탯을 호스트 id bit 사용
B Class (중 대규모 네트워크 지원) 네트워크 주소 범위 128.0.0.0 ~ 191.255.0.0
Host ID 갯수 약 65536개 - 3,4 옥탯을 사용
C Class (소규모 네트워크 지원) 네트워크 주소 범위 192.0.0.0 ~ 223.255.255.0
Host ID 갯수 256개- 4번째 옥탯만 사용

만약 Host:50개를 지원해야한다면 어떤 클래스를 사용해야할까? 

Class를 따라 IP 주소를 할당하게되면 사용하는 IP주소보다 버려지는 IP주소가 많다

따라서 IP 주소를 효율적으로 나누어 사용하기 위해 '서브네팅'이 생겨난것 이다! 

 

예를들어 Host:50개의 주소를 지원할때 C Class의 256개의 갯수중 반으로 나누고  128|128 더 남는다면 또 64|64|64|64로 4등분을해서 64개의 ID갯수만사용하고 나머지는 다른 네트워크 주소를 할당할 때 사용하는 방식이다. 

 

 

 

3. 서브네팅방법?

192.168.10.0/24

위처럼 C Class 주소가 주어졌을 때 

 

1) 위 주소를 2진수로 나누어 쓴다.

 11000000.10101000.00001010.00000000

 

2) 네트워크와 호스트 ID주소를 구분한다.

여기서 prefix가 24이므로 11000000.10101000.00001010 까지 24가 네트워크 ID, 나머지 00000000  가 호스트ID이다.

 

3) 128|128 로 나누기 위해 서브넷 구분비트를 지정해야한다. 

서브넷 구분비트는 호스트 ID에서 왼쪽부터 지정이 된다.

00000000  에서 맨 왼쪽을 서브넷 구분비트 1비트를 지정 한다고 가정했을 때 들어 갈 수 있는 값은 0과 1 즉 

192.168.10.00000000 

192.168.10.10000000  두 가지로 지정할 수 있다.

 

이 때 IP주소의 범위는 모두 0인경우부터 1인경우까지 구하면 된다.

192.168.10.00000000 ~ 192.168.10.01111111

192.168.10.10000000 ~ 192.168.10.11111111

여기서 서브넷 구분비트가 0 인경우는 0~127 까지 1인경우는 128~255까지로 나눠진다.

4) 나눠진 후 서브넷 구분비트는 이젠 호스트 ID가 아닌 네트워크 ID에 포함이 된다. 

즉 서브넷 구분비트가 있는 25비트까지가 네트워크 ID이고 26부터가 호스트 ID라는 것

그럼 0~128로 되어있는 주소는 네트워크 주소, 127~255까지는 브로드 캐스트 주소라는 것을 알 수 있다.

네트워크 주소와 브로드 캐스트 주소는 실제 장비에 할당할 수 없다! 

따라서 실제 장비에 할당 할 수 있는 주소는 1~126까지, 129부터 254까지이다

 

4. 서브넷 마스크를 구해보자

192.168.10.0 ~ 192.168.10.127 그리고  192.168.10.128 ~ 192.168.10.255 일때 서브넷 마스크는?

 

현재 IP주소는  11000000.10101000.00001010.00000000 25번째 비트를 서브넷 구분 비트로 사용하고 있는데

구분비트는 네트워크 ID에 포함이되고 26번째 비트부터가 호스트 ID에 포함이 되는것을 위에서 확인했다.

서브넷 마스크는 IP주소에서 네트워크 ID는 1로 표기하고 호스트ID는 0으로 표기한다. 

즉 서브넷 마스크 (S/M)은  11111111.11111111.11111111.10000000 

를 십진수로 변환하면 255.255.255.128 프리픽스 /25를 구할 수 있다.

 

 

5. 서브네팅예제

1) 주소 나누기

- 하나의 IP 주소를 원하는 크기만큼 할당

 

 

2) Host ID 범위 구하기_1

- 주어진 네트워크 주소에서 Host ID 범위 구하기

 

192.168.10.0/27 Host ID 범위는?

(1) 모두 이진수로 분할

11000000.10101000.00001010.00000000  

네트워크ID 27bit, 호스트ID 5bit

 

(2) 호스트 ID 가 모두 0~1인것까지 구함

192.168.10.00000000 ~ 192.168.10.00011111

서브넷팅을 하면 호스트ID가 192.168.10.0 ~ 192.168.10.31 까지 인것을 확인할 수 있다.

서브넷 마스크는 255.255.255.224  프리픽스 /27

 

3) Host ID 범위 구하기_2

192.168.10.0/27 Host ID 범위는? 

32bit에서 27을 뺀다 (총 bit수 - 네트워크 id 비트수) = 5

2의 5승 = 32 → 호스트 id, 다음 네트워크 주소이다.

192.168.10.0 ~ 192.168.10.31 

 

 

 

댓글