这是我在超级用户看到的这个问题的一个后续,没有提供答案。
用户在他的路由表中删除了第二条路由,
# ip route show default via 192.168.73.1 dev eth0 proto static 192.168.73.0/24 dev eth0 scope link
只留下他的默认。 他发现他可以ping通networking上的其他电脑,但是他们无法用不完整的路由表ping回pc。
我通过tcpdump的方式在一个真实的networking(而不是原来的虚拟设置)上调查了这一点:事实certificate,未完成的 pc确实发回了ping的回复,但是这并没有达到原始的,有益健康的pc。
所以我试着在两个方向上打开ssh会话,现在都尝试失败。 这是Wireshark捕获失败的连接:
PUSH(PSH / ACK)的出现和大量的重传使得任何一台PC都无法到达另一台。
任何人都可以解释为什么,在一些细节?
我想你忘了在另一个网站上的后退路线。 另一方面的PC需要设置一个合适的网关才能到达networking,而不是使用默认的gw。
[@moderators ECC,这是太长的意见,所以我敢打赌我的答案。 我会更新这个]
如果没有完全testing的可能性,我会尝试猜测。 在eth0的子网上缺less路由意味着一切都应该通过默认网关。
其实我试图在我的机器从哪里我只能ping另一个主机和在同一子网的网关,但我所看到的似乎是符合我的猜测。
从我的机器(这是丢失的本地子网的路由)的数据包去与我正在ping的IP,但与网关的ARP地址。 检查你的嗅探在wireshark arp地址,所以我们可以有更多的数据。
刷新你的ARPcaching后,做一个干净的testing,并在这里发表你的发现。
我认为发生的事情是,(nosubnet)客户端IP上的路由对于networking堆栈来说需要知道在哪里“arp”,因为它在没有网关的情况下是可以访问的。
拉出来,唯一可能的路由是默认的GW,我想在那个(没有子网)机器上只有一个networking接口。
现在,考虑到将ARP数据包扔到网关意味着发送给它的ARP客户端地址数据包与另一个IP(目标)在同一子网的客户端。
GW在目标的ARP地址处转发它们,具有本地路由的目标正确地configuration应答到发送主机(没有子网的主机)。
简言之,就是不对称路由。
第一个主机,没有正确的本地子网路由的发送者,发现它是一个格式不正确的数据包(Alien),因为它发送到网关的ARP地址。
[/我跳没有联网的人会打我我的一个大棒,我最终的错误]