본문 바로가기
Computer Science/computer science

[network] IPv4의 주소 체계와 서브넷팅

by yeong-yi 2025. 5. 28.
Contents

IP의 주소 체계와 서브넷팅의 이해는 굉장히 중요합니다. 실제 IP를 낭비하지 않고 적절히 사용할 수 있는 체계에 대해 학습합니다.

* IPv4 주소 체계

옥텟(Octet): ‘.’으로 구분되는 각 부분. 8비트 숫자

 

각 옥텟에 올 수 있는 값의 종류: 2^8=256

범위: 0~255

=> 0.0.0.0 ~ 255.255.255.255

IP주소는 A,B,C,D,E5개 클래스로 구분.


* class 구분

클래스IP 주소의 첫 번째 옥텟의 4개의 MSB(Most Significant Bit, 최상위 비트) 따라 구분

 

IP주소의 첫 번째 비트 b10이면 A class => 이런 경우 8비트가 네트워크 부가 되고 나머지는 호스트 부가 된다.

b11이면 B~E class => b20이면 B, b21이면 C (b1 = 첫 번째 비트)

b21이면 C~E class => b30이면 C, b31이면 D

b31이면 D~E class => b40이면 D, b41이면 E

203.237.10.nnn의 첫 옥텟을 2진수 표현 “1100 1011”이고 C class에 해당하게 된다.

b1 = 1 , b2 = 1, b3 = 0


* C 클래스의 가용 IP 주소 계산

  • 가용 IP 주소란 실질적으로 사용할 수 있는 IP를 이야기 한다.

32비트 중 MSB 3개가 “110”으로 고정되므로

가장 작은 값은 나머지가 모두 0인 값인 “1100 0000 0000 0000 0000 0000 0000 0000”이므로 192.0.0.0이 된다.

 

가장 큰 값은 나머지가 모두 1인 값인 “1101 1111 1111 1111 1111 1111 1111 1111”이므로 223.255.255.255가 된다.

 

이 중 4번째 옥텟만 호스트ID 이므로 하나의 네트워크 대역에에서는 256개의 IP 주소를 사용할 수 있다. 

 

중요한 건 256개의 IP 주소를 모두 사용할 수 있는 것이 아닌 호스트 IP가 0인 경우는 네트워크 ID와 동일하므로 사용할 수 없고 이는 네트워크 주소로 인식하게 된다.

또한 호스트 IP가 모두 1인 경우 역시 브로드캐스트 주소로 인식하게 되므로 이 경우도 사용할 수 없다.

 

따라서 실제 사용할 수 있는 가용 IP 주소는 (256-2)개인 254개가 된다.


* 사설 IP 주소

사설 IP 주소(private IP): 공유기에 연결된 네트워크 안에서만 사용되는 IP 주소입니다.

 

사설 IP 주소를 사용하는 이유?

: IP주소의 고갈. 여러 곳에서 중복하여 사용함으로써 모두 다 공인 IP주소를 사용할 때 발생하는 IP부족 현상 완화

-> 공유기가 NAT 기능을 통해 주소 변환 해주기에 인터넷으로 통신이 가능

-> 그래서 IP주소를 통한 직접적인 접근이 필요한 웹서버 같은 컴퓨터를 공유기에 연결해 사용하려면 포트포워딩 기법이 필요

 

NAT 기능이란?

네트워크 주소 변환(network address translation, 줄여서 NAT)은 컴퓨터 네트워킹에서 쓰이는 용어로서 간단히 말해 내 컴퓨터의 IP를 공유기의 공인 IP변환 시켜 외부세계와 접촉 시키는 것이다.

 

또한 사설 IP는 라우터를 넘어 전달될 수 없다는 특징이 있다.


* 특수 용도의 IP 주소

* 사설IP 주소 -> private 주소는 약속된 범위대가 있다. 이 범위대 내에서 공식적으로 승인 없이 사용할 수 있는 주소이며 라우팅 불가능한 주소로 인터넷상에서는 사용 할 수 없다.

 

A class: 10.0.0.0 ~ 10.255.255.255

B class: 172.16.0.0 ~ 172.16.255.255

C class: 192.168.0.0 ~ 192.168.255.255

 

* 0.0.0.0: 부팅 시 자신의 IP 주소를 모를 경우 사용

* loopback주소: 127.0.0.1~127.255.255.255,패킷 송수신 과정 대한 시스템 내부 시험 주로 사용

* 네트워크 주소: 호스트ID의 비트가 모두 0인 주소 네트워크를 대표하는값 ex) 203.237.10.0

* 브로드캐스트 주소: 호스트ID의 비트가 모두 1인 주소 ex) 203.237.10.255


* 서브넷 마스크의 구조와 기능

IP주소는 전 세계에서 유일하게 식별되는 컴퓨터의 이름 같은 것이다.

 

203.237.10.100/24 = > 32비트 중 앞 24비트 network 부 나머지 8비트 host 부 ---> [슬래시(/) 숫자]형태 속 숫자는 앞에서부터 네트워크 부를 뜻한다. : CIDR 표기

 

서브넷 마스크IP주소로부터 성에 해당하는 네트워크 주소를 알아내기 위한 정보

 

CIDR: ex) 203.237.10.2/24 -> 사람이 쉽게 네트워크부(ID)를 구분하기 위해

서브넷 마스크: 255.255.255.0 -> 컴퓨터가 네트워크 주소를 쉽게 추출하기 위해서 사용

 

ex) 203.237.10.100

사람이 IP 주소를 이진수로 바꾸고 MSB 4비트만 눈으로 확인하면 클래스를 알 수 있으므로 쉽게 네트워크 주소를 알 수 있는데 왜 복잡하게 서브넷 마스크를 이용할까?

 

-> 컴퓨터에는 이미 IP 주소가 이진수로 저장되어 있기 때문에 두 변수를 단순히 비트별 AND 연산만 하면 되므로 훨씬 간단하다.

노드 ABIP주소가 같은 대역대인지 확인하는 작업 => (IP(A) & SM(A)) == (IP(B) & SM(B)) 검사

클래스가 같아도 네트워크 ID가 다를 수 있기 때문에 서브넷팅이 필요하다.

 

서브넷팅

: 서브넷 마스크를 이용하여 디폴트로 정해진 서브넷을 원하는 대로 나누는 것

  • 네트워크 ID가 한 비트씩 늘어날 때마다 서브넷의 개수 2배로 늘어나고 서브넷의 크기는 1/2로 줄어든다.
  • C클래스를 기준으로 서브넷의 개수와 크기를 정리하면 모두 2의 멱승 값만 가진다.
  • 그러므로 사실상 네트워크 길이가 31인 경우는 사용할 수 X

* 203.237.10.0/25 의 의미

C class 주소디폴트 호스트 부인 4번째 옥텟만 고려하면 된다.

1~24 비트는 1~3번의 옥텟에 해당되므로, 4번 옥텟에는 1개의 비트만 서브넷 마스크에 포함

1비트로 표현될 수 있는 값은 2개 이므로 2개의 서브넷을 만들게 된다.

호스트ID7비트 이므로 2^7=128의 주소를 가질 수 있고 가용 IP주소는 (128-2) = 126개가 된다.