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