Hello there-
I’m hoping to get guidance/feedback from you all on whether or not what I’m trying to do it possible, and if it is possible, what am I doing incorrectly.
My goal is to make this a transit VPC for handling routes between multiple remote regions (and clouds). I’m testing with 4 VPCs (A, B, C, and D), each with a different ASN. VPC B is acting as my transit VPC, which is where bird and strongswan are running. VPCs A, C, and D are acting as the remote regions, and each has a VPN connection back to B. IPSec is up and working as expected, but routing is giving me some trouble. Each VPN has 2 tunnels, so I’m currently trying to establish 6 BGP sessions, however, only 2 sessions will establish at a time. The other sessions are in a “Start” state. Eventually, one of the established connections will drop and may reestablish, or, one of the other tunnels will establish a BGP connection.
I have tried multiple bird configurations, but all roads lead back only 2 established BGP sessions. I thought this example might be what I need, but it also did not work: https://gitlab.labs.nic.cz/labs/bird/wikis/Simple_route_server Individually, bird is able to establish a session on both tunnels at every remote VPC, so I know that works. Occasionally, I have noticed that established connections will disconnect with a “Hold timer expired”. There’s something I’m missing/overlooking in the config to allow all sessions to be active.
Below is the most basic config I have used. Thanks in advance for your help.
log "/var/log/bird.log" all;
debug protocols all;
router id 172.41.1.117;
protocol kernel {
scan time 10;
export all;
import all;
}
protocol device {
scan time 10;
}
template bgp aws {
local as 65000;
hold time 30;
export all;
import all;
direct;
}
protocol bgp ATUN0 from aws {
neighbor 169.254.xxx.xxx as 7224;
}
protocol bgp ATUN1 from aws {
neighbor 169.254.xxx.xxx as 7224;
}
protocol bgp CTUN0 from aws {
neighbor 169.254.xxx.xxx as 65100;
}
protocol bgp CTUN1 from aws {
neighbor 169.254.xxx.xxx as 65100;
}
protocol bgp DTUN0 from aws {
neighbor 169.254.xxx.xxx as 65200;
}
protocol bgp DTUN1 from aws {
neighbor 169.254.xxx.xxx as 65200;
}