Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Descriptionyalzhang@redhat.com
2017-09-30 05:31:52 UTC
Description of problem:
client get ipv6 address which do not in the dnsmasq dhcp range.
Version-Release number of selected component (if applicable):
# rpm -q libvirt dnsmasq
libvirt-3.7.0-2.el7.x86_64
dnsmasq-2.76-4.el7.x86_64
How reproducible:
100%
Steps to Reproduce:
1. As libvirt use dnsmasq as a dhcp server, start a guest connected to a network 'net', the guest can get ipv6 address which in the defined range.
# virsh net-dumpxml net
<network connections='1' ipv6='yes'>
<name>net</name>
<uuid>ca9ea2a9-eed4-431d-b281-90458b7d83ea</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr1' stp='on' delay='0'/>
<mac address='52:54:00:7a:9e:b1'/>
<ip address='192.168.100.1' netmask='255.255.255.0'>
</ip>
<ip family='ipv6' address='2001:db8:ca2:2::1' prefix='64'>
<dhcp>
<range start='2001:db8:ca2:2:5::100' end='2001:db8:ca2:2:5::1ff'/>
</dhcp>
</ip>
</network>
# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 2001:db8:ca2:2:5::1e7 prefixlen 64 scopeid 0x0<global>
inet6 fe80::5054:ff:fe7b:5191 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:7b:51:91 txqueuelen 1000 (Ethernet)
# cat /var/lib/libvirt/dnsmasq/net.conf
##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
##OVERWRITTEN AND LOST. Changes to this configuration should be made using:
## virsh net-edit net
## or other application using the libvirt API.
##
## dnsmasq conf file created by libvirt
strict-order
pid-file=/var/run/libvirt/network/net.pid
except-interface=lo
bind-dynamic
interface=virbr1
dhcp-range=2001:db8:ca2:2:5::100,2001:db8:ca2:2:5::1ff,64
dhcp-lease-max=256
dhcp-hostsfile=/var/lib/libvirt/dnsmasq/net.hostsfile
addn-hosts=/var/lib/libvirt/dnsmasq/net.addnhosts
enable-ra
2. destroy the 'dhcp server' and 'client' for step 3 to make the changes.
# virsh destroy yal; virsh net-destroy net
Domain yal destroyed
Network net destroyed
3. change the ipv6 ip-dhcp-range for the network, then start the network and vm
# virsh net-start net; virsh net-dumpxml net
Network net started
<network ipv6='yes'>
<name>net</name>
<uuid>ca9ea2a9-eed4-431d-b281-90458b7d83ea</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr1' stp='on' delay='0'/>
<mac address='52:54:00:7a:9e:b1'/>
<ip address='192.168.100.1' netmask='255.255.255.0'>
</ip>
<ip family='ipv6' address='2001:db8:ca2:2::1' prefix='64'>
<dhcp>
<range start='2001:db8:ca2:2:7::200' end='2001:db8:ca2:2:7::2ff'/>
</dhcp>
</ip>
</network>
# virsh start yal
Domain yal started
# cat /var/lib/libvirt/dnsmasq/net.conf
##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
##OVERWRITTEN AND LOST. Changes to this configuration should be made using:
## virsh net-edit net
## or other application using the libvirt API.
##
## dnsmasq conf file created by libvirt
strict-order
pid-file=/var/run/libvirt/network/net.pid
except-interface=lo
bind-dynamic
interface=virbr1
dhcp-range=2001:db8:ca2:2:7::200,2001:db8:ca2:2:7::2ff,64
dhcp-lease-max=256
dhcp-hostsfile=/var/lib/libvirt/dnsmasq/net.hostsfile
addn-hosts=/var/lib/libvirt/dnsmasq/net.addnhosts
enable-ra
4. log in guest and check the ipv6 address do not change, but it is not in the current range
# ifconfig -a
eth0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 52:54:00:7b:51:91 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
....
# dhclient -6
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 2001:db8:ca2:2:5::1e7 prefixlen 64 scopeid 0x0<global>
inet6 fe80::5054:ff:fe7b:5191 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:7b:51:91 txqueuelen 1000 (Ethernet)
Actual results:
client get ipv6 address which do not in the current dnsmasq dhcp range.
Expected results:
the guest should get a ipv6 address in the range of "<range start='2001:db8:ca2:2:7::200' end='2001:db8:ca2:2:7::2ff'/>"
Additional info:
It seems the guest or host will remember what he has got or allocated last time until the lease time even the range changed.
Comment 2yalzhang@redhat.com
2017-09-30 05:34:23 UTC
Comment 7RHEL Program Management
2020-05-27 14:33:32 UTC
Development Management has reviewed and declined this request. You may appeal this decision by using your Red Hat support channels, who will make certain the issue receives the proper prioritization with product and development management.
https://www.redhat.com/support/process/production/#howto
Description of problem: client get ipv6 address which do not in the dnsmasq dhcp range. Version-Release number of selected component (if applicable): # rpm -q libvirt dnsmasq libvirt-3.7.0-2.el7.x86_64 dnsmasq-2.76-4.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1. As libvirt use dnsmasq as a dhcp server, start a guest connected to a network 'net', the guest can get ipv6 address which in the defined range. # virsh net-dumpxml net <network connections='1' ipv6='yes'> <name>net</name> <uuid>ca9ea2a9-eed4-431d-b281-90458b7d83ea</uuid> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr1' stp='on' delay='0'/> <mac address='52:54:00:7a:9e:b1'/> <ip address='192.168.100.1' netmask='255.255.255.0'> </ip> <ip family='ipv6' address='2001:db8:ca2:2::1' prefix='64'> <dhcp> <range start='2001:db8:ca2:2:5::100' end='2001:db8:ca2:2:5::1ff'/> </dhcp> </ip> </network> # ifconfig eth0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 2001:db8:ca2:2:5::1e7 prefixlen 64 scopeid 0x0<global> inet6 fe80::5054:ff:fe7b:5191 prefixlen 64 scopeid 0x20<link> ether 52:54:00:7b:51:91 txqueuelen 1000 (Ethernet) # cat /var/lib/libvirt/dnsmasq/net.conf ##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE ##OVERWRITTEN AND LOST. Changes to this configuration should be made using: ## virsh net-edit net ## or other application using the libvirt API. ## ## dnsmasq conf file created by libvirt strict-order pid-file=/var/run/libvirt/network/net.pid except-interface=lo bind-dynamic interface=virbr1 dhcp-range=2001:db8:ca2:2:5::100,2001:db8:ca2:2:5::1ff,64 dhcp-lease-max=256 dhcp-hostsfile=/var/lib/libvirt/dnsmasq/net.hostsfile addn-hosts=/var/lib/libvirt/dnsmasq/net.addnhosts enable-ra 2. destroy the 'dhcp server' and 'client' for step 3 to make the changes. # virsh destroy yal; virsh net-destroy net Domain yal destroyed Network net destroyed 3. change the ipv6 ip-dhcp-range for the network, then start the network and vm # virsh net-start net; virsh net-dumpxml net Network net started <network ipv6='yes'> <name>net</name> <uuid>ca9ea2a9-eed4-431d-b281-90458b7d83ea</uuid> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr1' stp='on' delay='0'/> <mac address='52:54:00:7a:9e:b1'/> <ip address='192.168.100.1' netmask='255.255.255.0'> </ip> <ip family='ipv6' address='2001:db8:ca2:2::1' prefix='64'> <dhcp> <range start='2001:db8:ca2:2:7::200' end='2001:db8:ca2:2:7::2ff'/> </dhcp> </ip> </network> # virsh start yal Domain yal started # cat /var/lib/libvirt/dnsmasq/net.conf ##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE ##OVERWRITTEN AND LOST. Changes to this configuration should be made using: ## virsh net-edit net ## or other application using the libvirt API. ## ## dnsmasq conf file created by libvirt strict-order pid-file=/var/run/libvirt/network/net.pid except-interface=lo bind-dynamic interface=virbr1 dhcp-range=2001:db8:ca2:2:7::200,2001:db8:ca2:2:7::2ff,64 dhcp-lease-max=256 dhcp-hostsfile=/var/lib/libvirt/dnsmasq/net.hostsfile addn-hosts=/var/lib/libvirt/dnsmasq/net.addnhosts enable-ra 4. log in guest and check the ipv6 address do not change, but it is not in the current range # ifconfig -a eth0: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 52:54:00:7b:51:91 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 .... # dhclient -6 # ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 2001:db8:ca2:2:5::1e7 prefixlen 64 scopeid 0x0<global> inet6 fe80::5054:ff:fe7b:5191 prefixlen 64 scopeid 0x20<link> ether 52:54:00:7b:51:91 txqueuelen 1000 (Ethernet) Actual results: client get ipv6 address which do not in the current dnsmasq dhcp range. Expected results: the guest should get a ipv6 address in the range of "<range start='2001:db8:ca2:2:7::200' end='2001:db8:ca2:2:7::2ff'/>" Additional info: It seems the guest or host will remember what he has got or allocated last time until the lease time even the range changed.