862 words
4 mins
L3 라우팅

라우터란 무엇인가#

라우터는 서로 다른 네트워크 사이의 패킷을 전달한다.

assets/routing_basic.png

라우팅 기본 구조

라우팅 테이블#

라우터는 라우팅 테이블을 보고 패킷의 다음 홉을 결정한다.

라우팅 테이블 항목#

  • 목적지 네트워크
  • 다음 홉(게이트웨이)
  • 출력 인터페이스

기본 게이트웨이#

  • 목적지 네트워크가 명확하지 않을 때 나가는 길
기본 게이트웨이
  • 다른 네트워크로 나갈 때 반드시 필요하다.
  • 없으면 외부 인터넷이 모두 끊긴다.

정적 vs 동적 라우팅#

  • 정적: 관리자가 직접 설정
  • 동적: OSPF/BGP 같은 프로토콜로 자동 학습
OSPF / BGP 한 번에 이해
  • OSPF(Open Shortest Path First)

    • **내부망(같은 조직/회사)**에서 쓰는 대표적인 IGP(내부 라우팅 프로토콜)
    • 라우터들이 서로 링크 상태를 공유하고, 최단 경로(비용/Cost) 기준으로 라우팅 테이블을 자동 구성
    • 특징: 수렴이 빠르고, 한 회사/한 데이터센터/VPC 내부 같은 “안쪽” 네트워크에 적합
  • BGP(Border Gateway Protocol)

    • 인터넷(서로 다른 조직/통신사/AS) 사이에서 쓰는 대표적인 EGP(외부 라우팅 프로토콜)
    • “최단”보다는 정책(Policy) 기반: 어떤 경로를 선호/차단할지 운영자가 정할 수 있음
    • 특징: 인터넷의 길찾기 표준, 대규모에 강함(대신 설정/운영 난이도 높음)

한 줄 비유

  • OSPF: “회사 내부 길찾기(최단/빠른 수렴)”
  • BGP: “회사 ↔ 회사/통신사 ↔ 인터넷 연결(정책/규모)“

실습 1: 라우팅 테이블 확인#

macOS#

Terminal window
mac> netstat -rn | head -n 10

Windows (PowerShell)#

Terminal window
win> route print

Linux#

Terminal window
lin> ip route

예상 출력#

default via 192.168.0.1 dev en0

실습 2: VM 라우터 구성#

목표#

VM1(10.0.1.0/24) ↔ VM2(10.0.2.0/24) 통신

구성도#

VM1 (10.0.1.10) --\
[VM3 Router]
VM2 (10.0.2.20) --/

단계#

  1. VM3에 NIC 2개 설정 (intnet1, intnet2)
  2. VM3에서 IP 포워딩 활성화
Terminal window
vm3> sudo sysctl -w net.ipv4.ip_forward=1
  1. VM3에 IP 할당
Terminal window
vm3> sudo ip addr add 10.0.1.1/24 dev enp0s3
vm3> sudo ip addr add 10.0.2.1/24 dev enp0s8
  1. VM1/VM2에 라우트 추가
Terminal window
vm1> sudo ip route add 10.0.2.0/24 via 10.0.1.1
vm2> sudo ip route add 10.0.1.0/24 via 10.0.2.1
  1. 테스트
Terminal window
vm1> ping -c 3 10.0.2.20

예상 출력#

64 bytes from 10.0.2.20: icmp_seq=1 ttl=63 time=0.9 ms

트러블슈팅#

  • ping 실패 → IP 포워딩 확인
  • 라우트 누락 → ip route 재확인

라우팅 결정 순서#

  1. 가장 긴 프리픽스(길이 긴 경로 우선)
  2. 우선순위/메트릭(관리 거리, 비용) 비교
  3. 기본 게이트웨이(::/0 또는 0.0.0.0/0)

실전 시나리오#

상황: 특정 네트워크만 접근 불가#

  • 라우팅 테이블에 경로 없음
  • 잘못된 넥스트홉

OS별 추가 실습: 라우트 추가/삭제#

macOS#

Terminal window
mac> sudo route -n add 10.0.2.0/24 192.168.0.1
mac> sudo route -n delete 10.0.2.0/24

Windows#

Terminal window
win> route add 10.0.2.0 mask 255.255.255.0 192.168.0.1
win> route delete 10.0.2.0

Linux#

Terminal window
lin> sudo ip route add 10.0.2.0/24 via 192.168.0.1
lin> sudo ip route del 10.0.2.0/24

Longest Prefix Match 예시#

라우터는 가장 긴 프리픽스를 우선한다.

예시#

  • 10.0.0.0/8 → 게이트웨이 A
  • 10.0.1.0/24 → 게이트웨이 B

목적지가 10.0.1.5라면 /24가 더 구체적이므로 B를 선택한다.


실전 사례#

  • 사례 1: 특정 대역 접근 불가 → 라우팅 테이블 누락.
  • 사례 2: 간헐적 라우팅 루프 → 잘못된 경로 광고.
  • 사례 3: 지연 급증 → 비효율 경로 선택.

Comments

L3 라우팅
https://cheoran.github.io/posts/network-book/06-routing-l3/
Author
Cheolhwan Kim
Published
2025-12-28
License
CC BY-NC-SA 4.0