I think I can now narrow the problem down considerably. When I run the
image manually as
/usr/libexec/qemu-kvm -name test -enable-kvm -cpu host -m 4G -nographic
-hda /home/kcli/images/podvm.qcow2 -device
virtio-net,netdev=netdev0,id=net0 -netdev
tap,br=virbr0,helper=/usr/libexec/qemu-bridge-helper,id=netdev0
it will correctly acquire an IP address via virbr0's DHCP, in other words
it will do what I expect it to do. I guess this means there's nothing
wrong about the image and its DHCP setup.
For comparison, when launched from peer pods the command line is
/usr/libexec/qemu-kvm -name
guest=podvm-podsandbox-totok-8f10756a,debug-threads=on -S -object
{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-23-podvm-podsandbox-tot/master-key.aes"}
-machine
pc-i440fx-rhel10.0.0,usb=off,vmport=off,dump-guest-core=on,memory-backend=pc.ram,acpi=on
-accel kvm -cpu
Cascadelake-Server,vmx=on,pdcm=on,hypervisor=on,ss=on,tsc-adjust=on,fdp-excptn-only=on,zero-fcs-fds=on,mpx=on,umip=on,pku=on,md-clear=on,stibp=on,flush-l1d=on,arch-capabilities=on,xsaves=on,ibpb=on,ibrs=on,amd-stibp=on,amd-ssbd=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,tsx-ctrl=on,sbdr-ssdp-no=on,psdp-no=on,fb-clear=on,gds-no=on,rfds-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-activity-wait-sipi=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-apicv-register=on,vmx-apicv-vid=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-tsc-scaling=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-invept-single-context-noglobals=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-posted-intr=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-load-perf-global-ctrl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-exit-clear-bndcfgs=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-perf-global-ctrl=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-entry-load-bndcfgs=on,vmx-eptp-switching=on,hle=off,rtm=off
-m size=65536k -object
{"qom-type":"memory-backend-ram","id":"pc.ram","size":67108864} -overcommit
mem-lock=off -smp 1,sockets=1,cores=1,threads=1 -uuid
d71c1e97-5764-4ae4-a1bc-6470523f459c -display none -no-user-config
-nodefaults -chardev socket,id=charmonitor,fd=61,server=on,wait=off -mon
chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown
-boot strict=on -device
{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}
-device {"driver":"ahci","id":"sata0","bus":"pci.0","addr":"0x3"} -blockdev
{"driver":"file","filename":"/root/kcli/images/podvm.qcow2","node-name":"libvirt-3-storage","auto-read-only":true,"discard":"unmap"}
-blockdev
{"node-name":"libvirt-3-format","read-only":true,"driver":"qcow2","file":"libvirt-3-storage","backing":null}
-blockdev
{"driver":"file","filename":"/root/kcli/images/podvm-podsandbox-totok-8f10756a-root.qcow2","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}
-blockdev
{"node-name":"libvirt-2-format","read-only":false,"driver":"qcow2","file":"libvirt-2-storage","backing":"libvirt-3-format"}
-device
{"driver":"ide-hd","bus":"sata0.0","drive":"libvirt-2-format","id":"sata0-0-0","bootindex":1}
-blockdev
{"driver":"file","filename":"/root/kcli/images/podvm-podsandbox-totok-8f10756a-cloudinit.iso","node-name":"libvirt-1-storage","read-only":true}
-device
{"driver":"ide-cd","bus":"ide.0","unit":0,"drive":"libvirt-1-storage","id":"ide0-0-0"}
-netdev
{"type":"tap","fd":"62","vhost":true,"vhostfd":"65","id":"hostnet0"}
-device
{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:ed:06:2e","bus":"pci.0","addr":"0x2"}
-chardev pty,id=charserial0 -device
{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}
-audiodev {"id":"audio1","driver":"none"} -device
{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x4"}
-sandbox
on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny
-msg timestamp=on
and the machine doesn't get its IP address.
Where's the important difference? I include the whole domain xml(*) for
completeness.
pvl
(*) # virsh dumpxml podvm-podsandbox-totok-8f10756a
<domain type='kvm' id='23'>
<name>podvm-podsandbox-totok-8f10756a</name>
<uuid>d71c1e97-5764-4ae4-a1bc-6470523f459c</uuid>
<description>This Virtual Machine is the peer-pod VM</description>
<memory dumpCore='on' unit='KiB'>65536</memory>
<currentMemory unit='KiB'>65536</currentMemory>
<vcpu placement='static'>1</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-rhel10.0.0'>hvm</type>
</os>
<features>
<acpi/>
<apic/>
<vmport state='off'/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>Cascadelake-Server</model>
<vendor>Intel</vendor>
<feature policy='require' name='vmx'/>
<feature policy='require' name='pdcm'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='ss'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='fdp-excptn-only'/>
<feature policy='require' name='zero-fcs-fds'/>
<feature policy='require' name='mpx'/>
<feature policy='require' name='umip'/>
<feature policy='require' name='pku'/>
<feature policy='require' name='md-clear'/>
<feature policy='require' name='stibp'/>
<feature policy='require' name='flush-l1d'/>
<feature policy='require' name='arch-capabilities'/>
<feature policy='require' name='xsaves'/>
<feature policy='require' name='ibpb'/>
<feature policy='require' name='ibrs'/>
<feature policy='require' name='amd-stibp'/>
<feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='rdctl-no'/>
<feature policy='require' name='ibrs-all'/>
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
<feature policy='require' name='tsx-ctrl'/>
<feature policy='require' name='sbdr-ssdp-no'/>
<feature policy='require' name='psdp-no'/>
<feature policy='require' name='fb-clear'/>
<feature policy='require' name='gds-no'/>
<feature policy='require' name='rfds-no'/>
<feature policy='require' name='vmx-ins-outs'/>
<feature policy='require' name='vmx-true-ctls'/>
<feature policy='require' name='vmx-store-lma'/>
<feature policy='require' name='vmx-activity-hlt'/>
<feature policy='require' name='vmx-activity-wait-sipi'/>
<feature policy='require' name='vmx-vmwrite-vmexit-fields'/>
<feature policy='require' name='vmx-apicv-xapic'/>
<feature policy='require' name='vmx-ept'/>
<feature policy='require' name='vmx-desc-exit'/>
<feature policy='require' name='vmx-rdtscp-exit'/>
<feature policy='require' name='vmx-apicv-x2apic'/>
<feature policy='require' name='vmx-vpid'/>
<feature policy='require' name='vmx-wbinvd-exit'/>
<feature policy='require' name='vmx-unrestricted-guest'/>
<feature policy='require' name='vmx-apicv-register'/>
<feature policy='require' name='vmx-apicv-vid'/>
<feature policy='require' name='vmx-rdrand-exit'/>
<feature policy='require' name='vmx-invpcid-exit'/>
<feature policy='require' name='vmx-vmfunc'/>
<feature policy='require' name='vmx-shadow-vmcs'/>
<feature policy='require' name='vmx-rdseed-exit'/>
<feature policy='require' name='vmx-pml'/>
<feature policy='require' name='vmx-xsaves'/>
<feature policy='require' name='vmx-tsc-scaling'/>
<feature policy='require' name='vmx-ept-execonly'/>
<feature policy='require' name='vmx-page-walk-4'/>
<feature policy='require' name='vmx-ept-2mb'/>
<feature policy='require' name='vmx-ept-1gb'/>
<feature policy='require' name='vmx-invept'/>
<feature policy='require' name='vmx-eptad'/>
<feature policy='require' name='vmx-invept-single-context'/>
<feature policy='require' name='vmx-invept-all-context'/>
<feature policy='require' name='vmx-invvpid'/>
<feature policy='require' name='vmx-invvpid-single-addr'/>
<feature policy='require' name='vmx-invvpid-all-context'/>
<feature policy='require' name='vmx-invvpid-single-context-noglobals'/>
<feature policy='require' name='vmx-intr-exit'/>
<feature policy='require' name='vmx-nmi-exit'/>
<feature policy='require' name='vmx-vnmi'/>
<feature policy='require' name='vmx-preemption-timer'/>
<feature policy='require' name='vmx-posted-intr'/>
<feature policy='require' name='vmx-vintr-pending'/>
<feature policy='require' name='vmx-tsc-offset'/>
<feature policy='require' name='vmx-hlt-exit'/>
<feature policy='require' name='vmx-invlpg-exit'/>
<feature policy='require' name='vmx-mwait-exit'/>
<feature policy='require' name='vmx-rdpmc-exit'/>
<feature policy='require' name='vmx-rdtsc-exit'/>
<feature policy='require' name='vmx-cr3-load-noexit'/>
<feature policy='require' name='vmx-cr3-store-noexit'/>
<feature policy='require' name='vmx-cr8-load-exit'/>
<feature policy='require' name='vmx-cr8-store-exit'/>
<feature policy='require' name='vmx-flexpriority'/>
<feature policy='require' name='vmx-vnmi-pending'/>
<feature policy='require' name='vmx-movdr-exit'/>
<feature policy='require' name='vmx-io-exit'/>
<feature policy='require' name='vmx-io-bitmap'/>
<feature policy='require' name='vmx-mtf'/>
<feature policy='require' name='vmx-msr-bitmap'/>
<feature policy='require' name='vmx-monitor-exit'/>
<feature policy='require' name='vmx-pause-exit'/>
<feature policy='require' name='vmx-secondary-ctls'/>
<feature policy='require' name='vmx-exit-nosave-debugctl'/>
<feature policy='require' name='vmx-exit-load-perf-global-ctrl'/>
<feature policy='require' name='vmx-exit-ack-intr'/>
<feature policy='require' name='vmx-exit-save-pat'/>
<feature policy='require' name='vmx-exit-load-pat'/>
<feature policy='require' name='vmx-exit-save-efer'/>
<feature policy='require' name='vmx-exit-load-efer'/>
<feature policy='require' name='vmx-exit-save-preemption-timer'/>
<feature policy='require' name='vmx-exit-clear-bndcfgs'/>
<feature policy='require' name='vmx-entry-noload-debugctl'/>
<feature policy='require' name='vmx-entry-ia32e-mode'/>
<feature policy='require' name='vmx-entry-load-perf-global-ctrl'/>
<feature policy='require' name='vmx-entry-load-pat'/>
<feature policy='require' name='vmx-entry-load-efer'/>
<feature policy='require' name='vmx-entry-load-bndcfgs'/>
<feature policy='require' name='vmx-eptp-switching'/>
<feature policy='disable' name='hle'/>
<feature policy='disable' name='rtm'/>
</cpu>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source
file='/root/kcli/images/podvm-podsandbox-totok-8f10756a-root.qcow2'
index='2'/>
<backingStore type='file' index='3'>
<format type='qcow2'/>
<source file='/root/kcli/images/podvm.qcow2'/>
<backingStore/>
</backingStore>
<target dev='sda' bus='sata'/>
<boot order='1'/>
<alias name='sata0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source
file='/root/kcli/images/podvm-podsandbox-totok-8f10756a-cloudinit.iso'
index='1'/>
<backingStore/>
<target dev='hda' bus='ide'/>
<readonly/>
<alias name='ide0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<controller type='usb' index='0' model='piix3-uhci'>
<alias name='usb'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01'
function='0x2'/>
</controller>
<controller type='pci' index='0' model='pci-root'>
<alias name='pci.0'/>
</controller>
<controller type='ide' index='0'>
<alias name='ide'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01'
function='0x1'/>
</controller>
<controller type='sata' index='0'>
<alias name='sata0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03'
function='0x0'/>
</controller>
<interface type='network'>
<mac address='52:54:00:ed:06:2e'/>
<source network='default'
portid='315baa97-2c37-46ad-a0ff-8be16fffb275' bridge='virbr0'/>
<target dev='vnet21'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/0'/>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/0'>
<source path='/dev/pts/0'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<input type='mouse' bus='ps2'>
<alias name='input0'/>
</input>
<input type='keyboard' bus='ps2'>
<alias name='input1'/>
</input>
<audio id='1' type='none'/>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04'
function='0x0'/>
</memballoon>
</devices>
<seclabel type='dynamic' model='selinux' relabel='yes'>
<label>system_u:system_r:svirt_t:s0:c62,c325</label>
<imagelabel>system_u:object_r:svirt_image_t:s0:c62,c325</imagelabel>
</seclabel>
<seclabel type='dynamic' model='dac' relabel='yes'>
<label>+107:+107</label>
<imagelabel>+107:+107</imagelabel>
</seclabel>
</domain>
On Thu, Sep 18, 2025 at 11:55 AM Pavel Mores <[email protected]> wrote:
> On Thu, Sep 18, 2025 at 11:29 AM Pavel Mores <[email protected]> wrote:
>
>> On Thu, Sep 18, 2025 at 10:25 AM Martin Kletzander <[email protected]>
>> wrote:
>>
>>> On Wed, Sep 17, 2025 at 04:02:12PM +0200, Pavel Mores wrote:
>>> >On Wed, Sep 17, 2025 at 3:05 PM Martin Kletzander <[email protected]>
>>> >wrote:
>>> >
>>> >> On Wed, Sep 17, 2025 at 02:14:51PM +0200, Pavel Mores via Users wrote:
>>> >> >Hi,
>>> >> >
>>> >> >I'm examining a domain that's connected to the 'default' network
>>> >> >
>>> >> ># virsh net-dumpxml default
>>> >> ><network connections='1'>
>>> >> > <name>default</name>
>>> >> > <uuid>c757baa7-2b31-4794-9dfb-0df384575602</uuid>
>>> >> > <forward mode='nat'>
>>> >> > <nat>
>>> >> > <port start='1024' end='65535'/>
>>> >> > </nat>
>>> >> > </forward>
>>> >> > <bridge name='virbr0' stp='on' delay='0'/>
>>> >> > <mac address='52:54:00:37:b7:92'/>
>>> >> > <ip address='192.168.122.1' netmask='255.255.255.0'>
>>> >> > <dhcp>
>>> >> > <range start='192.168.122.2' end='192.168.122.254'/>
>>> >> > </dhcp>
>>> >> > </ip>
>>> >> ></network>
>>> >> >
>>> >>
>>> >> This is standard.
>>> >>
>>> >> >using a device as follows:
>>> >> >
>>> >> ><interface type='network'>
>>> >> > <mac address='52:54:00:ed:06:2e'/>
>>> >> > <source network='default'
>>> portid='83db8ca9-baed-47f3-ba0d-1a967ee86aa5'
>>> >> >bridge='virbr0'/>
>>> >> > <target dev='vnet19'/>
>>> >> > <model type='virtio'/>
>>> >> > <alias name='net0'/>
>>> >> > <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
>>> >> >function='0x0'/>
>>> >> ></interface>
>>> >> >
>>> >>
>>> >> This looks fine.
>>> >>
>>> >> >The domain is running but apparently without an IP address:
>>> >> >
>>> >> ># virsh domifaddr podvm-podsandbox-totok-8f10756a
>>> >> > Name MAC address Protocol Address
>>> >>
>>> >>
>>> >-------------------------------------------------------------------------------
>>> >> >
>>> >>
>>> >> This shows that libvirt does not know about any IP address. Does
>>> adding
>>> >> "--source agent", "--source arp" or "--source lease" change anything?
>>> >>
>>> >
>>> >'arp' and 'lease' don't but
>>> >
>>> ># virsh domifaddr --source agent podvm-podsandbox-totok-8f10756a
>>> >error: Failed to query for interfaces addresses
>>> >error: argument unsupported: QEMU guest agent is not configured
>>> >
>>> >This is surprising to me since this is a peer pods setup where the
>>> domain
>>> >in question is a podvm running an image which I was told does have
>>> >the qemu agent running.
>>> >
>>> >However the agent shouldn't be necessary for IP address acquisition I
>>> guess,
>>> >right?
>>> >
>>> >>The requisite host-side interfaces look good (to me anyway :-)):
>>> >> >
>>> >> >10: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb
>>> state UP
>>> >> >group default qlen 1000
>>> >> > link/ether 52:54:00:37:b7:92 brd ff:ff:ff:ff:ff:ff
>>> >> > inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
>>> >> > valid_lft forever preferred_lft forever
>>> >> >[...]
>>> >> >35: vnet19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
>>> >> master
>>> >> >virbr0 state UNKNOWN group default qlen 1000
>>> >> > link/ether fe:54:00:ed:06:2e brd ff:ff:ff:ff:ff:ff
>>> >> > inet6 fe80::fc54:ff:feed:62e/64 scope link proto kernel_ll
>>> >> > valid_lft forever preferred_lft forever
>>> >> >
>>> >> >I can share more information about the setup if necessary but I'll
>>> stop
>>> >> >here for now since I feel this must be just a simple stupid
>>> oversight on
>>> >> my
>>> >> >part. Please let me know if you'd like to have additional info.
>>> >> >
>>> >>
>>> >> When this happens to me sometimes, it's most often a firewall issue
>>> and
>>> >> the VM does not get any IP address or cannot communicate outside its
>>> >> network.
>>> >>
>>> >
>>> >I've seen a firewall suggested as a possible culprit, yes, however I
>>> don't
>>> >quite
>>> >know what it should look like. iptables appear unconfigured:
>>> >
>>> ># iptables -L -v -n
>>> >Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
>>> > pkts bytes target prot opt in out source
>>> >destination
>>> >
>>> >Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
>>> > pkts bytes target prot opt in out source
>>> >destination
>>> >
>>> >Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
>>> > pkts bytes target prot opt in out source
>>> >destination
>>> >
>>> >`nft list ruleset` lists only rules that look managed by libvirt
>>> >itself(*). At any
>>> >rate the host machine has no specific hand-configured firewall that I
>>> know
>>> >of.
>>> >
>>> >
>>> >> What it can be here is that there are some access issues to the
>>> dnsmasq
>>> >> lease file.
>>> >>
>>> >> What's in your /var/lib/libvirt/dnsmasq/virbr0.status file on the
>>> host?
>>> >>
>>> >
>>> >It's empty.
>>> >
>>> >Thanks Martin!
>>> >pvl
>>> >
>>> >(*) # nft list ruleset
>>> >table ip libvirt_network {
>>> >chain forward {
>>> >type filter hook forward priority filter; policy accept;
>>> >counter packets 85854914 bytes 398726525237 jump guest_cross
>>> >counter packets 85854914 bytes 398726525237 jump guest_input
>>> >counter packets 34777368 bytes 3386943972 jump guest_output
>>> >}
>>> >
>>> >chain guest_output {
>>> >ip saddr 192.168.122.0/24 iif "virbr0" counter packets 0 bytes 0 accept
>>>
>>> This suggests there were no incoming packets from an IP address in the
>>> range on the bridge.
>>>
>>> >iif "virbr0" counter packets 0 bytes 0 reject
>>>
>>> And no packets from outside of that range that would fall through to
>>> this above rule.
>>>
>>> [...]
>>>
>>> >}
>>> >
>>> >chain guest_input {
>>>
>>> [...]
>>>
>>> >oif "virbr0" ip daddr 192.168.122.0/24 ct state established,related
>>> counter
>>> >packets 0 bytes 0 accept
>>>
>>> No packets sent to the address range on the bridge, but
>>>
>>> >oif "virbr0" counter packets 0 bytes 0 reject
>>>
>>> basically no packets sent at all.
>>>
>>> >}
>>> >
>>> >chain guest_cross {
>>> >iif "openshift-412" oif "openshift-412" counter packets 0 bytes 0 accept
>>> >iif "openshift-419" oif "openshift-419" counter packets 0 bytes 0 accept
>>> >iif "openshift-416" oif "openshift-416" counter packets 0 bytes 0 accept
>>> >iif "openshift-415" oif "openshift-415" counter packets 0 bytes 0 accept
>>> >iif "openshift-413" oif "openshift-413" counter packets 0 bytes 0 accept
>>> >iif "virbr0" oif "virbr0" counter packets 0 bytes 0 accept
>>>
>>> No intra-network communication
>>>
>>> [...]
>>>
>>> >chain guest_nat {
>>> >type nat hook postrouting priority srcnat; policy accept;
>>>
>>> [...]
>>>
>>> >ip saddr 192.168.122.0/24 ip daddr 224.0.0.0/24 counter packets 50
>>> bytes
>>> >3676 return
>>>
>>> There were some IPv4 multicast packets, but these could've originated
>>> from the host.
>>>
>>> >ip saddr 192.168.122.0/24 ip daddr 255.255.255.255 counter packets 0
>>> bytes
>>> >0 return
>>>
>>> And no broadcast packets from the address space.
>>>
>>> >meta l4proto tcp ip saddr 192.168.122.0/24 ip daddr != 192.168.122.0/24
>>> >counter packets 0 bytes 0 masquerade to :1024-65535
>>> >meta l4proto udp ip saddr 192.168.122.0/24 ip daddr != 192.168.122.0/24
>>> >counter packets 0 bytes 0 masquerade to :1024-65535
>>> >ip saddr 192.168.122.0/24 ip daddr != 192.168.122.0/24 counter packets
>>> 0
>>> >bytes 0 masquerade
>>>
>>> No NAT, anything.
>>>
>>> [...]
>>> >ip saddr 192.168.14.0/24 ip daddr 224.0.0.0/24 counter packets 50 bytes
>>> >3675 return
>>>
>>> These counters on another range are the same, so I would say all the
>>> multicast packets on the range we are interested in are just the same,
>>> hence having nothing to do with the guest.
>>>
>>> >}
>>> >}
>>> >table ip6 libvirt_network {
>>> >chain forward {
>>> >type filter hook forward priority filter; policy accept;
>>> >counter packets 0 bytes 0 jump guest_cross
>>> >counter packets 0 bytes 0 jump guest_input
>>> >counter packets 0 bytes 0 jump guest_output
>>>
>>> And totally nothing with IPv6.
>>>
>>
>> As a bit of context, this is a virtlab machine whose primary purpose is
>> to run
>> kcli-based openshift clusters whose nodes are libvirt domains. Those are
>> the
>> "openshift-41[1-9]" networks and bridges. They are unrelated to the
>> setup I'm
>> looking into and most of them are actually obsolete (it's been years now
>> since
>> a 4.11 cluster last ran on the host :-)).
>>
>> My "guess" would be that the guest did not even get an IP address, maybe
>>> did not eve try DHCP. Are you sure the guest booted?
>>>
>>
>> I think it is, based on
>>
>> # virsh list
>> Id Name State
>> -------------------------------------------------
>> [...]
>> 20 podvm-podsandbox-totok-8f10756a running
>>
>> But now that you mention it, I'm not positively sure that it tried DHCP.
>> The zero
>> traffic on the virbr0 bridge you mention above is overall explainable by
>> the domain
>> not having an address *but* if it did try DHCP those packets would show
>> up in the
>> virbr0 stats I guess?
>>
>> I did check out previously the DHCP leases on the 'default' network:
>>
>> # virsh net-dhcp-leases default
>> Expiry Time MAC address Protocol IP address Hostname Client ID
>> or DUID
>>
>> -----------------------------------------------------------------------------------
>>
>> and there are none but that doesn't rule out any other failure in DHCP.
>>
>> The domain runs a peer pods podvm image which I don't have any control
>> over and
>> frankly am not familiar with. I assume that it does do DHCP to configure
>> its interfaces
>> but as the guest agent example shows my information about the image might
>> not be
>> always accurate.
>>
>
> I verified that the VM does do DHCP (there actually doesn't seem to be any
> other
> means for a podvm to get its network configured in peer pods).
>
> pvl
>
>
>> Is there a way to check if the domain attempts DHCP purely from the
>> libvirt side, just
>> using libvirt means?
>>
>> Thanks!
>> pvl
>>
>