IP 라우팅
IP 라우팅(IP routing)은 IP 망에 라우팅 방법론을 적용하는 것이다. 여기에는 전 세계 인터넷 인프라의 기술, 프로토콜, 구조, 관리 및 정책이 포함된다. 각 IP 네트워크 노드에서 IP 라우팅은 소스에서 대상까지 네트워크 패킷에 적합한 경로를 결정하는 작업을 포함한다. 이 프로세스는 정적 구성 또는 라우팅 프로토콜을 사용하여 동적으로 얻은 규칙을 사용하여 원하는 최종 대상에 한 홉 더 가까운 다음 사용 가능한 중간 네트워크 노드로 트래픽을 전달하기 위한 특정 패킷 전달 방법을 선택한다. 총 경로는 잠재적으로 여러 컴퓨터 망에 걸쳐 있다.
네트워크는 라우팅에 최적화된 특수 소프트웨어 지원을 갖춘 게이트웨이 또는 라우터라고 불리는 특수 호스트에 의해 서로 분리된다. 대부분의 라우팅 소프트웨어에서 IP 포워딩 알고리즘은 최단 경로 알고리즘을 통해 경로를 결정한다. 라우터에서 인터페이스에 도착하는 패킷은 소스 및 대상 주소 지정에 대해 검사하고 대상 주소와 규칙 및 성능 메트릭 세트에 따라 적절한 발신 인터페이스에 대기열에 넣는다. 규칙은 모든 인터페이스 및 연결된 네트워크에 대한 항목을 포함하는 라우팅 테이블에 인코딩된다. 규칙이 네트워크 패킷에 대한 요구 사항을 충족하지 못하면 기본 경로로 전달된다. 라우팅 테이블은 네트워크 관리자가 수동으로 유지하거나 라우팅 프로토콜을 통해 동적으로 업데이트된다.
라우팅 프로토콜은 라우터가 네트워크 토폴로지 및 각 라우팅 노드의 기능에 대한 정보를 통신하고 공유하는 방법을 지정한다. 서로 다른 토폴로지 또는 서로 다른 응용 분야에 대해 서로 다른 프로토콜이 자주 사용된다. 예를 들어, 최단 경로 우선 프로토콜 (OSPF) 프로토콜은 일반적으로 기업 내에서 사용되며, 경계 경로 프로토콜 (BGP)은 전 세계적으로 사용된다.[1] BGP는 전 세계 인터넷 라우팅을 위한 사실상 표준이다.
프로토콜 분류
[편집]라우팅 프로토콜은 네트워크 범위 측면에서 운영 영역에 따라 크게 구분될 수 있다. 내부 게이트웨이 프로토콜은 자율 시스템 내에서 라우팅에 사용되는 반면, 외부 게이트웨이 프로토콜은 이들 간에 트래픽을 라우팅한다. 전자는 라우팅 정보 프로토콜 (RIP) 및 최단 경로 우선 프로토콜 (OSPF)이 예시이며, 후자는 외부 게이트웨이 프로토콜 (EGP) 및 경계 경로 프로토콜 (BGP)이 예시이다. BGP는 인터넷에서 사용되는 주요 경로 분배 프로토콜이다.
라우팅 알고리즘
[편집]IP 포워딩 알고리즘은 IP 망의 라우팅 특정 구현이다. 데이터의 성공적인 전송을 달성하기 위해 알고리즘은 라우팅 테이블을 사용하여 데이터그램의 다음 목적지로 넥스트 홉 라우터를 선택한다. 선택된 라우터의 IP 주소는 넥스트 홉 주소로 알려져 있다.[1]
IP 포워딩 알고리즘은 다음과 같이 명시되어 있다.[2]
- 대상 IP 주소 ID 및 네트워크 접두사 N이 주어졌을 때:
- if ( N이 직접 연결된 네트워크 주소와 일치하는 경우 )[3][a]
- 해당 네트워크 링크를 통해 데이터그램을 ID로 전달한다;
- else if ( 라우팅 테이블에 N에 대한 라우트가 포함된 경우 )
- 라우팅 테이블에 나열된 넥스트 홉 주소로 데이터그램을 보낸다;
- else if ( 기본 라우트가 존재하는 경우 )
- 기본 라우트로 데이터그램을 보낸다;
- else
- 발신자에게 전달 오류 메시지를 보낸다;
여러 라우트 테이블 항목이 일치하는 경우, 가장 긴 서브넷 마스크를 가진 항목이 가장 구체적인 것이므로 선택된다.[2] 동일한 서브넷 마스크를 가진 여러 라우트가 있는 경우 가장 낮은 메트릭을 가진 라우트가 사용된다. 여러 기본 라우트가 있는 경우 메트릭은 사용할 라우트를 결정하는 데도 사용된다. 동일한 서브넷 마스크와 메트릭을 가진 여러 라우트가 있는 경우 시스템은 전달 전략으로 ECMP를 사용할 수 있다.
라우트를 사용할 수 없는 경우 ICMP 오류 메시지가 패킷의 발신자에게 전송되어 해당 호스트에게 패킷을 전달할 수 없음을 알린다.[2] 불필요한 재전송을 방지하여 혼잡 제어를 피하기 위해 발신 호스트는 전송을 중단하거나 다른 주소 또는 라우트를 선택해야 한다.
라우팅 테이블
[편집]다음은 유닉스 계열 운영체제의 일반적인 라우팅 테이블을 보여준다.
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 71.46.14.1 0.0.0.0 UG 0 0 0 ppp0 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0 71.46.14.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 172.16.0.0 0.0.0.0 255.240.0.0 U 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 192.168.1.0 192.168.96.1 255.255.255.0 UG 0 0 0 eth0 192.168.96.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
호스트에는 여러 네트워크 인터페이스가 있다. eth0는 이더넷 포트를 나타내는 네트워크 인터페이스 카드의 인터페이스 이름이다. ppp0는 이 예에서 기본 경로로 구성된 PPPoE 인터페이스이다.
기본 경로는 대상 0.0.0.0 및 플래그 G로 인식된다. 네트워크 라우터는 IPv4 서브넷 255.255.255.255 및 플래그 H로 식별된다.
플래그 | 설명 |
---|---|
G | 게이트웨이 사용 (게이트웨이 채워짐) |
H | 대상은 호스트 (32비트의 비트 마스크) |
U | 라우트가 활성화됨 |
참고
[편집]- ↑ 많은 구현에서 이러한 직접 연결된 네트워크를 라우팅 테이블 항목으로 나열하며, 이 경우 이 조건은 일반적인 라우트 테이블 조회에 의해 처리된다.
각주
[편집]- ↑ 가 나 Comer, Douglas E. (2000). 《Internetworking with TCP/IP》 4판. Upper Saddle River, NJ: Prentice Hall.
- ↑ 가 나 다 “IP Routing and Subnets”. 2022년 8월 2일에 확인함.
- ↑ “Guide to IP Layer Network Administration with Linux - chapter 4.2. Routing to Locally Connected Networks”. 2022년 8월 2일에 확인함.