VMware Player 17中Ubuntu 22.04.2虚拟机DHCP无法获取IP的调试求助
大家好,我遇到个棘手的问题:在Windows 11上用VMware Player 17运行Ubuntu 22.04.2虚拟机,静态IP配置一切正常,但DHCP模式下完全拿不到地址——虚拟机发了请求,却没有任何响应回来。
我已经做了这些排查操作,想请大家帮忙看看该怎么继续调试:
1. 手动触发DHCP请求
执行sudo dhclient -v手动请求DHCP,结果只反复发送DHCPDISCOVER包,始终没收到回应,只能手动终止:
mat@devbox:~$ sudo dhclient -v Internet Systems Consortium DHCP Client 4.4.1 Copyright 2004-2018 Internet Systems Consortium. All rights reserved. Listening on LPF/ens33/00:0c:29:9a:27:bb Sending on LPF/ens33/00:0c:29:9a:27:bb Sending on Socket/fallback DHCPDISCOVER on ens33 to 255.255.255.255 port 67 interval 3 (xid=0xe24e363f) DHCPDISCOVER on ens33 to 255.255.255.255 port 67 interval 3 (xid=0xe24e363f) ^C
2. 虚拟机内抓包验证
用tcpdump抓取DHCP相关流量,能看到虚拟机发出了DHCP Discover请求,但完全没有收到返回的包:
mat@devbox:~$ sudo tcpdump -i ens33 port 67 or port 68 -e -n -vv tcpdump: listening on ens33, link-type EN10MB (Ethernet), snapshot length 262144 bytes 11:38:23.059861 00:0c:29:9a:27:bb > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328) 0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 00:0c:29:9a:27:bb, length 300, xid 0x77a96118, Flags [none] (0x0000) Client-Ethernet-Address 00:0c:29:9a:27:bb Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message (53), length 1: Discover Hostname (12), length 6: "devbox" Parameter-Request (55), length 13: Subnet-Mask (1), BR (28), Time-Zone (2), Default-Gateway (3) Domain-Name (15), Domain-Name-Server (6), Unknown (119), Hostname (12) Netbios-Name-Server (44), Netbios-Scope (47), MTU (26), Classless-Static-Route (121) NTP (42)
3. 主机端抓包对比
在Windows主机上用Wireshark抓包,发现虚拟机的DHCP请求根本没被主机接收到;但我开启另一台物理主机时,Wireshark能正常看到它完整的DHCP交互流程:
No. Time Source Destination Protocol Length Info
139 9.071516 0.0.0.0 255.255.255.255 DHCP 342 DHCP Discover - Transaction ID 0x77a96118
140 9.071526 0.0.0.0 255.255.255.255 DHCP 342 DHCP Discover - Transaction ID 0x77a96118
...
12202 369.907494 0.0.0.0 255.255.255.255 DHCP 344 DHCP Discover - Transaction ID 0x3a951626
12233 370.931839 192.168.1.1 255.255.255.255 DHCP 342 DHCP Offer - Transaction ID 0x3a951626
12236 371.034456 0.0.0.0 255.255.255.255 DHCP 370 DHCP Request - Transaction ID 0x3a951626
12237 371.034456 192.168.1.1 255.255.255.255 DHCP 342 DHCP ACK - Transaction ID 0x3a951626
4. DHCP服务器日志验证
我的OPNsense DHCP服务器日志显示,它已经向虚拟机的MAC地址发送了DHCPOFFER:
2023-04-16T11:38:24 dhcpd[68501] DHCPOFFER on 192.168.1.25 to 00:0c:29:9a:27:bb (devbox) via vtnet3_vlan101
2023-04-16T11:38:23 dhcpd[68501] DHCPDISCOVER from 00:0c:29:9a:27:bb via vtnet3_vlan101
现在我有点摸不着头脑,明明服务器已经发了响应,但数据包好像在某个环节丢失了,请问我该怎么进一步调试这个问题呢?
备注:内容来源于stack exchange,提问作者Mat

