zac*_*ern 5 networking routing
我在 Linux 上从来没有完全理解的一件事是,本地流量会发生什么,而不是针对环回。
例如,给定以下网络设置:
[root@pe-323-master ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:2B:59:85
inet addr:172.16.90.133 Bcast:172.16.90.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2b:5985/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1881 errors:0 dropped:0 overruns:0 frame:0
TX packets:1205 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:234047 (228.5 KiB) TX bytes:134389 (131.2 KiB)
eth1 Link encap:Ethernet HWaddr 00:0C:29:2B:59:8F
inet addr:10.20.2.2 Bcast:10.20.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe2b:598f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:77 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14880 (14.5 KiB) TX bytes:1188 (1.1 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:13585 errors:0 dropped:0 overruns:0 frame:0
TX packets:13585 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6501824 (6.2 MiB) TX bytes:6501824 (6.2 MiB)
Run Code Online (Sandbox Code Playgroud)
当我 ping 本地非环回地址时实际发生了什么?
[root@pe-323-master ~]# ping -c 1 172.16.90.133
PING 172.16.90.133 (172.16.90.133) 56(84) bytes of data.
64 bytes from 172.16.90.133: icmp_seq=1 ttl=64 time=0.011 ms
--- 172.16.90.133 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.011/0.011/0.011/0.000 ms
Run Code Online (Sandbox Code Playgroud)
流量是通过线路出去然后回来,还是在内部路由?
小智 1
您可以在对计算机的 IP 地址执行 ping 操作时,在环回接口上执行 tcpdump。这将向您展示正在发生的情况。
确实,流量永远不会离开机器。如果这样做了,它就不会收回它。交换机或路由器不会将流量转发回其来源接口。