避免在VMware NAT Guest中traceroute
2023-11-10 11:38:28 Author: mp.weixin.qq.com(查看原文) 阅读量:1 收藏

创建: 2023-11-09 17:31
https://scz.617.cn/network/202311091731.txt

假设到目标IP通信故障,初步排查时可能涉及如下动作:

Win10

ping -4 -n 1 -i 255 <target>
tracert -4 -d -h 30 -w 5000 <target>

Ubuntu 22

traceroute -4 -n -I -m 30 <target>
traceroute -4 -n -T -m 30 <target>
traceroute -4 -n -m 30 <target>

若源位于VMware NAT Guest中,上述所有操作都受影响。在Guest中用Wireshark抓tracert操作,能看到来自NAT网关的ICMP超时报文,除此之外看不到来自其他沿线节点的ICMP超时报文,VMware NAT未向Guest转发后者。在Host中用Wireshark同步抓包,能看到来自其他沿线节点的ICMP超时报文。Guest中tracert收不到其他沿线节点的ICMP超时报文时,仍继续递增TTL,最终仍能收到来自目标的Icmp Echo Reply;外在表现是,tracert或"traceroute -I"能看到NAT网关与目标,其他沿线节点均显示"* * *",但能反映从源到目标的正确跳数。

在Guest中"traceroute -T",外在表现是,Guest只能看到NAT网关与目标,没有其他沿线节点,没有"* * *",不能反映从源到目标的正确跳数。

在Guest中用UDP模式traceroute,外在表现是,耗尽"-m 30",全部显示"* * *",得不到任何有效信息。Ubuntu 22的"traceroute -U"与"traceroute"不等价,缺省从33434/UDP开始递增探测,指定-U时,固定探测53/UDP。不过,这些端口值可以通过"-p port"来改变。

TCP、UDP探测模式亦可在Guest、Host同步抓包,都能得到合理解释,不在此一一详述。

显然,VMware NAT功能缺失,在Guest中用tracert、traceroute,意义有限,非要这么干时,只用ICMP、TCP两种探测模式,别用UDP探测模式。tracert只支持ICMP探测模式,traceroute缺省使用UDP探测模式。

顺便说一下Wireshark的近况。

https://www.wireshark.org/
https://2.na.dl.wireshark.org/win64/WiresharkPortable64_4.0.10.paf.exe
https://npcap.com/
https://npcap.com/dist/npcap-1.78.exe

Wireshark现在有便携版,安装过程相当于展开到指定目录,「程序和功能」中不出现。需要单独下载安装npcap,若之前已随其他软件装过npcap,无需再次安装,最新版npcap已支持loopback抓包。便携版Wireshark可以复制目录到任意位置并打开使用,可跨主机复制使用,比如在U盘上留一份。

关闭Wireshark自动升级

Edit->Preferences->Advanced->gui.update.enabled->FALSE


文章来源: https://mp.weixin.qq.com/s?__biz=MzUzMjQyMDE3Ng==&mid=2247486931&idx=1&sn=eb106dd62bf5a71d1363f36bce53dadf&chksm=fab2ceeccdc547fabdb9b021ab45302de218821444e4cd271c9136f5f77b337b159938d49edb&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh