로컬 네트워크 인터페이스를 가리키는 라우팅 규칙이 여러 대상 IP 주소를 허용하는 이유는 무엇입니까?

로컬 네트워크 인터페이스를 가리키는 라우팅 규칙이 여러 대상 IP 주소를 허용하는 이유는 무엇입니까?
$ /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

패킷이 호스트에 도착하고 패킷의 목적지가 사설 IP 주소(192.168.122.2)인 경우,

  • 라우팅 테이블의 두 번째 항목에 따르면 패킷이 최종 목적지인 ens3(192.168.122.202)으로 전달됩니까?

  • 그렇다면 예상 대상 192.168.122.2가 localhost에 없기 때문에 잘못된 것이 아닌가요? 즉, 두 번째 항목이 다른 대상 IP 주소로 패킷을 전달하는 이유는 무엇입니까?범위로컬 네트워크 인터페이스로단 하나IP 주소?

감사해요.

답변1

이 인터페이스가 다음을 제공한다는 사실을 잊어버렸습니다.회로망, (IP 네트워크의 경우) 기본 IP 주소와 넷마스크(또는 IPv6의 접두사 길이)로 정의됩니다.

192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 ens3

192.168.122/24 네트워크로 전송된 패킷이 네트워크 인터페이스로 전송됨을 나타냅니다. ens3그런 다음 패킷은 적절한 호스트로 전송되지만 이는 이 시스템의 문제가 아닙니다.

네트워크는 네트워크의 모든 호스트에 동일한 액세스를 제공해야 하므로 ens3게이트웨이나 라우터의 도움 없이 패킷이 192.168.122/24 네트워크의 모든 호스트에 지점 간 방식으로 효율적으로 전송될 수 있어야 합니다.

0.0.0.0         192.168.122.1   0.0.0.0         UG    0      0        0 ens3

커널이 무엇을 해야할지 모르는 패킷을 게이트웨이 192.168.122.1로 보내야 함을 나타냅니다. 게이트웨이는 이를 적절하게 전달할 것입니다(가능한 경우). 게이트웨이에 액세스할 수 있습니다.통과하다 ens3.

이 중 어느 것도 주어진 패킷이 실제로 목적지에 도달한다는 것을 보장하지 않습니다. 이것이 네트워크(및 인터페이스조차도)가 "대상 호스트에 도달할 수 없음"과 같은 오류를 보고하는 이유입니다.

(스티커는 내가 L2/L3 문제를 무시했다고 불평할 수 있지만 여기서는 관련이 없으며 궁극적으로 혼란스러울 뿐입니다.)

관련 정보