Instaluję avahi na każdej maszynie wirtualnej, więc będą reklamować swoje własne adresy. Jednak nie jest to jedyna dostępna opcja (szczególnie, jeśli maszyna wirtualna zawiera coś innego niż system Linux). Wejdź do magicznego świata opcji virsh!
*) Najpierw trzeba uzyskać adresy MAC kart sieciowych VM:
[[email protected] ~]# virsh domiflist b2bua
Interface Type Source Model MAC
-------------------------------------------------------
vnet0 network default virtio 52:54:00:aa:bb:cc
vnet1 bridge br1 virtio 52:54:00:dd:ee:ff
[[email protected] ~]#
*) Teraz rzućmy okiem na tabelę ARP
[[email protected] ~]# arp -e
Address HWtype HWaddress Flags Mask Iface
xx.xx.xx.xx ether xx:xx:xx:xx:xx:xx C br0
192.168.122.14 ether 52:54:00:xx:xx:xx C virbr0
192.168.122.51 ether 52:54:00:aa:bb:cc C virbr0
[[email protected] ~]#
*) Teraz skleić wszystko razem (i dodając trochę Skorupa/regex magii):
[[email protected] ~]# for mac in `virsh domiflist b2bua |grep -o -E "([0-9a-f]{2}:){5}([0-9a-f]{2})"` ; do arp -e |grep $mac |grep -o -P "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" ; done
192.168.122.51
[[email protected] ~]#
ów piękny rozwiązanie, ale nie działała dokładnie w Busybox, --------> kvm # for Mac w 'virsh domiflist yoc6 | grep -o -E„([0-9a- f] {2}:) {5} ([0-9a-f] {2}) "; do arp -e | grep $ mac | grep -o -P "^ \ d {1,3} \. \ d {1,3} \. \ d {1,3} \. \ d {1,3} "; done grep: niepoprawna opcja - 'P' arp: nieprawidłowa opcja - 'e' BusyBox v1.22.1 (2015-11-04 15:02:18 PST) BusyBox v1.22.1 (2015-11-04 15 : 02: 18 PST) multi-call binarny. Użycie: grep [-HhnlLoqvsriwFE] [-m N] [-A/B/CN] WZORZEC/-e WZORZEC .../- f PLIK [PLIK] ... –
należy pamiętać, że tablica Arp może być stare lub brakujących wpisów. możesz chcieć pingować zamiatać podsieć przed wywołaniem polecenia arp. –