0

我有一台 Linux PC 有两个网卡:
第一个名称是 ens192,ip 是 192.168.0.2/24 gw 是 192.168.0.1 也是默认路由,主要网卡
第二个名称是 ens256,ip 是 192.168.1.50/24 gw 是 192.168.1.1,并使用以下策略路由命令:

ip route add default via 192.168.1.1 dev ens256 table 1000
ip rule add from 192.168.1.50 table 1000

现在,每个人都连接(PING)192.168.1.50 正常,下面是来自 192.168.4.2(我在路由器中有一个 192.168.0.0/16 网络,192.168.xxx.1 是每个子网的默认 gw)

PING 192.168.1.50 (192.168.1.50) 56(84) bytes of data.
64 bytes from 192.168.1.50: icmp_seq=1 ttl=63 time=0.560 ms
64 bytes from 192.168.1.50: icmp_seq=2 ttl=63 time=0.517 ms
64 bytes from 192.168.1.50: icmp_seq=3 ttl=63 time=0.678 ms
--- 192.168.1.50 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2050ms
rtt min/avg/max/mdev = 0.517/0.585/0.678/0.068 ms

ttl=63 是预期的。

问题是:在同一子网 192.168.1.0/24 中,pc ip 为 192.168.1.70 ping 192.168.1.50 得到错误的 ttl 值,请参阅输出:

$ ping 192.168.1.50 -c 3
PING 192.168.1.50 (192.168.1.50): 56 data bytes
64 bytes from 192.168.1.50: seq=0 ttl=63 time=0.619 ms
64 bytes from 192.168.1.50: seq=1 ttl=63 time=0.512 ms
64 bytes from 192.168.1.50: seq=2 ttl=63 time=0.593 ms

--- 192.168.1.50 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.512/0.574/0.619 ms

ttl=64 是预期的,但得到了 63!!!

我在wireshark中得到了pcap:
192.168.1.70 -> 192.168.1.50
192.168.1.50 -> 192.168.1.70

我们可以看到PC 1.50回复ICMP到gw

我的问题是:如何更正同一子网中的 ttl?有人帮忙???

4

0 回答 0