Direct protocol affects BGP

Alexander Zubkov green at qrator.net
Wed Mar 25 17:32:35 CET 2020


Than I see no problem. When you have direct protocol off - your router
have nothing imported to the bird's routing table and so nothing is
exported to the bgp peer. A kernel protocol does not import those
routes, from the documentation:

> Note that routes created by OS kernel itself, namely direct routes representing IP subnets of associated interfaces, are not imported even with learn enabled. You can use Direct protocol to generate these direct routes.

On Wed, Mar 25, 2020 at 5:21 PM Fabiano D'Agostino
<fabiano.dagostino96 at gmail.com> wrote:
>
> Yes, I disabled direct protocol on both routers. The full bird.conf is the following:
> log syslog all;
> ipv4 table master4;
> ipv6 table master6;
> router1 bgp configuration:
> protocol bgp {
>     ipv4 {
>             import all;
>             export all;
>    };
>    local as 1;
>    neighbor 192.168.2.22 as 2;
> }
> protocol device {
> }
> protocol kernel {
>     ipv4 {
>             table master4;
>             import all;
>             export all;
>     };
> }
> protocol static {
>     ipv4;
> }
>
>
> Il giorno mer 25 mar 2020 alle ore 17:06 Alexander Zubkov <green at qrator.net> ha scritto:
>>
>> Do you disable direct protocol on both router1 and router2?
>> And that is definitely not the full bird config, you do not have a
>> kernel protocol for example.
>>
>> On Tue, Mar 24, 2020 at 10:50 PM Fabiano D'Agostino
>> <fabiano.dagostino96 at gmail.com> wrote:
>> >
>> > There is no gateway because they are directly connected. However my network topology is the following:
>> > [pc-a - router1 ]=AS 1 ; [pc-b - router 2]=AS 2;
>> > pc-a:
>> > enp0s3
>> > address 192.168.1.11
>> > gw 192.168.1.1
>> > router1:
>> > enp0s3
>> > address 192.168.1.1
>> > enp0s8
>> > 192.168.2.2
>> >
>> > router1 bgp configuration:
>> > protocol bgp {
>> >     ipv4 {
>> >             import all;
>> >             export all;
>> >    }
>> > local as 1;
>> > neighbor 192.168.2.22 as 2
>> >
>> >
>> > Il giorno mar 24 mar 2020 alle ore 22:40 Alexander Zubkov <green at qrator.net> ha scritto:
>> >>
>> >> There is also no gateway in you "route" output on routes exported from
>> >> bird. Maybe you have some filters that causing it? Could you show your
>> >> config if it is not secret?
>> >>
>> >> On Tue, Mar 24, 2020 at 9:53 PM Fabiano D'Agostino
>> >> <fabiano.dagostino96 at gmail.com> wrote:
>> >> >
>> >> > Yes, 'show route', is from Bird. I don't have route-reflector, but just two routers which have a bgp session. Anyway, yes when direct is disabled, the bgp session is established.
>> >> >
>> >> > Il giorno mar 24 mar 2020 alle ore 21:45 Alexander Zubkov <green at qrator.net> ha scritto:
>> >> >>
>> >> >> "show route" looks a little weird, is it from bird? There are also
>> >> >> commonly a protocol and metric shown.
>> >> >> Those are from your route-reflector? Do you have your bgp sessions up
>> >> >> when direct is disabled?
>> >> >>
>> >> >> On Tue, Mar 24, 2020 at 9:33 PM Fabiano D'Agostino
>> >> >> <fabiano.dagostino96 at gmail.com> wrote:
>> >> >> >
>> >> >> > Good evening Alexander,
>> >> >> >
>> >> >> > Direct protocol enabled:
>> >> >> > 'route' command:
>> >> >> > Destination Gateway Genmask            Flags Metric iface
>> >> >> > 192.168.1.0      *        255.255.255.0       U       0         enp0s3
>> >> >> > 192.168.1.0      *        255.255.255.0       U       32       enp0s3
>> >> >> > 192.168.2.0      *        255.255.255.0       U       0         enp0s8
>> >> >> > 192.168.2.0      *        255.255.255.0       U        32      enp0s8
>> >> >> > 192.168.4.0      *        255.255.255.0       U        32      enp0s8
>> >> >> > 'show route' command:
>> >> >> > 192.168.1.0/24 enp0s3
>> >> >> > 192.168.2.0/24  enp0s8 via 192.168.2.22 on enp0s8
>> >> >> > 192.168.4.0/24 via 192.168.2.22 on enp0s8
>> >> >> >
>> >> >> > Direct protocol disabled:
>> >> >> > 'route' command:
>> >> >> > Destination Gateway Genmask            Flags Metric iface
>> >> >> > 192.168.1.0      *        255.255.255.0       U       0         enp0s3
>> >> >> > 192.168.2.0      *        255.255.255.0       U       0         enp0s8
>> >> >> > 'show route' command:
>> >> >> > empty
>> >> >> >
>> >> >> > Thanks,
>> >> >> >
>> >> >> > Fabiano
>> >> >> >
>> >> >> > Il giorno mar 24 mar 2020 alle ore 21:00 Alexander Zubkov <green at qrator.net> ha scritto:
>> >> >> >>
>> >> >> >> I think it would be easier if you showed your route tables in both cases.
>> >> >> >>
>> >> >> >> On Tue, Mar 24, 2020 at 8:57 AM Irene Lalioti <irene.lalioti at restena.lu> wrote:
>> >> >> >> >
>> >> >> >> > Hello guys!
>> >> >> >> >
>> >> >> >> > Just because today we encountered again the same issue with direct, I am very curious on this:
>> >> >> >> >
>> >> >> >> > I totally agree with what you guys explained about the need of the direct protocol. Once we set it then reachability works and all is ok.
>> >> >> >> >
>> >> >> >> > Our big question is why was it working before the moment it lost the BGP session?? In other words: the set up :
>> >> >> >> >
>> >> >> >> > RS - BGP session with the ROUTER - and behind the Router we have Caches.
>> >> >> >> >
>> >> >> >> > Before the router was announcing to the RS(BIRD v2.0.7) the caches and that they are reachable by the router. Without any direct.
>> >> >> >> >
>> >> >> >> > Until one day we lose the bgp session, and we can ping the caches from the RS but not reachable . Once we set it as direct on the bird then all is fine.
>> >> >> >> >
>> >> >> >> > Question is why was it working before without direct ?? :=)
>> >> >> >> >
>> >> >> >> > Many thanks for your time!
>> >> >> >> >
>> >> >> >> > Have a great day all!
>> >> >> >> >
>> >> >> >> > Irene.
>> >> >> >> >
>> >> >> >> > On 23/03/2020 17:07, Fabiano D'Agostino wrote:
>> >> >> >> >
>> >> >> >> > Hi Bernd,
>> >> >> >> > no, the routing "from the kernel" doesn't come via 'learn yes', but via RIB, I mean if I do 'route' it shows the directly connected networks. The problem is that if I use the Direct protocol, the command 'route' shows me two same directly connected networks, one coming from RIB and the other one coming from Bird.
>> >> >> >> > I tried protocol bgp { direct; }, but it doesn't change.
>> >> >> >> >
>> >> >> >> > Thanks,
>> >> >> >> >
>> >> >> >> > Fabiano
>> >> >> >> >
>> >> >> >> > Il giorno lun 23 mar 2020 alle ore 16:15 Bernd Naumann <bena at spreadshirt.net> ha scritto:
>> >> >> >> >>
>> >> >> >> >> On 23.03.20 16:01, Fabiano D'Agostino wrote:
>> >> >> >> >> > Hi Benedikt,
>> >> >> >> >> > I am just learning Bird and I didn't want to use the Direct protocol
>> >> >> >> >> > because using it I have two same routes in the RIB for the directly
>> >> >> >> >> > connected networks, one coming from the kernel and the second one coming
>> >> >> >> >> > from the direct protocol.
>> >> >> >> >>
>> >> >> >> >>
>> >> >> >> >> Is the routing "from the kernel" coming via `learn yes;`? If you have no
>> >> >> >> >> need to import "alien" routes, you can disable `learn` and just use
>> >> >> >> >> `direct` and `static` protocol. /* OR if you know that your neighbor is
>> >> >> >> >> directly connected to you can also set 'direct' on the `protocol bgp`. */
>> >> >> >> >>
>> >> >> >> >> Bernd
>> >> >> >> >>
>> >> >> >> >>
>> >> >> >> >
>> >> >> >> > --
>> >> >> >> > Irene Lalioti
>> >> >> >> > Network Engineer
>> >> >> >> > Fondation RESTENA
>> >> >> >> > 2, avenue de l'Université
>> >> >> >> > L-4365 Esch/Alzette
>> >> >> >> >
>> >> >> >> > Tel: +352 424409 1
>> >> >> >> > Fax: +352 422473



More information about the Bird-users mailing list