IT Knowledge/Network/images/07-라우팅과-nat-venn.svg
라우팅과 NAT
라우팅은 데이터가 목적지로 가는 경로를 찾는 것이고, NAT는 사설 IP를 공인 IP로 변환합니다.
🎯 이 파일을 학습하면 무엇을 알게 될까요?
이 파일을 학습하면 다음을 할 수 있게 됩니다:
- 라우팅의 원리와 라우터의 역할 이해
- 정적 라우팅과 동적 라우팅의 차이 파악
- NAT의 필요성과 작동 원리 이해
- 실제로 라우팅 테이블과 NAT 설정 가능
🧠 학습 전 생각해볼 질문
-
라우팅은 무엇일까요?
- 데이터가 목적지로 어떻게 도착할까요?
- 인터넷에서 패킷이 어떻게 라우팅될까요?
-
NAT는 왜 필요할까요?
- IPv4 주소가 부족한데 어떻게 해결할까요?
- 집에서 하나의 공인 IP로 여러 기기를 어떻게 사용할까요?
-
라우팅 프로토콜은 왜 필요할까요?
- 네트워크 경로가 바뀌면 어떻게 라우터들이 알게 될까요?
📖 1. 라우팅이란?
1.1 라우팅의 정의
**라우팅(Routing)**은 패킷이 출발지에서 목적지로 가는 경로를 결정하는 과정입니다.
비유: 내비게이션
- 출발지: 서울
- 목적지: 부산
- 경로: 서울 → 대전 → 대구 → 부산
1.2 라우팅 과정
패킷 경로:
컴퓨터 A → 라우터 1 → 라우터 2 → 라우터 3 → 컴퓨터 B
(192.168.1.2) (10.0.0.1) (10.0.1.1) (10.0.2.1) (192.168.2.2)
과정:
- 패킷이 라우터에 도착
- 라우터가 라우팅 테이블 확인
- 다음 홉(Next Hop) 결정
- 패킷 전송
- 반복하여 목적지 도착
🗺️ 2. 라우팅 테이블
2.1 라우팅 테이블 구조
| 목적지 네트워크 | 서브넷 마스크 | 게이트웨이 | 인터페이스 | 메트릭 |
|---|---|---|---|---|
| 192.168.1.0 | 255.255.255.0 | - | eth0 | 0 |
| 10.0.0.0 | 255.255.255.0 | 192.168.1.1 | eth0 | 1 |
| 0.0.0.0 | 0.0.0.0 | 192.168.1.1 | eth0 | 10 |
필드 설명
| 필드 | 설명 |
|---|---|
| 목적지 네트워크 | 패킷이 가려는 네트워크 |
| 서브넷 마스크 | 네트워크 범위 결정 |
| 게이트웨이 | 다음 라우터의 IP |
| 인터페이스 | 패킷을 보낼 포트 |
| 메트릭 | 경로의 비용 (낮을수록 우선) |
2.2 라우팅 테이블 확인
Linux
# 라우팅 테이블 확인
ip route show
# 또는
route -nCisco IOS
# 라우팅 테이블 확인
show ip route2.3 디폴트 라우트
목적지: 0.0.0.0/0
게이트웨이: 192.168.1.1
의미: "다른 모든 곳으로는 여기를 통해"
🔄 3. 정적 라우팅 vs 동적 라우팅
3.1 정적 라우팅 (Static Routing)
정적 라우팅은 관리자가 직접 경로를 설정합니다.
수동 설정:
ip route add 192.168.2.0/24 via 10.0.0.2
특징
| 특징 | 설명 |
|---|---|
| 설정 | 관리자가 직접 설정 |
| 비용 | 낮음 (프로토콜 오버헤드 없음) |
| 유연성 | 낮음 (수동 변경 필요) |
| 오류 | 수동 오류 가능성 높음 |
| 확장성 | 낮음 (대형 네트워크 불리) |
사용 사례
- 소규모 네트워크
- 환경이 변하지 않는 네트워크
- 보안이 중요한 네트워크
3.2 동적 라우팅 (Dynamic Routing)
동적 라우팅은 라우팅 프로토콜을 사용하여 자동으로 경로를 학습합니다.
자동 학습:
라우터 A "나는 192.168.1.0/24를 알고 있어!"
라우터 B "알겠어, 나도 알려줄게!"
특징
| 특징 | 설명 |
|---|---|
| 설정 | 프로토콜 설정 (자동 경로 학습) |
| 비용 | 높음 (프로토콜 오버헤드 있음) |
| 유연성 | 높음 (자동 경로 변경) |
| 오류 | 프로토콜 오류 가능성 낮음 |
| 확장성 | 높음 (대형 네트워크 유리) |
사용 사례
- 대규모 네트워크
- ISP 네트워크
- 인터넷 백본
🌐 4. 라우팅 프로토콜
4.1 내부 게이트웨이 프로토콜 (IGP)
1. OSPF (Open Shortest Path First)
OSPF는 링크 상태 알고리즘을 사용합니다.
특징:
- 최단 경로 우선 (Dijkstra 알고리즘)
- 빠른 수렴
- 계층적 구조 (Area)
특징:
- Open 표준
- 빠른 수렴
- 계층적 구조
- 대규모 네트워크에 적합
2. RIP (Routing Information Protocol)
RIP는 거리 벡터 알고리즘을 사용합니다.
특징:
- 홉(Hop) 수 기반 (최대 15홉)
- 설정 간단
- 소규모 네트워크에 적합
특징:
- 설정 간단
- 소규모 네트워크에 적합
- 느린 수렴
- 최대 15홉 제한
3. EIGRP (Enhanced Interior Gateway Routing Protocol)
EIGRP는 Cisco 전용 프로토콜입니다.
특징:
- 빠른 수렴
- 대역폭 효율적
- Cisco 장비에만 사용
4.2 외부 게이트웨이 프로토콜 (EGP)
BGP (Border Gateway Protocol)
BGP는 인터넷 백본에서 사용됩니다.
특징:
- AS(Autonomous System) 간 라우팅
- 경로 벡터 알고리즘
- 확장성 높음
- 설정 복잡
특징:
- 인터넷 표준
- 대규모 네트워크에 적합
- 경로 속성 기반 결정
- 설정 복잡
4.3 프로토콜 비교
| 프로토콜 | 유형 | 알고리즘 | 수렴 속도 | 확장성 | 사용 사례 |
|---|---|---|---|---|---|
| OSPF | IGP | 링크 상태 | 빠름 | 높음 | 대규모 기업 |
| RIP | IGP | 거리 벡터 | 느림 | 낮음 | 소규모 네트워크 |
| EIGRP | IGP | 하이브리드 | 매우 빠름 | 중간 | Cisco 네트워크 |
| BGP | EGP | 경로 벡터 | 느림 | 매우 높음 | 인터넷 백본 |
🔒 5. NAT (Network Address Translation)
5.1 NAT란?
NAT는 사설 IP를 공인 IP로 변환하는 기술입니다.
비유: 전화 번호 변환
- 내선 번호: 사설 IP
- 외선 번호: 공인 IP
- 교환원: NAT
5.2 왜 NAT가 필요한가?
문제: IPv4 주소 부족
IPv4 주소: 2^32 = 약 43억 개
인터넷 사용자: 50억 개 이상
문제: 주소 부족!
해결: NAT
가정:
- 공인 IP: 1개 (203.0.113.1)
- 사설 IP: 여러 개 (192.168.1.2, 192.168.1.3, ...)
NAT 변환:
192.168.1.2 → 203.0.113.1:10001
192.168.1.3 → 203.0.113.1:10002
...
5.3 NAT 유형
1. Static NAT
Static NAT는 고정적인 1:1 매핑입니다.
192.168.1.2 ↔ 203.0.113.2 (고정)
192.168.1.3 ↔ 203.0.113.3 (고정)
특징:
- 1:1 매핑
- 고정적
- 서버 운영에 적합
2. Dynamic NAT
Dynamic NAT는 풀(Pool)에서 동적으로 IP를 할당합니다.
공인 IP 풀: 203.0.113.2 ~ 203.0.113.10
192.168.1.2 → 203.0.113.2 (할당)
192.168.1.3 → 203.0.113.3 (할당)
...
특징:
- 풀에서 동적 할당
- 일시적
- 제한된 IP 사용
3. PAT (Port Address Translation)
PAT는 하나의 공인 IP를 여러 사설 IP가 공유합니다.
공인 IP: 203.0.113.1
192.168.1.2:80 → 203.0.113.1:10001
192.168.1.3:80 → 203.0.113.1:10002
192.168.1.4:80 → 203.0.113.1:10003
...
특징:
- 포트 번호로 구분
- 가장 일반적으로 사용
- 가정/소규모 사무실에 적합
5.4 NAT 동작 과정
sequenceDiagram participant PC as 내부 PC participant NAT as NAT 라우터 participant Internet as 인터넷 PC->>NAT: 192.168.1.2:1234 → 8.8.8.8:80 NAT->>NAT: 192.168.1.2:1234 → 203.0.113.1:10001 NAT->>Internet: 203.0.113.1:10001 → 8.8.8.8:80 Internet->>NAT: 8.8.8.8:80 → 203.0.113.1:10001 NAT->>NAT: 203.0.113.1:10001 → 192.168.1.2:1234 NAT->>PC: 192.168.1.2:1234 ← 8.8.8.8:80
🛠️ 6. 실무에서의 설정
6.1 Linux 라우팅 설정
# 정적 라우팅 추가
sudo ip route add 192.168.2.0/24 via 10.0.0.2
# 디폴트 라우트 설정
sudo ip route add default via 192.168.1.1
# 라우팅 테이블 확인
ip route show
# 라우팅 삭제
sudo ip route del 192.168.2.0/246.2 Linux NAT 설정 (iptables)
# NAT 테이블 확인
sudo iptables -t nat -L -n -v
# MASQUERADE (PAT) 설정
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# SNAT (Static NAT) 설정
sudo iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 203.0.113.1
# DNAT 설정
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
# 규칙 저장
sudo iptables-save > /etc/iptables/rules.v46.3 Cisco 라우터 설정
# 정적 라우팅 설정
Router(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2
# 디폴트 라우트 설정
Router(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.1
# NAT (PAT) 설정
Router(config)# access-list 1 permit 192.168.1.0 0.0.0.255
Router(config)# ip nat inside source list 1 interface GigabitEthernet0/0 overload
# NAT (Static) 설정
Router(config)# ip nat inside source static 192.168.1.2 203.0.113.2
# OSPF 설정
Router(config)# router ospf 1
Router(config-router)# network 192.168.1.0 0.0.0.255 area 0🎓 7. 심화 주제
7.1 IPv6와 NAT
IPv6는 주소 부족 문제를 해결하여 NAT가 필요하지 않습니다.
IPv4 주소: 2^32 = 43억 개 (부족)
IPv6 주소: 2^128 = 거의 무한대 (충분)
7.2 NAT와 보안
NAT가 보안을 제공한다는 오해
오해: "NAT는 방화벽이다!"
현실:
- NAT은 주소 변환만 수행
- 보안 기능 없음
- 방화벽과 별개
NAT64/NAT46
NAT64는 IPv4 네트워크와 IPv6 네트워크 간의 변환을 지원합니다.
IPv6 호스트 → NAT64 → IPv4 호스트
✅ 8. 학습 체크리스트
라우팅 기초
- 라우팅의 정의와 원리 이해
- 라우팅 테이블 구조 이해
- 디폴트 라우트 개념 이해
라우팅 유형
- 정적 라우팅 특징 이해
- 동적 라우팅 특징 이해
- 장단점과 사용 사례 이해
라우팅 프로토콜
- OSPF 특징 이해
- RIP 특징 이해
- BGP 특징 이해
- 각 프로토콜의 사용 사례 이해
NAT
- NAT의 정의와 필요성 이해
- Static NAT 특징 이해
- Dynamic NAT 특징 이해
- PAT 특징 이해
- NAT 동작 과정 이해
실무 활용
- Linux 라우팅 설정 가능
- iptables로 NAT 설정 가능
- Cisco 라우터 설정 가능
🧪 9. 실습 연습
연습 1: 라우팅 테이블 확인
# 라우팅 테이블 확인
ip route show
# 디폴트 라우트 확인
ip route show | grep default
# 특정 목적지 확인
ip route get 8.8.8.8연습 2: 정적 라우팅 설정
# 정적 라우팅 추가
sudo ip route add 192.168.100.0/24 via 192.168.1.1
# 라우팅 테이블 확인
ip route show
# 라우팅 삭제
sudo ip route del 192.168.100.0/24연습 3: NAT 설정 (Linux)
# NAT 규칙 추가
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# NAT 테이블 확인
sudo iptables -t nat -L -n -v
# NAT 규칙 삭제
sudo iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE💡 10. 학습 후 생각해볼 질문
-
이 부분을 이해했나요?
- 정적 라우팅과 동적 라우팅의 차이를 설명할 수 있나요?
- NAT가 왜 필요한지 설명할 수 있나요?
-
어떻게 확인하지?
ip route show로 라우팅 테이블을 확인해보세요.iptables -t nat -L로 NAT 규칙을 확인해보세요.
-
무엇이 가장 어려웠나요?
- 라우팅 프로토콜의 차이를 구분하기 어렵지 않았나요?
-
어떻게 개선할까요?
- 실제로 라우터와 스위치로 네트워크를 구성해보세요.
🔗 관련 노트
마지막 업데이트: 2026-01-29 다음 단계: VLAN과 스위칭 학습