← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1933273] Re: Unable to update mtu on DVR snat

 

Reviewed:  https://review.opendev.org/c/openstack/neutron/+/799439
Committed: https://opendev.org/openstack/neutron/commit/21eabbcf03cb29be9899adbd6eaea207892cf07b
Submitter: "Zuul (22348)"
Branch:    master

commit 21eabbcf03cb29be9899adbd6eaea207892cf07b
Author: Slawek Kaplonski <skaplons@xxxxxxxxxx>
Date:   Mon Jul 5 09:40:28 2021 +0200

    [DVR] Fix update of the MTU in the DVR HA routers
    
    This is follow up of the patch [1] which fixed updating MTU in the
    snat namespace for the DVR routers.
    In case of DVR-HA routers there was additional issue with that as
    L3 agent tried to update MTU for the qr- interface in the
    self.ha_namespace which, for DVR-HA routers is snat namespace.
    
    This patch fixes that issue by setting MTU on the qr- interface in
    qrouter namespace and also setting MTU on the snat interface in snat
    namespace.
    
    [1] https://review.opendev.org/c/openstack/neutron/+/799226
    
    Closes-bug: #1933273
    Change-Id: I409bc674b65e4f495ebd42d03e97a09d51482339


** Changed in: neutron
       Status: In Progress => Fix Released

-- 
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:
  Fix Released

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



References