IP는 OSI 기준 3계층의 식별 주소이다.

IP는 네트워크와 호스트 주소로 구성된다.

IP는 IPv4와 IPv6가 있는데 IPv4는 32 비트 체계로 구성된다.

오늘은 IPv4와 서브네팅에 대해 정리하려 한다.

 

IP는 32비트 체계를 갖는데, 2진수 기준으로 자릿수가 8개씩 4개 영역으로 나뉜다.

하나의 영역을 옥텟이라 하는데 이런 형식이다.

▶11111111. 11111111. 11111111.11111111

이걸 십진수로 표현하면, 255.255.255.255이다.

달리 표현하면, 하나의 옥텟이 가질 수 있는 최대 값은 255이다.

 

IP는 네트워크와 호스트 주소로 나뉘는데 나뉘는 지점이 고정되어 있지 않다.

즉 어디서부터 어디가 네트워크 주소이고 어디서부터 어디가 호스트주소인지가 고정되어 있지 않다.

단, 나누는 규칙은 있다.

 

클래스 기반 네트워크(Classful)에선 첫번째 옥텟의 숫자를 기준으로 네트워크 주소와 호스트 주소를 구분한다.

클래스는 A~E까지 있는데, 네트워크를 구성할 때 가용 가능한 클래스는 A~C까지이다.

첫번째 옥텟을 기준으로 A, B, C 나뉘는 기준은 아래와 같다.

1~127 ▶ A 클래스 네트워크 주소: 첫번째 옥텟

128~191 B 클래스 네트워크 주소: 첫번째 옥텟, 두번째 옥텟

192~223 C 클래스 네트워크 주소: 첫번째 옥텟, 두번째 옥텟, 세번째 옥텟

 

근데 앞서 얘기했듯 하나의 옥텟이 가질 수 있는 값은 제한되어 있다.

요즘 시대에 턱없이 부족할 만큼 제한되어 있다는 게 문제.

그래서 나온 게 서브네팅이다.

 

IP는 왜 부족할까? 

일단 32 비트 체계라는 것에서 태생적으로 다룰 수 있는 IP 개수가 적다는 것도 있다.

하지만 클래스라는 게 안그래도 부족한 걸 더 부족하게 만든다.

예를 들어 보자.

A 클래스는 네트워크 주소가 첫번째 옥텟 값이다. 나머지는 호스트 주소이다.

즉, 해당 네트워크는 호스트는 약 2^24만큼 가질 수 있다

(브로드캐스트 주소랑 네트워크 대표 주소는 가용 가능한 주소가 아니니깐 뺴야 맞기에 "약"이라고 표현함)

근데 이거 다 쓰나?

그리고 A클래스일 때는 약 2^24개 호스트를 가질 수 있지만 B클래스일 때는 2^16개 호스트 가질 수 있다.

그럼 2^17개 호스트가 필요한 경우? 무조건 A클래스를 써야 한다. 그럼 남겨지는 호스트가 너무 많다..

다른 말로, 낭비되는 게 너무 많다.

그래서 나온 게 클래스리스 네트워크(Classless)이다.

클래스가 없는 네트워크라고 할 수 있다.

 

그럼 뭘로 네트워크와 호스트를 구분하나? 바로 서브넷 마스크이다.

그래서 도입된 게 서브넷 마스크 개념이다. 네트워크주소와 호스트주소의 구분자가 바로 서브넷 마스크인 것이다.

서브넷 마스크에선 이진수 기준 네트워크 주소인 부분이 1, 호스트 주소인 부분이 0이다.

▶ 11111111.11111111.11111000.00000000

 

그럼 우리에게 중요한 건?

네트워크를 설계할 때 이 개념을 어떻게 적용하나?

선행해야할 작업은 네트워크당 필요한 IP 개수를 정의하는 것이다. 그러고나서 네트워크당 IP 범위를 정의하는 것이다.

 

IP와 서브넷 마스크로 서브네팅된 IP를 이해하는 방법이다.

1. 내 IP를 2진수로 표현한다.

2. 서브넷 마스크를 2진수로 표현한다.

3. 1번과 2번을 AND 연산을 진행한다. ▶ 네트워크 대표 주소 발견

4. 네트워크 대표 주소에서 네트워크 주소 부분을 제외한 나머지만 1로 변경한다(2진수 기준) ▶ 브로드캐스트 주소 발견

5. 유효 IP 범위 파악한다 

5.1 네트워크 대표 주소에서 1 더한 값 ▶ 가장 작은 유효 IP

5.2 브로드캐스트 주소에서 1 뺀 값 ▶ 가장 큰 유효 IP

6. 십진수로 변환하면 끄읕

 

서브네팅된 주소에선 첫번째 옥텟의 숫자로 네트워크 주소 범위를 알 수 없다. 

다른 방법이 필요한데 그게 바로 CIDR이다.

예를 들어 12.32.99.0/24 식으로 사용되는데,

"/24"이 정보가 네트워크주소 범위 정보이다. 

IPv4는 32비트 체계이므로, 이진수로 표현하면 32자릿수로 표현할 수 있다.

"/24"라면 왼쪽부터 24개가 네트워크 주소라는 의미이다.

▶ 12.32.99.0/24의 네트워크 주소▶ 00001100.00100000.01100011.00000000

 

서브네팅을 이해하는 건 필수이다.

연습문제로 이해도를 점검해보자

 

서브넷팅 연습문제1

1. 나는 7개의 네트워크가 필요한 상황이다 205.81.10.0/24 네트워크를 서브넷팅 하시오. (1) 서브넷 마스크는? (2) 서브넷의 개수는? (3) 가용 IP의 개수 (4) 마지막 서브넷의 대표주소는? (5) 첫번째 서브

jdlee-free.tistory.com

 

개념 출처

 

IT 엔지니어를 위한 네트워크 입문 | 고재성 - 교보문고

IT 엔지니어를 위한 네트워크 입문 | 클라우드/데브옵스 시대에 알아야 할 인프라 지식 서버실이 있고, 서버 관리자가 따로 있었던 시대를 지나 클라우드 서비스가 보편화되었다. 클라우드 서비

product.kyobobook.co.kr


※안내 ※

제가 이해한 대로 정리한 것이라 틀린 부분이 있을 수 있습니다.

아는 것과 다른 게 있다면 언제든 피드백 부탁드리며,

위 내용을 잘 모르는 분들이시라면 다른 글과 함께 크로스체크하며 학습하시길 바랍니다.

+ Recent posts