Routes imported from BGP doesn't have proper gateways

Alexander Zubkov green at qrator.net
Mon Aug 23 12:06:09 CEST 2021


Hi,

You probably need to add "direct" protocol too. Also disabling
recursive gateways might help - they are not needed in your case
because you use "next hop self".

On Sun, Aug 22, 2021 at 5:30 PM Ooth Gray <greyschwinger at gmail.com> wrote:
>
> Hi I'm having troubles in BIRD configuration, and I'm pretty sure it's just a trivial wrong configure issue but I really tried my best >_<
>
> Let me give you some background.
>
> 1. There are 2 hosts connected by wire (so that they are L2 reachable), one with IPv4 10.22.12.88, and another is 10.22.12.44. Here's one the arp record from "ip neigh sh":
>>
>> 10.22.12.88 dev bond0 lladdr f8:6e:ee:8b:cf:90 REACHABLE
>
>
> 2. Both 2 hosts have some KVM virtual machines, with corresponding routes from host to vm, here's one of the routes from "ip r":
>>
>> 10.233.25.178 dev yap35caa1e88854  scope link  src 10.22.12.44
>
> The 10.233.25.178 is the address of a VM, and the dev yap35caa1e88854 is a tap device connecting eth0 inside the VM.
>
> What I want to do is to build routes between these 2 hosts, in order to let VMs on host A be able to connect VMs on host B.
>
> Hope I make myself clear.
>
> So I'm using BIRD 2.0.3 on Ubuntu 16.04, with the config file as follows:
>
>> log syslog all;
>> router id 10.22.12.44;
>>
>> protocol device {
>>   debug { states };
>>   scan time 2;
>> }
>>
>> protocol kernel {
>>         learn;
>>         persist;
>>         scan time 10;
>>         ipv4 {
>>                 import all;
>>                 export all;
>>         };
>> }
>>
>> protocol bgp {
>>         debug { states };
>>         local as 65000;
>>         neighbor 10.22.12.88 as 65000;
>>         source address 10.22.12.44;
>>         multihop;
>>         ipv4 {
>>                 export filter {
>>                         if ( net ~ 10.233.0.0/16 ) then {
>>                                 accept;
>>                         }
>>                         reject;
>>                 };
>>                 import all;
>>                 next hop self on;
>>                 gateway recursive;
>>                 add paths on;
>>         };
>> }
>
>
> But this doesn't work well, the peer BIRD show the info as follows:
>
>> bird> show route protocol bgp1
>> Table master4:
>> 10.233.25.178/32     unicast [bgp1 18:47:32.910 from 10.22.12.44] * (100/?) [i]
>> via 10.22.12.1 on enp2s0f0 onlink
>> bird> show route export kernel1
>> Table master4:
>> 10.233.25.178/32     unicast [bgp1 18:47:32.910 from 10.22.12.44] * (100/?) [i]
>> via 10.22.12.1 on enp2s0f0 onlink
>
>
> The problem happened on the gateway, I was hoping the routes should have "via 10.22.12.44" instead of "via 10.22.12.1";
>
> 10.22.12.1 came from the host default gateway:
>>
>> default via 10.22.12.1 dev bond0 onlink
>
> But I have no idea how to prevent BIRD from using it.
>
> The other information may be helpful is included below:
>
>> bird> show protocols all bgp1
>> Name       Proto      Table      State  Since         Info
>> bgp1       BGP        ---        up     18:28:46.888  Established
>>   BGP state:          Established
>>     Neighbor address: 10.22.12.88
>>     Neighbor AS:      65000
>>     Neighbor ID:      10.22.12.88
>>     Local capabilities
>>       Multiprotocol
>>         AF announced: ipv4
>>       Route refresh
>>       Graceful restart
>>       4-octet AS numbers
>>       ADD-PATH
>>         RX: ipv4
>>         TX: ipv4
>>       Enhanced refresh
>>       Long-lived graceful restart
>>     Neighbor capabilities
>>       Multiprotocol
>>         AF announced: ipv4
>>       Route refresh
>>       Graceful restart
>>       4-octet AS numbers
>>       Enhanced refresh
>>       Long-lived graceful restart
>>     Session:          internal multihop AS4
>>     Source address:   10.22.12.44
>>     Hold timer:       117.086/240
>>     Keepalive timer:  52.520/80
>>   Channel ipv4
>>     State:          UP
>>     Table:          master4
>>     Preference:     100
>>     Input filter:   ACCEPT
>>     Output filter:  (unnamed)
>>     Routes:         2 imported, 20 exported
>>     Route change stats:     received   rejected   filtered    ignored   accepted
>>       Import updates:              2          0          0          0          2
>>       Import withdraws:            0          0        ---          0          0
>>       Export updates:             49          6         23        ---         20
>>       Export withdraws:            0        ---        ---        ---          4
>>     BGP Next hop:   10.22.12.44
>>     IGP IPv4 table: master4
>>
>> bird> show route export bgp1
>> Table master4:
>> 10.233.25.178/32     unicast [kernel1 18:04:09.483] (10)
>> dev yap35caa1e88854
>
>
> Please enlighten me with some advice, and I'll appreciate that very much.
>
> Thank you!


More information about the Bird-users mailing list