QEmu에서 가상 머신을 실행하고 있습니다. 게스트 가상 머신에서 다음 명령을 실행하면
cat /proc/interrupts | egrep 'virtio.*(input|output)'
다음과 같은 출력이 제공됩니다.
26: 0 3376 0 0 0 0 0 0 PCI-MSI-edge virtio2-input
27: 0 1 0 0 0 0 0 0 PCI-MSI-edge virtio2-output
29: 0 3368 0 0 0 0 0 0 PCI-MSI-edge virtio3-input
30: 0 2 0 0 0 0 0 0 PCI-MSI-edge virtio3-output
32: 0 3490 0 0 0 0 0 0 PCI-MSI-edge virtio4-input
33: 0 1 0 0 0 0 0 0 PCI-MSI-edge virtio4-output
35: 0 4995 0 0 0 0 0 0 PCI-MSI-edge virtio5-input
36: 0 1 0 0 0 0 0 0 PCI-MSI-edge virtio5-output
38: 0 1818743 0 0 0 0 0 0 PCI-MSI-edge virtio6-input
39: 0 1 0 0 0 0 0 0 PCI-MSI-edge virtio6-output
41: 0 1822784 0 0 0 0 0 0 PCI-MSI-edge virtio7-input
42: 0 1 0 0 0 0 0 0 PCI-MSI-edge virtio7-output
44: 0 2470 0 0 0 0 0 0 PCI-MSI-edge virtio8-input
45: 0 0 2 0 0 0 0 0 PCI-MSI-edge virtio8-output
47: 0 0 94 0 0 0 0 0 PCI-MSI-edge virtio9-input
48: 0 0 1 0 0 0 0 0 PCI-MSI-edge virtio9-output
virtio2
... virtio9
네트워크 카드가 8개 있는 것 같습니다. 하지만 그 중 어떤 것이 어떤 카드에 해당하는지 알 수 없습니다. MAC 주소를 얻 virtio3
거나 네트워크 카드를 식별할 수 있는 방법이 있습니까 ?
답변1
나에게 방법이 있습니다 (몇 번 전에 다른 포럼에서 사용함)
# vm mac address list
for vm in $(virsh list | grep running | awk '{print $2}'); do \
echo -n "$vm "; \
virsh dumpxml $vm| grep -oP "52:54:[\da-f:]+" ;
done > vm_mac.list
# vm ip list
arp -i virbr0 | grep '52:' | while read addr ; do \
ip=$(echo $addr | awk '{print $1}'); \
mac=$(echo $addr | awk '{print $3}'); \
vm=$(grep "$mac" vm_mac.list | awk '{print $1}'); \
echo "$vm $ip $mac"; \
done | sort