radvd seems to crash when ipv4 addresses are supplied as nameservers to ipv6 subnets
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Medium
|
Brian Haley |
Bug Description
I'll copy from this report, please notice that I'm NOT the original reporter!:
https:/
Before cleaning the PID file, I did take a look at the config of radvd:
```
$ cat /var/lib/
interface qr-caa16d7e-26
{
AdvSendAdvert on;
MinRtrAdvInt
MaxRtrAdvInt
AdvLinkMTU 1450;
RDNSS 2a02:74a0:x:0::53 10.40.3.53 2a02:74a0:x:0::54 {};
prefix 2a02:74a0:x:y::/64
{
AdvOnLink on;
};
route fe80::a9fe:a9fe/128 {
};
};
```
We've been configuring the router with terraform, assigning the ipv4 resolvers to the IPv4 subnet and the IPv6 resolvers to the IPv6 subnet.
After deleting the router, adjusting the subnets (no resolvers on v4, only ipv6 resolvers on ipv6), and recreating the router, radvd is now active and everything's fine.
It seems that due to misconfiguration (and incomplete template parsing), IPv4 nameservers ended up in the config of radvd, which failed to start. Neutron was then unable to clean up the pidfile, thus failing to start radvd again.
tags: | added: ipv6 |
Changed in neutron: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
Changed in neutron: | |
assignee: | nobody → Brian Haley (brian-haley) |
So I just tried to recreate this, but can't add an IPv4 DNS nameserver to an IPv6 subnet (which I suspected):
$ openstack subnet show ipv6-private-subnet ------- ------- --+---- ------- ------- ------- ------- ------- ------- ------- ---+ ------- ------- --+---- ------- ------- ------- ------- ------- ------- ------- ---+ 5050::2- fd38:1b17: 5050:0: ffff:ffff: ffff:ffff | 23T22:04: 40Z | fixed_ip | None | f9a7-4b12- 962a-7a0e85b8d7 37 | 7b79-4143- ae46-dbdf27dfe6 d2 | 5a5c0751690462f ba | 6d9a-474c- b067-301d721a77 c1 | 23T22:04: 40Z | ------- ------- --+---- ------- ------- ------- ------- ------- ------- ------- ---+
+------
| Field | Value |
+------
| allocation_pools | fd38:1b17:
| cidr | fd38:1b17:5050::/64 |
| created_at | 2023-10-
| description | |
| dns_nameservers | |
| dns_publish_
| enable_dhcp | True |
| gateway_ip | fd38:1b17:5050::1 |
| host_routes | |
| id | e28a657c-
| ip_version | 6 |
| ipv6_address_mode | slaac |
| ipv6_ra_mode | slaac |
| name | ipv6-private-subnet |
| network_id | 9a5cd74f-
| project_id | d2461f0a315948f
| revision_number | 0 |
| segment_id | None |
| service_types | |
| subnetpool_id | 2bc9f4d7-
| tags | |
| updated_at | 2023-10-
+------
$ openstack subnet set --dns-nameserver 8.8.8.8 ipv6-private-subnet tion: 400: Client Error for url: http:// 172.16. 0.145:9696/ networking/ v2.0/subnets/ e28a657c- f9a7-4b12- 962a-7a0e85b8d7 37, Invalid input for operation: dns_nameserver '8.8.8.8' does not match the ip_version '6'.
BadRequestExcep
And since the code configuring the radvd.conf file is basing it's values on only SLAAC subnets, I'm not sure how this bug could happen unless the file was manually edited.
Anton - can you give any info on how this happened in your config? Thanks.