LabHub
배우기 러닝패스 코스

アドレス・サブネット・ゲートウェイ

クラスはなぜ消えたのか

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

한 줄 요약

A·B·C 클래스는 1981년의 주소 배분 방식이고 1993년에 CIDR 로 대체됐다. 지금도 이름이 남아 있는 이유는 사설 대역을 설명할 때 편해서일 뿐, 라우터는 클래스를 보지 않는다.

概念マップ: CIDR 로 대체됐다.・비트 단위로・"192.168 로 시작하면 C 클래스"・/12 는 172.16 부터 172.31 까지

왜 이게 필요했나

초기 인터넷은 주소의 앞 몇 비트로 네트워크 크기를 고정했다.

클래스 첫 옥텟 네트워크 부분 호스트 개수
A 1~126 8비트 약 1,678만
B 128~191 16비트 약 6만 5천
C 192~223 24비트 254

문제는 크기가 셋뿐이라는 것이었다. 호스트 300대가 필요한 조직에 C(254개)는 모자라고 B(65,534개)는 65,000개를 낭비한다. 1990년대 초 이 낭비 때문에 IPv4 주소가 곧 고갈될 것이 확실해졌다.

CIDR(Classless Inter-Domain Routing)은 그 고정 경계를 없앴다. 네트워크 부분의 길이를 비트 단위로 정한다. /23 은 호스트 510개, /26 은 62개다. 필요한 만큼만 준다.

어떻게 동작하나

192.168.1.0/24 는 "앞 24비트가 네트워크, 나머지 8비트가 호스트" 라는 뜻이다.

주소      192.168.1.130  = 11000000.10101000.00000001.10000010
마스크    /24            = 11111111.11111111.11111111.00000000
네트워크                   192.168.1.0
브로드캐스트               192.168.1.255
쓸 수 있는 주소            192.168.1.1 ~ 192.168.1.254   (254개)

호스트 개수는 2^(32-프리픽스) - 2 다. 2를 빼는 이유는 네트워크 주소(전부 0)와 브로드캐스트 주소(전부 1)를 호스트에 줄 수 없기 때문이다.

/31/32 는 예외다. /31 은 라우터끼리 잇는 링크 전용으로 2개를 다 쓰고(RFC 3021), /32 는 주소 하나를 가리킨다.

흔한 착각

"192.168 로 시작하면 C 클래스" — 사설 대역과 클래스는 다른 이야기다. RFC 1918 이 정한 사설 대역은 셋이다.

대역 CIDR 크기
10.0.0.0 ~ 10.255.255.255 10.0.0.0/8 1,678만
172.16.0.0 ~ 172.31.255.255 172.16.0.0/12 104만
192.168.0.0 ~ 192.168.255.255 192.168.0.0/16 65,536

172.16.0.0/12172.16.0.0/16 으로 착각해 172.20.x.x 를 공인 주소로 오해하는 실수가 흔하다. /12 는 172.16 부터 172.31 까지다.

서브넷을 손으로 계산하기

프리픽스 길이만 알면 나머지는 산수입니다.

/24 → 호스트 비트 8개 → 2^8 = 256 주소 → 쓸 수 있는 것 254
/25 → 7개 → 128 → 126
/26 → 6개 →  64 →  62
/27 → 5개 →  32 →  30
/28 → 4개 →  16 →  14
/30 → 2개 →   4 →   2   (라우터 사이 링크에 쓴다)
/31 → 1개 →   2 →   2   (RFC 3021 — 점대점 링크)

전체에서 2를 빼는 이유 는 첫 주소가 네트워크 주소, 마지막이 브로드캐스트 주소이기 때문입니다. 쿠버네티스나 클라우드에서는 여기에 몇 개를 더 뺍니다 — AWS 는 서브넷마다 5개를 예약합니다(네트워크, 라우터, DNS, 예비, 브로드캐스트).

경계를 찾는 법은 이렇습니다.

10.0.5.130/26 이 속한 대역은?
  /26 → 블록 크기 64
  0, 64, 128, 192 중 130 이 들어가는 것은 128
  → 10.0.5.128 ~ 10.0.5.191, 쓸 수 있는 것은 .129 ~ .190

대역을 겹치지 않게 설계하기

이것이 실무에서 가장 비싼 실수입니다. 한 번 겹치면 나중에 못 잇습니다.

❌ 흔한 사고
   사무실 VPN   192.168.0.0/24
   클라우드 VPC 192.168.0.0/24    ← 같은 대역. VPN 으로 못 잇는다
   쿠버네티스 파드 10.244.0.0/16
   도커 기본 브리지 172.17.0.0/16  ← 사내망이 172.17 이면 컨테이너가 못 나간다

✅ 처음에 표를 만든다
   본사        10.10.0.0/16
   지사        10.20.0.0/16
   클라우드 A   10.100.0.0/16
   클라우드 B   10.200.0.0/16
   쿠버네티스 파드 10.244.0.0/16, 서비스 10.96.0.0/12

사설 대역은 세 개뿐입니다(RFC 1918). 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. 10 대역이 가장 넓으니 조직이 크면 여기서 나눕니다.

도커의 기본 브리지가 172.17.0.0/16 이라는 것을 기억해 두면 좋습니다. 사내망이 그 대역을 쓰면 컨테이너에서 사내 서버로 못 갑니다. daemon.jsondefault-address-pools 로 바꿉니다.

CIDR 로 라우팅이 접힌다

클래스가 사라진 실질적 이유가 이것입니다. 인접한 대역을 하나로 합쳐(supernetting) 라우팅 테이블을 줄입니다.

10.1.0.0/24, 10.1.1.0/24, 10.1.2.0/24, 10.1.3.0/24
  → 10.1.0.0/22 하나로 광고할 수 있다

그래서 대역을 나눌 때 연속으로 배치 하는 것이 나중에 이득입니다. 무작위로 흩어 놓으면 합칠 수 없어 경로가 그만큼 늘어납니다.

실무에서 진짜 중요한 것

쿠버네티스는 이 계산 위에 서 있다. 파드 CIDR, 서비스 CIDR, 노드 CIDR 세 개가 겹치면 클러스터가 이상하게 동작하는데, 원인을 못 찾고 며칠을 태우기 쉽다. 겹치는지 확인하는 것은 결국 이 비트 계산이다.

또 하나 — 100.64.0.0/10 은 사설도 공인도 아닌 CGNAT 대역(RFC 6598)이다. 통신사가 가입자에게 나눠 주는 주소라, 이 대역을 사내망에 쓰면 통신사 망과 충돌한다. 실습 환경의 네트워크 정책이 이 대역을 따로 막는 것도 그래서다.