KVM çalıştıran VM'nin IP'sini bulun


3

VM'nin IP adresini KVM'de nasıl bulabilirim (Nmap kullanarak)? Olmazsa, bunu yapmak için Libvirt'te herhangi bir fonksiyon var mı?


Cevap: Bir gün nmap / ifconfig / iptables denemeye değer bir şey yaptıktan sonra, bunun üzerine yanılmaya başladım rwmj.wordpress.com/2010/10/26/... . epik bağlantı.
P Ramesh

İki bakir komutu: domifaddr ve net-dhcp-leasing
Nehal J Wani

Yanıtlar:


4

Centos 63 x86_64'te KVM için hızlı ve kirli örnek. VM'lerin bu segmentte sahip olabileceği tüm olası IP adreslerine arka planda kısa ping

for i in {1..249}
 do
  ping -c 1 -n -q -r  -t 1 -s 1  -W 1   192.168.100.$i > /dev/null &
done

VM'lerin adlarını ve MAC adreslerini virsh yoluyla çıkarın ve IP'yi ARP tablosundan çıkarın.

for name in `virsh list | grep running | awk '{ print $2 }'`
do
  printf  "\n$name\n "
  arp -e | grep "`virsh dumpxml  $name | grep "mac address"|sed "s/.*'\(.*\)'.*/\1/g"`" | 
  awk '{ printf  $1 ;  printf  " "  ; printf  $3 }'
done

2

Ellerimin kirlenmesinin uzun saatler sürmesinden sonra, üzerine tökezlemek üzereydim bu Epik bağlantı

  1. VM'nin MAC adresini VM'nin config dosyasından alın (beri KVM kullanıyorum, MAC adresi için .xml dosyasını sorguladım).
  2. Sonra arp -a kullanın ve tüm MAC adreslerini ve arayüzlerin Adreslerini alın ve bir dosyada saklayın
  3. VM'nin MAC adresi için dosyayı 1. adımdan sorgulayın.

Bunun probleminizi nasıl çözdüğünü açıklayabilir misiniz? Tam olarak ne yaptın?
Simon Sheehan

@Simon Sheehan- İşte nasıl yaptım- 1. VM'nin MAC adresini VM'nin config dosyasından alın (KVM kullandığım için MAC adresi için .xml dosyasını sorguladım). 2. Arp -a kullanın ve tüm MAC adreslerini ve arayüzlerin Adreslerini alın ve bir dosyaya kaydedin 3. adımdaki VM'nin MAC adresi için dosyayı sorgulayın.
P Ramesh

Harika, cevabınıza bunu ekledim
Simon Sheehan

1

Bunu yapmak için bir bash betiği yazdım ama aynı zamanda içlerinde "swarm" adı verilen makinelere filtre uygulamak için. Filtreyi çıkarabilir veya gerektiği gibi değiştirebilirsiniz. (Kaldır | grep "swarm" (Bunu tam komut dosyası olarak kullanabilir veya bir liner'i ondan yapıştırabilirsiniz:

#!/usr/bin/env bash
# we make assumption that the VM's we want have the word swarm in their name.  Edit for different name or to get all unfiltered names
for i in $(virsh list | grep "swarm" | awk '{print $2;}' ); do virsh domifaddr $i | sed 3q | sed '$!d' |awk '{print $4}'  ; done;

Kurucu kısımlar bakir komutlardır, virsh list Tüm VM'lerin bir listesini ve daha sonra bir for döngüsünü almak için domifaddr <VM NAME> ip adresini almak için. Geri kalan her şey metni yalnızca satır başına bir IP adresine filtrelemek. Bunu Ubuntu KVM sunucusunda yazdım / çalıştırdım 15.10


0

Virt-cat komutunu kullanarak, bir VM'deki tüm dosyaları sorgulayabilirsiniz. Örneğin, dhcp kiralama dosyası:

virt-cat -d your_alaniniz /var/lib/dhcp/dhclient.eth0.leases


0

İle başladığında qemu-kvm ve --nographic seçeneğini kullanabilirsiniz ctrl-a c qemu monitörünü edinmek için (VM'leri izlemek ve kontrol etmek için bir tür kabuk)

Komuta info network MAC adresi de dahil olmak üzere ağ bağlantı bilgilerini verecektir. Komuta info usernet köprü bilgisini gösterir: ör. Konuk portunun host portu ile nasıl eşleştirildiği. Bu bilgiler genellikle konuk ipini içerir.

Örnek

Bazı tcp port yönlendirme ile vm'yi başlatın:

qemu-kvm -cpu host -m 1024 -hda ~/myvm.qcow -net user,hostfwd=tcp::10022-:22 -net nic -nographic

sonra ctrl-a c komutlar info network ve info usernet vermek

(qemu) info network
hub 0
 \ hub0port1: e1000.0: index=0,type=nic,model=e1000,macaddr=58:44:00:22:11:
 \ hub0port0: user.0: index=0,type=user,net=10.0.2.0,restrict=off
(qemu) info usernet
VLAN 0 (user.0):
  Protocol[State]    FD  Source Address  Port   Dest. Address  Port RecvQ S
  TCP[HOST_FORWARD]  13               * 10022       10.0.2.15    22     0  

Referans: QEMU-doc wiki.qemu.org adresinde.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.