Hello: After investigating this issue, I found that the router external interface (gateway port) configures the external network "extra subnets" as onlink routes. The "extra subnets" are the additional subnets apart from the gateway port IP CIDR. In this case, the extra subnets are those RPN subnets that are not connected to the router port.
By default, when a router gateway port is enabled, the extra subnets CIDRs are set as onlink routes in the router namespace. E.g.: $ ip netns exec qrouter-8b56474d-027c-4d96-805d-869ceb92cd96 ip r ... 10.222.144.0/22 dev qg-f5b03925-e4 proto 112 scope link 10.222.144.0/22 dev qg-f5b03925-e4 proto static scope link 10.222.152.0/22 dev qg-f5b03925-e4 proto 112 scope link 10.222.152.0/22 dev qg-f5b03925-e4 proto static scope link 10.222.156.0/22 dev qg-f5b03925-e4 proto 112 scope link 10.222.156.0/22 dev qg-f5b03925-e4 proto static scope link The justification for those onlink routes is described in the patch that added them [1]. The case reported in this bug is a particular condition where the gateway router is connected to a RPN, specifically to a segment (one subnet) of this network. That means this gateway port has broadcast connectivity to only this subnet CIDR. As commented, to have connectivity to the other subnets, the admin should manually add those extra routes on the router. E.g.: $ openstack router set --route destination=192.168.50.0/24,gateway=192.168.20.10 router1 That will overwrite the link routes and create global ones with (1) the destination IP, (2) the GW IP and (3) the device. E.g.: ... 192.168.50.0/24 via 192.168.20.10 dev qg-1d690261-35 proto 112 192.168.50.0/24 via 192.168.20.10 dev qg-1d690261-35 proto static 192.168.60.0/24 via 192.168.20.10 dev qg-1d690261-35 proto 112 192.168.60.0/24 via 192.168.20.10 dev qg-1d690261-35 proto static This bug should be closed. Regards. [1]https://review.opendev.org/c/openstack/neutron/+/90250 ** Changed in: neutron Status: Triaged => Won't Fix -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1923592 Title: [Routed networks] Router routes to other segment CIDRs should have a gateway IP Status in neutron: Won't Fix Bug description: The router namespace routes for other segment CIDRs, should have the "via" parameter to the gateway IP address. The environment I'm using has HA routers; I didn't test yet with DVR or legacy routers. For example, in my env [1]: - Network: public - Subnets: (s1) aebc3fc1-d984-40aa-8405-db51df03f60d: 10.46.54.0/26, gwip: 10.46.54.62 (s2) 55a66c34-3643-49ba-ab8c-326ee76e5f35: 10.46.54.64/26, gwip: 10.46.54.126 - Router namespace: [root@controller-0 ~]# ip netns exec $r ip r default via 10.46.54.62 dev qg-7847fd00-72 proto 112 default via 10.46.54.62 dev qg-7847fd00-72 proto static 10.1.0.0/16 dev qr-d224ca69-77 proto kernel scope link src 10.1.0.1 10.46.54.0/26 dev qg-7847fd00-72 proto kernel scope link src 10.46.54.34 10.46.54.64/26 dev qg-7847fd00-72 proto 112 scope link 10.46.54.64/26 dev qg-7847fd00-72 proto static scope link 169.254.0.0/24 dev ha-91b6c056-57 proto kernel scope link src 169.254.0.233 169.254.192.0/18 dev ha-91b6c056-57 proto kernel scope link src 169.254.193.151 This router is attached to the segment of the subnet aebc3fc1-d984-40aa-8405-db51df03f60d (s1). The route to 10.46.54.64/26 (the other subnet/segment this router is NOT attached to), should have the gateway IP address of the subnet that belongs to the segment the router is attached to; in this case, as commented, (s1). [1]http://paste.openstack.org/show/804429/ Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1945061 To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1923592/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

