Routing vs Forwarding

라우팅은 경로 정보를 만들고, 포워딩은 패킷마다 다음 홉을 고른다

같은 “길 찾기”처럼 보이지만 역할이 다르다. 라우팅은 RIB에 후보 경로를 만들고 하나를 선택하는 제어 평면의 일이고, 포워딩은 FIB를 빠르게 조회해 실제 패킷을 출력 인터페이스로 내보내는 데이터 평면의 일이다.

라우팅은 RIB 후보를 고르고 FIB로 설치하며, 포워딩은 그 FIB를 패킷마다 조회해 다음 홉 체인을 한 칸씩 전진시킨다.

control plane

라우팅: 후보 경로를 모으고 하나를 선택

경로 출처

connected, static, OSPF, BGP 같은 정보가 RIB 후보가 된다.

선호도와 정책

AD, metric, route-map, prefix filter가 어떤 후보를 쓸지 바꾼다.

install

RIB에서 FIB로 내려감

RIB 후보와 출처가 보이는 운영자 관점
best path prefix별 선택 결과
FIB 패킷 처리용 next hop 표
data plane

포워딩: 들어온 패킷을 한 홉 앞으로 전송

목적지 IP 조회

FIB에서 가장 구체적으로 맞는 prefix의 next hop을 찾는다.

출력 처리

TTL 감소, L2 헤더 작성, ACL/QoS/큐잉 뒤 인터페이스로 내보낸다.

PC

기본 게이트웨이

로컬 서브넷 밖 목적지는 라우터 MAC으로 보낸다.

R1

다음 홉 선택

R1은 전체 여정이 아니라 다음 이웃만 결정한다.

R2

또 한 번 조회

같은 목적지 IP로 자기 FIB를 독립적으로 본다.

R3

프레임 재작성

링크가 바뀌므로 L2 헤더는 매 홉 새로 붙는다.

DST

목적지 네트워크

마지막 링크에서 실제 서버 또는 그 네트워크에 도착한다.

경로 생성

라우팅은 패킷마다 수행하지 않는다

토폴로지 변화와 정책 반영은 제어 평면에서 미리 계산된다.

패킷 처리

포워딩은 빠른 반복 작업

매 패킷마다 같은 구조의 조회와 출력 처리를 수행한다.

장애 분석

테이블 문제와 링크 문제를 나눠 본다

경로가 없으면 라우팅, 링크 출력이 막히면 포워딩 쪽부터 의심한다.

한 라우터가 전체 길을 지휘하는 것이 아니다

각 라우터는 자기 테이블 기준으로 다음 홉을 고른다. 이 작은 판단이 여러 번 이어져 출발지에서 목적지 네트워크까지 패킷이 이동한다.