IP 주소, 서브넷과 라우팅
IPv4·IPv6 주소, CIDR 서브넷 계산, ARP·DHCP·ICMP·NAT와 최장 접두사 라우팅을 학습한다.
1. IPv4와 CIDR
IPv4 주소는 32비트이며 일반적으로 8비트씩 네 부분으로 나누어 10진수로 표현한다.
192.168.10.70
11000000.10101000.00001010.01000110
CIDR 표기 /n은 앞쪽 n비트가 네트워크 접두사라는 뜻이다.
192.168.10.70/26
└─ 앞 26비트가 네트워크 부분
/26의 서브넷 마스크는 다음과 같다.
11111111.11111111.11111111.11000000
255.255.255.192
2. 서브넷 계산 과정
192.168.10.70/26을 계산해 보자.
1) /26 마스크 = 255.255.255.192
2) 마지막 옥텟의 블록 크기 = 256 - 192 = 64
3) 서브넷 구간 = 0~63, 64~127, 128~191, 192~255
4) 70은 64~127 구간에 속함
네트워크 주소 = 192.168.10.64
브로드캐스트 = 192.168.10.127
사용 가능 호스트 = 192.168.10.65 ~ 192.168.10.126
전통적인 사용 가능 호스트 수 = 2^(32-26) - 2 = 62
비트 AND로도 네트워크 주소를 구할 수 있다.
IP 01000110 (70)
MASK 11000000 (192)
AND 01000000 (64)
특별한 주소와 최신 예외가 있으므로 실제 설계에서는 RFC와 장비 동작을 확인하지만, 객관식 서브넷 문제는 보통 네트워크·브로드캐스트 2개를 제외하는 전통적 계산을 사용한다.
3. 사설주소와 NAT
대표 사설 IPv4 범위는 다음과 같다.
10.0.0.0/8172.16.0.0/12192.168.0.0/16
사설주소는 인터넷에서 직접 라우팅되지 않는다. NAT는 내부 사설주소와 외부 공인주소를 변환하고, PAT는 포트 번호까지 사용해 여러 내부 연결을 하나의 공인주소로 구분한다.
내부 PC 192.168.1.10:51000
│
▼ PAT 변환
외부 표현 주소 예시 203.0.113.10:40001
│
▼
Internet
4. ARP·ICMP·DHCP
ARP
IPv4 환경에서 같은 링크의 목적 IP에 대응하는 MAC 주소를 알아낸다.
ARP Request: "192.168.1.1을 가진 장치의 MAC은?"
└─ 로컬 브로드캐스트
ARP Reply: "내 MAC은 AA:BB:CC:DD:EE:FF"
다른 네트워크로 보낼 때 호스트는 최종 목적지의 MAC이 아니라 기본 게이트웨이의 MAC을 ARP로 찾는다.
ICMP
IP 전달 중 오류와 진단 정보를 제공한다. ping은 ICMP Echo Request/Reply를, traceroute 계열은 TTL 만료 메시지 등을 활용한다.
DHCP
클라이언트에 IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버 등을 자동 제공한다.
Client DHCP Server
│── Discover ─────────────►│
│◄─ Offer ─────────────────│
│── Request ──────────────►│
│◄─ Acknowledge ───────────│
DORA = Discover → Offer → Request → ACK
5. IPv6
IPv6는 128비트 주소를 16진수 그룹으로 표현한다.
2001:0db8:0000:0000:0000:ff00:0042:8329
2001:db8::ff00:42:8329 -- 연속된 0 그룹 축약
- 주소 공간이 매우 크다.
- 유니캐스트, 멀티캐스트, 애니캐스트를 사용한다.
- IPv4와 달리 브로드캐스트 주소를 사용하지 않는다.
- 이웃 탐색은 ARP 대신 ICMPv6 기반 Neighbor Discovery를 사용한다.
6. 라우팅 테이블과 최장 접두사 일치
라우터는 목적 IP와 가장 길게 일치하는 접두사의 경로를 선택한다.
| 목적 네트워크 | 다음 홉 |
|---|---|
10.0.0.0/8 | R1 |
10.20.0.0/16 | R2 |
10.20.30.0/24 | R3 |
0.0.0.0/0 | Internet Gateway |
목적지 10.20.30.77은 세 경로와 모두 일치하지만 /24가 가장 구체적이므로 R3를 선택한다.
목적 IP
↓
라우팅 테이블의 모든 일치 항목 확인
↓
접두사 길이가 가장 긴 경로 선택
↓
다음 홉과 출력 인터페이스 결정
↓
다음 링크의 프레임 생성
- 정적 라우팅: 관리자가 경로를 직접 설정한다.
- 동적 라우팅: 라우팅 프로토콜이 경로 정보를 교환한다.
- 기본 경로: 더 구체적인 경로가 없을 때 사용하는
/0경로이다.
7. VLSM 배정 절차
큰 네트워크부터 배정한다.
192.168.1.0/24, 요구 호스트 100,50,20,10
100 → 192.168.1.0/25 (0~127)
50 → 192.168.1.128/26 (128~191)
20 → 192.168.1.192/27 (192~223)
10 → 192.168.1.224/28 (224~239)
각 프리픽스의 사용 가능 수와 시작 경계를 모두 확인해야 주소가 겹치지 않는다.
8. IPv4 단편화 계산
총 4000B, IP 헤더 20B, MTU 1500B라면 한 조각 payload 최대는 floor((1500-20)/8)×8=1480B다.
| 조각 | payload | total | offset | MF |
|---|---|---|---|---|
| 1 | 1480 | 1500 | 0 | 1 |
| 2 | 1480 | 1500 | 185 | 1 |
| 3 | 1020 | 1040 | 370 | 0 |
offset은 원래 payload 위치를 8바이트 단위로 나타낸다.
9. 경로 요약과 최장 접두사
192.168.0.0/24~192.168.3.0/24는 192.168.0.0/22로 요약된다. 라우팅에서는 metric보다 먼저 가장 긴 프리픽스를 선택하고, metric은 보통 같은 길이 후보를 비교한다.
10. IPv6와 자동 설정
IPv6 /48에서 LAN별 /64를 사용하면 16비트 서브넷 ID로 65,536개 /64를 만들 수 있다. NDP는 ICMPv6로 이웃 탐색·라우터 발견을 수행하고 SLAAC는 라우터 광고를 이용해 주소를 자동 구성한다.
확인 문제
- 192.168.10.70/26의 네트워크·브로드캐스트는?
- /27의 전통적 사용 가능 호스트 수는?
- 192.168.0.0/24~3.0/24 요약은?
- IPv4 Fragment Offset 단위는?
- IPv6 /48에서 /64 서브넷 수는?