Public bug reported:

Creating a neutron BGP peer with password authentication leads to an
error reported on neutron-bgp-dragent.log.

2020-10-06 18:58:51.861 125213 DEBUG bgpspeaker.peer [-] Started peer Peer(ip: 
100.94.2.2, asn: 65200) _run 
/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/peer.py:676        
                                                                                
    
2020-10-06 18:58:51.861 125213 DEBUG bgpspeaker.peer [-] start connect loop. 
(mode: active) _on_update_connect_mode 
/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/peer.py:582        
                                                                            
2020-10-06 18:58:52.862 125213 DEBUG bgpspeaker.peer [-] Peer 100.94.2.2 BGP 
FSM went from Idle to Connect bgp_state 
/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/peer.py:236        
                                                                           
2020-10-06 18:58:52.863 125213 DEBUG bgpspeaker.peer [-] Peer(ip: 100.94.2.2, 
asn: 65200) trying to connect to ('100.94.2.2', 179) _connect_loop 
/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/peer.py:1292       
                                               
2020-10-06 18:58:52.863 125213 DEBUG bgpspeaker.base [-] Connect TCP called for 
100.94.2.2:179 _connect_tcp 
/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/base.py:412        
                                                                                
    
2020-10-06 18:58:52.864 125213 ERROR os_ken.lib.hub [-] hub: uncaught 
exception: Traceback (most recent call last):                                   
                                                                                
                                          
  File "/usr/lib/python3/dist-packages/os_ken/lib/hub.py", line 69, in _launch  
                                                                                
                                                                                
                                
    return func(*args, **kwargs)                                                
                                                                                
                                                                                
                                
  File "/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/peer.py", 
line 1296, in _connect_loop                                                     
                                                                                
                                 
    self._connect_tcp(peer_address,                                             
                                                                                
                                                                                
                                  File 
"/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/base.py", line 
422, in _connect_tcp                                                            
                                                                                
                            
    sockopt.set_tcp_md5sig(sock, peer_addr[0], password)                        
                                                                                
                                                                                
                                  File 
"/usr/lib/python3/dist-packages/os_ken/lib/sockopt.py", line 71, in 
set_tcp_md5sig                                                                  
                                                                                
                                     
    impl(s, addr, key)                                                          
                                                                                
                                                                                
                                  File 
"/usr/lib/python3/dist-packages/os_ken/lib/sockopt.py", line 38, in 
_set_tcp_md5sig_linux                                                           
                                                                                
                                     
    sa = sockaddr.sa_in4(addr)                                                  
                                                                                
                                                                                
                                  File 
"/usr/lib/python3/dist-packages/os_ken/lib/sockaddr.py", line 63, in sa_in4     
                                                                                
                                                                                
                         
    return _pad_to(hdr + data, _SIN_SIZE)                                       
                                                                                
                                                                                
                                  File 
"/usr/lib/python3/dist-packages/os_ken/lib/sockaddr.py", line 57, in _pad_to    
                                                                                
                                                                                
                         
    return data + pad_len * '\0'                                                
                                                                                
                                                                                
                                
TypeError: can't concat str to bytes                                            
                                                                                
                                                                                
                                

The log is reported after peer is created and associated to speaker.
Ex.:

#openstack bgp speaker create --ip-version 4 --local-as 65211 
--no-advertise-floating-ip-host-routes bgpspeaker
#openstack bgp speaker add network bgpspeaker provider-network
#openstack bgp peer create --peer-ip 100.94.2.2 --remote-as 65200 --auth-type 
md5 --password cisco bgppeer
#openstack bgp speaker add peer bgpspeaker bgppeer
#openstack bgp dragent add speaker 27f6b5bc-4b0d-466c-957e-34059bd2cc2b 
bgpspeaker

If you create a BGP peer without password, everything works just fine.

Opesntack version: Ussuri
Deployed using Juju
Distro: Ubuntu Focal Fossa
The environment is a full deployment with all core services running in 
multi-node.

This looks a lot with the already reported and fixed bug #1592982.

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: dragent l3-bgp speaker

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1898886

Title:
  Can't establish BGP session with password authentication

Status in neutron:
  New

Bug description:
  Creating a neutron BGP peer with password authentication leads to an
  error reported on neutron-bgp-dragent.log.

  2020-10-06 18:58:51.861 125213 DEBUG bgpspeaker.peer [-] Started peer 
Peer(ip: 100.94.2.2, asn: 65200) _run 
/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/peer.py:676        
                                                                                
    
  2020-10-06 18:58:51.861 125213 DEBUG bgpspeaker.peer [-] start connect loop. 
(mode: active) _on_update_connect_mode 
/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/peer.py:582        
                                                                            
  2020-10-06 18:58:52.862 125213 DEBUG bgpspeaker.peer [-] Peer 100.94.2.2 BGP 
FSM went from Idle to Connect bgp_state 
/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/peer.py:236        
                                                                           
  2020-10-06 18:58:52.863 125213 DEBUG bgpspeaker.peer [-] Peer(ip: 100.94.2.2, 
asn: 65200) trying to connect to ('100.94.2.2', 179) _connect_loop 
/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/peer.py:1292       
                                               
  2020-10-06 18:58:52.863 125213 DEBUG bgpspeaker.base [-] Connect TCP called 
for 100.94.2.2:179 _connect_tcp 
/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/base.py:412        
                                                                                
    
  2020-10-06 18:58:52.864 125213 ERROR os_ken.lib.hub [-] hub: uncaught 
exception: Traceback (most recent call last):                                   
                                                                                
                                          
    File "/usr/lib/python3/dist-packages/os_ken/lib/hub.py", line 69, in 
_launch                                                                         
                                                                                
                                         
      return func(*args, **kwargs)                                              
                                                                                
                                                                                
                                  
    File 
"/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/peer.py", line 
1296, in _connect_loop                                                          
                                                                                
                            
      self._connect_tcp(peer_address,                                           
                                                                                
                                                                                
                                    File 
"/usr/lib/python3/dist-packages/os_ken/services/protocols/bgp/base.py", line 
422, in _connect_tcp                                                            
                                                                                
                            
      sockopt.set_tcp_md5sig(sock, peer_addr[0], password)                      
                                                                                
                                                                                
                                    File 
"/usr/lib/python3/dist-packages/os_ken/lib/sockopt.py", line 71, in 
set_tcp_md5sig                                                                  
                                                                                
                                     
      impl(s, addr, key)                                                        
                                                                                
                                                                                
                                    File 
"/usr/lib/python3/dist-packages/os_ken/lib/sockopt.py", line 38, in 
_set_tcp_md5sig_linux                                                           
                                                                                
                                     
      sa = sockaddr.sa_in4(addr)                                                
                                                                                
                                                                                
                                    File 
"/usr/lib/python3/dist-packages/os_ken/lib/sockaddr.py", line 63, in sa_in4     
                                                                                
                                                                                
                         
      return _pad_to(hdr + data, _SIN_SIZE)                                     
                                                                                
                                                                                
                                    File 
"/usr/lib/python3/dist-packages/os_ken/lib/sockaddr.py", line 57, in _pad_to    
                                                                                
                                                                                
                         
      return data + pad_len * '\0'                                              
                                                                                
                                                                                
                                  
  TypeError: can't concat str to bytes                                          
                                                                                
                                                                                
                                  

  The log is reported after peer is created and associated to speaker.
  Ex.:

  #openstack bgp speaker create --ip-version 4 --local-as 65211 
--no-advertise-floating-ip-host-routes bgpspeaker
  #openstack bgp speaker add network bgpspeaker provider-network
  #openstack bgp peer create --peer-ip 100.94.2.2 --remote-as 65200 --auth-type 
md5 --password cisco bgppeer
  #openstack bgp speaker add peer bgpspeaker bgppeer
  #openstack bgp dragent add speaker 27f6b5bc-4b0d-466c-957e-34059bd2cc2b 
bgpspeaker

  If you create a BGP peer without password, everything works just fine.

  Opesntack version: Ussuri
  Deployed using Juju
  Distro: Ubuntu Focal Fossa
  The environment is a full deployment with all core services running in 
multi-node.

  This looks a lot with the already reported and fixed bug #1592982.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1898886/+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

Reply via email to