End-to-end routing flow

IP 목적지는 끝까지 유지되고, L2 프레임은 홉마다 다시 만들어진다

PC는 먼저 목적지가 같은 서브넷인지 계산한다. 다른 서브넷이면 서버의 MAC이 아니라 기본 게이트웨이의 MAC으로 보내고, 이후 각 라우터가 목적지 IP를 기준으로 다음 홉을 고른다.

1. subnet check

목적지가 같은 prefix인가?

IP와 서브넷 마스크로 로컬/원격 목적지를 구분한다.

same subnet

목적지 MAC으로 직접 전송

ARP/ND로 최종 호스트의 링크 주소를 찾는다.

remote subnet

게이트웨이 MAC으로 전송

서버 MAC이 아니라 첫 라우터의 MAC이 L2 목적지다.

Host A

192.168.1.10

default gateway MAC으로 첫 프레임을 만든다.

R1

FIB lookup

목적지 IP 10.0.2.50에 맞는 next hop을 고른다.

R2

TTL - 1

IP 목적지는 그대로 두고 새 링크 헤더를 붙인다.

R3

last hop

목적지 네트워크에 직접 연결된 링크로 내보낸다.

Server

10.0.2.50

마지막 프레임의 목적지 MAC은 서버가 된다.

주소 변화 장부
IP src/dst

192.168.1.10 → 10.0.2.50

일반 라우팅에서는 모든 홉에서 유지된다.

L2 frame

PC→R1, R1→R2, R2→R3

현재 링크의 양 끝 MAC으로 매번 바뀐다.

TTL

홉마다 1 감소

0이 되면 폐기되어 순환을 막는다.

ARP/ND

다음 홉의 링크 주소만 찾는다

원격 서버 MAC을 처음부터 찾으려 하지 않는다.

default gateway

모르는 목적지의 첫 next hop

PC는 인터넷 전체 prefix 대신 기본 경로를 사용한다.

예외

NAT, proxy, tunnel은 그림을 바꾼다

순수 라우팅의 IP 유지 규칙을 일부러 깨거나 감쌀 수 있다.

“IP는 목적지 식별, L2는 다음 홉 전달”이 반복된다

출발지부터 목적지까지의 전송은 하나의 거대한 결정이 아니라, 각 홉에서 목적지 IP를 보고 다음 링크에 맞는 프레임을 다시 만드는 반복이다.