FFRL Backbone Anbindung: bird6 verbindet sich nicht

Hallo zusammen,

wir versuchen zwei Supernodes an den Backbone zu bringen. Für IPv4 funktioniert es bereits. Bei IPv6 erhalte ich vom birdc6 folgende Fehler:

root@voreifel1:~# birdc6
BIRD 1.6.6 ready.
bird> show protocols 
name     proto    table    state  since       info
direct1  Direct   master   up     23:45:06    
kernel1  Kernel   master   up     23:45:06    
device1  Device   master   up     23:45:06    
gre_ber_a BGP      master   start  23:49:36    OpenConfirm   BGP Error: Hold timer expired
gre_ber_b BGP      master   start  23:53:02    OpenConfirm   BGP Error: Hold timer expired
gre_dus_a BGP      master   start  23:54:39    Idle          Received: Hold timer expired
gre_dus_b BGP      master   start  23:53:52    Idle          BGP Error: Hold timer expired
gre_fra_a BGP      master   start  23:53:42    Idle          Received: Hold timer expired
gre_fra_b BGP      master   start  23:54:00    Idle          Received: Hold timer expired

durch Moderation formatiert

Wenn ich die bird6 der beiden Supernodes untereinander verbinde, dann wird die Verbindung schneller estabished, als ich tippen kann.

Das ist ja eine sehr detaillierte Fehlerbeschreibung :wink:
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;
}

Moin,

die Aussage verstehe ich nicht. Was pingst du?

Hast du mal durch den Tunnel gepingt? Und zeig mal bitte die Ausgabe von

ip a 

Und

ip -6 rule

und

ip -6 r s

Grüße
Matthias

Ergebnis des Ping von einem Node.

ping -6 byggvir.de

tcpdump auf dem Zielhost:

13:45:04.913576 IP6 2a03:2260:301a:1500:ee08:6bff:fe78:646c > 2a01:238:4216:400:2719:9f12:f159:ba3f: ICMP6, echo request, seq 7, length 64
13:45:04.913616 IP6 2a01:238:4216:400:2719:9f12:f159:ba3f > 2a03:2260:301a:1500:ee08:6bff:fe78:646c: ICMP6, echo reply, seq 7, length 64
13:45:04.931455 IP6 **2a03:2260::5 > 2a01:238:4216:400:2719:9f12:f159:ba3f: ICMP6, destination unreachable**, unreachable route 2a03:2260:301a:1500:ee08:6bff:fe78:646c, length 112

ip_a.txt (8,9 KB) ip6_rule.txt (282 Bytes) ip6_rs.txt (2,4 KB)

Hier noch der tcpdump von einem der Tunnel während des bird6 restart.dump.txt (8,8 KB)

Vermutlich ein Missverständnis. Ich meinte auf dem Gateway durch den GRE-Tunnel pingen. Also die direkte Gegenstelle beim FFRL.

Also z. B.:

ping6 2a03:2260:0:520::2 

Ggfs. mit Quell-IP …::1 via -I.

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.

Ich würde mal die Jungs vom FFRL-Backbone fragen. Vllt. ist etwas unvollständig konfiguriert worden.

Die müssten nur Antworten. Die Frage habe ich schon vor Wochen gestellt.

1 „Gefällt mir“

Es gibt hier im Forum auch einen Bereich FFRL-Backbone. Vllt. hilft das :slight_smile:

1 „Gefällt mir“