[Bug 2046804] Re: OVN ic-route-blacklist does not work for IPv6 prefixes
Roberto Bartzen Acosta
2046804 at bugs.launchpad.net
Mon Feb 19 21:41:10 UTC 2024
Related fix released to branch: main
https://github.com/ovn-org/ovn/commit/78750699ab195a1b2c48fbab8546ed0651b05de4
** Changed in: ovn (Ubuntu)
Assignee: (unassigned) => Roberto Bartzen Acosta (rbartzen)
** Changed in: ovn (Ubuntu)
Status: New => In Progress
** Changed in: ovn (Ubuntu)
Status: In Progress => Fix Committed
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to ovn in Ubuntu.
https://bugs.launchpad.net/bugs/2046804
Title:
OVN ic-route-blacklist does not work for IPv6 prefixes
Status in ovn package in Ubuntu:
Fix Committed
Bug description:
The OVN interconnect introduced a new filter option in the NB_Global
table:
options : ic-route-blacklist: optional string
A string value contains a list of CIDRs delimited by ",". A
route will not be advertised or learned if the route’s prefix
belongs to any of the CIDRs listed.
There is a bug related with the ic-route-blacklist option that does not work with IPv6.
For IPv6 to work we have to remove the IPv6 subnet from the blacklist configuration because when we add IPv6 CIDRs to the OVN IC blacklist all IPv6 prefixes stop being advertised.
This filter option is useful for not adverting subnet of the provider's network on the Transit Switch and avoiding Network 'Tromboning' behavior, for example.
There are no test checks in the OVN test suite for IPv6 blacklist
(only for IPv4).
How to reproduce the issue:
1 - Create all interconnect configuration without blacklisting IPv6
subnets.
* cluster 1
$ ovn-nbctl list nb_global
_uuid : b94434ed-3ea6-47fd-9db2-514296b8ffb7
connections : []
external_ids : {"neutron:liveness_check_at"="2023-12-17 15:44:49.200848+00:00"}
hv_cfg : 147
hv_cfg_timestamp : 1702827889216
ipsec : false
name : osp1
nb_cfg : 147
nb_cfg_timestamp : 1702827889208
options : {ic-route-adv="true", ic-route-blacklist="200.200.200.0/24,200.200.201.0/24", ic-route-learn="true", mac_prefix="9a:d2:ab", max_tunid="4095", northd_internal_version="23.09.0-20.29.0-71.6", svc_monitor_mac="06:4c:fb:f3:5b:e6"}
sb_cfg : 147
sb_cfg_timestamp : 1702827889219
ssl : []
* cluster 2
ovn-nbctl list nb_global
_uuid : d4c2dcce-cefd-46f9-9499-fa36c6a58033
connections : []
external_ids : {"neutron:liveness_check_at"="2023-12-16 22:40:31.985612+00:00"}
hv_cfg : 87
hv_cfg_timestamp : 1702766432004
ipsec : false
name : osp2
nb_cfg : 87
nb_cfg_timestamp : 1702766431989
options : {ic-route-adv="true", ic-route-blacklist="200.200.200.0/24,200.200.201.0/24", ic-route-learn="true", mac_prefix="22:71:00", max_tunid="4095", northd_internal_version="23.09.0-20.29.0-71.6", svc_monitor_mac="22:74:2e:4c:d5:9b"}
sb_cfg : 87
sb_cfg_timestamp : 1702766431998
ssl : []
* cluster 3
ovn-nbctl list nb_global
_uuid : cbfadb8c-dbee-4ded-97ea-6aef4b803b19
connections : []
external_ids : {"neutron:liveness_check_at"="2023-12-17 15:45:04.122119+00:00"}
hv_cfg : 75
hv_cfg_timestamp : 1702827904158
ipsec : false
name : osp3
nb_cfg : 75
nb_cfg_timestamp : 1702827904141
options : {ic-route-adv="true", ic-route-blacklist="200.200.200.0/24", ic-route-learn="true", mac_prefix="92:8f:66", max_tunid="4095", northd_internal_version="23.09.0-20.29.0-71.6", svc_monitor_mac="9a:16:92:67:38:83"}
sb_cfg : 75
sb_cfg_timestamp : 1702827904154
ssl : []
2. Check networks learned from remote OVN clusters
* cluster 1, for example:
$ ovn-nbctl lr-route-list 078fd69b-f4c7-4469-a900-918d0a229bd1
IPv4 Routes
Route Table <main>:
10.0.1.0/24 169.254.100.12 dst-ip (learned)
10.0.2.0/24 169.254.100.13 dst-ip (learned)
172.16.0.0/24 169.254.50.1 dst-ip
0.0.0.0/0 200.200.200.1 dst-ip
IPv6 Routes
Route Table <main>:
2001:db8:1::/64 fd00::2 dst-ip (learned)
2001:db8:1::/64 fd00::3 dst-ip (learned)
2801:80:3ea0:822::/64 fd00::2 dst-ip (learned)
2801:80:3ea0:823::/64 fd00::3 dst-ip (learned)
::/0 2001:db8:1:: dst-ip
3. Apply the provider's subnet filter
* cluster 1
ovn-nbctl list nb_global
_uuid : b94434ed-3ea6-47fd-9db2-514296b8ffb7
connections : []
external_ids : {"neutron:liveness_check_at"="2023-12-17 15:44:49.200848+00:00"}
hv_cfg : 147
hv_cfg_timestamp : 1702827889216
ipsec : false
name : osp1
nb_cfg : 147
nb_cfg_timestamp : 1702827889208
options : {ic-route-adv="true", ic-route-blacklist="200.200.200.0/24,200.200.201.0/24,2801:80:3ea0:821::/64", ic-route-learn="true", mac_prefix="9a:d2:ab", max_tunid="4095", northd_internal_version="23.09.0-20.29.0-71.6", svc_monitor_mac="06:4c:fb:f3:5b:e6"}
sb_cfg : 147
sb_cfg_timestamp : 1702827889219
ssl : []
* cluster 2
ovn-nbctl list nb_global
_uuid : d4c2dcce-cefd-46f9-9499-fa36c6a58033
connections : []
external_ids : {"neutron:liveness_check_at"="2023-12-16 22:40:31.985612+00:00"}
hv_cfg : 87
hv_cfg_timestamp : 1702766432004
ipsec : false
name : osp2
nb_cfg : 87
nb_cfg_timestamp : 1702766431989
options : {ic-route-adv="true", ic-route-blacklist="200.200.200.0/24,200.200.201.0/24,2801:80:3ea0:822::/64", ic-route-learn="true", mac_prefix="22:71:00", max_tunid="4095", northd_internal_version="23.09.0-20.29.0-71.6", svc_monitor_mac="22:74:2e:4c:d5:9b"}
sb_cfg : 87
sb_cfg_timestamp : 1702766431998
ssl : []
* cluster 3
ovn-nbctl list nb_global
_uuid : cbfadb8c-dbee-4ded-97ea-6aef4b803b19
connections : []
external_ids : {"neutron:liveness_check_at"="2023-12-17 15:45:04.122119+00:00"}
hv_cfg : 75
hv_cfg_timestamp : 1702827904158
ipsec : false
name : osp3
nb_cfg : 75
nb_cfg_timestamp : 1702827904141
options : {ic-route-adv="true", ic-route-blacklist="200.200.200.0/24,2801:80:3ea0:823::/64", ic-route-learn="true", mac_prefix="92:8f:66", max_tunid="4095", northd_internal_version="23.09.0-20.29.0-71.6", svc_monitor_mac="9a:16:92:67:38:83"}
sb_cfg : 75
sb_cfg_timestamp : 1702827904154
ssl : []
4. Check networks learned from remote clusters
* cluster 1
ovn-nbctl lr-route-list 078fd69b-f4c7-4469-a900-918d0a229bd1
IPv4 Routes
Route Table <main>:
10.0.1.0/24 169.254.100.12 dst-ip (learned)
10.0.2.0/24 169.254.100.13 dst-ip (learned)
172.16.0.0/24 169.254.50.1 dst-ip
0.0.0.0/0 200.200.200.1 dst-ip
IPv6 Routes
Route Table <main>:
::/0 2001:db8:1:: dst-ip
Interconnection networks that were not included in the blacklist have also been filtered !!!
* we should have the 2001:db8:1::/64 network there
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ovn/+bug/2046804/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list