WIPIVERSE

라우팅 테이블

라우팅 테이블(영어: routing table)은 컴퓨터 네트워크에서 목적지 주소를 해당 목적지에 도달하기 위한 네트워크 경로(노선) 정보로 변환하는 데 사용되는 데이터 구조이다. 라우터(router)를 비롯한 네트워크 장비가 패킷을 올바른 목적지로 전달하기 위해 참조하는 일종의 경로 정보 데이터베이스 역할을 한다.

라우팅 테이블의 각 항목(entry)은 일반적으로 다음과 같은 정보를 포함한다.

  • 목적지 네트워크(Destination Network): 패킷이 도달해야 할 최종 목적지 IP 주소 또는 네트워크 대역.
  • 서브넷 마스크(Subnet Mask): 목적지 주소의 네트워크 부분과 호스트 부분을 구분하는 데 사용된다.
  • 넥스트 홉(Next Hop): 목적지에 도달하기 위해 패킷을 다음으로 전달해야 할 라우터의 IP 주소.
  • 인터페이스(Interface): 패킷을 내보낼 로컬 네트워크 인터페이스(예: eth0, wlan0 등).
  • 메트릭(Metric): 해당 경로의 우선순위나 비용을 나타내는 값으로, 일반적으로 숫자가 작을수록 더 선호되는 경로이다.

가장 기본적인 hop-by-hop 라우팅 방식에서 각 라우터의 라우팅 테이블은 모든 목적지 정보에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터의 정보를 저장한다. 라우팅 테이블이 일관되게 유지된다는 가정하에, 패킷을 수신한 라우터는 테이블을 검사하여 다음 라우터를 찾고 해당 라우터로 패킷을 전달하는 단순한 알고리즘만으로 네트워크상의 어느 곳으로든 데이터를 전송할 수 있다.

라우팅 테이블은 크게 두 가지 방식으로 구성된다.

  1. 정적 라우팅(Static Routing): 네트워크 관리자가 수동으로 라우팅 테이블 항목을 직접 입력하는 방식이다. 소규모 네트워크나 변화가 적은 환경에서 사용되며, 보안성과 예측 가능성이 높지만 네트워크 변화에 수동 대응해야 하는 단점이 있다.

  2. 동적 라우팅(Dynamic Routing): RIP, OSPF, BGP 등의 라우팅 프로토콜을 통해 라우터들이 자동으로 경로 정보를 교환하고 라우팅 테이블을 갱신하는 방식이다. 대규모 네트워크나 토폴로지 변화가 잦은 환경에서 적합하다.

라우팅 테이블의 가장 중요한 설계 과제 중 하나는 제한된 저장 공간에 수많은 목적지 경로를 효율적으로 저장하는 것이다. 인터넷에서는 CIDR(Classless Inter-Domain Routing)이라는 비트 단위 접두어 비교 방식을 사용하여 여러 목적지 주소를 하나의 테이블 항목으로 그룹화하여 관리한다.

네트워크상의 각 라우터는 일관된 라우팅 테이블 정보를 유지해야 하며, 그렇지 않을 경우 패킷이 무한히 순환하는 라우팅 루프(routing loop)가 발생할 수 있다. 라우팅 루프를 방지하는 것은 라우팅 프로토콜 설계의 핵심 과제 중 하나이다.

라우팅 테이블은 라우터뿐만 아니라 일반 컴퓨터(호스트)에도 존재한다. 운영체제(Windows, Linux, macOS)는 자체 라우팅 테이블을 가지고 있으며, 이를 통해 로컬 네트워크와 외부 네트워크(인터넷)로의 패킷 전달 경로를 결정한다. Linux에서는 route 또는 ip route 명령어로, Windows에서는 route print 명령어로 확인할 수 있다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기