[Question] Should libvirt update live xml accordingly when guest mac is changed?

Fangge Jin fjin at redhat.com
Tue Aug 30 03:22:15 UTC 2022


Hi

I met an issue when testing trustGuestRxFilters:
Attach a macvtap interface with trustGuestRxFilters=’yes’ to vm, then
change interface mac address in vm.
Should libvirt update interface mac in live vm xml accordingly? If not, vm
network will be broken after
managedsaving and restoring vm.

BR,
Fangge Jin

Steps:

   1. Start a vm
   2.

   Attach a macvtap interface with trustGuestRxFilters=’yes’ to vm

   <interface type='direct'  trustGuestRxFilters='yes'>
     <source dev='enp175s0v0'  mode='passthrough'/>
     <target dev='macvtap0'/>
     <model type='virtio'/>
     <alias name='net1'/>
   </interface>

   3.

   Check vm xml:

   # virsh dumpxml uefi  --xpath //interface
   <interface type="direct" trustGuestRxFilters="yes">
     <mac address="52:54:00:46:88:8b"/>
     <source dev="enp175s0v0" mode="passthrough"/>
     <target dev="macvtap2"/>
     <model type="virtio"/>
     <alias name="net0"/>
     <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
   </interface>

   4.

   Change interface mac in guest:

   # ip link set dev enp1s0 address 52:54:00:9d:a1:1e
   # ip a
   1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
   4: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
fq_codel state UP group default qlen 1000
    link/ether 52:54:00:9d:a1:1e brd ff:ff:ff:ff:ff:ff permaddr
52:54:00:46:88:8b
    inet 192.168.124.5/24 scope global enp1s0
       valid_lft forever preferred_lft forever
   # ping 192.168.124.4
   PING 192.168.124.4 (192.168.124.4) 56(84) bytes of data.
   64 bytes from 192.168.124.4: icmp_seq=1 ttl=64 time=0.240 ms
   64 bytes from 192.168.124.4: icmp_seq=2 ttl=64 time=0.138 ms

   --- 192.168.124.4 ping statistics ---
   2 packets transmitted, 2 received, 0% packet loss, time 1001ms

   5.

   Check vm xml:

   # virsh dumpxml uefi  --xpath //interface
   <interface type="direct" trustGuestRxFilters="yes">
   <mac address="52:54:00:46:88:8b"/>
   <source dev="enp175s0v0" mode="passthrough"/>
   <target dev="macvtap2"/>
   <model type="virtio"/>
   <alias name="net0"/>
   <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
   </interface>

   6.

   Check on host:

   16: macvtap1 at enp175s0v0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
qdisc noqueue state UP group default qlen 500
    link/ether 52:54:00:9d:a1:1e brd ff:ff:ff:ff:ff:ff
    inet6 fe80::5054:ff:fe46:888b/64 scope link
       valid_lft forever preferred_lft forever

   7.

   Do managedsave and restore

   # virsh managedsave uefi
   Domain 'uefi' state saved by libvirt
   # virsh start uefi
   Domain 'uefi' started

   8.

   Check vm network function:

   # ip a
   1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
   4: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
fq_codel state UP group default qlen 1000
    link/ether 52:54:00:9d:a1:1e brd ff:ff:ff:ff:ff:ff permaddr
52:54:00:46:88:8b
    inet 192.168.124.5/24 scope global enp1s0
       valid_lft forever preferred_lft forever
   # ping 192.168.124.4
   PING 192.168.124.4 (192.168.124.4) 56(84) bytes of data.

   --- 192.168.124.4 ping statistics ---
   3 packets transmitted, 0 received, 100% packet loss, time 2036ms
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20220830/a8e85bcc/attachment.htm>


More information about the libvirt-users mailing list