Public bug reported: branch: master commit: 4e3a9c2b9c0ada6c2a471d24a20927aa8e8f5740
Depending on the order neutron router commands are given, the snat interface for a dvrha router on the dvr_snat agent might not get created. look at following interaction: --create a couple of network and subnets we will use (public and private) neutron net-create public --router:external neutron subnet-create public 192.168.201.0/24 --disable_dhcp neutron net-create n1 neutron subnet-create n1 101.0.0.0/24 --name s1 -- now we create and attach router in particular order: first set external gateway and then attach private subnet. neutron router-create dvrha --distributed=True --ha=True neutron router-gateway-set dvrha public neutron router-interface-add dvrha s1 neutron router-port-list dvrha -c fixed_ips +--------------------------------------------------------------------------------------+ | fixed_ips | +--------------------------------------------------------------------------------------+ | {"subnet_id": "b4a81968-8a08-4054-985f-e4e1cf687945", "ip_address": "101.0.0.3"} | | {"subnet_id": "b4a81968-8a08-4054-985f-e4e1cf687945", "ip_address": "101.0.0.1"} | | {"subnet_id": "782574e8-fabb-41da-a1a0-9817994ec0a5", "ip_address": "169.254.192.2"} | | {"subnet_id": "782574e8-fabb-41da-a1a0-9817994ec0a5", "ip_address": "169.254.192.3"} | | {"subnet_id": "0173f29d-746d-45a1-ad10-16dde529eb34", "ip_address": "192.168.201.4"} | | {"subnet_id": "782574e8-fabb-41da-a1a0-9817994ec0a5", "ip_address": "169.254.192.1"} | *** as you can see there are two interfaces on subnet 101/24: 101.0.0.3, and 101.0.0.1, one is the router interface the other is the snat interface THIS IS CORRECT BEHAVIOR *** next we change the order of the commands: -- first clean up neutron router-interface-delete dvrha s1 neutron router-gateway-clear dvrha neutron router-delete dvrha -- This time, we add the internal interface before setting the external gateway. (reverse order of steps) neutron router-create dvrha --distributed=True --ha=True neutron router-interface-add dvrha s1 neutron router-gateway-set dvrha public neutron router-port-list dvrha -c fixed_ips +--------------------------------------------------------------------------------------+ | fixed_ips | +--------------------------------------------------------------------------------------+ | {"subnet_id": "0173f29d-746d-45a1-ad10-16dde529eb34", "ip_address": "192.168.201.7"} | | {"subnet_id": "e9c7148e-04e5-4343-ac66-ac1651514b88", "ip_address": "169.254.192.1"} | | {"subnet_id": "b4a81968-8a08-4054-985f-e4e1cf687945", "ip_address": "101.0.0.1"} | | {"subnet_id": "e9c7148e-04e5-4343-ac66-ac1651514b88", "ip_address": "169.254.192.2"} | +--------------------------------------------------------------------------------------+ *** this time the snat interface is NOT created. -- we can fix this by toggling the internal subnet connection to the router: neutron router-interface-delete dvrha s1 Removed interface from router dvrha. neutron router-interface-add dvrha s1 Added interface c3cb410d-08a0-46a5-84fb-ec7bbead4eb3 to router dvrha. neutron router-port-list dvrha -c fixed_ips +--------------------------------------------------------------------------------------+ | fixed_ips | +--------------------------------------------------------------------------------------+ | {"subnet_id": "0173f29d-746d-45a1-ad10-16dde529eb34", "ip_address": "192.168.201.7"} | | {"subnet_id": "e9c7148e-04e5-4343-ac66-ac1651514b88", "ip_address": "169.254.192.1"} | | {"subnet_id": "b4a81968-8a08-4054-985f-e4e1cf687945", "ip_address": "101.0.0.5"} | | {"subnet_id": "b4a81968-8a08-4054-985f-e4e1cf687945", "ip_address": "101.0.0.1"} | | {"subnet_id": "e9c7148e-04e5-4343-ac66-ac1651514b88", "ip_address": "169.254.192.2"} | now the snat port is created (101.0.0.5) ** Affects: neutron Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1571113 Title: SNAT interface not created for dvrha in some scenarios Status in neutron: New Bug description: branch: master commit: 4e3a9c2b9c0ada6c2a471d24a20927aa8e8f5740 Depending on the order neutron router commands are given, the snat interface for a dvrha router on the dvr_snat agent might not get created. look at following interaction: --create a couple of network and subnets we will use (public and private) neutron net-create public --router:external neutron subnet-create public 192.168.201.0/24 --disable_dhcp neutron net-create n1 neutron subnet-create n1 101.0.0.0/24 --name s1 -- now we create and attach router in particular order: first set external gateway and then attach private subnet. neutron router-create dvrha --distributed=True --ha=True neutron router-gateway-set dvrha public neutron router-interface-add dvrha s1 neutron router-port-list dvrha -c fixed_ips +--------------------------------------------------------------------------------------+ | fixed_ips | +--------------------------------------------------------------------------------------+ | {"subnet_id": "b4a81968-8a08-4054-985f-e4e1cf687945", "ip_address": "101.0.0.3"} | | {"subnet_id": "b4a81968-8a08-4054-985f-e4e1cf687945", "ip_address": "101.0.0.1"} | | {"subnet_id": "782574e8-fabb-41da-a1a0-9817994ec0a5", "ip_address": "169.254.192.2"} | | {"subnet_id": "782574e8-fabb-41da-a1a0-9817994ec0a5", "ip_address": "169.254.192.3"} | | {"subnet_id": "0173f29d-746d-45a1-ad10-16dde529eb34", "ip_address": "192.168.201.4"} | | {"subnet_id": "782574e8-fabb-41da-a1a0-9817994ec0a5", "ip_address": "169.254.192.1"} | *** as you can see there are two interfaces on subnet 101/24: 101.0.0.3, and 101.0.0.1, one is the router interface the other is the snat interface THIS IS CORRECT BEHAVIOR *** next we change the order of the commands: -- first clean up neutron router-interface-delete dvrha s1 neutron router-gateway-clear dvrha neutron router-delete dvrha -- This time, we add the internal interface before setting the external gateway. (reverse order of steps) neutron router-create dvrha --distributed=True --ha=True neutron router-interface-add dvrha s1 neutron router-gateway-set dvrha public neutron router-port-list dvrha -c fixed_ips +--------------------------------------------------------------------------------------+ | fixed_ips | +--------------------------------------------------------------------------------------+ | {"subnet_id": "0173f29d-746d-45a1-ad10-16dde529eb34", "ip_address": "192.168.201.7"} | | {"subnet_id": "e9c7148e-04e5-4343-ac66-ac1651514b88", "ip_address": "169.254.192.1"} | | {"subnet_id": "b4a81968-8a08-4054-985f-e4e1cf687945", "ip_address": "101.0.0.1"} | | {"subnet_id": "e9c7148e-04e5-4343-ac66-ac1651514b88", "ip_address": "169.254.192.2"} | +--------------------------------------------------------------------------------------+ *** this time the snat interface is NOT created. -- we can fix this by toggling the internal subnet connection to the router: neutron router-interface-delete dvrha s1 Removed interface from router dvrha. neutron router-interface-add dvrha s1 Added interface c3cb410d-08a0-46a5-84fb-ec7bbead4eb3 to router dvrha. neutron router-port-list dvrha -c fixed_ips +--------------------------------------------------------------------------------------+ | fixed_ips | +--------------------------------------------------------------------------------------+ | {"subnet_id": "0173f29d-746d-45a1-ad10-16dde529eb34", "ip_address": "192.168.201.7"} | | {"subnet_id": "e9c7148e-04e5-4343-ac66-ac1651514b88", "ip_address": "169.254.192.1"} | | {"subnet_id": "b4a81968-8a08-4054-985f-e4e1cf687945", "ip_address": "101.0.0.5"} | | {"subnet_id": "b4a81968-8a08-4054-985f-e4e1cf687945", "ip_address": "101.0.0.1"} | | {"subnet_id": "e9c7148e-04e5-4343-ac66-ac1651514b88", "ip_address": "169.254.192.2"} | now the snat port is created (101.0.0.5) To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1571113/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp