← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1933273] [NEW] Unable to update mtu on DVR snat

 

Public bug reported:

When updating the mtu on a network, the new mtu is correctly set in
qrouter-namespace but not in snat-namespace.

Also, a stack trace is reported in l3-agent logs stating that the qr-
abcdef interface is not found.

Step by step:

- create a router in DVR mode (I also have HA, but non HA is also affected)
- add an external gw
- add a network to this router

Check the network mtu on the compute on both namespaces:
$ ip netns exec qrouter-9d5352e8-4f40-49a0-a632-9406042478b8 ip l
...
18: qr-e05ab302-1b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450

$ ip netns exec snat-9d5352e8-4f40-49a0-a632-9406042478b8 ip l
...
16: sg-7ab0954c-73: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450

(mtu is 1450)


- change the network mtu:
$ openstack network set --mtu 1400 MyNetwork

Check the network mtu on the compute on both namespaces:
$ ip netns exec qrouter-9d5352e8-4f40-49a0-a632-9406042478b8 ip l
...
18: qr-e05ab302-1b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400

$ ip netns exec snat-9d5352e8-4f40-49a0-a632-9406042478b8 ip l
...
16: sg-7ab0954c-73: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450


In neutron-l3-agent.log file, I can see:
ERROR neutron.agent.l3.router_info [-] Network interface qr-e05ab302-1b not found in namespace snat-9d5352e8-4f40-49a0-a632-9406042478b8.: neutron.privileged.agent.linux.ip_lib.Net[..truncated..]
ERROR neutron.agent.l3.router_info Traceback (most recent call last):                                                                                                               
ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/common/utils.py", line 167, in call                                                               
ERROR neutron.agent.l3.router_info     return func(*args, **kwargs)                                                                                                                 
ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/l3/router_info.py", line 1243, in process                                                   
ERROR neutron.agent.l3.router_info     self._process_internal_ports()                                                                                                               
ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/l3/router_info.py", line 656, in _process_internal_ports                                    
ERROR neutron.agent.l3.router_info     interface_name, ip_cidrs, p['mtu'])                                                                                                          
ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/l3/ha_router.py", line 367, in internal_network_updated                                     
ERROR neutron.agent.l3.router_info     self._disable_ipv6_addressing_on_interface(interface_name)                                                                                   
ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/l3/ha_router.py", line 331, in _disable_ipv6_addressing_on_interface                        
ERROR neutron.agent.l3.router_info     ipv6_lladdr = ip_lib.get_ipv6_lladdr(device.link.address)                                                                                    
ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/linux/ip_lib.py", line 476, in address                                                      
ERROR neutron.agent.l3.router_info     return self.attributes.get('link/ether')                                                                                                     
ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/linux/ip_lib.py", line 509, in attributes                                                   
ERROR neutron.agent.l3.router_info     self._parent.namespace)                                                                                                                      
ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/oslo_privsep/priv_context.py", line 247, in _wrap                                                         
ERROR neutron.agent.l3.router_info     return self.channel.remote_call(name, args, kwargs)                                                                                          
ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/oslo_privsep/daemon.py", line 224, in remote_call                                                         
ERROR neutron.agent.l3.router_info     raise exc_type(*result[2])                                                                                                                   
ERROR neutron.agent.l3.router_info neutron.privileged.agent.linux.ip_lib.NetworkInterfaceNotFound: Network interface qr-e05ab302-1b not found in namespace snat-9d5352e8-4f40-49a0-a[..truncated..]
ERROR neutron.agent.l3.router_info                                                                                                                                                  


Note that I am running OpenStack Victoria

** 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/1933273

Title:
  Unable to update mtu on DVR snat

Status in neutron:
  New

Bug description:
  When updating the mtu on a network, the new mtu is correctly set in
  qrouter-namespace but not in snat-namespace.

  Also, a stack trace is reported in l3-agent logs stating that the qr-
  abcdef interface is not found.

  Step by step:

  - create a router in DVR mode (I also have HA, but non HA is also affected)
  - add an external gw
  - add a network to this router

  Check the network mtu on the compute on both namespaces:
  $ ip netns exec qrouter-9d5352e8-4f40-49a0-a632-9406042478b8 ip l
  ...
  18: qr-e05ab302-1b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450

  $ ip netns exec snat-9d5352e8-4f40-49a0-a632-9406042478b8 ip l
  ...
  16: sg-7ab0954c-73: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450

  (mtu is 1450)


  
  - change the network mtu:
  $ openstack network set --mtu 1400 MyNetwork

  Check the network mtu on the compute on both namespaces:
  $ ip netns exec qrouter-9d5352e8-4f40-49a0-a632-9406042478b8 ip l
  ...
  18: qr-e05ab302-1b: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400

  $ ip netns exec snat-9d5352e8-4f40-49a0-a632-9406042478b8 ip l
  ...
  16: sg-7ab0954c-73: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450


  
  In neutron-l3-agent.log file, I can see:
  ERROR neutron.agent.l3.router_info [-] Network interface qr-e05ab302-1b not found in namespace snat-9d5352e8-4f40-49a0-a632-9406042478b8.: neutron.privileged.agent.linux.ip_lib.Net[..truncated..]
  ERROR neutron.agent.l3.router_info Traceback (most recent call last):                                                                                                               
  ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/common/utils.py", line 167, in call                                                               
  ERROR neutron.agent.l3.router_info     return func(*args, **kwargs)                                                                                                                 
  ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/l3/router_info.py", line 1243, in process                                                   
  ERROR neutron.agent.l3.router_info     self._process_internal_ports()                                                                                                               
  ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/l3/router_info.py", line 656, in _process_internal_ports                                    
  ERROR neutron.agent.l3.router_info     interface_name, ip_cidrs, p['mtu'])                                                                                                          
  ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/l3/ha_router.py", line 367, in internal_network_updated                                     
  ERROR neutron.agent.l3.router_info     self._disable_ipv6_addressing_on_interface(interface_name)                                                                                   
  ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/l3/ha_router.py", line 331, in _disable_ipv6_addressing_on_interface                        
  ERROR neutron.agent.l3.router_info     ipv6_lladdr = ip_lib.get_ipv6_lladdr(device.link.address)                                                                                    
  ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/linux/ip_lib.py", line 476, in address                                                      
  ERROR neutron.agent.l3.router_info     return self.attributes.get('link/ether')                                                                                                     
  ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/neutron/agent/linux/ip_lib.py", line 509, in attributes                                                   
  ERROR neutron.agent.l3.router_info     self._parent.namespace)                                                                                                                      
  ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/oslo_privsep/priv_context.py", line 247, in _wrap                                                         
  ERROR neutron.agent.l3.router_info     return self.channel.remote_call(name, args, kwargs)                                                                                          
  ERROR neutron.agent.l3.router_info   File "/usr/lib/python3/dist-packages/oslo_privsep/daemon.py", line 224, in remote_call                                                         
  ERROR neutron.agent.l3.router_info     raise exc_type(*result[2])                                                                                                                   
  ERROR neutron.agent.l3.router_info neutron.privileged.agent.linux.ip_lib.NetworkInterfaceNotFound: Network interface qr-e05ab302-1b not found in namespace snat-9d5352e8-4f40-49a0-a[..truncated..]
  ERROR neutron.agent.l3.router_info                                                                                                                                                  


  
  Note that I am running OpenStack Victoria

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1933273/+subscriptions


Follow ups