iBetter Books
수정

라우터가 하는 일

서울에서 부산까지 편지를 보낼 때, 편지는 여러 우체국을 거쳐 목적지에 도달합니다. 각 우체국은 편지의 주소를 보고 다음 어느 우체국으로 넘길지 결정합니다. 인터넷에서 이 우체국 역할을 하는 것이 라우터입니다. 라우터가 없다면 인터넷은 같은 네트워크 안의 작은 통신에 그쳐야 합니다.

패킷을 받아 길을 찾다

라우터는 패킷을 받으면 목적지 IP 주소를 꺼내 읽습니다. 그리고 자신이 가진 라우팅 테이블을 펼쳐 이 주소가 어느 방향으로 가야 하는지 찾습니다. 다음 목적지, 즉 넥스트 홉이 결정되면 패킷을 그쪽 인터페이스로 내보냅니다.

여기서 중요한 점이 있습니다. 패킷이 라우터를 통과할 때 IP 주소는 바뀌지 않습니다. 출발지와 목적지 IP 주소는 처음부터 끝까지 동일합니다. 반면 MAC 주소는 각 구간마다 바뀝니다. 서울에서 대전 라우터에 도착하면 출발지 MAC은 서울 라우터의 MAC이 되고, 대전에서 부산으로 넘어갈 때는 대전 라우터의 MAC이 됩니다. IP 주소는 최종 목적지, MAC 주소는 다음 이웃을 가리킨다고 기억하면 됩니다.

라우팅 테이블

라우터는 라우팅 테이블을 항상 가지고 있습니다. 이 테이블은 목적지 네트워크 주소와 그쪽으로 가기 위한 인터페이스 또는 넥스트 홉 주소의 쌍으로 이루어집니다.

라우터가 패킷의 목적지 주소를 테이블에서 찾을 때는 가장 긴 프리픽스를 우선합니다. 192.168.1.0/24192.168.0.0/16 두 항목이 모두 일치한다면, 더 구체적인 /24를 선택합니다. 더 좁은 주소 범위가 더 정확한 길을 뜻하기 때문입니다. 어떤 항목도 일치하지 않으면 기본 경로, 즉 0.0.0.0/0으로 보냅니다. 집에서 공유기가 모든 인터넷 트래픽을 ISP 쪽으로 내보내는 것이 바로 이 기본 경로를 이용하는 것입니다.

정적 라우팅과 동적 라우팅

라우팅 테이블에 경로를 채우는 방법은 두 가지입니다.

정적 라우팅은 관리자가 직접 경로를 입력합니다. 변경이 거의 없는 작은 네트워크에 어울립니다. 간단하고 예측 가능하지만, 네트워크가 바뀔 때마다 사람이 직접 수정해야 합니다.

동적 라우팅은 라우터끼리 서로 대화하며 자동으로 경로를 학습합니다. 어느 링크가 끊기면 다른 경로를 자동으로 찾아냅니다. 인터넷 규모의 복잡한 망에서는 동적 라우팅 없이는 운영이 불가능합니다. 이 '대화'를 담당하는 프로토콜이 바로 다음 절에서 배울 거리벡터와 링크상태 알고리즘입니다.