Infra Architecture/Network Fundamentals

Network Fundamentals - 05. 라우팅

배송 센터들이 협력해 목적지를 찾는 기술 — 라우팅

서울에서 부산으로 편지를 보낸다고 치자. 편지는 곧장 부산으로 가지 않는다. 서울 배송 센터에서 경로를 판단하고, 대전 배송 센터로 보내고, 대전이 다시 대구로, 대구가 부산으로. 각 배송 센터(라우터)는 — "이 편지의 목적지(우편번호)를 보고, 어느 방향으로 보낼까?"를 결정한다. 이 결정의 기준이 라우팅 테이블(routing table) 이고, 라우터들이 서로 경로 정보를 교환하는 규칙이 라우팅 프로토콜(routing protocol) 이다.

이 글은 라우팅(routing) — 패킷이 한 네트워크에서 다른 네트워크로 이동하는 과정 — 을 다룬다. 이전 글에서 본 서브네팅이 "같은 동네인지 다른 동네인지 판단하는 기술"이었다면, 라우팅은 "다른 동네로 어떻게 보낼까?"를 담당한다. 정적 라우팅(수동 설정)과 동적 라우팅(OSPF·BGP)의 차이, 라우팅 테이블의 구조, 자율 시스템(AS)의 개념을 본다. 인터넷이 "네트워크의 네트워크"로 동작하는 핵심 메커니즘이다.

라우팅 테이블 — 라우터의 지도

라우터가 패킷을 받으면 — 목적지 IP 주소를 보고 라우팅 테이블에서 어디로 보낼지 찾는다. 라우팅 테이블은 — "이 목적지 네트워크로 가려면 이쪽으로(다음 홉, next hop)"라는 지도다.

# 리눅스 라우팅 테이블 확인
ip route show
# 예상 출력
default via 192.0.2.1 dev eth0              # 기본 경로 (모르는 목적지는 여기로)
10.0.0.0/8 via 192.0.2.2 dev eth0           # 10.x.x.x는 192.0.2.2로
192.0.2.0/24 dev eth0 proto kernel scope link  # 같은 서브넷은 직접

각 행의 의미:

  • 목적지 네트워크 — 패킷이 어디로 가는지 (예: 10.0.0.0/8)
  • 다음 홉(next hop) — 이 네트워크로 가려면 어느 라우터에게 넘길지 (예: via 192.0.2.2)
  • 인터페이스 — 어느 네트워크 인터페이스로 보낼지 (예: dev eth0)

라우터가 패킷을 받으면 — 목적지 IP와 라우팅 테이블의 각 행을 비교한다. 가장 구체적인(가장 긴 접두사) 매칭이 우선한다(longest prefix match). 예를 들어 목적지가 10.0.1.5이고, 테이블에 10.0.0.0/810.0.1.0/24가 모두 있으면 — 더 구체적인 /24 경로를 따른다. 아무것도 매칭되지 않으면 — default(기본 경로, /0)로 보낸다.

기본 경로(default route, 0.0.0.0/0) 는 — "나머지는 전부 여기로"라는 와일드카드다. 가정용 공유기는 — 인터넷의 모든 목적지를 ISP 라우터로 보내는 기본 경로 하나만 갖는다. 대규모 라우터는 수만 ~ 수십만 개의 경로를 갖는다.

정적 라우팅 vs 동적 라우팅

라우팅 테이블을 채우는 방법이 두 가지다.

정적 라우팅(static routing) — 관리자가 수동으로 라우팅 테이블 항목을 입력하는 방식. ip route add 10.0.0.0/8 via 192.0.2.2처럼 직접 명령. 장점은 — 단순하고 예측 가능하다. 단점은 — 네트워크가 변하면(링크 장애·새 네트워크 추가) 수동으로 업데이트해야 한다. 소규모 네트워크나 점대점 연결에 적합.

동적 라우팅(dynamic routing) — 라우터들이 서로 경로 정보를 교환해서 자동으로 라우팅 테이블을 만드는 방식. 링크가 장애 나면 자동으로 대체 경로를 찾는다. 대규모 네트워크의 필수. OSPF·BGP가 대표 프로토콜.

특성 정적 라우팅 동적 라우팅
설정 수동 자동 (프로토콜)
장애 대응 수동 개입 필요 자동 경로 전환
규모 소규모 (~수십 라우터) 대규모 (수천 ~ 수만)
복잡도 낮음 중간 ~ 높음
자원 사용 없음 CPU·메모리·대역폭 사용
전형 사례 가정용 공유기, 점대점 데이터센터, 인터넷 백본

OSPF — 같은 조직 안의 라우팅

OSPF(Open Shortest Path First) 는 — IGP(Interior Gateway Protocol), 같은 조직(AS) 안의 라우팅을 담당하는 프로토콜이다. RFC 2328(OSPFv2). 링크 상태(link-state) 라우팅 방식을 쓴다 — 각 라우터가 자신의 연결 상태(링크 비용·대역폭)를 모든 이웃 라우터에게 알리고, 그 정보를 모아 전체 네트워크 지도(토폴로지 맵)를 만들어 최단 경로를 계산한다. 다익스트라(Shortest Path First) 알고리즘을 쓴다.

비유하자면 — 배송 센터들이 각자 "나는 대전이고, 서울까지 2시간, 부산까지 3시간 걸린다"라는 정보를 서로 교환하는 것이다. 이 정보가 모이면 — 전국 배송 센터 지도가 완성되고, 각 센터가 자기 지도에서 최단 경로를 계산한다.

OSPF의 특징:

  • 비용(cost) 기반 경로 선택 — 일반적으로 대역폭에 반비례(10Gbps 링크가 1Gbps보다 비용이 낮음).
  • 빠른 수렴 — 링크 장애 시 수 초 안에 대체 경로로 전환.
  • 계층 구조(area) — 대규모 네트워크를 area로 나눠 라우팅 트래픽을 줄임.
  • 멀티캐스트 — OSPF 메시지를 224.0.0.5 멀티캐스트로 전송.

BGP — 인터넷을 묶는 접착제

BGP(Border Gateway Protocol) 는 인터넷의 핵심 라우팅 프로토콜이다. RFC 4271. OSPF가 "같은 조직 안"이면, BGP는 서로 다른 조직(AS) 간의 라우팅을 담당한다. 인터넷은 수만 개의 AS(Autonomous System, 자율 시스템)로 이루어져 있는데 — 각 AS는 하나의 조직(ISP·기업·대학)이 운영하는 라우터 그룹이고, AS 번호(ASN, Autonomous System Number)로 식별된다.

AS(Autonomous System) 의 비유 — 하나의 택배 회사. FedEx(AS 1)와 UPS(AS 2)가 서로 "내가 이 도시까지 배달할 수 있어, 너는 어디까지?"라고 교환하는 것이 BGP다. 각 회사가 자기 담당 구역(네트워크 접두사)을 광고(advertise)하고, 다른 회사가 그 정보를 바탕으로 경로를 결정한다.

BGP의 핵심 특징:

  • 경로 벡터(path-vector) 알고리즘 — OSPF의 링크 상태가 아니라, "이 목적지까지 가려면 AS 100 → AS 200 → AS 300 순으로 거친다"는 경로(AS path)를 교환한다.
  • 정책 기반(policy-based) 라우팅 — 비용이나 거리뿐 아니라, 비즈니스 정책("이 AS를 통과하지 마라", "이 경로를 우선하라")을 라우팅에 반영할 수 있다.
  • 확장성 — 인터넷 전체 경로(약 100만 개 네트워크 접두사, 2026년 기준)를 처리할 수 있는 유일한 프로토콜.
  • 느린 수렴 — OSPF보다 수렴이 느리다(수 분). 정확성과 정책 유연성을 속도보다 우선하기 때문.
특성 OSPF BGP
범위 같은 AS 안 (IGP) 서로 다른 AS 간 (EGP)
알고리즘 링크 상태 (Dijkstra) 경로 벡터
경로 기준 비용(대역폭) 정책 + AS 경로 길이
수렴 속도 빠름 (수 초) 느림 (수 분)
규모 수백 라우터 수만 AS, 수백만 경로
전형 사례 데이터센터 내, 기업망 인터넷 백본, ISP 간

ECMP — 같은 비용의 여러 경로

ECMP(Equal-Cost Multi-Path) 는 — 같은 목적지에 같은 비용의 경로가 여러 개 있을 때, 트래픽을 그 경로들에 분산시키는 기능이다. OSPF에서 두 링크의 비용이 같으면(예: 10Gbps 링크 두 개), ECMP가 두 링크 모두를 사용해 부하를 분산한다.

ECMP가 없으면 — 같은 비용의 여러 경로 중 하나만 쓰고 나머지는 유휴 상태가 된다. 대역폭이 낭비된다. ECMP는 데이터센터 네트워크(spine-leaf)에서 특히 중요하다 — 같은 비용의 경로가 수십 개 있고, ECMP로 트래픽을 골고루 분산한다.

BGP 경로 선택 — 여러 경로 중 최선을 고르는 법

인터넷에서 하나의 목적지에 도달하는 경로가 여러 개일 수 있다. 예를 들어 — 서울에서 부산까지 KTX, SRT, 고속버스 세 경로가 있을 때 — 어느 것을 선택할까? BGP는 경로 속성(path attributes) 이라는 기준으로 최선의 경로를 고른다.

BGP 경로 선택의 주요 기준(우선순위 순):

  1. LOCAL_PREF — 관리자가 로컬에서 설정한 우선순위. "이 경로를 더 좋아한다"는 정책적 선택. 높을수록 우선.
  2. AS_PATH 길이 — 거쳐야 하는 AS의 수. 짧을수록 우선. "3개 AS를 거치는 경로"보다 "2개 AS를 거치는 경로"가 선호됨.
  3. ORIGIN — 경로의 출처. IGP(OSPF에서 옴) < EGP < INCOMPLETE(출처 불명) 순.
  4. MED(Multi-Exit Discriminator) — 이웃 AS가 "이 링크로 들어오는 걸 선호해달라"고 보내는 힌트. 낮을수록 우선.
  5. 라우터 ID — 마지막 타브레이커. 가장 낮은 라우터 ID를 가진 경로가 선택.

이 기준들이 순서대로 적용된다. LOCAL_PREF가 같으면 AS_PATH 길이로, 그것도 같으면 ORIGIN으로... 이렇게 최선의 경로 하나가 선택될 때까지 내려간다.

정책 기반 라우팅 — BGP의 힘

BGP가 OSPF보다 강력한 이유는 — 정책(policy) 을 라우팅에 반영할 수 있다는 것이다. 예를 들어:

  • "AS 100을 통과하는 경로는 절대 쓰지 마라" — 보안상 신뢰하지 않는 AS 우회.
  • "이 ISP 링크는 백업용이니, 메인 링크가 살아있으면 안 써라" — 백업 링크를 대기 상태로.
  • "트래픽이 많은 경로는 비용이 비싸니까, 저렴한 경로 우선" — 비용 최적화.

이런 정책을 BGP 커뮤니티(community) 속성과 LOCAL_PREF 조합으로 구현한다. OSPF는 비용(대역폭)만 보니 — "특정 AS를 우회하라" 같은 정책을 못 세운다.

라우팅 집약 — 라우팅 테이블을 작게 유지하는 법

인터넷의 라우팅 테이블은 2026년 기준 약 100만 개의 네트워크 접두사(prefix)를 갖는다. 모든 라우터가 100만 개를 다 기억하면 — 메모리와 CPU가 부족하다. 라우팅 집약(route aggregation, 또는 CIDR 집약) 은 — 여러 작은 네트워크 접두사를 하나의 큰 접두사로 합쳐 라우팅 테이블을 줄이는 기술이다.

예를 들어 — AS 100이 203.0.113.0/24, 203.0.114.0/24, 203.0.115.0/24 세 개의 네트워크를 가지고 있다고 치자. 다른 AS에게 세 개를 따로 광고하지 않고 — 하나로 합쳐서 203.0.112.0/22 하나만 광고한다. 다른 AS의 라우팅 테이블에는 한 줄만 추가된다. 203.0.112.0/22로 오는 패킷은 전부 AS 100으로 오고, AS 100 내부에서 세 개의 /24로 분배한다. 비유하자면 — 우편번호를 도 단위로만 외우고, 도 안의 시/군은 그 도의 배송 센터가 알아서 분류하는 것.

패킷의 여정 — 한 패킷이 인터넷을 건너는 과정

지금까지 본 라우팅 개념을 — 하나의 패킷이 실제로 어떻게 인터넷을 건너는지로 종합해 보자. 서울의 PC가 미국의 웹 서버에 접속하는 경우:

flowchart LR
    PC["PC<br/>(192.0.2.10)"] --> GW["가정용 공유기<br/>(게이트웨이)"]
    GW --> ISP_R["ISP 라우터<br/>(AS 4766, 한국 ISP)"]
    ISP_R -->|"BGP"| TRANSIT["트랜짓 ISP 라우터<br/>(AS 3491, 국제 회선)"]
    TRANSIT -->|"BGP"| US_ISP["미국 ISP 라우터<br/>(AS 7922, Comcast)"]
    US_ISP -->|"OSPF"| DC_R["데이터센터 라우터"]
    DC_R -->|"L2 스위치"| SVR["웹 서버<br/>(203.0.113.5)"]
  1. PC가 목적지 IP 203.0.113.5로 패킷을 보낸다. 다른 서브넷이니까 — 기본 게이트웨이(가정용 공유기)로 보낸다.
  2. 가정용 공유기가 ISP 라우터로 전달. 공유기는 정적 라우팅(기본 경로 하나)만 있다.
  3. ISP 라우터(AS 4766)가 BGP로 경로를 찾는다. 203.0.113.0/24는 AS 7922(미국 ISP)를 거쳐야 한다.
  4. 패킷이 트랜짓 ISP(국제 해저 케이블)를 거쳐 미국에 도착.
  5. 미국 ISP 라우터가 OSPF로 내부 경로를 찾아 — 데이터센터 라우터로 전달.
  6. 데이터센터 라우터가 L2 스위치를 통해 목적지 서버로 패킷을 보낸다.

이 전체 과정에서 — 여러 라우팅 프로토콜이 협력한다. 가정은 정적 라우팅, ISP 간은 BGP, ISP 내부는 OSPF. 각 층이 자기 역할을 담당해서 — 패킷이 반구를 건너 도착한다.

관리 거리 — 여러 라우팅 프로토콜이 같은 목적지를 가리킬 때

한 라우터가 OSPF와 BGP 모두에서 같은 목적지의 경로를 학습할 수 있다. 이때 어느 경로를 우선할까? 관리 거리(administrative distance) 가 이 결정을 한다. 관리 거리는 — 라우팅 출처에 대한 "신뢰도" 점수다. 낮을수록 우선한다. Cisco 라우터의 기본 관리 거리:

출처 관리 거리 설명
직접 연결 (connected) 0 인터페이스에 직접 할당된 네트워크
정적 라우팅 (static) 1 관리자가 수동 입력
EIGRP (internal) 90 Cisco 자체 프로토콜
OSPF 110 링크 상태 프로토콜
RIP 120 거리 벡터 (구식)
EIGRP (external) 170 외부에서 학습한 경로
BGP (external) 20 다른 AS에서 학습 (우선순위 높음)
신뢰할 수 없음 255 사용 안 함

흥미로운 점은 — eBGP(관리 거리 20)가 OSPF(110)보다 우선한다는 것이다. 이게 의도적인 이유는 — BGP 경로가 관리자의 정책적 선택을 반영하기 때문이다. OSPF가 "가장 빠른 경로"를 찾아도 — BGP가 "이 경로를 쓰라"고 정책을 세우면, 그 정책이 이긴다.

라우팅 루프 — 패킷이 영원히 돌면

라우팅 설정이 잘못되면 — 패킷이 라우터 사이를 무한히 순환(routing loop) 할 수 있다. 라우터 A가 "8.8.8.8은 B로 가라"고 하고, B가 "8.8.8.8은 A로 가라"고 하면 — 패킷이 A→B→A→B를 영원히 반복한다. 네트워크 대역폭이 낭비되고 패킷은 목적지에 못 간다.

방어 기제가 TTL(Time To Live) 이다. IP 헤더의 TTL 필드(8비트)가 — 라우터를 하나 거칠 때마다 1씩 감소한다. TTL이 0이 되면 — 라우터가 그 패킷을 버리고(ICMP Time Exceeded 메시지 발송). 패킷이 최대 255홉까지만 이동할 수 있다. traceroute가 바로 이 TTL을 이용해 — TTL=1로 첫 패킷을 보내면 첫 라우터가 버리면서 자기 IP를 알려주고, TTL=2로 보내면 두 번째 라우터가... 이렇게 각 홉을 식별한다.

플로팅 스태틱 라우트(floating static route) — 백업 경로를 만드는 기법. 메인 경로(관리 거리 1)와 백업 경로(관리 거리 200)를 둔다. 메인이 살아있으면 백업은 안 쓰이고, 메인이 장애 나면 백업이 자동으로 활성화된다. foundations 04에서 본 redundancy의 라우팅 버전이다.

실습 — 라우팅 직접 확인

1. 라우팅 테이블

# 전체 라우팅 테이블
ip route show
# 특정 목적지의 경로 결정 확인
ip route get 8.8.8.8

확인할 것: ip route get의 결과로 — 패킷이 어느 인터페이스·게이트웨이를 거치는지. via가 있으면 라우터 경유, 없으면 직접.

2. 경로 추적

# 목적지까지 거치는 라우터 목록
traceroute 8.8.8.8 2>/dev/null || tracepath 8.8.8.8
# 또는 mtr (실시간 경로 + 지연)
mtr 8.8.8.8 2>/dev/null || echo "mtr 미설치"

확인할 것: 각 홉(라우터)의 IP와 지연(ms). 첫 홉은 게이트웨이, 마지막은 목적지. 중간 홉이 *이면 — ICMP가 차단된 것(정상인 경우도 많음).

# 예상 출력 (traceroute 8.8.8.8)
 1  192.0.2.1 (게이트웨이)     0.5ms
 2  10.0.0.1 (ISP 라우터)      5.2ms
 3  172.16.0.1 (ISP 코어)      8.1ms
 ...
 8  8.8.8.8 (Google DNS)       12.3ms

3. BGP 경로 정보 (클라우드 환경)

# AWS에서 BGP 정보 확인 (VPC 라우팅 테이블)
aws ec2 describe-route-tables --query 'RouteTables[0].Routes[*].[DestinationCidrBlock,GatewayId,State]' --output table 2>/dev/null || echo "AWS CLI 미설정"

미검증: traceroute·mtr은 별도 설치 필요. 클라우드 VM에서는 일부 ICMP가 차단돼 traceroute가 안 될 수 있음. BGP 정보는 실제 라우터(Cisco·Juniper) 또는 클라우드 관리 콘솔에서 확인.

라우팅은 "경로 결정"이다

라우팅을 이해하면 — "패킷이 인터넷에서 어떻게 목적지까지 가는가?"에 답할 수 있다. 서브네팅이 "같은 동네인지 판단"이라면, 라우팅은 "다른 동네로 가는 길 찾기"다. OSPF가 같은 조직 안의 길을 찾고, BGP가 조직 간 길을 찾는다. 인터넷이 전 세계의 컴퓨터를 연결하는 것은 — 수만 개의 AS가 BGP로 경로를 교환하고, 각 AS 안의 라우터가 OSPF로 내부 경로를 관리하기 때문이다.

다음 글에서는 L4(전송 계층)로 올라간다 — TCP·UDP와 포트. "건물까지 온 패킷을 몇 호실로 보낼까?"를 결정하는 계층. TCP의 3-way 핸드셰이크, 신뢰성 보장 메커니즘, UDP의 단순함이 어떻게 보완 관계를 이루는지를 본다.

OSPF area — 대규모에서 라우팅 트래픽을 줄이는 구조

OSPF는 대규모 네트워크에서 — area라는 계층 구조로 라우팅 트래픽을 줄인다. 모든 라우터가 전체 토폴로지를 알면 — 링크 상태 갱신(LSA)이 네트워크 전체에 퍼져서 대역폭을 소모한다. area는 — LSA 범위를 area 내부로 제한한다.

flowchart TD
    AREA0["Area 0 (Backbone)"] --- AREA1["Area 1"]
    AREA0 --- AREA2["Area 2"]
    AREA1 --- R1A["라우터들"]
    AREA2 --- R2A["라우터들"]
    AREA0 --- R0["백본 라우터"]

Area 0(backbone)이 중심이고, 다른 area들이 Area 0에 연결된다. ABR(Area Border Router) 가 area 경계에서 라우팅 정보를 요약(summary)해서 전달한다. "Area 1에는 192.0.2.0/24가 있다"만 Area 0에 알리고 — Area 1 내부의 상세 라우팅은 Area 1 안에서만 처리된다. foundations 01에서 본 "추상화"의 라우팅 버전이다.

Default route의 실제 — 인터넷의 가장자리

인터넷의 가장자리(가정·소규모 사무실)에 있는 라우터는 — 수만 개의 인터넷 경로를 기억할 필요가 없다. 기본 경로(default route, 0.0.0.0/0) 하나만 있으면 된다. "내가 모르는 목적지는 전부 ISP 라우터로 보낸다." ISP 라우터가 알아서 경로를 찾는다.

가정용 공유기의 라우팅 테이블은 보통 두 줄이다 — 같은 서브넷(직접)과 기본 경로(ISP로). 이 단순함이 — 인터넷이 작동하는 이유 중 하나다. 모든 라우터가 전체 인터넷 경로를 기억할 필요 없이 — "모르면 위로 넘긴다"는 규칙만으로 — 패킷이 목적지에 도달한다.

라우팅은 — "경로 결정"이다. 서브네팅이 "같은 동네인지 판단"이라면, 라우팅은 "다른 동네로 가는 길 찾기"다. 정적 라우팅(수동)과 동적 라우팅(OSPF·BGP)의 선택은 — 네트워크 규모·복잡도·자동화 필요성에 따라 결정된다. 인터넷이 작동하는 것은 — 수만 개의 AS가 BGP로 경로를 교환하기 때문이다.

라우팅을 이해하면 — 인터넷이 "네트워크의 네트워크"로 작동하는 원리가 보인다. 각 AS가 자기 내부(OSPF)와 외부(BGP)를 관리하고, 라우터가 패킷을 한 홉씩 전달한다. 정적 라우팅의 단순함과 동적 라우팅의 유연함이 — 네트워크 규모와 복잡도에 따라 선택된다.
인터넷은 — 수만 개의 AS가 BGP로 경로를 교환하고, 각 AS 안의 라우터가 OSPF로 내부 경로를 관리하는 거대한 협력 시스템이다. 가정의 공유기에서부터 인터넷 백본 라우터까지 — 각 층이 자기 역할을 담당해 패킷이 목적지에 도달한다. 다음 글에서는 L4로 올라간다 — TCP와 UDP. 건물까지 온 패킷을 몇 호실로 보낼까를 결정하는 계층이다.라우팅의 이해는 — 인터넷이 어떻게 작동하는지의 핵심이다.라우팅을 이해하면 — 패킷이 어떻게 목적지에 도달하는지, 인터넷이 어떻게 작동하는지가 보인다. OSPF가 내부를, BGP가 외부를 담당하고, 기본 경로가 모르는 목적지를 처리한다. 이것이 인터넷의 라우팅 구조다.
라우팅은 — 패킷이 목적지까지 도달하게 하는
인터넷의 핵심 메커니즘이다.
정적(수동)과 동적(OSPF/BGP)의 선택은 규모에 따라 결정된다.


참고

  • RFC 4271, Rekhter, Y. et al. "A Border Gateway Protocol 4 (BGP-4)", 2006, Internet Standard — BGP 표준. 접근 2026-07-21
  • RFC 2328, Moy, J. "OSPF Version 2", 1998, Internet Standard — OSPF 표준. 접근 2026-07-21
  • RFC 4276(EBGP), RFC 7938(BGP in data centers) — 데이터센터 BGP. 접근 2026-07-21
  • Kurose, J. F., Ross, K. W. 8th ed, 2021, Ch.5 — 라우팅 알고리즘. 접근 2026-07-21
  • Stevens, W. R., Fall, K. <TCP/IP Illustrated, Volume 1> 2nd ed, 2011, Ch.5 — IP 라우팅. 접근 2026-07-21
  • Dooley, K., Brown, I. 2nd ed, O'Reilly, 2020 — BGP 실무. 접근 2026-07-21