我尝试将 OSX 主机 A 设为 Linux 主机 B 的特定网关。B 的默认网关条目已被删除,并按如下方式添加特定网关。注意:98.136.144.138
是“search.yahoo.com”域名的 IP 地址。主机 A 可以正常访问 search.yahoo.com。A 的 IP 是10.192.29.246
,B 的 IP 是10.192.13.160
。
当主机B浏览器刷新 的ip时98.136.144.138
,网页如预期显示。但是Wireshark无法捕获任何数据包,说明来自主机B的数据包首先到达网关主机A,然后主机A路由这些数据包。为什么信息没有显示?
- Wireshark 在主机 B 中捕获的数据包如下。在我添加特定路由并
98.136.144.138
在主机 B 的浏览器中刷新 Yahoo 搜索后,图片中线下方的数据包出现了。但没有关于特定网关(主机 A)的数据包的信息。如果需要,如何将数据包发送到网关?
- 主机 B 中的命令返回结果
traceroute 98.136.144.138
如下。为什么第一行是旧的默认网关 10.255.255.1 而不是主机 A 的特定网关。主机 A 的 IP10.192.29.246
甚至没有显示。
如果在浏览“Yahoo 搜索”页面时,我们无法根据路由表跟踪或捕获从主机 B 到特定网关(主机 A)的数据,我们如何知道主机 B 是否真的通过主机 A 到达“Yahoo 搜索”页面?路由规则在路由表上,但我们需要真正了解这一点。任何帮助都将不胜感激。
更新:下面添加Wireshark的二层信息。10.192.26.24
现在是主机B的ip地址,因为重启了(但主机A还在10.192.29.246
)。第一个数据包被发送到00:00:5e:00:01:02
属于已删除的默认网关的MAC地址10.192.0.1
。但它怎么还会被发送到已删除的网关呢?所有后续数据包都不包含主机A的MAC地址。
更新:并附有一张图表来说明我的目的。
我不确定这是否正确?今天当我重试此操作时,主机 B98.136.144.138
最初可以访问,Wireshark 捕获了一些有关“重定向”的信息。这是主机 A 和主机 B 之间的真实通信。
然而过了一段时间就很奇怪了,主机B竟然无法访问了98.136.144.138
,但是Wireshark捕获到主机B确实通过以太网II层向主机A发送了数据包,而不是向原来被删除的默认网关发送。
答案1
您的 tcpdump / wireshark 显示的是第 3 层 (IP) 地址。与网关的通信发生在第 2 层 (以太网)。
您应该展开红线下方的一个(任意一个)数据包,并将该帧的源 MAC 地址和目标 MAC 地址与两个主机进行比较。如果一切正常,其中一个将是源主机(主机 B),另一个应该是网关(主机 A)的 MAC 地址。
数据包通过网络和路由器时,其源 IP 地址和目标 IP 地址不会改变,但包装以太网(或其他第 2 层)帧的 MAC 地址在该行程的每一段中都会有所不同。
关于跟踪路由,您可能可以查找一种方法来配置 OS-X 系统以发送 ICMP 错误,以便 OS-X 主机出现在跟踪路由中,但不清楚这是否会进一步实现您的基本目标。