[Daily morning study] IP 주소 체계와 서브넷 마스크 (CIDR 표기법)

#daily morning study

Image


IP 주소란

IP(Internet Protocol) 주소는 네트워크 상에서 장치를 식별하는 논리적 주소다. 현재 IPv4와 IPv6 두 가지 버전이 공존한다.

IPv4

32비트로 구성되며, 8비트씩 4개의 옥텟(octet)으로 나눠 10진수로 표기한다.

11000000.10101000.00000001.00000001
         ↓
       192.168.1.1

표현 가능한 주소 수는 2³² = 약 43억 개다. 인터넷이 확장되면서 고갈 문제가 생겼고, 이를 해결하기 위해 NAT와 CIDR 같은 기법이 등장했다.

IPv6

128비트로 구성되며, 16비트씩 8개 그룹을 콜론으로 구분해 16진수로 표기한다.

2001:0db8:85a3:0000:0000:8a2e:0370:7334

표현 가능한 주소 수는 2¹²⁸ = 약 3.4 × 10³⁸개로 사실상 무한하다.


IP 주소 클래스 (Classful 방식)

초기 인터넷에서는 IP 주소를 클래스 단위로 나눴다.

클래스첫 번째 옥텟 범위기본 서브넷 마스크용도
A0 ~ 127255.0.0.0 (/8)대형 네트워크
B128 ~ 191255.255.0.0 (/16)중형 네트워크
C192 ~ 223255.255.255.0 (/24)소형 네트워크
D224 ~ 239-멀티캐스트
E240 ~ 255-예약 (연구용)

클래스 방식의 문제는 주소 낭비가 심하다는 점이다. 예를 들어 300개의 호스트가 필요한 경우 클래스 B를 할당받으면 65,534개 주소 중 대부분을 쓰지 않게 된다.


서브넷 마스크

서브넷 마스크(subnet mask)는 IP 주소에서 네트워크 부분과 호스트 부분을 구분하는 32비트 값이다.

IP 주소:       192.168.1.100   → 11000000.10101000.00000001.01100100
서브넷 마스크:  255.255.255.0   → 11111111.11111111.11111111.00000000

AND 연산 결과 (네트워크 주소):
                192.168.1.0    → 11000000.10101000.00000001.00000000

1인 비트가 네트워크 주소 부분, 0인 비트가 호스트 주소 부분이다.

네트워크 주소와 브로드캐스트 주소

서브넷 내에서 첫 번째 주소는 네트워크 주소, 마지막 주소는 브로드캐스트 주소로 예약되어 있어 실제 호스트에는 할당할 수 없다.

예) 192.168.1.0/24 서브넷

구분주소
네트워크 주소192.168.1.0
사용 가능한 호스트192.168.1.1 ~ 192.168.1.254
브로드캐스트 주소192.168.1.255
사용 가능한 호스트 수254개 (2⁸ - 2)

CIDR (Classless Inter-Domain Routing)

CIDR은 클래스 방식의 비효율을 해결하기 위해 1993년에 도입된 방식이다. IP 주소 뒤에 슬래시(/)와 프리픽스 길이(prefix length)를 붙여 표기한다.

192.168.1.0/24
           ↑
           네트워크 부분의 비트 수 (프리픽스 길이)

프리픽스 길이가 24라는 의미는 상위 24비트가 네트워크 주소, 나머지 8비트가 호스트 주소라는 뜻이다.

프리픽스 길이별 호스트 수 비교

CIDR 표기서브넷 마스크호스트 수용도 예시
/8255.0.0.016,777,214개대형 ISP
/16255.255.0.065,534개대기업 내부망
/24255.255.255.0254개일반 LAN
/28255.255.255.24014개소규모 서브넷
/30255.255.255.2522개포인트-투-포인트 링크
/32255.255.255.2551개단일 호스트 지정

서브네팅 (Subnetting)

큰 네트워크를 여러 작은 서브넷으로 나누는 작업이다.

예시: 192.168.1.0/24를 4개의 서브넷으로 분할

/24에서 2비트를 추가로 가져오면 /26이 된다. 2² = 4개의 서브넷 생성 가능.

서브넷네트워크 주소사용 가능 호스트브로드캐스트
1번192.168.1.0/26.1 ~ .62192.168.1.63
2번192.168.1.64/26.65 ~ .126192.168.1.127
3번192.168.1.128/26.129 ~ .190192.168.1.191
4번192.168.1.192/26.193 ~ .254192.168.1.255

각 서브넷당 호스트 수: 2⁶ - 2 = 62개


슈퍼네팅 (Supernetting) / 경로 집계

반대로 여러 작은 네트워크를 하나의 큰 네트워크로 합치는 것을 슈퍼네팅이라 한다. 라우팅 테이블 크기를 줄이는 데 활용된다.

192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
      ↓ 집계
192.168.0.0/22

/22로 집계하면 4개의 라우팅 항목을 1개로 줄일 수 있다.


사설 IP 주소 (Private IP)

인터넷에서 직접 라우팅되지 않는 주소 범위다. 조직 내부 네트워크에서 자유롭게 사용할 수 있다.

클래스사설 주소 범위CIDR
A10.0.0.0 ~ 10.255.255.25510.0.0.0/8
B172.16.0.0 ~ 172.31.255.255172.16.0.0/12
C192.168.0.0 ~ 192.168.255.255192.168.0.0/16

인터넷과 통신하려면 NAT(Network Address Translation)를 통해 공인 IP로 변환해야 한다.


특수 목적 IP 주소

주소용도
0.0.0.0/0기본 경로 (모든 목적지)
127.0.0.1루프백 (loopback), localhost
169.254.0.0/16APIPA (DHCP 실패 시 자동 할당)
255.255.255.255제한 브로드캐스트
224.0.0.0/4멀티캐스트

실용적인 계산 방법

서브넷 관련 계산에서 자주 쓰는 공식 정리:

  • 호스트 수 = 2^(32 - 프리픽스 길이) - 2
  • 서브넷 수 = 2^(추가로 빌린 비트 수)
  • 블록 크기 = 256 - 서브넷 마스크의 변화하는 옥텟 값

예) /26 → 서브넷 마스크 넷째 옥텟 = 192 → 블록 크기 = 256 - 192 = 64

서브넷은 0, 64, 128, 192로 시작한다.


AWS VPC에서의 CIDR 활용

클라우드 환경에서도 CIDR은 핵심 개념이다.

VPC:     10.0.0.0/16   (65,534개 IP)
  ├── Public Subnet:  10.0.1.0/24  (254개 IP)
  ├── Private Subnet: 10.0.2.0/24  (254개 IP)
  └── DB Subnet:      10.0.3.0/24  (254개 IP)

AWS는 각 서브넷에서 5개의 IP를 예약한다 (첫 4개 + 마지막 1개). /24 서브넷의 실제 사용 가능 IP는 251개다.


정리

  • IP 주소는 네트워크에서 장치를 식별하는 논리 주소다 (IPv4: 32비트, IPv6: 128비트)
  • 서브넷 마스크는 IP 주소에서 네트워크/호스트 영역을 구분한다
  • CIDR은 클래스 방식의 낭비를 해결한 가변 길이 서브넷 표기법이다
  • 서브네팅으로 네트워크를 분할하고, 슈퍼네팅으로 경로를 집계한다
  • 사설 IP 범위(10.x.x.x, 172.16~31.x.x, 192.168.x.x)는 내부망에서 자유롭게 사용 가능하다