- Spikes im Grafana mit recoding_rules aus Prometheus
- TCAM full - Überraschender Totalausfall
- IPv5 - das fehlende Verbindungsstück zwischen IPv4 und IPv6
- Alle Räder stehen still, wenn Dein starker Arm das will
- Aprilscherz oder was?
- Telekom, wie heißt gleich das Produkt mit BGP?
- Flexible Netflow mit Voraggregation im Router
IPv6 Link Local für ASA Failover
Die Cisco ASAs können auf dem (stateful) Failover Interface auch mit IPv6 reden. Was liegt also näher als Link Local IPv6 Adressen dort zu nehmen?
Lokale Kommunikation
Die Doku beschreibt, dass man auf dem Failover Interface Adressen setzen muß. Aber welche Adressen nehme ich? Das Netz ist ja rein intern. Lokale IPv4 Adressen könnten sich mit verschiedenen Kunden beißen, schließlich benutzen ja alle solche. Globale IPv4 Adressen sind rar.
Also IPv6 Adressen. Aber welche? Globalen IPv6 Adresse laufen Gefahr, extern erreichbar zu sein. Das ist für interen Kommunikation unerwünscht. Ja, die ASA ist eine Firewall, aber dieser Traffic ist ja intern relevant. Wer weiß, was da passiert, wenn die gefakte Failoverkommunikation anderswo einkommt. Oder wenn die Pakete versehentlich doch falsch rausgehen, so würden sie normal geroutet.
Dieser Anwendungsfall schreit geradezu nach Link Local Adressen. Also frisch drauflos konfiguriert.
asa(config)# failover interface ip xlink fe80::55:3/64 standby fe80::57:3 primary# show failover interface interface xlink GigabitEthernet0/3 System IP Address: fe80::55:3/64 My IP Address : fe80::55:3 Other IP Address : fe80::57:3 secondary# show failover interface interface xlink GigabitEthernet0/3 System IP Address: fe80::55:3/64 My IP Address : fe80::57:3 Other IP Address : fe80::55:3 primary# show failover Failover On Failover unit Primary Failover LAN Interface: xlink GigabitEthernet0/3 (up) Version: Ours 8.4(5), Mate 8.4(5) Last Failover at: 12:33:59 UTC This host: Primary - Active Active time: 7025 (sec) slot 0: ASA5520 hw/sw rev (2.0/8.4(5)) status (Up Sys) Interface management (xxx.13/fe80::55:0): Normal (Monitored) Interface outside (yyy.165/fe80::55:1): Normal (Monitored) slot 1: empty Other host: Secondary - Standby Ready Active time: 0 (sec) slot 0: ASA5520 hw/sw rev (2.0/8.4(5)) status (Up Sys) Interface management (xxx.14/fe80::57:0): Normal (Monitored) Interface outside (yyy.168/fe80::57:1): Normal (Monitored)
Das schaut doch gut aus!
Reboot tut gut
Nach einem Reboot des Standby-Gerätes passiert allerdings seltsames:
- Nach dem Boot kommt die Meldung, dass auf dem Failover-Link eine aktive Gegenstelle gefunden wurde.
- Danach wird die Konfiguration vom aktiven Gerät übertragen.
- Die Übertragung der Konfiguration kommt nicht zum Ende
- Nach dem Failover-Timeout erkennen beide ASAs auf "Failover Link failed"
- Die frisch gebootete ASA übernimmt als aktives Gerät.
Damit sind zwei Geräte aktiv und benutzen die gleichen IP Adressen. IPv6 wird auf allen Dateninterfaces der gebooteten ASA deaktiviert, weil die gleiche IPv6 Adresse schon in Benutzung ist. Man möge die Interfaces kurz "shutdown" nehmen und wieder aktivieren.
Offenbar können die Geräte nicht miteinander reden. Obwohl beide die korrekten IPs haben. Oder haben sie die etwa nicht?
primary# show ipv6 interface xlink xlink is up, line protocol is up IPv6 is enabled, link-local address is fe80::55:3 No global unicast address is configured secondary# show ipv6 interface xlink xlink is up, line protocol is up IPv6 is enabled, link-local address is fe80::eab7:48ff:fe3d:1b5 No global unicast address is configured
Was ist denn das?! Ganz offenbar wird die Link-Lokal Adresse beim Secondary nicht gesetzt.
Lösung
Man nehme auf dem Failover-Interface IPv4 Adressen oder globale IPv6 Adressen.
Man behandle die Routingfragen, insbesondere auch das Leaken der Routen in dynamische Protokolle wie OSPF, sehr sorgfältig und setzte vorausschauend entsprechende Filterregeln, um den versehentlichen Zu- und Abgriff der Failoverkommunikation zu verhindern.
So ein dummer Bug.