Das ist ja eine sehr detaillierte Fehlerbeschreibung
Habt ihr denn mal versucht eure Tunnel gegenstellen zu Pingen ob sie erreichbar sind?
Tunnel Outer IP und Inner IP.
Also die IP zu der ihr den Tunnel aufbaut und zu der IP mit der ihr BGP machen wollt.
Hold timer expired bedeutet das Keepalive kommt nicht an und die Verbindung wird wieder abgebaut.
Bird IPv4 funktioniert bereits. D.h. da sind die Verbindung estabished. Die Tunnel funktionieren also.
Für IPv6 geht ein Ping bis zum Ziel, findet von dort aber nur einen Rückweg bis zu einem Router beim FFRL, der dann nicht weiter weiß.
Soweit ich die Beispiele und Anleitungen verstanden habe, läuft der bird6 bei FFRL jeweils auf dem Tunnelendpunkt. Der lässt sich auch mit IPv6 pingen. Hier die bird6.conf, die im Wesentlichen mit der bird.conf übereinstimmt. Nur eben IPv6 Adressen.
Wenn ich die Supernodes als gegenseitige Nachbarn definiere, klappt die Verbindung auf Anhieb.
log syslog { info };
debug protocols { states, routes, filters, interfaces, events, packets };
router id 185.66.193.126 ;
function is_default() {
return (net ~ [::/0]);
}
filter hostroute {
if net ~ [2a03:2260:301a::/48{48,56}] then accept;
reject;
}
protocol direct {
interface -"ens*", "bat*", "gre*" , "lo" ; # Restrict network interfaces it works with
}
protocol kernel {
device routes;
import none;
export all; # Default is export none
kernel table 42; #
}
protocol device {
scan time 10; # Scan interfaces every 10 seconds
}
template bgp uplink {
local as 65201;
import where is_default();
export filter hostroute;
gateway recursive;
}
protocol bgp gre_ber_a from uplink {
description "Rheinland Backbone Berlin A";
source address 2a03:2260:0:51e::2;
neighbor 2a03:2260:0:51e::1 as 201701;
}
protocol bgp gre_ber_b from uplink {
description "Rheinland Backbone Berlin B";
source address 2a03:2260:0:521::2;
neighbor 2a03:2260:0:521::1 as 201701;
}
protocol bgp gre_dus_a from uplink {
description "Rheinland Backbone Duesseldorf A";
source address 2a03:2260:0:520::2;
neighbor 2a03:2260:0:520::1 as 201701;
}
protocol bgp gre_dus_b from uplink {
description "Rheinland Backbone Duesseldorf B";
source address 2a03:2260:0:523::2;
neighbor 2a03:2260:0:523::1 as 201701;
}
protocol bgp gre_fra_a from uplink {
description "Rheinland Backbone Frankfurt A";
source address 2a03:2260:0:51f::2;
neighbor 2a03:2260:0:51f::1 as 201701;
}
protocol bgp gre_fra_b from uplink {
description "Rheinland Backbone Frankfurt B";
source address 2a03:2260:0:522::2;
neighbor 2a03:2260:0:522::1 as 201701;
}
Wenn ein Ping von einem Node durch den Supernode bis zum Zielhost geht, dann geht er auch durch den Tunnel.
Die Tunnelendpunkte lassen sich problemlos per IPv6 pingen. Auch jeder andere Zielhost lässt sich über die Tunnel pingen. Die Tunnel sind nicht das Problem.
Der Host 2a03:2260::5 findet zwar einen Hin- aber keinen Rückweg zur Adresse 2a03:2260:301a:1500:ee08:6bff:fe78:646c.
IMHO ist die ein Problem des Bird6 im Backbone, der keine Verbindung zu unseren bird6 aufbaut.