내 컴퓨터에서는 다음 라우팅 테이블을 따라야 합니다.
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
분석 방법을 이해할 수 없습니다. 위에서 아래로 또는 아래에서 위로라는 뜻인가요?
위에서 아래로 분석하면 IP 대상이 192.168.1.15인 경우에도 모든 것이 항상 내 홈 라우터로 전송됩니다. 그러나 PC가 내 것과 동일한 로컬 네트워크 내에 있으면 (틀리게?) 메시지를 브로드캐스트하여 MAC 대상을 복원하면 내 PC가 메시지를 대상으로 직접 보낼 수 있습니다.
답변1
라우팅 테이블은 가장 구체적인 것부터 가장 덜 구체적인 것 순으로 사용됩니다.
그러나 Linux에서는 생각보다 조금 더 복잡합니다. 첫째, 라우팅 테이블이 두 개 이상 있으며, 라우팅 테이블을 언제 사용할지는 많은 규칙에 따라 달라집니다.
전체 그림을 얻으려면:
$ 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
이전 기본 규칙에 의해 패킷이 선택되지 않은 경우 테이블은 비어 있으며 사후 처리를 위해 유지됩니다.
자신만의 테이블을 추가하고 규칙을 추가하여 특정 상황에서 사용할 수 있습니다. 예를 들어 두 개의 인터넷 연결이 있지만 하나의 호스트나 서브넷은 항상 특정 인터넷 연결을 통해 라우팅되어야 하는 경우입니다.
이것Linux 정책 라우팅이 책은 그 모든 것을 아주 자세하게 설명하고 있다.
답변2
라우팅 테이블은 일반적으로 "가장 구체적인" 것부터 "가장 덜 구체적인" 순서로 적용됩니다. 0.0.0.0
넷마스크는 목적지입니다 0.0.0.0
.기본 경로는 가장 덜 구체적이므로 항상 마지막에 적용됩니다.
로컬 네트워크에 있는 다른 PC의 MAC 주소가 있지만 해당 PC가 다른 서브넷에 있는 경우 해당 PC에 대한 특정 호스트 경로를 추가하고 통신을 얻을 수 있습니다.