Page MenuHomeVyOS Platform

BGP Confederation Addition Causes Error
Open, NormalPublicBUG

Description

It looks like making changes to the BGP confederation peers with my configuration breaks on commit. It appears BGP continues to work, but that a restart frr is required for the changes to take effect:

trae@cr01a-vyos# set protocols bgp 4242420666 parameters confederation peers 4242420665
[edit]
trae@cr01a-vyos# comp
[edit protocols bgp 4242420666 parameters confederation]
+peers 4242420665
[edit]
trae@cr01a-vyos# commit
[ protocols bgp 4242420666 parameters confederation peers 4242420665 ]
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1639.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1643.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1639.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1643.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1639.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1643.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1639.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1643.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1643.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1639.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1643.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1639.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1643.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1639.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1643.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1639.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1643.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1643.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.

Using source address fd52:d62e:8011:fffe:192:168:253:2
Archiving config...
  sftp://stor01z-rh8.int.trae32566.org:/int/cr01a-vyos  OK
[edit]

My BGP configuration can be found here:
https://phabricator.vyos.net/source/vyos-1x/browse/master/smoketest/configs/bgp-bfd-communities;dd291b2312f0fca49ae8ad6876e280bc46f45d2e

If you need a sanitized version of the configuration commands I can probably grab that too. Not sure if this affects 1.4.

Details

Difficulty level
Normal (likely a few hours)
Version
1.3-rc3
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)

Event Timeline

Viacheslav changed Difficulty level from Unknown (require assessment) to Normal (likely a few hours).

I added a new neighbor belonging to the sub-AS 65031 to the existing bgp configuration:

vyos@vyos# set proto bgp 64512 neighbor 192.168.10.1 remote-as 65031
[edit]
vyos@vyos# set proto bgp 64512 neighbor 192.168.10.1 update-source 192.168.0.1
[edit]
vyos@vyos# set proto bgp 64512 parameters confederation peers 65031
[edit]
vyos@vyos# compare
[edit protocols bgp 64512]
+neighbor 192.168.10.1 {
+    remote-as 65031
+    update-source 192.168.0.1
+}
[edit protocols bgp 64512 parameters confederation]
+peers 65031
[edit]
vyos@vyos# commit
[ protocols bgp 64512 parameters confederation peers 65031 ]
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1651.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.
Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1651.

Conclusion: Without restarting the bgpd service, the connection has established and it shows as an external confed link.

vyos@vyos# run sh ip bgp neighbors 192.168.10.1
BGP neighbor is 192.168.10.1, remote AS 65031, local AS 64512, confed-external link
Hostname: debian
  BGP version 4, remote router ID 192.168.10.1, local router ID 11.11.11.11
  Neighbor under common administration
  BGP state = Established, up for 00:01:06
  Last read 00:00:06, Last write 00:00:06
  Hold time is 180, keepalive interval is 60 seconds
  Neighbor capabilities:
    4 Byte AS: advertised and received
    AddPath:
      IPv4 Unicast: RX advertised IPv4 Unicast and received
    Route refresh: advertised and received(old & new)
    Address Family IPv4 Unicast: advertised and received
    Hostname Capability: advertised (name: debian,domain name: n/a) received (name: debian,domain name: n/a)
    Graceful Restart Capability: advertised and received
      Remote Restart timer is 120 seconds
      Address families by peer:
        none
  Graceful restart information:
    End-of-RIB send: IPv4 Unicast
    End-of-RIB received: IPv4 Unicast
    Local GR Mode: Helper*
    Remote GR Mode: Helper
    R bit: True
    Timers:
      Configured Restart Time(sec): 120
      Received Restart Time(sec): 120
    IPv4 Unicast:
      F bit: False
      End-of-RIB sent: Yes
      End-of-RIB sent after update: Yes
      End-of-RIB received: Yes
      Timers:
        Configured Stale Path Time(sec): 360
  Message statistics:
    Inq depth is 0
    Outq depth is 0
                         Sent       Rcvd
    Opens:                  1          1
    Notifications:          0          0
    Updates:                3          2
    Keepalives:             2          2
    Route Refresh:          0          0
    Capability:             0          0
    Total:                  6          5
  Minimum time between advertisement runs is 0 seconds
  Update source is 192.168.0.1

 For address family: IPv4 Unicast
  Update group 4, subgroup 4
  Packet Queue length 0
  Community attribute sent to this neighbor(all)
  0 accepted prefixes

  Connections established 1; dropped 0
  Last reset 00:01:07,  Waiting for peer OPEN
Local host: 192.168.0.1, Local port: 33339
Foreign host: 192.168.10.1, Foreign port: 179
Nexthop: 192.168.0.1
Nexthop global: fe80::200:ff:fe00:0
Nexthop local: fe80::200:ff:fe00:0
BGP connection: non shared network
BGP Connect Retry Timer in Seconds: 120
Read thread: on  Write thread: on  FD used: 31

Vyos Version;

vyos@vyos# run sh ver

Version:          VyOS 1.3.0-rc5
Release Train:    equuleus

Built by:         Sentrium S.L.
Built on:         Tue 29 Jun 2021 08:26 UTC
Build UUID:       36f7c218-6ebb-497f-9ec5-676241e5c13a
Build Commit ID:  892e8689b3234e

Architecture:     x86_64
Boot via:         installed image
System type:      KVM guest

Hardware vendor:  QEMU
Hardware model:   Standard PC (Q35 + ICH9, 2009)
Hardware S/N:
Hardware UUID:    4bfc01cc-4cb2-46a1-82af-facae2e73f03

Copyright:        VyOS maintainers and contributors
[edit]
vyos@vyos# date
Wed 11 Aug 2021 01:53:07 PM UTC

Not sure why the following line is generated:

Use of uninitialized value $remoteas in string at /opt/vyatta/sbin/vyatta-bgp.pl line 1647.