Improper exports with BGP6 over IPv4

Ave ave at ave.zone
Mon Jun 29 00:47:54 CEST 2020


Hello,

I believe I stumbled upon a bug in BIRD 2.x while doing something that
can only be summed up as "testing things on someone else's network with
limited access provided to me".

When peering over IPv4 yet exporting a full table, I am noticing that
all exports, withdraw or update, are exported as withdrawals.

Export side:

    Routes:         0 imported, 85839 exported, 0 preferred
    Route change stats:     received   rejected   filtered    ignored  
accepted
      Import updates:              0          0          0         
0          0
      Import withdraws:            0          0        ---         
0          0
      Export updates:          85840          0          0       
---      85840
      Export withdraws:            0        ---        ---       
---          0

Import side:

    Routes:         0 imported, 0 exported, 0 preferred
    Route change stats:     received   rejected   filtered    ignored  
accepted
      Import updates:              0          0          0         
0          0
      Import withdraws:        85823          0        ---     
85823          0
      Export updates:              0          0          0       
---          0
      Export withdraws:            0        ---        ---       
---          0

I've also tested with an instance where there were both updates and
withdrawals exported, and as a result a sum of both were displayed as
imported withdrawals.

The configurations I've tested with are quite simple:

Full import config (seems to import "correctly", but as exports seem to
be faulty it all gets recorded as withdrawals):

> log syslog all;
> router id 192.168.4.22;
> protocol device {
>         scan time 5;
> }
>
> protocol bgp bird1 {
>         local 192.168.4.22 as 65529;
>         neighbor 192.168.4.1 as 65530;
>         multihop;
>
>         ipv6 {
>                 import all;
>                 export none;
>         };
> }

Trimmed export config that doesn't export correctly:

> protocol bgp bird2 {
>     local 192.168.4.1 as 65530;
>     neighbor 192.168.4.22 as 65529;
>     multihop;
>
>     ipv6 {
>         import none;
>         export all;
>     };
> }

Things I've so far:

- Doing BGP4 over IPv4 (renaming "ipv6" blocks to "ipv4" in configs).
This had no issues, exports and imports were correct.
- Doing BGP4 over IPv6 (doing same change as last point, plus changing
IPv4 addresses to IPv6 ones in configs). This had no issues, exports and
imports were correct.
- Switching from IPv4 to IPv6 (changing IPv4 addresses to IPv6 ones in
configs). This resulted in proper imports, hinting that problem only
happens on BGP6 over IPv4.
- Exporting to a non-bird2 BGP daemon. Specifically, I exported to a
mikrotik router running ROS v6.46.6. It also classified these as
withdrawals ("Withdrawn Received        85 979", with empty "Prefix
Count" and "Updates Received").

Thanks and I hope I'm not just doing something wrong and wasting your
time as a result,
Ave

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20200629/4f1491cd/attachment.htm>


More information about the Bird-users mailing list