1. لائبريري
  2. 라우팅과 네트워크
  3. 라우팅 프로토콜

اپڊيٽ ٿيل -1 m

네트워크를 가로지르는 모든 패킷은 모든 라우터에서 같은 질문을 던집니다: "다음엔 어디로?" 라우팅 테이블이 그 답을 제공합니다.

라우팅 테이블은 일종의 결정 트리입니다. 패킷이 도착하면 라우터는 목적지 IP 주소를 조회하여 경로의 다음 단계를 파악합니다—어떤 인터페이스를 사용할지, 어떤 라우터로 전달할지, 혹은 목적지가 바로 여기인지를 판단합니다. 이 조회는 모든 패킷에 대해, 초당 수백만 번 이루어집니다. 라우팅 테이블은 패킷 전달 결정이 이루어지는 곳입니다.

라우팅 테이블의 구성 요소

라우팅 테이블의 각 항목(라우트라고 부릅니다)에는 다음 정보가 담겨 있습니다:

목적지 네트워크: 이 라우트가 적용되는 네트워크 (예: 192.168.1.0/24)

Next Hop: 다음 라우터의 IP 주소, 또는 로컬로 직접 전달함을 나타내는 표시

인터페이스: 패킷을 내보낼 물리적 또는 논리적 포트

메트릭: 이 라우트의 "비용"—같은 목적지로 가는 여러 경로 중 하나를 선택할 때 사용됩니다

관리 거리: 서로 다른 출처의 라우트가 충돌할 때 우선순위를 결정합니다

라우트 출처: 라우터가 이 라우트를 어떻게 학습했는지 (직접 연결, 정적 설정, OSPF, BGP 등)

라우트는 어디서 오는가

라우트는 네 가지 출처에서 라우팅 테이블에 추가됩니다:

직접 연결: 라우터의 인터페이스에 연결된 네트워크는 자동으로 등록됩니다. 인터페이스 GigabitEthernet0/0에 IP 192.168.1.1/24가 설정되어 있으면, 라우터는 192.168.1.0/24가 직접 도달 가능하다는 것을 자동으로 알게 됩니다.

정적 라우트: 관리자가 직접 설정합니다. "10.0.0.0/8에 도달하려면 192.168.1.254로 전달하라"고 라우터에게 직접 알려주는 방식입니다.

동적 라우팅 프로토콜: OSPF, BGP, EIGRP, RIP이 자동으로 라우트를 발견하고 공유합니다. 라우터들은 서로에게서 학습하며 협력하여 테이블을 구성합니다.

기본 라우트: 0.0.0.0/0으로 표시되며, 모든 주소와 일치합니다. 특정 라우트가 없을 때 기본 라우트가 패킷을 받아냅니다. "잘 모르겠으면 여기로" 보내는 항목입니다.

라우팅 테이블 읽기

아래는 Cisco 라우터의 실제 라우팅 테이블입니다:

Gateway of last resort is 203.0.113.1 to network 0.0.0.0

C    192.168.1.0/24 is directly connected, GigabitEthernet0/0
L    192.168.1.1/32 is directly connected, GigabitEthernet0/0
S    192.168.2.0/24 [1/0] via 10.0.1.2
O    192.168.3.0/24 [110/20] via 10.0.1.3, 00:15:30, GigabitEthernet0/1
B    8.8.8.0/24 [20/0] via 203.0.113.1, 1d02h
S*   0.0.0.0/0 [1/0] via 203.0.113.1

맨 앞의 알파벳 하나가 라우트의 출처를 알려줍니다:

  • C: 직접 연결
  • L: 로컬 (라우터 자신의 IP 주소)
  • S: 정적 라우트
  • O: OSPF
  • B: BGP
  • S*: 정적 기본 라우트

[110/20]처럼 대괄호 안에 있는 숫자는 관리 거리와 메트릭입니다. 첫 번째 숫자(110)는 신뢰 수준을 나타내며—낮을수록 더 신뢰합니다. 두 번째 숫자(20)는 해당 라우팅 프로토콜 내에서의 비용입니다.

Longest Prefix Match: 더 구체적인 것이 이긴다

여러 라우트가 목적지와 일치할 수 있을 때는, 가장 구체적인 라우트가 선택됩니다. 이를 Longest Prefix Match라고 합니다.

라우팅 테이블에 다음 항목이 있다고 가정해 봅시다:

192.168.0.0/16 via 10.0.1.1
192.168.1.0/24 via 10.0.2.1
192.168.1.128/25 via 10.0.3.1

192.168.1.200으로 향하는 패킷은 세 항목 모두와 일치합니다. 하지만 /25가 가장 긴 프리픽스(가장 구체적)이므로, 패킷은 10.0.3.1로 전송됩니다.

이 규칙은 절대적입니다. /32 호스트 라우트는 /24 네트워크 라우트보다 우선하고, /24는 /16 요약 라우트보다 우선합니다—메트릭이나 관리 거리와 관계없이. 구체성이 모든 것을 압도합니다.

관리 거리: 누구를 신뢰할 것인가?

서로 다른 라우팅 출처가 같은 목적지에 대한 라우트를 제공할 때, 관리 거리가 어느 것을 채택할지 결정합니다. 낮을수록 더 신뢰합니다:

출처관리 거리
직접 연결0
정적1
eBGP20
EIGRP90
OSPF110
RIP120
iBGP200

OSPF와 RIP이 모두 192.168.5.0/24에 대한 라우트를 광고하면, OSPF 라우트가 선택됩니다—110이 120보다 낮으니까요.

이 수치는 신뢰성을 반영합니다. 직접 연결된 라우트는 본질적으로 신뢰할 수 있습니다(케이블이 눈앞에 보이니까요). 정적 라우트는 관리자가 직접 설정한 것입니다. 동적 프로토콜은 정교함의 정도가 서로 다릅니다. iBGP는 보통 내부 프로토콜의 백업 역할을 하기 때문에 우선순위가 낮게 설정되어 있습니다.

메트릭: 최적 경로 선택

단일 라우팅 프로토콜이 같은 목적지로 가는 여러 경로를 제공할 때, 메트릭이 어느 경로가 최선인지 결정합니다. 프로토콜마다 비용을 다르게 측정합니다:

RIP: 홉 수. 거쳐야 할 라우터가 적을수록 좋습니다.

OSPF: 대역폭 기반 비용. 10 Gbps 링크는 100 Mbps 링크보다 비용이 낮습니다.

EIGRP: 대역폭, 지연, 그리고 선택적으로 신뢰성과 부하까지 고려한 복합 메트릭.

BGP: AS 경로 길이, 로컬 기본 설정, 원점 유형, MED 등 여러 속성을 순서대로 평가합니다.

일반적으로 메트릭이 낮을수록 더 좋은 경로지만, BGP의 속성 평가는 더 복잡합니다.

기본 라우트: 안전망

기본 라우트(0.0.0.0/0)는 특정 라우트가 일치하지 않을 때 패킷을 받아냅니다. 네트워크 경계에서 꼭 필요한 존재입니다:

단일 출구를 가진 스텁 네트워크는 전체 라우팅 테이블 대신 기본 라우트를 사용합니다. 모든 트래픽이 같은 문으로 나가는데, 수천 개의 라우트를 굳이 학습할 필요가 없습니다.

인터넷 게이트웨이는 인터넷으로 향하는 트래픽에 기본 라우트를 사용합니다. 가정용 라우터에는 라우트가 하나 있습니다: 모든 것을 ISP로 보내는 것입니다.

대체 경로는 특정 라우트가 실패했을 때 연결을 유지해 줍니다.

하지만 기본 라우트는 문제를 가릴 수 있습니다. 올바른 라우트가 없어도 트래픽은 "어딘가로" 향합니다. 내부에 머물러야 할 패킷이 인터넷으로 나가버릴 수 있고—무언가 고장나기 전까지는 알아차리기 어렵습니다.

ECMP: 사용 가능한 모든 경로 활용

목적지에 대한 여러 라우트가 동일한 메트릭을 가질 때, 라우터는 모두 동시에 사용할 수 있습니다. 이것이 등비용 다중 경로(ECMP, Equal-Cost Multipath)입니다.

O    192.168.5.0/24 [110/20] via 10.0.1.2, GigabitEthernet0/1
                     [110/20] via 10.0.1.3, GigabitEthernet0/2

두 경로 모두 비용이 20입니다. 라우터는 트래픽을 두 경로에 분산합니다—보통 출발지와 목적지 IP를 해싱하여, 같은 플로우는 일관된 경로로 가면서 전체 트래픽은 균형을 이루도록 합니다.

ECMP는 더 많은 대역폭(두 경로가 두 배의 트래픽 처리), 이중화(하나가 실패해도 서비스 지속), 그리고 링크 활용도 향상(어느 쪽도 유휴 상태 없음)을 제공합니다.

라우트 요약: 테이블 크기 줄이기

네 개의 라우트:

192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24

하나로:

192.168.0.0/22

이것이 라우트 요약입니다. 라우트가 적을수록 테이블이 작아지고, 조회가 빨라지며, 라우팅 프로토콜 트래픽도 줄어듭니다.

트레이드오프도 있습니다. 요약은 최적이 아닌 라우팅으로 이어질 수 있습니다. /24 네트워크 중 하나가 다른 경로를 통해 더 가깝다면, 요약 라우트는 그 정보를 숨깁니다. Longest Prefix Match 덕분에 더 구체적인 라우트는 항상 우선하므로, 요약의 위치를 신중하게 선택해야 합니다.

부동 정적 라우트: 백업 경로

인위적으로 높은 관리 거리를 가진 정적 라우트는 백업으로 활용됩니다:

S    192.168.5.0/24 [200/0] via 10.0.2.1

관리 거리가 200이므로, OSPF 라우트(관리 거리 110)가 있는 동안에는 이 라우트가 라우팅 테이블에 설치되지 않습니다. 그러다 OSPF가 실패하면—동적 라우트가 사라지면—정적 라우트가 부상하여 활성화됩니다.

이 방식은 복잡한 설정 없이도 자동 장애 조치를 가능하게 합니다.

라우팅 테이블 크기

테이블 크기는 네트워크에 따라 크게 다릅니다:

가정용 라우터: 수십 개의 라우트 (로컬 네트워크, 기본 라우트)

기업 엣지: 수백에서 수천 개 (내부 네트워크, VPN, 고객 연결)

인터넷 코어: 전체 인터넷 라우팅 테이블은 95만 개 이상의 라우트

테이블이 클수록 더 많은 메모리와 더 빠른 조회 속도가 요구됩니다. 현대 라우터는 특수화된 자료 구조(패트리샤 트라이, TCAM)를 사용하여 방대한 테이블도 일정한 시간 내에 검색합니다.

라우팅 테이블로 장애 해결하기

패킷이 목적지에 도달하지 못할 때, 라우팅 테이블이 그 이유를 알려줍니다:

라우트 없음: 라우터가 목적지에 도달하는 방법을 모릅니다. 라우트를 추가하거나 라우팅 프로토콜 설정을 확인하세요.

잘못된 라우트: 트래픽이 예상치 못한 경로로 흐릅니다. 메트릭과 관리 거리를 확인하세요.

Route Flapping: 라우트가 빠르게 나타났다 사라지기를 반복합니다. 링크, 라우팅 피어, 또는 프로토콜 설정 어딘가에 불안정한 요소가 있습니다.

재귀적 조회 실패: Next Hop에 도달할 수 없습니다. 라우트는 존재하지만 사용할 수 없는 상태입니다.

모든 플랫폼에서 라우팅 테이블을 확인하는 명령어가 있습니다: show ip route (Cisco), route print (Windows), ip route show (Linux), netstat -rn (macOS/BSD). 자신이 사용하는 명령어를 익혀두세요.

라우팅 테이블에 관해 자주 묻는 질문

목적지와 일치하는 라우트가 없으면 어떻게 되나요?

기본 라우트를 포함하여 일치하는 라우트가 전혀 없다면, 라우터는 패킷을 폐기하고 발신자에게 ICMP "목적지 도달 불가(Destination Unreachable)" 메시지를 보냅니다. 기본 라우트가 중요한 이유가 바로 이것입니다. 최적의 경로가 아니더라도 패킷이 항상 갈 곳을 보장해 줍니다.

라우팅 테이블은 얼마나 자주 바뀌나요?

네트워크 환경에 따라 다릅니다. 가정용 라우터의 테이블은 몇 달 동안 그대로일 수도 있습니다. 인터넷 백본 라우터의 테이블은 끊임없이 변합니다—인터넷 토폴로지가 달라지면서 라우트가 나타나고, 사라지고, 갱신됩니다. 동적 라우팅 프로토콜은 계속해서 정보를 교환하며, 테이블은 수 초에서 수 분 내에 변화를 반영합니다.

기본 라우트를 여러 개 가질 수 있나요?

네. 두 개의 기본 라우트의 메트릭이 동일하면 ECMP가 두 경로에 트래픽을 고르게 분산합니다. 메트릭이 다르면 더 좋은 쪽만 사용되고 나머지는 백업으로 대기합니다. 인터넷 회선이 이중화된 네트워크에서는 기본 라우트를 여러 개 두는 것이 일반적입니다.

traceroute가 때마다 다른 경로를 보여주는 이유는 무엇인가요?

ECMP 로드 밸런싱은 패킷 특성에 따라 트래픽을 분산합니다. traceroute 프로브는 실제 트래픽과 다른 방식으로 해싱될 수 있어, 다른 경로가 드러날 수 있습니다. 일부 구현에서는 여러 경로를 노출하기 위해 프로브마다 의도적으로 출발지 포트를 다르게 설정합니다.

ڇا هي صفحو مددگار هو؟

😔
🤨
😃