Chapter 08

라우팅: 길 찾기

서울에서 보낸 패킷이 런던 서버까지 가는 동안 스무 대 가까운 라우터를 지난다. 그런데 그중 어느 라우터도 서울에서 런던까지의 전체 경로를 알지 못한다. 각자 “이 주소라면 저쪽 선으로”라는 표 하나만 보고 다음 장비로 넘길 뿐이다. 그 표는 누가 만들고, 선이 끊기면 어떻게 고쳐질까? 그리고 서로 남남인 수만 개의 회사 네트워크는 어떻게 하나의 인터넷이 될까?

라우터는 다음 한 걸음만 정한다

7장에서 IP 주소가 네트워크 부분과 호스트 부분으로 나뉜다는 것을 보았다. 라우터(router)는 서로 다른 네트워크를 잇는 장비로, 패킷이 들어오면 목적지 IP 주소를 보고 어느 출구(인터페이스)로, 바로 다음 어느 장비(다음 홉)에게 넘길지 정한다. 라우터 하나를 지나는 것을 홉(hop)이라 한다. 전체 경로는 아무도 계획하지 않는다. 홉마다의 결정이 이어져 경로가 된다. 이를 홉 단위 전달(hop-by-hop forwarding)이라 한다.

물류 허브의 분류표

택배 허브의 분류 직원은 상자가 서울에서 제주의 어느 아파트까지 어떤 경로로 갈지 계산하지 않는다. 벽에 붙은 표를 본다. “제주 63번대 우편번호 → 3번 레인(김포행 트럭)”, “그 밖의 모든 것 → 1번 레인(대전 중앙 허브)”. 김포 허브에도 비슷한 표가 있다. 표만 정확하다면 각자 한 걸음씩만 옳게 보내도 상자는 목적지에 닿는다. 이 표를 만들고 고치는 일은 본사 기획팀(제어 평면)이, 쏟아지는 상자를 표대로 레인에 던지는 일은 현장 분류기(데이터 평면)가 한다.

그래서 라우터의 일은 두 층으로 나뉜다.

이웃 라우터 이웃 라우터 라우터 한 대 제어 평면 (CPU · 소프트웨어) OSPF·BGP 메시지 주고받기 → 경로 계산(다익스트라 등) → 라우팅 테이블(RIB): 알려진 모든 경로 망이 바뀔 때마다 · ms~초 단위 목적지별 최선 경로만 내려보냄 데이터 평면 (전용 칩) 포워딩 테이블(FIB) 조회: 최장 접두사 일치 TTL −1 · 체크섬 갱신 · 출력 포트 큐로 패킷마다 · ns 단위 · 초당 수십억 개 경로 정보 패킷
그림 8-1. 라우터의 두 층. 점선은 라우터끼리 길 정보를 주고받는 제어 메시지, 실선은 사용자 패킷이다. 표를 만드는 쪽(위)과 표를 쓰는 쪽(아래)을 나눈 덕분에, 경로 계산이 몇 초 걸려도 패킷은 계속 나노초 단위로 흐른다. 이 둘을 아예 다른 장비로 떼어 낸 것이 SDN(21장)이다.

라우팅 테이블과 최장 접두사 일치

라우팅 테이블(routing table)의 각 줄은 “이 주소 덩어리(프리픽스)로 가는 패킷은 이 다음 홉으로”라는 규칙이다. 목적지 주소 하나가 여러 줄에 동시에 걸릴 수 있다. 예를 들어 10.1.2.200은 10.0.0.0/8에도, 10.1.0.0/16에도, 10.1.2.0/24에도 속한다. 이때 라우터는 가장 긴 프리픽스, 즉 가장 구체적인 규칙을 고른다. 이를 최장 접두사 일치(longest prefix match)라 한다. “서울시 → 대전 허브”보다 “서울시 강남구 테헤란로 → 강남 센터”가 더 정확한 지시이기 때문이다.

어느 줄에도 안 걸리는 패킷을 위해 거의 모든 라우터에는 0.0.0.0/0 줄이 있다. 프리픽스 길이 0, 즉 비교할 비트가 하나도 없으므로 모든 주소와 일치하지만 가장 짧아서 다른 일치가 없을 때만 뽑힌다. 이를 기본 경로(default route)라 한다. 집 공유기의 라우팅 테이블은 사실상 “우리 집 192.168.0.0/24는 안으로, 나머지(0/0)는 통신사로” 두 줄뿐이다.

SIMULATOR

라우팅 테이블 조회: 가장 긴 일치를 찾아라

예시 목적지
프리픽스비트 비교 (초록 일치 · 빨강 불일치 · 회색 상관없음)다음 홉결과
 
일치한 줄—
선택된 프리픽스—
다음 홉—
표는 프리픽스가 긴 순서로 정렬해 보여 준다. 위에서부터 처음 일치하는 줄이 곧 답이다. 해볼 것: 10.1.2.200은 네 줄과 일치하지만 /25가 이긴다. 10.1.2.5는 /25의 첫 비트(128 자리)에서 어긋난다. 1.1.1.1은 기본 경로만 남는다. ✕로 /25 줄을 지우면 같은 주소가 /24로 바뀌어 간다. 실제 라우터 칩은 이 비교를 TCAM이나 트라이(trie) 구조로 표 크기와 거의 상관없이 한 번에 해낸다(17장).
예측해 보기

목적지가 10.1.99.1일 때 위의 표에서 선택되는 줄은?

시뮬레이터에서 ‘10.1.99.1’을 눌러 확인하자.

10.1.99.1은 /0, /8, /16과 일치하지만 /24(10.1.2.x)와는 셋째 바이트가 달라 어긋난다. 일치한 것 중 가장 긴 /16, 즉 서울 지사로 간다.

표는 누가 만드나: 거리 벡터와 링크 상태

가장 단순한 방법은 관리자가 손으로 적는 정적 라우팅(static routing)이다. 집 공유기의 기본 경로나 작은 지점의 “나머지는 본사로” 한 줄처럼 길이 하나뿐인 곳에 딱 맞다. 하지만 링크가 끊겨도 표는 그대로라 패킷은 끊긴 길로 계속 간다. 라우터가 수십 대를 넘으면 사람이 따라갈 수 없다. 그래서 라우터들이 서로 정보를 주고받아 표를 스스로 만드는 동적 라우팅을 쓴다. 방식은 크게 둘이다.

거리 벡터: 이웃에게 듣는 소문 링크 상태: 모두가 같은 지도 X R1 R2 R3 “X까지 1” “X까지 2” “X까지 3” 자기 표(목적지별 거리)를 이웃에게만 알린다. R3은 망 모양을 모른다. “R2 쪽으로 3걸음”만 안다. 벨만-포드 · RIP · 단순하지만 수렴이 느리다 R1 R2 R3 R4 R5 R1이 “내 링크: R2(2), R4(5)”를 전체에 퍼뜨린다(홍수). 모두 같은 지도를 갖고 각자 최단 경로를 계산한다. 다익스트라 · OSPF, IS-IS · 빠르지만 메모리·계산이 더 든다
그림 8-2. 두 방식의 차이. 거리 벡터는 “누구를 거쳐 몇 걸음”이라는 결론만 이웃끼리 전하고, 링크 상태는 원재료(링크 목록)를 모두에게 뿌려 각자 결론을 낸다.
거리 벡터 (RIP)링크 상태 (OSPF, IS-IS)
누구에게 말하나이웃에게만망 전체에(홍수)
무엇을 말하나목적지별 거리 (결론)내 링크와 비용 (원재료)
각 라우터가 아는 것“누구를 거쳐 몇 걸음”망 전체 지도
계산벨만-포드, 이웃 소식이 올 때마다 조금씩다익스트라, 지도가 바뀌면 한 번에
링크 변화 후 수렴RIP 기본 설정이면 수십 초~분, 고리가 생기기 쉬움수십 ms~수 초 (설정에 따라)
링크 비용홉 수 (최대 15)관리자가 정함 (보통 대역폭에 반비례)

링크가 끊기면: 경로 수렴

링크가 끊기거나 라우터가 꺼지면 모든 라우터의 표가 새 현실에 맞게 다시 일치해야 한다. 이 상태에 이르는 것을 수렴(convergence)이라 한다. 수렴 중에는 라우터마다 서로 다른 표를 들고 있어서 패킷이 버려지거나, 두 라우터가 서로에게 패킷을 떠넘기는 고리가 잠시 생긴다(이때 TTL이 패킷을 구한다, 7장). 수렴이 빠를수록 장애가 짧다.

아래 시뮬레이터에서 두 방식을 직접 비교해 보자. 링크 상태 모드는 다익스트라가 거리가 가장 가까운 라우터부터 하나씩 확정해 가는 순서를 단계별로 보여 준다. 거리 벡터 모드는 모든 라우터가 한 라운드에 한 번씩 이웃과 거리표를 바꿔 보는 과정을 보여 준다.

SIMULATOR

경로 수렴: 링크를 눌러 끊고 복구하기

방식
기준 라우터 (노드를 눌러도 된다)
시나리오
——
——
——
선 위 숫자는 링크 비용. 링크 상태 모드: 파란 라우터는 확정, 주황 점선은 후보(임시 거리)다. 단계 슬라이더를 0부터 올리며 “아직 확정되지 않은 것 중 가장 가까운 것을 확정하고, 그 이웃의 임시 거리를 줄인다”를 따라가 보자. 거리 벡터 모드: 숫자는 각 라우터가 생각하는 기준 라우터까지의 거리, 화살표는 다음 홉이다. 16 이상은 RIP처럼 ‘∞(갈 수 없음)’로 본다. 단순화: 모든 라우터가 동시에 한 라운드씩 교환한다고 가정했다. 실제 RIP은 30초마다 보내고 변화가 있으면 곧바로(triggered update) 보낸다.

‘무한대로 세기 보기’를 눌러 보자. H는 G와만 연결된 막다른 라우터다. G–H 링크가 끊기면 G는 H로 갈 길이 없어야 맞다. 그런데 G의 이웃 E는 방금 전까지 “H까지 3”이라고 말하고 있었다. 그 길이 사실 G 자신을 거치는 길이라는 것을 G는 모른다. 그래서 G는 “E를 거치면 5”라고 믿고, E는 G의 새 말을 듣고 7로, 다시 G가 9로… 두 라우터가 서로의 낡은 소문을 근거로 거리를 조금씩 올리며 16(∞)에 닿을 때까지 패킷을 주고받는다. 이것이 무한대로 세기(count to infinity) 문제다. RIP이 무한대를 16이라는 작은 수로 정한 이유이기도 하다.

예측해 보기

포이즌 리버스를 켜고 ‘무한대로 세기 보기’를 다시 하면 어떻게 될까?

수렴 시뮬레이터에서 포이즌 리버스를 켠 뒤 시나리오 버튼과 ‘자동 재생’을 눌러 보자.

포이즌 리버스는 “내가 너를 거쳐 가는 목적지는 너에게 ∞라고 말한다”는 규칙이라 두 라우터 사이의 핑퐁은 막는다. 하지만 D–E–F처럼 셋 이상이 얽힌 고리에서는 낡은 정보가 돌아서 계속 올라간다. 거리 벡터의 근본 한계이며, 링크 상태와 BGP의 경로 벡터가 이를 피하는 이유다.

망들의 망: 자율 시스템과 BGP

OSPF는 한 회사 안에서는 훌륭하지만 인터넷 전체에 쓸 수는 없다. 세상 모든 링크를 하나의 지도에 담을 수도 없고, 무엇보다 통신사들은 서로 경쟁 회사다. 내 망의 내부 구조를 경쟁사에 보여 줄 이유도, 남의 트래픽을 공짜로 실어 줄 이유도 없다. 그래서 인터넷은 두 층으로 라우팅한다.

하나의 회사(또는 기관)가 한 가지 라우팅 정책으로 운영하는 네트워크 묶음을 자율 시스템(Autonomous System, AS)이라 하고, 전 세계에서 유일한 AS 번호를 받는다. 통신사, 클라우드, 대학, 큰 콘텐츠 회사가 각각 AS다. 지금 인터넷 라우팅에 나타나는 AS는 약 7~8만 개다. AS 안에서는 OSPF·IS-IS 같은 내부 프로토콜을 쓰고, AS와 AS 사이는 단 하나의 프로토콜 BGP(Border Gateway Protocol)로 잇는다.

BGP는 경로 벡터 방식이다. 이웃 AS에게 “208.65.152.0/22에는 AS 3491 → AS 36561을 거쳐 갈 수 있다”처럼 프리픽스와 함께 지나갈 AS 목록 전체를 알린다. 받은 AS는 목록에 자기 번호가 있으면 고리이므로 버린다(무한대로 세기를 피하는 방법). 그리고 가장 짧은 경로가 아니라 정책으로 고른다. “돈을 받는 고객 경로 > 무료로 주고받는 피어 경로 > 돈을 내는 상위 회사 경로” 순으로 선호하는 식이다. 그 결과 전 세계 BGP 테이블에는 IPv4 프리픽스가 약 100만 개, IPv6가 약 20만 개 넘게 올라 있고, 인터넷 핵심 라우터는 이 표 전체를 들고 다닌다.

Tier-1 통신사Tier-1 통신사Tier-1 통신사 국내 ISP A국내 ISP B IXP (인터넷 교환 지점)한 건물의 큰 스위치에 여러 AS가 접속 가정 · 기업 고객콘텐츠 · CDN · 클라우드가정 · 기업 고객 Tier-1끼리는 피어링: 서로 돈을 내지 않고 맞교환 트랜짓 ($): 상위에게 돈을 내고인터넷 전체로 가는 길을 산다 IXP에서 피어링:고객 트래픽만 무료로 직접 교환 트랜짓 (화살표 쪽에 돈을 낸다) 피어링 (대가 없이 맞교환)
그림 8-3. 인터넷의 사업 구조. 트랜짓(transit)은 돈을 내고 인터넷 전체로 가는 길을 사는 관계, 피어링(peering)은 두 AS가 서로의 고객 트래픽만 대가 없이 맞바꾸는 관계다. IXP(Internet Exchange Point)에 들어가면 수십~수백 개 AS와 한 번에 피어링할 수 있어 트랜짓 비용과 지연이 함께 준다.
왜 같은 서울 안에서도 멀리 돌아갈까

두 국내 통신사가 직접 피어링하지 않으면, 같은 동네 두 집 사이의 패킷이 해외 IXP나 상위 트랜짓 회사를 거쳐 돌아올 수 있다(“트롬본 경로”). BGP는 최단 거리가 아니라 계약과 정책을 따르기 때문이다. 나라마다 국내 IXP를 키우려는 이유가 여기 있다.

BGP 사고와 RPKI

BGP는 1989년, 서로 아는 연구 기관 몇십 곳이 인터넷을 운영하던 시절에 설계됐다. 그래서 “이웃이 알려 준 경로는 믿는다”가 기본이다. 어떤 AS가 실수로든 고의로든 남의 프리픽스를 “내 것”이라고 광고하면 그 거짓말이 이웃의 이웃으로 퍼진다. 이를 경로 하이재킹(hijack)이라 하고, 받은 경로를 넘기면 안 되는 곳으로 넘기는 실수를 경로 누출(route leak)이라 한다.

가장 유명한 사건은 2008년 2월이다. 파키스탄 정부가 국내에서 유튜브를 막으라고 지시하자, 파키스탄 텔레콤(AS 17557)은 유튜브 주소 208.65.153.0/24를 자기 망 안의 빈 곳으로 보내는 경로를 만들었다. 이 경로가 실수로 상위 트랜짓 회사 PCCW(AS 3491)로 광고되었고, PCCW는 걸러내지 않고 전 세계에 퍼뜨렸다. 유튜브 자신은 더 큰 208.65.152.0/22를 광고하고 있었으므로, 전 세계 라우터는 최장 접두사 일치에 따라 더 구체적인 /24, 즉 파키스탄 쪽을 골랐다. 유튜브는 약 두 시간 동안 세계 대부분에서 접속되지 않았다.

SIMULATOR

BGP 하이재킹: 거짓 광고는 어디까지 퍼지나

파키스탄 텔레콤의 광고
RPKI 경로 검증(ROV)을 하는 AS
유튜브(208.65.153.238)로 가는 트래픽을 빼앗긴 AS—
한국 ISP의 선택—
이유—
초록 화살표는 진짜 유튜브(AS 36561)로, 빨간 화살표는 파키스탄 텔레콤(AS 17557)으로 가는 다음 홉이다. 같은 길이(/22)로 위조하면 AS 경로가 더 짧은 쪽을 고르므로 가까운 AS만 속는다. /24로 위조하면 거리와 상관없이 모두가 더 구체적인 경로를 고른다. 단순화: 고객·피어·트랜짓 정책은 빼고 AS 경로 길이만으로 고르며, 길이가 같으면 먼저 받은(진짜) 경로를 유지한다. 트랜짓 1·2와 유럽·미국·일본·한국 ISP의 AS 번호는 문서용 번호(64500번대)다.

이를 막는 장치가 RPKI(Resource Public Key Infrastructure)다. 주소 주인이 지역 레지스트리를 통해 “208.65.152.0/22는 AS 36561만 광고할 수 있고, /22보다 잘게 쪼개면 안 된다”는 전자 서명된 증명(ROA)을 올려 둔다. 라우터는 받은 경로를 이 증명과 대조해 맞지 않으면(Invalid) 버린다. 이를 ROV(Route Origin Validation)라 한다. 2025년 무렵 IPv4 경로의 절반 남짓이 ROA로 보호되고, 대형 트랜짓 회사 상당수가 ROV를 하지만, 시뮬레이터에서 보듯 중간에 검증하지 않는 AS가 하나라도 있으면 그 뒤쪽은 여전히 속는다. 또 ROV는 “출발 AS”만 확인하므로 경로 중간을 위조하는 공격은 막지 못해, 경로 전체를 검증하는 기술(BGPsec, ASPA)이 준비되고 있다.

연도사건무슨 일이 있었나
2008파키스탄 텔레콤의 유튜브 하이재킹국내 차단용 /24가 PCCW를 통해 전 세계로 새어 나감. 약 2시간 유튜브 불통
2018아마존 DNS 주소 하이재킹공격자가 Route 53 DNS 주소를 가로채 암호화폐 지갑 사이트 이용자를 가짜 서버로 유도
2019버라이즌 경로 누출작은 고객사의 최적화 장비가 만든 잘게 쪼갠 경로를 대형 통신사가 그대로 전파. 클라우드플레어 등 일부 서비스 수 시간 장애
2021페이스북 6시간 장애백본 점검 명령 실수로 데이터센터 연결이 끊기자, DNS 서버들이 스스로 BGP 광고를 거둬들임. facebook.com의 주소를 아무도 찾을 수 없게 되어 페이스북·인스타그램·왓츠앱이 약 6시간 사라짐

페이스북 사건은 하이재킹이 아니라 스스로 경로를 거둔 사고다. 인터넷에서 어떤 주소로 가는 길은 누군가 BGP로 “여기 있다”고 광고해야만 존재한다. 광고가 사라지면 서버가 멀쩡히 켜져 있어도 세상에서 사라진다.

traceroute: 경로를 엿보는 TTL 트릭

내 패킷이 어떤 라우터들을 거쳐 가는지 직접 볼 수 있다. 1987년 반 제이콥슨(Van Jacobson)이 만든 traceroute(윈도우는 tracert)는 7장의 TTL을 영리하게 이용한다. TTL을 1로 정해 보내면 첫 라우터가 TTL을 0으로 만들고 패킷을 버리면서 “시간 초과(ICMP Time Exceeded)” 메시지를 돌려준다. 그 메시지의 출발지 주소가 바로 첫 번째 라우터다. TTL을 2로 보내면 두 번째 라우터가, 3이면 세 번째가 정체를 드러낸다. 목적지에 닿으면 목적지가 다른 종류의 응답(포트 도달 불가 또는 Echo Reply)을 보내므로 끝난 것을 안다. 홉마다 보통 세 번씩 보내 왕복 시간(RTT)을 잰다.

SIMULATOR

가상의 traceroute 실행하기

서울에서 목적지
 
홉 수—
목적지 왕복 시간—
가장 크게 늘어난 구간—
한 줄 = 한 홉, 숫자 셋 = 같은 TTL로 세 번 보낸 왕복 시간. * * *는 그 라우터가 ICMP 응답을 보내지 않도록(또는 속도 제한하도록) 설정된 경우로, 길이 끊긴 것이 아니다. 중간 홉의 시간이 뒤 홉보다 클 때도 있는데, 라우터가 패킷 전달(칩)보다 ICMP 생성(CPU)을 뒤로 미루기 때문이다. 값이 한꺼번에 크게 뛰는 곳이 바다를 건너는 구간이다. 주소와 이름은 가상이며 지연은 대표적인 크기 수준이다.
보이지 않는 것들

traceroute가 보여 주는 것은 “가는 길”뿐이다. 응답이 돌아오는 길은 다를 수 있다(비대칭 경로). 또 한 홉처럼 보이는 구간 안에 MPLS 터널이나 스위치 수십 대가 숨어 있기도 하고, 같은 목적지라도 부하 분산(ECMP, 20장) 때문에 TTL마다 다른 라우터가 답하기도 한다. 그래도 “어디서 지연이 생기는가”를 가늠하는 데는 여전히 최고의 도구다(23장).

애니캐스트: 같은 주소, 여러 장소

보통 IP 주소 하나는 기기 하나를 가리킨다(유니캐스트). 그런데 BGP는 “이 프리픽스는 여기 있다”는 광고만 믿는다. 그렇다면 서울, 도쿄, 프랑크푸르트의 서버가 똑같은 프리픽스를 동시에 광고하면? 각 지역의 라우터는 자기에게 가장 가까운(AS 경로가 짧은) 광고를 고르므로, 사용자는 저절로 가장 가까운 서버로 간다. 이것이 애니캐스트(anycast)다.

프랑크푸르트 서버서울 서버도쿄 서버 광고 203.0.113.0/24광고 203.0.113.0/24광고 203.0.113.0/24 파리 사용자부산 사용자오사카 사용자 모두 “203.0.113.53으로 DNS 질의”를 보낸다 → 각자 가장 가까운 곳에 도착 서울 서버가 고장 나 광고를 거두면, 부산 사용자의 경로는 BGP 수렴 후 도쿄로 넘어간다
그림 8-4. 애니캐스트. 주소는 하나지만 받는 곳은 여러 곳이다. 가까운 곳으로 가니 빠르고, 한 곳이 무너져도 나머지가 받아 주며, 대규모 공격 트래픽도 여러 곳으로 흩어진다.

DNS 루트 서버는 이름이 13개(a~m)뿐이지만 애니캐스트로 전 세계 약 1,900곳 이상에 복제되어 있다. 1.1.1.1, 8.8.8.8 같은 공용 DNS와 대부분의 CDN(10장)도 애니캐스트를 쓴다. 단점도 있다. 경로가 도중에 바뀌면 같은 연결의 패킷이 다른 서버로 갈 수 있어서, 짧은 질의응답(DNS, UDP)에 특히 잘 맞고 긴 TCP 연결에는 조심스럽게 쓴다.

핵심 정리

  1. 라우터는 목적지 IP를 보고 다음 홉만 정한다. 패킷마다 표를 찾아 넘기는 포워딩(데이터 평면, ns)과 표를 만드는 라우팅(제어 평면, ms~s)은 분리되어 있다.
  2. 라우팅 테이블에서 여러 줄이 일치하면 가장 긴 프리픽스를 고른다. 0.0.0.0/0 기본 경로는 다른 일치가 없을 때만 쓰인다.
  3. 정적 라우팅은 손으로 적고, 동적 라우팅은 라우터끼리 정보를 주고받는다. 거리 벡터(RIP, 벨만-포드)는 이웃에게 거리를, 링크 상태(OSPF, 다익스트라)는 전체에 링크 정보를 알린다.
  4. 링크 변화 후 모든 표가 다시 맞춰지는 것이 수렴이다. 거리 벡터는 낡은 소문 때문에 무한대로 세기가 생길 수 있고, 링크 상태는 지도를 받자마자 다시 계산해 빠르다.
  5. 인터넷은 약 7~8만 개의 AS가 BGP(경로 벡터, 정책 기반)로 이어진 것이다. 돈을 내는 트랜짓, 맞교환하는 피어링, 피어링 장소인 IXP가 그 경제 구조다. 전 세계 표는 IPv4만 약 100만 프리픽스.
  6. BGP는 이웃의 광고를 믿으므로 하이재킹·누출에 약하다(2008 유튜브, 2021 페이스북). RPKI 서명과 ROV 검증이 출발 AS 위조를 막는다.
  7. traceroute는 TTL을 1씩 늘려 보내 홉마다 ICMP 시간 초과를 받아 경로와 RTT를 그린다. 애니캐스트는 같은 프리픽스를 여러 곳에서 광고해 가장 가까운 곳으로 보낸다.

확인 퀴즈

라우팅 테이블에 0.0.0.0/0, 172.16.0.0/12, 172.16.4.0/22, 172.16.5.0/24가 있다. 목적지 172.16.6.9는 어느 줄로 갈까?

/22인 172.16.4.0은 172.16.4.0~172.16.7.255를 덮으므로 172.16.6.9와 일치한다. /24(172.16.5.x)와는 일치하지 않는다. 일치하는 /0, /12, /22 중 가장 긴 /22를 고른다.

다음 중 라우터의 데이터 평면이 하는 일은?

나머지는 표를 만드는 제어 평면의 일이다. 데이터 평면은 만들어진 표(FIB)를 패킷마다 빠르게 조회해 전달한다.

모든 라우터가 망 전체 지도를 갖고 각자 다익스트라로 경로를 계산하는 프로토콜은?

OSPF(그리고 IS-IS)는 링크 상태 프로토콜이다. RIP은 거리 벡터, DHCP·ARP는 7장의 주소 관련 프로토콜이다.

‘무한대로 세기’ 문제가 생기는 근본 원인은?

거리 벡터는 “얼마나 먼지”만 전하고 “어떤 길로”는 전하지 않는다. 그래서 끊긴 경로에 대한 낡은 소문이 서로를 근거로 조금씩 커진다. BGP는 AS 경로 전체를 실어 보내 이 문제를 피한다.

2008년 파키스탄 텔레콤의 광고가 전 세계 유튜브 트래픽을 끌어간 이유는?

라우터는 거리와 상관없이 더 긴 프리픽스를 고른다. 그래서 더 잘게 쪼갠 위조 광고는 받은 모든 곳에서 이긴다. ROA의 최대 길이(maxLength) 제한이 이를 막는다.

traceroute가 각 홉의 라우터 주소를 알아내는 방법은?

TTL이 k인 패킷은 k번째 라우터에서 0이 되어 버려지고, 그 라우터가 출발지에게 ICMP Time Exceeded를 보낸다. 그 메시지의 출발지 주소가 k번째 홉이다.