IPv4 subnets added when VM is already up on an IPv6 subnet on the same network, does not enable VM ports to get IPv4 address
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Invalid
|
Undecided
|
Lajos Katona |
Bug Description
On both stable/pike and stable/ocata, we performed the following steps:
1. Create a network
2. Create an IPv6 subnet in SLAAC Mode (both RA mode and Address mode)
3. Create a router
4. Attach the IPv6 subnet to the router
5. Now boot VMs with the network-id.
6. Make sure VMs are up and able to communicate via their Global and Link-Local IPv6 addresses.
7. Create an IPv4 subnet on the same network.
After step 5, you will notice that the booted VM neutron ports fixed-ips are not updated with IPv4 subnets automatically.
The user has to manually update the VM Neutron ports via port-update command with the IPv4 subnet-id and then go back to the VM and recycle eth0 after which only the VMs will get the IPv4 address.
The DHCP Neutron port alone got updated automatically with the IPv4 address in addition to IPv6 address with the above steps.
Any new VMs spawned after both IPv4 and IPv6 subnets are available on the network, is able to get both the addresses and its Neutron Ports in the control plane also reflect the same.
BTW, if the above set of steps are followed just by swapping the order where we create IPv4 subnets first, then boot VMs, create an IPv6 subnet on the same network, the VM Neutron Ports fixed-ips get updated automatically with the new assigned IPv6 Global addresses on the IPv6 subnet.
description: | updated |
description: | updated |
description: | updated |
tags: | added: ipv6 |
Changed in neutron: | |
status: | Expired → New |
Changed in neutron: | |
assignee: | nobody → Lajos Katona (lajos-katona) |
status: | New → Invalid |
This seems not a bug(, or this should be an RFE for automatically allocating addresses in IPv4 subnets?). Things go a bit differently with IPv6 auto addressing.
If a newly created subnet supports auto-addressing (IPv6 SLAAC, DHCPv6 stateless), all the internal ports on the network would be automatically updated with an IP address from that subnet. However this is not applicable for IPv4 subnets and IPv6 stateful. Thus existing ports won't be updated when you create a new IPv4 subnet.
If you try in the order that IPv4 subnets are created first then IPv6 stateful subnets, existing ports won't be updated with addresses from the newly created IPv6 stateful subnet either.
For newly spawned VM, if a port is created in a network which contains multiple subnets without specifying fixed_ips(i.e., not specifying subnets), it would be created with multiple IP addresses, one allocated from each subnet.