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.

Post a comment

Verwandter Inhalt