У меня есть виртуальная машина / контейнер 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.
Я пришел сюда в поисках решения той же проблемы. Прочитав ответ Фокса, я обнаружил arp
команда управления таблицами (устарела). Пытаться ip neigh
это то же самое, что arp
. Это покажет вам, что IP-адрес виртуальной машины распространяется через DHCP с хоста, использующего тот же канал (виртуальный мост).
Если не смотреть журналы DHCP ... или перехватывать и фильтровать пакеты DHCP ... вам не повезет. Хосту все равно, какой IP-адрес назначен виртуальным машинам, которые он размещает. Мост просто берет все данные с одного интерфейса в мосте и передает их всем остальным интерфейсам моста. Сам хост ничего не знает о том, как данные обрабатываются другими устройствами в мосте.
Вероятно, вы могли бы использовать демон ARP (т.е. arpd) для мониторинга интерфейса моста. Если вам известен MAC-адрес виртуальной машины, вы можете получить его из ее базы данных. И MAC вы можете найти в brctl showmacs br0
.