[Openstack] host routes on provider subnet not working.

Volodymyr Litovka doka.ua at gmx.com
Wed Jun 7 07:12:23 UTC 2017


Hi Gary,

why you need this route installed on vRouter? It's not a 
packet-originating node, it's just a transit point. As soon as you'll 
have a proper routing table on guest VMs (according to DHCP 
configuration), they will send packets destined to 172.16.0.0/12 through 
172.31.96.1 and everything else - to 172.31.96.21. Neither vR nor NATing 
host don't require more specific routes.


On 6/6/17 9:23 PM, Gary molenkamp wrote:
> I'm having an issue with Neutron under Newton in assigning routes to 
> the provider network.  I would appreciate any advice on whether I am 
> doing this incorrectly, or if this a bug with neutron.
>
>
> I have a routed provider network that is using RFC1918 address space 
> for our institution's private network.  ie:
>
>     provider-subnet:   172.31.96.0/22   default gateway: 172.31.96.1
>
> This subnet is routed to other subnets in the 172.16.0.0/12 address 
> space, but does not have any outbound service to general internet.  To 
> provide outbound NAT to instances,  I add a NATing host to the 
> provider-subnet physical network and changed the default gateway to 
> that host.  I then added a host route to the subnet that uses the 
> original gateway as the nexthop on the generic 172.16.0.0/12 ip 
> space:  such that:
>
> NATing host=172.31.96.21
>
>
> # openstack subnet show 066df21a-d23d-4917-8b28-d097957633dc
>
> +-------------------+-----------------------------------------------------+ 
>
>
> | Field             | 
> Value                                               |
>
> +-------------------+-----------------------------------------------------+ 
>
>
> | allocation_pools  | 
> 172.31.96.32-172.31.99.240                          |
>
> | cidr              | 
> 172.31.96.0/22                                      |
>
> | created_at        | 
> 2017-04-12T15:59:32Z                                |
>
> | description |                                                     |
>
> | dns_nameservers   | 
> 8.8.8.8                                             |
>
> | enable_dhcp       | 
> True                                                |
>
> | gateway_ip        | 
> 172.31.96.21                                        |
>
> | host_routes       | destination='172.16.0.0/12', 
> gateway='172.31.96.1'  |
>
> | id                | 
> 066df21a-d23d-4917-8b28-d097957633dc                |
>
> | ip_version        | 
> 4                                                   |
>
> | ipv6_address_mode | 
> None                                                |
>
> | ipv6_ra_mode      | 
> None                                                |
>
> | name              | 
> provider-campus                                     |
>
> | network_id        | 
> 67917c09-6cb4-4622-ae1b-9f5aef890b0f                |
>
> | project_id        | 
> a9746d7b6ff047dca9ac3aced978643c                    |
>
> | project_id        | 
> a9746d7b6ff047dca9ac3aced978643c                    |
>
> | revision_number   | 
> 10                                                  |
>
> | service_types     | 
> []                                                  |
>
> | subnetpool_id     | 
> None                                                |
>
> | updated_at        | 
> 2017-06-06T13:33:31Z                                |
>
> +-------------------+-----------------------------------------------------+ 
>
>
>
> However, when a router is added and set to the gateway on this 
> provider subnet,  the included routes do not have the proper nexthop 
> set in the routing table and instead just point to the default route:
>
> # ip netns exec qrouter-da32efe2-1294-4f7e-8c47-0ef2a6d2fd39 route -n
>
> Kernel IP routing table
>
> Destination     Gateway         Genmask         Flags Metric Ref    
> Use Iface
>
> 0.0.0.0         172.31.96.21    0.0.0.0         UG    0 0        0 
> qg-5f5ca6e9-56
>
> 172.31.96.0     0.0.0.0         255.255.252.0   U     0 0        0 
> qg-5f5ca6e9-56
>
> 172.31.104.0    0.0.0.0         255.255.255.0   U     0 0        0 
> qr-db64ea28-cd
>
>
> If I explicitly add the destination routes to a virtual router, 
> everything works as intended:
>
>
> # openstack router set --route 
> destination='172.16.0.0/12',gateway='172.31.96.1' r2
>
> # ip netns exec qrouter-da32efe2-1294-4f7e-8c47-0ef2a6d2fd39 route -n
>
> Kernel IP routing table
>
> Destination     Gateway         Genmask         Flags Metric Ref    
> Use Iface
>
> 0.0.0.0         172.31.96.21    0.0.0.0         UG    0 0        0 
> qg-5f5ca6e9-56
>
> 172.16.0.0      172.31.96.1     255.240.0.0     UG    0 0        0 
> qg-5f5ca6e9-56
>
> 172.31.96.0     0.0.0.0         255.255.252.0   U     0 0        0 
> qg-5f5ca6e9-56
>
> 172.31.104.0    0.0.0.0         255.255.255.0   U     0 0        0 
> qr-db64ea28-cd
>
>
> I would rather have the route definition in the provider subnet rather 
> than having to replicate the routing entries for every router 
> instance.  Am I missing something, or should this be working as 
> initially intended.
>
> Note:  running openstack newton on centos7.3.1611 using bridge plugin 
> for newton:
>
> openstack-neutron-ml2-9.2.0-1.el7.noarch
> centos-release-openstack-newton-1-1.el7.noarch
> python2-openstacksdk-0.9.5-1.el7.noarch
> openstack-neutron-common-9.2.0-1.el7.noarch
> openstack-neutron-linuxbridge-9.2.0-1.el7.noarch
> python-openstackclient-3.2.1-1.el7.noarch
> openstack-neutron-9.2.0-1.el7.noarch
>
>

-- 
Volodymyr Litovka
   "Vision without Execution is Hallucination." -- Thomas Edison

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20170607/2ae1813f/attachment.html>


More information about the Openstack mailing list