Simple two bird BGPs two Uplinks one Peering Provider config

Yves Illi mail at yvesilli.com
Mon May 20 19:17:08 CEST 2019


Hi there,

I am really new to the complete topic of BGP. So please have a bit mercy with me if I ask something very stupid. But I am trying to build that for the first time ever and I am feeling like a donkey in front of a big mountain.

Last but not least it is currently running, but I guess its more luck than something else. Like I said I am completely new to the topic of BGP. What I don't get is how I configure them together so they work (as a HA-Cluster) and currently I can only route a.b.c.249/29 instead of a.b.c.0/22.

Here is what I am trying to build (https://imgur.com/a/NtWE6MY).

And here are my two configs:

/*
*    My example bgp01 configuration
*/

log syslog all;
log "/var/log/bird.log" all;

# d.e.f.124/29 is my IP in the transfer network /29 to my peering uplink1
# d.e.f.125/29 is my 2nd bird bgp in the transfer network /29 to my peering uplink1
router id d.e.f.124;

define myasn = XXXX;
define myaddr = d.e.f.124;

protocol device {
  scan time 10; # Scan interfaces every 10 seconds
}

ipv4 table master4;

protocol direct {
  ipv4; # Tells bird to only do ipv4
  interface "enp3s0f4"; # Restrict network interfaces BIRD works with
}

protocol kernel {
  ipv4{
    table master4;
    import all;
    export all;
  };
  persist;
}

#a.b.c.0 is my own /22 ip range
protocol static static_bgp {
  ipv4;
  route a.b.c.0/22 via d.e.f.124;
}

protocol bgp link1 {
  local d.e.f.124 as XXXX;
  neighbor d.e.f.121 as YYYY; #d.e.f.121 is the first router of my peering uplink 1
  ipv4 { import all;export where proto = "static_bgp"; };
}
protocol bgp link2 {
  local d.e.f.124 as XXXX;
  neighbor d.e.f.122 as YYYY; #d.e.f.122 is the second router of my peering uplink 1
  ipv4 { import all;export where proto = "static_bgp"; };
}

/*
*    My example bgp02 configuration
*/

log syslog all;
log "/var/log/bird.log" all;

# d.e.f.124/29 is my IP in the transfer network /29 to my peering provider1
# d.e.f.125/29 is my 2nd bird bgp in the transfer network /29 to my peering provider1
router id d.e.f.125;

define myasn = XXXX;
define myaddr = d.e.f.125;

protocol device {
  scan time 10; # Scan interfaces every 10 seconds
}

ipv4 table master4;

protocol direct {
  ipv4; # Tells bird to only do ipv4
  interface "enp3s0f4"; # Restrict network interfaces BIRD works with
}

protocol kernel {
  ipv4{
    table master4;
    import all;
    export all;
  };
  persist;
}

#a.b.c.0 is my own /22 ip range
protocol static static_bgp {
  ipv4;
  route a.b.c.0/22 via d.e.f.125;
}

protocol bgp link1 {
  local d.e.f.125 as XXXX;
 neighbor d.e.f.121 as YYYY; #d.e.f.121 is the first router of my peering provider1
  ipv4 { import all;export where proto = "static_bgp"; };
}
protocol bgp link2 {
  local d.e.f.125 as XXXX;
  neighbor d.e.f.122 as YYYY; #d.e.f.122 is the second router of my peering provider1
  ipv4 { import all;export where proto = "static_bgp"; };
}


Thanks a lot for your help and inputs

Best Regards,
Yves
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20190520/dcb3643c/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: little_network_diag.png
Type: image/png
Size: 177585 bytes
Desc: little_network_diag.png
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20190520/dcb3643c/attachment.png>


More information about the Bird-users mailing list