Computer Network

서브넷 (Subnet)

Sara.H 2022. 2. 4. 22:46
Disclaimer : 동서대학교 임효택 교수님 강의 자료입니다. 본 강의는 링크 에서 수강하실수 있습니다.

 

원래 IP주소는 네트워크 ID와 호스트 ID로 단지 두 단계 계층만을 허용한다. 따라서 인터넷을 구성하고 있는 네트워크의 수가 상대적으로 적을 때는 충분하나, 현재 인터넷은 수 천, 수 만의 네트워크를 포함하며 여기에 수 백 만의 호스트가 연결되어 있다. TCP/IP 주소 방식을 유지하며 엄청나게 많은 네트워크를 수용하기 위해 서브넷의 개념이 고안되었다. 서브넷을 이용하는 경우 호스트 ID 부분을 서브넷 ID 와 호스트 ID 로 나누어 생각한다.  IP주소의 호스트 ID 중 몇 비트는 서브넷 ID로서 지정할 수 있다. 클래스 B의 경우 호스트 아이디가 16비트이므로, 이 16비트 중 일부를 서브넷에 할당한다.

 

Subnet ID

서브넷 아이디 6자리를 추가하면 2^6 = 64 에서 모두가 0인 경우와, 모두 1인 경우 두 가지를 빼면 총 62개의 분리된 네트워크를 만들 수 있다. 62개의 분리된 네트워크 각각은 같은 클래스 B 네트워크 아이디를 사용하지만, 다른 서브넷 아이디 값을 사용한다.

 

서브넷 Mask

그렇다면 몇 비트 까지가 서브넷 아이디로 사용되는지 알아야하는데 이는 서브넷 마스크를 통해서 알 수 있다. 즉 아이피 주소 중에서 몇 비트가 네트워크 아이디를 나타내는지, 몇 비트가 호스트 아이디를 나타내는 지를 알 수 있도록 해주는 것이 Subnet Mask이다. 서브넷 마스크는 Network ID 와 Subnet ID에 해당하는 각 비트 위치에 1,  Host ID의 각 비트 위치에 0을 나타내는 32비트 자료구조이다. 위 자료에서 6비트 서브넷 아이디를 가진 인터넷 주소는 아래와 같은 서브넷 마스크로 표현할 수 있다.

 

Subnet Mask 를 활용해 표현할 수 있는 인터넷 주소

클래스 B의 서브넷 마스크 값은 255.255.0.0 으로, 왼쪽 2바이트는 네트워크 아이디, 오른쪽 2바이트는 호스트 아이디로 사용된다. 따라서 서브넷 마스크 값을 보면 몇 비트를 서브넷 아이디로 사용했는지 유추할 수 있다. 서브넷 마스크의 이진표현에서 네트워크 아이디로 사용되는 16비트를 제외하고 1비트로 표시된 나머지 부분이 Subnet ID 이다.

 

보통 네트워크를 설정할 때 서브넷을 사용할지 말건지를 결정하게 된다. 서브넷을 사용하지 않는 등급ABC에 대한 서브넷 마스크는 다음과 같다:

  • 클래스 A : 255.0.0.0
  • 클래스 B : 255.255.0.0
  • 클래스 C : 255.255.255.0

IP주소 참고:

  • Class A addresses have their first octet in the range 1 to 126 (binary address begins with 0).
  • Class B addresses have their first octet in the range 128 to 191 (binary address begins with 10).
  • Class C addresses have their first octet in the range 192 to 223 (binary address begins with 110).

서브넷 아이디의 선택

서브넷 아이디의 필드의 길이는 구성하려는 네트워크의 수와 네트워크 각각에 포함하고자 하는 호스트 수에 근거하여 선택한다. 예를 들어 6비트 서브넷 아이디를 가진 클래스 B 주소는 동일한 네트워크 아이디를 사용하여 총 62개의 다른 서브넷이 사용 가능하다. 총 네트워크 아이디 16비트 + 서브넷 아이디 6비트 + 호스트 아이디 10비트 이므로 네트워크당 1022(2^10 - 2)개 까지의 호스트를 할당할 수 있다.

서브넷 마스크 사용 예

클래스 B 네트워크에 3bit 서브넷 마스크를 적용한다면 총 몇 개의 호스트를 할당할 수 있을까?

네트워크 아이디가 135.195.0.0인 주소의 서브넷 마스크는 본래 255.255.0.0이나, 3비트의 서브넷 마스크를 사용하여 255.255.224.0 으로 변경할 수 있다.

연습 문제

인터넷에 연결되어 있는 어떤 컴퓨터 A의 IP주소는 130.97.16.132 이고 서브넷 마스크 값은 255.255.255.192 일 때 아래의 질문에 답하시오.

  • A의 호스트 아이디 값은 ?
  • 서브넷의 총 개수는 ?
  • 하나의 서브넷에 존재하는 호스트의 최대 개수는 ?

IP주소 130.97.16.132를 이진수로 표현하면 다음과 같다 :
130 = 10000010
97 = 01100001
16 = 00010000
132 = 10000100

10000010.01100001.00010000.10000100
10으로 네트워크 아이디가 시작하므로 클래스 B 네트워크임을 알 수 있다.

Subnet Mask 를 이진수로 표현하면

11111111.11111111.11111111.11(26개)000000(6개)

이를 통해 총 26bit 까지가 네트워크 아이디임을 알 수 있다. 
나머지 6bit가 호스트 아이디이다. 따라서 호스트 아이디 값은 000100 (=4) 이다.


 

서브넷의 총 개수는 서브넷 아이디의 비트수를 보면 알 수 있다. 

255.255.0.0 을 서브넷 마스크로 갖는 클래스 B 네트워크 주소이므로

앞의 두 바이트와 호스트 아이디 부분을 제외한 나머지 비트수, 즉,

11111111.11111111.11111111.11(10개)000000

밑줄 친 부분 10bit 를 활용해 서브넷을 만들 수 있다. 
따라서 서브넷의 총 개수는 2^10 - 2 = 1022 이다. 

하나의 서브넷에 존재하는 호스트의 최대 개수는 호스트 아이디의 자릿수가 6이므로 2^6 - 2 = 62개 이다.