Da ich aktuell mehrere Internetleitungen zuhause liegen habe und auch aktiv zahle (Umzug und Restvertragslaufzeit), würde ich die beiden Leitungen (Telekom DSL und Vodafone Coax) gerne aktiv nutzen und den Traffic auf beide Leitungen zu verteilen. Da ich aktuell arbeitstechnisch relativ viel mit BGP und BFD zu tun habe, sollte dies die Grundlage für das Routing in Kombination mit Wireguard als State-of-the-Art VPN-Protokoll werden.

Als Hardware hatte ich noch ein ungenutztes APU2D4 Board auf Lager. Im Rechenzentrum nutze ich eine Virtuelle Maschine mit 4 CPU Kernen und 4GB RAM als Gegenstelle für die Wireguard Tunnel. Software-seitig setze ich auf Debian als Betriebssytem, FRR als Routing-Dienst und Wireguard als VPN-Protokoll. Routing-technisch kommt BGP mit privaten AS-Nummern zum Einsatz, zusätzlich nutze ich BFD um im Falle des Ausfalls einer Leitung den Traffic schnellstmöglich auf die jeweils andere Leitung zu schwenken. Wer kein BGP als Routing-Protokoll verwenden möchte kann alternativ auch auf OSPF setzen.

Konfigurations-technisch sieht das gesamte Konstrukt auf dem APU-Board im FRR wie folgt aus. Die Konfiguration auf der RZ-Seite ist entsprechend ähnlich.

frr version 7.3.1-20210105-01-g092b787
frr defaults traditional
hostname gw.projekt35.net
log syslog
log facility local7
service integrated-vtysh-config
!
ip route 192.0.2.0/24 Null0 255
ipv6 route 2001:db8::/32 Null0 255
!
router bgp 65534
no bgp default ipv4-unicast
neighbor 100.127.225.29 remote-as 64512
neighbor 100.127.225.29 bfd
neighbor 100.127.225.33 remote-as 64512
neighbor 100.127.225.33 bfd
neighbor fd00:ffff:647f:e11d::1 remote-as 64512
neighbor fd00:ffff:647f:e11d::1 bfd
neighbor fd00:ffff:647f:e121::1 remote-as 64512
neighbor fd00:ffff:647f:e121::1 bfd
!
address-family ipv4 unicast
network 192.0.2.0/24
neighbor 100.127.225.29 activate
neighbor 100.127.225.33 activate
maximum-paths 2
exit-address-family
!
address-family ipv6 unicast
network 2001:db8::/32
neighbor fd00:ffff:647f:e11d::1 activate
neighbor fd00:ffff:647f:e121::1 activate
maximum-paths 2
exit-address-family
!
line vty
!
bfd
peer 100.127.225.29
detect-multiplier 5
transmit-interval 500
receive-interval 500
no shutdown
!
peer 100.127.225.33
detect-multiplier 5
transmit-interval 500
receive-interval 500
no shutdown
!
peer fd00:ffff:647f:e11d::1 local-address fd00:ffff:647f:e11d::2
detect-multiplier 5
transmit-interval 500
receive-interval 500
no shutdown
!
peer fd00:ffff:647f:e121::1 local-address fd00:ffff:647f:e121::2
detect-multiplier 5
transmit-interval 500
receive-interval 500
no shutdown
!
!
end