#16421·kubevirt

Omit private IPs from VMI interface status for VMs with masquerade binding

Author: frenzyfridayCreated Dec 29, 2025Updated Sep 21, 2026
Labelskind/bugsig/networkarea/handler

What happened: If pod IP does not exist in VMI interface status, the IP from guest agent (if present) is written to the status. So in a dual stack or single IPv4 stack environment if pod IP does not exist and internal IP addresses are still configured on the guest VM (though dhcp/ipam etc maybe), they are shown on the interface status even though they are not reachable.

What you expected to happen: In dual stack or single IPv4 stack environments only the pod IP should appear on the interface status.

How to reproduce it (as minimally and precisely as possible): Create a VM with masquerade binding without a pod IP in a single ipv4/6 or dual stack environment. Configure an IPv4 private IP manually or through cloudinit on the guest VM. Check the VMI interface status for this IP.

Additional context: The e2e test that verifies connectivity between 2 masquerage VMs does not catch this as of now. The IPs configured on the server and client VMs through cloudinit are the same. So if the client VM pings the server IP, and even if this server IP is not reachable, it essentially pings itself and passes.

Environment:

  • KubeVirt version (use virtctl version): N/A
  • Kubernetes version (use kubectl version): N/A
  • VM or VMI specifications: N/A
  • Cloud provider or hardware configuration: N/A
  • OS (e.g. from /etc/os-release): N/A
  • Kernel (e.g. uname -a): N/A
  • Install tools: N/A
  • Others: N/A