Multiple ebgp neighbours to the same peer

Prem Anand h.prem.anand at gmail.com
Sat Jan 21 19:05:16 CET 2023


Hi all,
New user here

I am trying to get 2 ebgp neighbours on bird to peer with a remote bgp endpoint on frr node.
One between 10.100.101.1 <—> 10.100.1.1 and other between 10.100.102.1 <—> 10.100.1.1

              ┌──────────────────┐                        ┌─────────────┐
 10.100.101.1 │                  │ensp5s0                 │             │
       loop1  *     Bird         │◄──────────────────────►┘    Frr      │
              │     2.0.10       │10.100.1.2          10.100.1.1        │
       loop2  *                  │                        │             │
 10.100.102.1 │                  │                        │             │
              └──────────────────┘                        └─────────────┘


I find that only the first ebgp neighbour comes up and moves to "Established” state whereas the second ebgp neighbour remains in “Idle” state. 
However if I restart the bgp neighbour in “Established” state, the other bgp neighbour comes up and moves to “Established” state, but the restarted one remains in Idle state. 

Is there any limitation that I can’t have 2 neighbours to the same peer? Or do I have to ensure that the 2 neighbours use different tables?

I have already disabled rp_filter
sysctl -w net.ipv4.conf.all.rp_filter=0

Regards
Prem

Config
======
log "/var/log/trex/bird.log" all;
debug protocols all;
router id 10.100.1.2;

protocol device {
#    scan time 10;
     interface "loop1";
     interface "loop2";
     interface "enp5s0";
}

protocol bgp bgp_peer1 {
        local 10.100.101.1 as 65001;
        neighbor 10.100.1.1 as 65500;
        ipv4 {
                import all;
                export all;
        };
}

protocol bgp bgp_peer2 {
        local 10.100.102.1 as 65002;
        neighbor 10.100.1.1 as 65500;
        ipv4 {
                import all;
                export all;
        };
}

protocol static bird_cfg_routes {
        ipv4 {
                export all;
                import all;
        };
        route 200.1.1.1/32 via 10.100.2.100;
}

Logs
====
bird> show protocols
Name       Proto      Table      State  Since         Info
device1    Device     ---        up     13:05:16.761
bgp_peer1  BGP        ---        up     13:05:21.497  Established
bgp_peer2  BGP        ---        start  13:05:16.761  Idle
bird_cfg_routes Static     master4    up     13:05:16.761
bird>
bird>
bird>
bird> restart bgp_peer1
bgp_peer1: restarted
bird>
bird>
bird> show protocols
Name       Proto      Table      State  Since         Info
device1    Device     ---        up     13:05:16.761
bgp_peer1  BGP        ---        start  13:07:13.673  Idle
bgp_peer2  BGP        ---        up     13:07:18.328  Established
bird_cfg_routes Static     master4    up     13:05:16.761

bird> show interfaces
lo up (index=1)
        MultiAccess AdminUp LinkUp Loopback Ignored MTU=65536
        127.0.0.1/8 (Preferred, scope host)
        ::1/128 (Preferred, scope host)
mgmt0 up (index=2)
        MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
        192.168.121.163/24 (Preferred, scope site)
        fe80::b203:e9ff:fe02:100/64 (Preferred, scope link)
enp5s0 up (index=3)
        MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
        10.100.1.2/24 (Preferred, scope site)
enp6s0 up (index=4)
        MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
        10.100.2.1/24 (Preferred, scope site)
        fc00:64:2::1/120 (Preferred, scope site)
        fe80::b203:e9ff:fe02:102/64 (Preferred, scope link)
loop1 up (index=5)
        MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
        10.100.101.1/24 (Preferred, scope site)
        fe80::78f9:91ff:fe2c:83ed/64 (Preferred, scope link)
loop2 up (index=6)
        MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
        10.100.102.1/24 (Preferred, scope site)
        fe80::a4fc:34ff:fefd:11ce/64 (Preferred, scope link)
bird>
bird>
bird> show route all
Table master4:
200.1.1.1/32         unicast [bird_cfg_routes 13:05:16.761] * (200)
        via 10.100.2.100 on enp6s0
        Type: static univ
bird>

Debugs
======
2023-01-21 13:05:16.761 <TRACE> device1: Initializing
2023-01-21 13:05:16.761 <TRACE> bgp_peer1: Initializing
2023-01-21 13:05:16.761 <TRACE> bgp_peer2: Initializing
2023-01-21 13:05:16.761 <TRACE> bird_cfg_routes: Initializing
2023-01-21 13:05:16.761 <TRACE> device1: Starting
2023-01-21 13:05:16.761 <TRACE> device1: Scanning interfaces
2023-01-21 13:05:16.761 <TRACE> device1: State changed to up
2023-01-21 13:05:16.761 <TRACE> bgp_peer1: Starting
2023-01-21 13:05:16.761 <TRACE> bgp_peer1: State changed to start
2023-01-21 13:05:16.761 <TRACE> bgp_peer2: Starting
2023-01-21 13:05:16.761 <TRACE> bgp_peer2: State changed to start
2023-01-21 13:05:16.761 <TRACE> bird_cfg_routes: Starting
2023-01-21 13:05:16.761 <TRACE> bird_cfg_routes: State changed to up
2023-01-21 13:05:16.761 <TRACE> bird_cfg_routes.ipv4 > added [best] 200.1.1.1/32 unicast
2023-01-21 13:05:16.761 <INFO> Started
2023-01-21 13:05:16.762 <TRACE> bgp_peer1: Started
2023-01-21 13:05:16.762 <TRACE> bgp_peer1: Connect delayed by 5 seconds
2023-01-21 13:05:21.495 <TRACE> bgp_peer1: Connecting to 10.100.1.1 from local address 10.100.101.1
2023-01-21 13:05:21.496 <TRACE> bgp_peer1: Connected
2023-01-21 13:05:21.496 <TRACE> bgp_peer1: Sending OPEN(ver=4,as=65001,hold=240,id=0a640102)
2023-01-21 13:05:21.497 <TRACE> bgp_peer1: Got OPEN(as=65500,hold=30,id=192.168.121.230)
2023-01-21 13:05:21.497 <TRACE> bgp_peer1: Sending KEEPALIVE
2023-01-21 13:05:21.497 <TRACE> bgp_peer1: Got KEEPALIVE
2023-01-21 13:05:21.497 <TRACE> bgp_peer1: BGP session established
2023-01-21 13:05:21.497 <TRACE> bgp_peer1: State changed to up
2023-01-21 13:05:21.497 <TRACE> bgp_peer1.ipv4 < added 200.1.1.1/32 unicast
2023-01-21 13:05:23.049 <TRACE> bgp_peer1: Got UPDATE
2023-01-21 13:05:23.049 <TRACE> bgp_peer1: Got END-OF-RIB
2023-01-21 13:05:23.049 <TRACE> bgp_peer1: Sending UPDATE
2023-01-21 13:05:23.049 <TRACE> bgp_peer1: Sending END-OF-RIB
2023-01-21 13:05:30.958 <TRACE> bgp_peer1: Sending KEEPALIVE
2023-01-21 13:05:31.499 <TRACE> bgp_peer1: Got KEEPALIVE
2023-01-21 13:05:38.689 <TRACE> bgp_peer1: Sending KEEPALIVE
2023-01-21 13:05:41.499 <TRACE> bgp_peer1: Got KEEPALIVE
2023-01-21 13:05:46.842 <TRACE> bgp_peer1: Sending KEEPALIVE
2023-01-21 13:05:51.499 <TRACE> bgp_peer1: Got KEEPALIVE
2023-01-21 13:05:54.864 <TRACE> bgp_peer1: Sending KEEPALIVE
2023-01-21 13:06:01.499 <TRACE> bgp_peer1: Got KEEPALIVE
2023-01-21 13:06:03.759 <TRACE> bgp_peer1: Sending KEEPALIVE
2023-01-21 13:06:11.499 <TRACE> bgp_peer1: Got KEEPALIVE
2023-01-21 13:06:11.843 <TRACE> bgp_peer1: Sending KEEPALIVE
2023-01-21 13:06:16.764 <TRACE> device1: Scanning interfaces
...
...
...
2023-01-21 13:07:13.673 <INFO> Restarting protocol bgp_peer1
2023-01-21 13:07:13.673 <TRACE> bgp_peer1: Shutting down
2023-01-21 13:07:13.673 <TRACE> bgp_peer1: Shutdown requested
2023-01-21 13:07:13.673 <TRACE> bgp_peer1: State changed to stop
2023-01-21 13:07:13.673 <TRACE> bgp_peer1: BGP session closed
2023-01-21 13:07:13.673 <TRACE> bgp_peer1: Sending NOTIFICATION(code=6.4)
2023-01-21 13:07:13.673 <TRACE> bgp_peer1: Down
2023-01-21 13:07:13.673 <TRACE> bgp_peer1: State changed to flush
2023-01-21 13:07:13.673 <TRACE> bgp_peer2: Started
2023-01-21 13:07:13.673 <TRACE> bgp_peer2: Connect delayed by 5 seconds
2023-01-21 13:07:13.673 <TRACE> bgp_peer1: State changed to down
2023-01-21 13:07:13.673 <TRACE> bgp_peer1: Starting
2023-01-21 13:07:13.673 <TRACE> bgp_peer1: State changed to start
2023-01-21 13:07:16.761 <TRACE> device1: Scanning interfaces
2023-01-21 13:07:18.326 <TRACE> bgp_peer2: Connecting to 10.100.1.1 from local address 10.100.102.1
2023-01-21 13:07:18.327 <TRACE> bgp_peer2: Connected
2023-01-21 13:07:18.327 <TRACE> bgp_peer2: Sending OPEN(ver=4,as=65002,hold=240,id=0a640102)
2023-01-21 13:07:18.328 <TRACE> bgp_peer2: Got OPEN(as=65500,hold=30,id=192.168.121.230)
2023-01-21 13:07:18.328 <TRACE> bgp_peer2: Sending KEEPALIVE
2023-01-21 13:07:18.328 <TRACE> bgp_peer2: Got KEEPALIVE
2023-01-21 13:07:18.328 <TRACE> bgp_peer2: BGP session established
2023-01-21 13:07:18.328 <TRACE> bgp_peer2: State changed to up
2023-01-21 13:07:18.328 <TRACE> bgp_peer2.ipv4 < added 200.1.1.1/32 unicast
2023-01-21 13:07:19.880 <TRACE> bgp_peer2: Got UPDATE
2023-01-21 13:07:19.880 <TRACE> bgp_peer2: Got END-OF-RIB
2023-01-21 13:07:19.880 <TRACE> bgp_peer2: Sending UPDATE
2023-01-21 13:07:19.880 <TRACE> bgp_peer2: Sending END-OF-RIB
2023-01-21 13:07:27.298 <TRACE> bgp_peer2: Sending KEEPALIVE
2023-01-21 13:07:28.329 <TRACE> bgp_peer2: Got KEEPALIVE
2023-01-21 13:07:36.478 <TRACE> bgp_peer2: Sending KEEPALIVE
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20230121/841e6a2c/attachment.htm>


More information about the Bird-users mailing list