我有一个虚拟机/LXC 容器,它正在使用网桥(在 br0 上)访问网络。
在托管虚拟机和桥接器的系统上,我希望能够知道分配了什么 IP 地址(dhcp)。
我不想进入虚拟机并使用 ifconfig...我希望能够从虚拟机的主机上分辨出来。
当我在主机系统上使用 ifconfig 时,我得到以下信息:
br0 Link encap:Ethernet HWaddr 08:00:27:28:05:9e
inet addr:192.168.42.216 Bcast:192.168.42.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe28:59e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1652 errors:0 dropped:0 overruns:0 frame:0
TX packets:2577 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:174997 (174.9 KB) TX bytes:256212 (256.2 KB)
eth0 Link encap:Ethernet HWaddr 08:00:27:28:05:9e
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1729 errors:0 dropped:0 overruns:0 frame:0
TX packets:2580 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:206750 (206.7 KB) TX bytes:256022 (256.0 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4239 errors:0 dropped:0 overruns:0 frame:0
TX packets:4239 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:758585 (758.5 KB) TX bytes:758585 (758.5 KB)
vethUcRl21 Link encap:Ethernet HWaddr 92:70:c3:64:6c:bc
inet6 addr: fe80::9070:c3ff:fe64:6cbc/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:546 (546.0 B) TX bytes:3280 (3.2 KB)
vethUcRl21 是使用 br0 接口创建的虚拟接口。
答案1
我来这里是为了寻找相同问题的答案。在阅读 Fox 的回答后,我发现了arp
表管理命令(现已过时)。尝试ip neigh
这个与 相同arp
。这将向您显示通过 DHCP 从共享同一链路(虚拟网桥)的主机传播的虚拟机 IP 地址。
答案2
如果没有查看 DHCP 日志...或捕获数据包并过滤 DHCP 数据包...您将没有运气。主机不关心为其托管的虚拟机分配了什么 IP 地址。桥接器只是从桥接器中的一个接口获取所有数据并将其广播到桥接器中的所有其他接口。主机本身对桥接器中的其他设备如何处理数据一无所知。
答案3
您可能可以使用 ARP 守护进程(即。ARPD) 来监控桥接接口。只要您知道虚拟机的 MAC 地址,就可以从其数据库中获取它。您可以在 中找到 MAC brctl showmacs br0
。