라우팅 테이블은 가장 구체적인 순서부터 가장 구체적인 순서대로 사용됩니다.
그러나 리눅스에서는 예상보다 조금 더 복잡합니다. 먼저 라우팅 테이블이 두 개 이상 있으며 어떤 라우팅 테이블이 사용되는지는 여러 규칙에 따라 다릅니다.
전체 그림을 얻으려면 :
$ ip rule show
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
$ ip route show table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 192.168.0.0 dev eth0 proto kernel scope link src 192.168.1.27
local 192.168.1.27 dev eth0 proto kernel scope host src 192.168.1.27
broadcast 192.168.1.255 dev eth0 proto kernel scope link src 192.168.1.27
$ ip route show table main
default via 192.168.1.254 dev eth0
192.168.0.0/23 dev eth0 proto kernel scope link src 192.168.1.27
$ ip route show table default
$
이 local
테이블은 로컬 및 브로드 캐스트 주소에 대한 우선 순위가 높은 제어 경로를 포함하는 특수 라우팅 테이블입니다.
이 main
테이블은 모든 비 정책 경로를 포함하는 일반 라우팅 테이블입니다. 이것은 또한 단순히 실행 ip route show
(또는 ip ro
짧게) 하는지 확인할 수있는 테이블 입니다. 테이블 route
만 표시 main
하고 출력 형식은 다소 구식 이므로 더 이상 이전 명령을 사용하지 않는 것이 좋습니다 .
default
이전 기본 규칙이 패킷을 선택하지 않은 경우 테이블 이 비어 있고 사후 처리를 위해 예약되어 있습니다.
고유 한 테이블을 추가하고 특정 경우에 사용할 규칙을 추가 할 수 있습니다. 두 가지 인터넷 연결이 있지만 하나의 호스트 또는 서브넷이 항상 하나의 특정 인터넷 연결을 통해 라우팅되어야하는 경우를 예로들 수 있습니다.
리눅스와 정책 라우팅 책은 정교한 세부에서이 모든 것을 설명합니다.