Lost withdrawal message

oldnick oldnick.nsp at gmail.com
Tue Oct 16 13:56:49 CEST 2018


Hi!

I am observing strange BGP announcement problem.

BGP peering is between bird router (version 2.0.2) and cisco router.

BIRD 10.0.0.1 <---> 10.0.0.2 Cisco

I am announcing prefix 10.10.10.10/32 from bird to cisco.

My initial bird configuration is as follows:

##################
[root at localhost ~]# cat /etc/bird.conf
router id 10.0.0.1;

filter filter1 {
  accept;
}

protocol kernel {
         persist yes;
         learn yes;
         scan time 10;
         ipv4 {
         import none;
         export none;
         };
}
protocol device {
         scan time 10;
}

protocol direct {
         interface "lo";
         ipv4 {
         import filter filter1;
         export none;
         };
}

protocol bgp peer1 {
               local as 65001;
               neighbor 10.0.0.2 as 65002;
               hold time 45;
               ipv4 {
               import none;
               export filter filter1;
               };
}
#####################

IP address 10.10.10.10/32 is configured on loopback interface:
lo:1: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
         inet 10.10.10.10  netmask 255.255.255.255

It works just fine with this configuration. I can see announcement of 10.10.10.10/32 on 
cisco router:
R1#show ip bgp
    Network          Next Hop            Metric LocPrf Weight Path
*> 10.10.10.10/32   10.0.0.1                               0 65001 i


Strange thing happens when I make a change to filter1, instead of:
filter filter1 {
  accept;
}

I change it to:
filter filter1 {
  if ( net = 10.10.10.10/32 ) then { reject; }
  accept;
}

Basically I am blocking import of prefix 10.10.10.10/32 into direct protocol and at the same 
time I am blocking export of prefix 10.10.10.10/32 to peer1 (it is the same filter filter1 
both for direct import and for peer1 export). After the change of /etc/bird.conf I am making 
"birdc configure" and I am expecting to see the withdrawal message on cisco side, but there 
is none (I checked it with tcpdump).

Here is what I can still see on cisco side:
R1#show ip bgp
    Network          Next Hop            Metric LocPrf Weight Path
*> 10.10.10.10/32   10.0.0.1                               0 65001 i

This is the output of birdc "show route":
bird> show route
bird>

This is the output of birdc "show route export peer1":
bird> show route export peer1
bird>

So there is no route according to bird, but it seems like bird does not send withdrawal 
message. Either I am doing something wrong, or it is a bird bug. Appreciate your help.

--
Regards,
Sergey



More information about the Bird-users mailing list