IT Knowledge/Network/images/07-라우팅과-nat-venn.svg

라우팅과 NAT

라우팅은 데이터가 목적지로 가는 경로를 찾는 것이고, NAT는 사설 IP를 공인 IP로 변환합니다.


🎯 이 파일을 학습하면 무엇을 알게 될까요?

이 파일을 학습하면 다음을 할 수 있게 됩니다:

  • 라우팅의 원리와 라우터의 역할 이해
  • 정적 라우팅과 동적 라우팅의 차이 파악
  • NAT의 필요성과 작동 원리 이해
  • 실제로 라우팅 테이블과 NAT 설정 가능

🧠 학습 전 생각해볼 질문

  1. 라우팅은 무엇일까요?

    • 데이터가 목적지로 어떻게 도착할까요?
    • 인터넷에서 패킷이 어떻게 라우팅될까요?
  2. NAT는 왜 필요할까요?

    • IPv4 주소가 부족한데 어떻게 해결할까요?
    • 집에서 하나의 공인 IP로 여러 기기를 어떻게 사용할까요?
  3. 라우팅 프로토콜은 왜 필요할까요?

    • 네트워크 경로가 바뀌면 어떻게 라우터들이 알게 될까요?

📖 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)

과정:

  1. 패킷이 라우터에 도착
  2. 라우터가 라우팅 테이블 확인
  3. 다음 홉(Next Hop) 결정
  4. 패킷 전송
  5. 반복하여 목적지 도착

🗺️ 2. 라우팅 테이블

2.1 라우팅 테이블 구조

목적지 네트워크서브넷 마스크게이트웨이인터페이스메트릭
192.168.1.0255.255.255.0-eth00
10.0.0.0255.255.255.0192.168.1.1eth01
0.0.0.00.0.0.0192.168.1.1eth010

필드 설명

필드설명
목적지 네트워크패킷이 가려는 네트워크
서브넷 마스크네트워크 범위 결정
게이트웨이다음 라우터의 IP
인터페이스패킷을 보낼 포트
메트릭경로의 비용 (낮을수록 우선)

2.2 라우팅 테이블 확인

Linux

# 라우팅 테이블 확인
ip route show
 
# 또는
route -n

Cisco IOS

# 라우팅 테이블 확인
show ip route

2.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 프로토콜 비교

프로토콜유형알고리즘수렴 속도확장성사용 사례
OSPFIGP링크 상태빠름높음대규모 기업
RIPIGP거리 벡터느림낮음소규모 네트워크
EIGRPIGP하이브리드매우 빠름중간Cisco 네트워크
BGPEGP경로 벡터느림매우 높음인터넷 백본

🔒 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/24

6.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.v4

6.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. 학습 후 생각해볼 질문

  1. 이 부분을 이해했나요?

    • 정적 라우팅과 동적 라우팅의 차이를 설명할 수 있나요?
    • NAT가 왜 필요한지 설명할 수 있나요?
  2. 어떻게 확인하지?

    • ip route show로 라우팅 테이블을 확인해보세요.
    • iptables -t nat -L로 NAT 규칙을 확인해보세요.
  3. 무엇이 가장 어려웠나요?

    • 라우팅 프로토콜의 차이를 구분하기 어렵지 않았나요?
  4. 어떻게 개선할까요?

    • 실제로 라우터와 스위치로 네트워크를 구성해보세요.

🔗 관련 노트


마지막 업데이트: 2026-01-29 다음 단계: VLAN과 스위칭 학습