Saya menggunakan qemu / kvm dengan jaringan yang dijembatani. Di mesin host ada beberapa "vnetX" antarmuka jaringan tanpa IP. Saya sedang mencari cara untuk mengetahui mana vnetX milik mesin virtual.
Saya mencoba untuk mencocokkan nilai-nilai Alamat MAC pada antarmuka ini dengan MAC pada mesin virtual (atau XML yang mendefinisikannya), tetapi tidak cocok.
Ada acara brctl yang menunjukkan antarmuka vnet yang dimiliki oleh sebuah jembatan, tetapi ini bukan info yang berguna.
Apakah ada cara untuk mengetahui hubungan itu? Terima kasih!!
for vm in $(virsh list | grep running | awk '{print $2}'); do echo -n "$vm:"; virsh dumpxml $vm| grep -oP "vnet\d+" ; done
Coba
virsh dumpxml $domain
, Anda akan melihat sesuatu seperti:yang
alias name
adalah apa yang digunakan pada command line qemu-kvm, jadi jika Anda menjalankanps -ef |grep qemu|grep net1
dari contoh saya, Anda akan melihat sintaks perintah yang sebenarnya digunakan untuk interface ini.sumber
Setiap salah satu solusi yang diberikan di atas mengasumsikan bahwa VM dikelola oleh libvirt. Sangat mungkin untuk menjalankan QEMU VM tanpa itu, dalam hal ini Anda tidak dapat menggunakan virsh atau melihat XML untuk menemukan jawabannya.
Dalam kasus menjalankan QEMU VMs dari baris perintah "raw":
tcpdump -i tap0 -f 'icmp' (ganti antarmuka antarmuka mana saja yang Anda minati)
Ping setiap kandidat VM sampai Anda melihat paket dalam jejak. Antarmuka yang Anda telusuri saat paket ICMP muncul adalah yang Anda cari!
Sebaliknya, Anda dapat memulai ping ke VM tertentu dan kemudian tcpdump setiap antarmuka secara bergantian sampai satu "menyala". Tergantung apakah Anda tertarik untuk menemukan VM yang cocok dengan antarmuka keran, atau antarmuka keran yang cocok dengan VM.
sumber
Alamat MAC dari
vnetX
antarmuka adalah milik tuan rumah, bukan tamu.brctl showmacs br0
akan menunjukkan MAC yang terdeteksi oleh bridge, tetapi Anda kemudian harus referensi silang nomor port dengan daftar antarmuka daribrctl show
.sumber
Cocokkan Alamat IP dari Arp cache ke VM
Output sampel:
sumber
Berdasarkan respons @daff:
Contoh Keluaran:
sumber
Contoh output:
sumber