Multiple neighbours between same devices

Saku Ytti saku at ytti.fi
Mon Sep 10 15:05:25 CEST 2018


Ok. This is because unnecessary and undesirable sanity check that same
peerIP cannot exist twice.

You can fool this check, by configuring random peerPort. Then set bird
as passive and DUT as active. Even though DUT opens all BGP from
source_port 179, bird will happily accept the connections.

Fugly hack to deal with what is broken sanity check. And in fact the
hack probably shouldn't work, we likely shouldn't accept those
sessions as peerPort is not right. But for me this works great for now
:)

On Mon, 10 Sep 2018 at 13:54, Saku Ytti <saku at ytti.fi> wrote:
>
> I'm trying to setup between DUT<->Bird in same interface multiple iBGP
> neighbours with DUT IP and routerID staying same, and Bird sourceIP
> and table changing.
>
> If I configure just 1, it works grand, the 2nd one won't come up. If I
> change the order, the previous one which didn't work now works, and
> previous which did work, now does not.
>
>
> bird.conf:
> router id 100.100.100.100;
>
>
> filter f_export {
>   accept;
> }
>
> template bgp clients {
>   neighbor 204.42.112.1;
>   local as 65000;
>   neighbor as 65000;
>   ipv4 {
>     import none;
>     export filter f_export;
>     add paths rx;
>   };
> }
>
> include "clients.conf";
>
>
>
>
>
>
>
>
>
>
>
> clients.conf:
>
> ipv4 table t_client1;
> protocol bgp client1 from clients {
>   router id 204.42.112.100;
>   source address 204.42.112.100;
>   ipv4 {
>     table t_client1;
>   };
> }
> include "routes/client1.conf";
>
> ipv4 table t_client2;
> protocol bgp client2 from clients {
>   router id 204.42.112.101;
>   source address 204.42.112.101;
>   ipv4 {
>     table t_client2;
>   };
> }
> include "routes/client2.conf";
>
>
>
>
> clients1.conf:
> protocol static {
>   ipv4 { table t_client1; };
>   route 100.101.1.0/24 unreachable;
>   route 100.101.2.0/24 unreachable {
>     bgp_local_pref = 99;
>   };
> }
>
>
> I'm running debugging on, and getting no complains.
>
> I don't really have any idea how to debug this in 'birdc', everything
> I check seems fine. I tried for heck of it 'strict bind;' no help.
>
>
> bird: client1: Channel ipv4 connected to table t_client1
> bird: client1: Initializing
> bird: client2: Channel ipv4 connected to table t_client2
> bird: client2: Initializing
> bird: client1: Starting
> bird: client1: State changed to start
> bird: client2: Starting
> bird: client2: State changed to start
> bird: Started
> bird: client1: Started
> bird: client1: Connect delayed by 5 seconds
> bird: client1: Connecting to 204.42.112.1 from local address 204.42.112.100
> bird: client1: Connected
> bird: client1: Sending OPEN(ver=4,as=65000,hold=240,id=cc2a7064)
> bird: client1: Got OPEN(as=65000,hold=90,id=204.42.110.40)
> bird: client1: Sending KEEPALIVE
> bird: client1: Got KEEPALIVE
> bird: client1: BGP session established
> bird: client1: State changed to up
> bird: client1: Got UPDATE
> bird: client1 > filtered out 129.250.15.35/32 unreachable
> bird: client1 > filtered out 198.64.6.173/32 unreachable
> bird: client1 > filtered out 129.250.15.39/32 unreachable
> bird: client1 > filtered out 129.250.15.40/32 unreachable
> bird: client1 > filtered out 129.250.26.240/28 unreachable
> bird: client1 > filtered out 129.250.35.250/32 unreachable
> bird: client1 > filtered out 129.250.35.251/32 unreachable
> bird: client1 > filtered out 129.250.38.61/32 unreachable
> bird: client1 > filtered out 129.250.47.99/32 unreachable
> bird: client1 > filtered out 129.250.48.0/24 unreachable
> bird: client1 > filtered out 129.250.49.0/24 unreachable
> bird: client1 > filtered out 157.238.66.224/27 unreachable
> bird: client1 > filtered out 165.254.18.128/25 unreachable
> bird: client1 > filtered out 165.254.19.128/25 unreachable
> bird: client1 > filtered out 198.58.5.0/24 unreachable
> bird: client1 > filtered out 198.64.6.107/32 unreachable
> bird: client1 > filtered out 198.64.6.110/32 unreachable
> bird: client1 > filtered out 198.64.6.116/32 unreachable
> bird: client1 > filtered out 198.64.6.127/32 unreachable
> bird: client1 > filtered out 198.64.6.205/32 unreachable
> bird: client1 > filtered out 198.64.6.229/32 unreachable
> bird: client1 > filtered out 202.47.30.113/32 unreachable
> bird: client1 > filtered out 129.250.38.85/32 unreachable
> bird: client1 > filtered out 198.64.6.151/32 unreachable
> bird: client1 > filtered out 213.130.47.24/32 unreachable
> bird: client1 > filtered out 66.129.224.37/32 unreachable
> bird: client1 > filtered out 207.17.137.34/32 unreachable
> bird: client1 > filtered out 129.250.38.101/32 unreachable
> bird: client1 > filtered out 198.64.6.172/32 unreachable
> bird: client1 > filtered out 203.105.73.118/32 unreachable
> bird: client1 > filtered out 198.64.72.220/32 unreachable
> bird: client1: Got UPDATE
> bird: client1 > filtered out 204.42.111.0/25 unreachable
> bird: client1 > filtered out 204.42.112.0/24 unreachable
> bird: client1 > filtered out 204.42.110.40/32 unreachable
> bird: client1 > filtered out 129.250.0.254/32 unreachable
> bird: client1 > filtered out 129.250.0.255/32 unreachable
> bird: client1: Got UPDATE
> bird: client1: Got END-OF-RIB
> bird: client1 < added 100.101.1.0/24 unreachable
> bird: client1 < added 100.101.2.0/24 unreachable
> bird: client1: Sending UPDATE
> bird: client1: Sending UPDATE
> bird: client1: Sending END-OF-RIB
> bird: client1: Got UPDATE
> bird: client1: Got UPDATE
> bird: client1: Got KEEPALIVE
> bird: client1: Sending KEEPALIVE
> bird: client1: Got KEEPALIVE
> bird: client1: Sending KEEPALIVE
> bird: client1: Got KEEPALIVE
> bird: client1: Sending KEEPALIVE
> bird: client1: Got KEEPALIVE
> bird: client1: Sending KEEPALIVE
> bird: client1: Got KEEPALIVE
> bird: client1: Sending KEEPALIVE
>
> --
>   ++ytti



-- 
  ++ytti


More information about the Bird-users mailing list