데이터그램과 가상 회선 차이: IP 포워딩·MPLS 라벨 경로

반응형

네트워크 계층은 packet을 다음 hop으로 보내는 **포워딩(forwarding)**과 목적지까지 사용할 경로 정보를 만드는 **라우팅(routing)**을 다룬다. 이때 전달 모델은 크게 datagram 방식과 virtual circuit 방식으로 비교할 수 있다.

IP는 connectionless datagram service를 제공한다. 반면 virtual circuit network는 전송 전에 경로와 identifier state를 만들고 packet이 그 state를 따라가게 한다. 현대 IP network 안에서도 MPLS label-switched path처럼 virtual circuit과 닮은 label forwarding을 함께 사용할 수 있다.

라우팅과 포워딩을 먼저 구분한다

구분 질문 시간 범위 대표 결과
라우팅 목적지로 가는 경로 정보를 어떻게 만들까 topology 변화와 protocol 수렴 시 RIB의 route
포워딩 지금 들어온 packet을 어느 interface·next hop으로 보낼까 packet마다 FIB lookup 결과

routing protocol과 관리 설정이 경로 후보를 만들고, router는 그 결과로 forwarding table을 구성한다. packet이 들어오면 control plane이 매번 전체 경로를 계산하는 것이 아니라 data plane이 forwarding table을 조회한다.

구체적인 RIB·FIB와 longest prefix match는 라우팅과 포워딩의 차이에서 더 자세히 다룬다.

Datagram network: packet마다 목적지를 본다

IP datagram에는 destination IP address가 들어 있다. router는 destination address와 forwarding table을 비교해 다음 hop을 고른다.

IP packet
  dst=203.0.113.42
       ↓ longest-prefix match
FIB: 203.0.113.0/24 → next-hop A, interface eth1
       ↓
next router

전송 전에 end-to-end circuit을 설정하지 않고, 각 packet은 독립적으로 forwarding된다. 경로가 바뀌면 같은 flow의 뒤 packet이 다른 route를 탈 수도 있다.

IP의 connectionless service는 다음을 자동 보장하지 않는다.

  • packet 전달 성공
  • 중복 없는 전달
  • 전송 순서 유지
  • 고정 bandwidth나 latency
  • 한 flow가 계속 같은 path를 사용함

필요한 신뢰성, 순서와 혼잡 제어는 TCP·QUIC 같은 상위 transport와 application이 제공한다.

Virtual circuit: 먼저 경로 state를 만든다

virtual circuit 방식은 data를 보내기 전에 path를 설정하고 intermediate node가 circuit별 state를 보관한다. packet header에는 전체 destination address 대신 짧은 local identifier가 들어갈 수 있다.

입력 interface, VC 12
        ↓ table lookup
출력 interface, VC 37
        ↓
다음 hop에서는 VC 37로 해석

VC number가 hop마다 달라질 수 있는 이유는 local significance 때문이다. 한 node에서 의미 있는 incoming identifier를 다음 link에서 의미 있는 outgoing identifier로 바꾼다. 전 세계에서 유일한 긴 circuit number를 packet마다 들고 다닐 필요가 없다.

이 모델은 path별 policy와 자원 관리를 명시하기 쉽지만 node가 유지해야 할 state와 setup·teardown, 장애 복구 절차가 생긴다. packet 전달 자체의 오류 복구까지 자동으로 제공한다는 뜻은 아니다.

두 방식을 비교한다

항목 IP datagram Virtual circuit
전송 전 setup end-to-end network setup 불필요 path·identifier state 설정 필요
packet 식별 destination network address local VC·label identifier
intermediate state destination prefix 중심 circuit·path별 state
경로 변경 forwarding table 변화 뒤 packet부터 달라질 수 있음 circuit 재설정·복구가 필요할 수 있음
header 처리 각 hop에서 IP destination lookup 설정 뒤 VC·label table lookup
장애 영향 routing convergence와 packet loss path state 복구와 signaling 영향

datagram은 “state가 전혀 없다”는 뜻이 아니다. router도 route, neighbor, ACL, NAT와 flow cache 같은 state를 가질 수 있다. 비교의 핵심은 전송 전에 개별 circuit을 위한 path state를 설정해야 하는가다.

MPLS는 label을 어떻게 사용할까

MPLS는 ingress node에서 packet을 FEC(Forwarding Equivalence Class)에 배정하고 짧은 label을 붙인다. transit LSR(Label Switching Router)은 top label을 lookup해 다음 hop과 새 label을 정한다.

IP packet
  ↓ ingress: FEC 분류, label push
[label 100][IP packet]
  ↓ transit: 100 → 240으로 swap
[label 240][IP packet]
  ↓ egress: label pop
IP packet

RFC 3031은 label을 FEC를 식별하는 짧고 고정 길이의 locally significant identifier로 정의한다. label value는 주소를 encoding한 것이 아니며, 인접 LSR 사이의 binding에 따라 hop별로 바뀔 수 있다.

MPLS LSP가 고전적인 virtual circuit과 비슷한 점은 label state를 따라 forwarding한다는 것이다. 그러나 MPLS를 곧바로 “TCP 같은 connection-oriented service”로 보면 안 된다.

  • LSP는 host application connection이 아니라 MPLS domain의 forwarding path다.
  • label switching 자체는 application byte stream의 재전송과 순서를 보장하지 않는다.
  • FEC는 destination prefix뿐 아니라 policy와 service class 등을 반영할 수 있다.
  • 하나의 IP flow가 여러 label stack과 tunnel 계층을 지날 수 있다.

어느 모델이 더 좋은가

datagram과 VC의 선택은 단순한 속도 비교가 아니다.

  • endpoint 수와 topology 변화가 큰가
  • path별 traffic engineering과 service policy가 필요한가
  • control plane state를 어디까지 유지할 수 있는가
  • 장애 시 packet별 우회와 path 재설정 중 어떤 모델을 운영할 것인가
  • 여러 tenant와 service를 어떤 identifier로 격리할 것인가

Internet host 사이의 기본 service는 IP datagram이지만 operator network 내부는 MPLS, tunnel, overlay와 traffic engineering을 함께 쓸 수 있다. 외부에서 connectionless로 보이는 service가 내부에서도 하나의 방식만 쓴다고 가정하지 않는다.

Linux에서 현재 route lookup 확인하기

특정 destination에 대한 local host의 route 결정을 읽는다.

ip route get 203.0.113.42

출력의 destination, via, dev, src를 보고 어느 next hop과 interface가 선택되는지 확인한다. 이는 해당 host의 현재 route lookup 결과이며, 전체 end-to-end path나 이후 packet의 동일 경로를 보장하지 않는다.

hop별 경로 관측의 한계는 traceroute로 network hop 확인하기, transport port와 socket multiplexing은 전송 계층 멀티플렉싱에서 이어진다.

참고 자료

반응형
KEEP READING
카테고리 전체 보기 →

댓글