$ /sbin/route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.122.1 0.0.0.0 UG 0 0 0 ens3
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 ens3
$ /sbin/ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.122.202 netmask 255.255.255.0 broadcast 192.168.122.255
inet6 fe80::5054:ff:fe99:5eee prefixlen 64 scopeid 0x20<link>
ether 52:54:00:99:5e:ee txqueuelen 1000 (Ethernet)
RX packets 14906 bytes 18020195 (17.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7390 bytes 786783 (768.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 35568
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 496 bytes 39840 (38.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 496 bytes 39840 (38.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
패킷이 호스트에 도착하고 패킷의 목적지가 루프백 주소(127.0.0.1)인 경우,
라우팅 테이블의 첫 번째 규칙에 따라 ens3(192.168.122.202)으로 전송된 다음 게이트웨이(192.168.122.1)로 전송됩니까?
그렇다면 의도한 대상(127.0.0.1)이 localhost에 있으므로 잘못된 것이 아닌가요?
대상 주소가 루프백 주소인 경우 실제로 라우팅 항목이 없는 것인가요?
감사해요.
답변1
커널이 패킷을 처리할 때 라우팅 테이블은 커널이 패킷을 처리할 때 가장 먼저 고려하는 것이 아닙니다. 먼저 를 보는 데 사용할 수 있는 규칙 테이블이 있습니다 ip rule list
. ip route list
(및 더 이상 사용되지 않음 route
) 기본 테이블을 나열하지만 우선 순위가 더 높고 ip route show table local
이를 보기 위해 실행된 루프백 인터페이스와 관련된 모든 경로를 나열하는 로컬 테이블이 있습니다.
루프백 주소로 전송된 패킷은 시스템을 떠나지 않습니다.