In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
In diesem Dokument wird beschrieben, wie Sie die Cisco Adaptive Security Appliance (ASA) konfigurieren, um IPv6-Datenverkehr (Internet Protocol Version 6) in der ASA-Version 7.0(1) und höher weiterzuleiten.
Es gibt keine spezifischen Anforderungen für dieses Dokument.
Die Informationen in diesem Dokument basieren auf Cisco ASA 7.0(1) und höheren Versionen.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Derzeit ist IPv6 in Bezug auf die Marktdurchdringung noch relativ neu. Die IPv6-Unterstützung bei der Konfiguration und bei der Fehlerbehebung nimmt jedoch stetig zu. Dieses Dokument soll diese Anforderungen erfüllen und Folgendes bieten:
Anmerkung: Da sich IPv6 als globaler Ersatz für IPv4 noch in der Anfangsphase befindet, muss dieses Dokument regelmäßig aktualisiert werden, um Genauigkeit und Relevanz zu gewährleisten.
Hier finden Sie einige wichtige Informationen zur IPv6-Funktionalität:
Das IPv6-Protokoll wurde Mitte bis Ende der 1990er Jahre entwickelt, was in erster Linie darauf zurückzuführen ist, dass sich der öffentliche IPv4-Adressraum rasch in Richtung Erschöpfung bewegte. Obwohl die Network Address Translation (NAT) IPv4 enorm unterstützte und dieses Problem verzögerte, wurde klar, dass irgendwann ein Ersatz-Protokoll erforderlich sein würde. Das IPv6-Protokoll wurde im Dezember 1998 in RFC 2460 offiziell näher beschrieben. Weitere Informationen zum Protokoll finden Sie im offiziellen Dokument RFC 2460 auf der Website der Internet Engineering Task Force (IETF).
In diesem Abschnitt werden die Verbesserungen beschrieben, die das IPv6-Protokoll gegenüber dem älteren IPv4-Protokoll bietet.
Das IPv6-Protokoll erhöht die Größe der IP-Adressen von 32 auf 128 Bit, um eine höhere Adresshierarchie, eine wesentlich größere Anzahl adressierbarer Knoten und eine einfachere automatische Adressenkonfiguration zu unterstützen. Die Skalierbarkeit des Multicast-Routings wird durch das Hinzufügen eines Bereichsfelds zu den Multicast-Adressen verbessert. Darüber hinaus wird ein neuer Adresstyp, die so genannte Anycast-Adresse, definiert. Diese wird verwendet, um ein Paket an einen beliebigen Knoten in einer Gruppe zu senden.
Einige IPv4-Header-Felder wurden verworfen oder optional hinzugefügt, um die Verarbeitungskosten für Pakete im allgemeinen Fall zu reduzieren und die Bandbreitenkosten für den IPv6-Header zu begrenzen.
Durch Änderungen an der Codierung der IP-Header-Optionen wird eine effizientere Weiterleitung ermöglicht, die Länge der Optionen wird weniger streng, und die zukünftige Einführung neuer Optionen kann flexibler erfolgen.
Eine neue Funktion wird hinzugefügt, um die Kennzeichnung von Paketen zu ermöglichen, die zu bestimmten Datenverkehrsflüssen gehören, für die der Absender eine spezielle Behandlung anfordert, wie z. B. nicht standardmäßige Quality of Service (QoS) oder Echtzeit-Dienste.
Erweiterungen, die zur Unterstützung von Authentifizierung, Datenintegrität und (optionaler) Datenvertraulichkeit verwendet werden, werden für IPv6 festgelegt.
In diesem Abschnitt wird beschrieben, wie Sie die Cisco ASA für die Verwendung von IPv6 konfigurieren.
Anmerkung: Verwenden Sie das Command Lookup-Tool (Tool für die Suche nach Befehlen) (nur registrierte Kunden), um weitere Informationen zu den in diesem Abschnitt verwendeten Befehlen zu erhalten.
Dies ist die IPv6-Topologie für die in diesem Dokument verwendeten Beispiele:

Um den IPv6-Datenverkehr über eine ASA weiterzuleiten, müssen Sie IPv6 zunächst auf mindestens zwei Schnittstellen aktivieren. In diesem Beispiel wird beschrieben, wie IPv6 aktiviert wird, um Datenverkehr von der internen Schnittstelle auf Gi0/0 an die externe Schnittstelle auf Gi0/1 weiterzuleiten:
ASAv(config)# interface GigabitEthernet0/0
ASAv(config-if)# ipv6 enable
ASAv(config)# interface GigabitEthernet0/1
ASAv(config-if)# ipv6 enable
Sie können jetzt die IPv6-Adressen auf beiden Schnittstellen konfigurieren.
Anmerkung: In diesem Beispiel werden die Adressen im ULA-Bereich (Unique Local Addresses) von fc00::/7 verwendet, sodass alle Adressen mit FD beginnen (z. B. fdxx:xxxx:xxxx....) Außerdem können Sie beim Schreiben von IPv6-Adressen doppelte Doppelpunkte (::) verwenden, um eine Nullinie darzustellen, sodass FD01::1/64 identisch ist mit FD01:0000:0000:0000:0000:0000:0000:00001.
ASAv(config)# interface GigabitEthernet0/0
ASAv(config-if)# ipv6 address fd03::1/64
ASAv(config-if)# nameif inside
ASAv(config-if)# security-level 100
ASAv(config)# interface GigabitEthernet0/1
ASAv(config-if)# ipv6 address fd02::2/64
ASAv(config-if)# nameif outside
ASAv(config-if)# security-level 0
Sie können jetzt die grundlegende Layer 2 (L2)-/Layer 3 (L3)-Verbindung mit einem Upstream-Router im externen VLAN unter der Adresse fd02::1 herstellen:
ASAv(config-if)# ping fd02::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to fd02::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/10 ms
Wie bei IPv4 müssen Sie, auch wenn es eine IPv6-Verbindung mit den Hosts im direkt verbundenen Subnetz gibt, dennoch die Routen zu den externen Netzwerken besitzen, um zu wissen, wie Sie diese erreichen können. Das erste Beispiel zeigt, wie eine statische Standardroute konfiguriert wird, um alle IPv6-Netzwerke über die externe Schnittstelle mit der nächsten Hop-Adresse fd02::1 zu erreichen.
Verwenden Sie diese Informationen, um statisches Routing für IPv6 zu konfigurieren:
ASAv(config)# ipv6 route outside 0::0/0 fd02::1
ASAv(config)# show ipv6 route
IPv6 Routing Table - 7 entries
Codes: C - Connected, L - Local, S - Static
O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, B - BGP
L fd02::2/128 [0/0]
via ::, outside
C fd02::/64 [0/0]
via ::, outside
L fd03::1/128 [0/0]
via ::, inside
C fd03::/64 [0/0]
via ::, inside
L fe80::/10 [0/0]
via ::, inside
via ::, outside
L ff00::/8 [0/0]
via ::, inside
via ::, outside
S ::/0 [1/0]
via fd02::1, outside ASAv(config)#
Wie gezeigt, besteht nun eine Verbindung zu einem Host in einem externen Subnetz:
ASAv(config)# ping fd99::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to fd99::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
ASAv(config)#
Anmerkung: Wenn Sie ein dynamisches Routing-Protokoll benötigen, um das Routing für IPv6 zu verarbeiten, können Sie dies ebenfalls konfigurieren. Dies wird im nächsten Abschnitt beschrieben.
Prüfen Sie zunächst die OSPFv3-Konfiguration (Open Shortest Path First Version 3) auf dem Upstream-Router der Cisco Integrated Services Router (ISR) der Serie 881:
C881#show run | sec ipv6
ipv6 unicast-routing
!--- This enables IPv6 routing in the Cisco IOS®.
.....
ipv6 ospf 1 area 0
address-family ipv6 unicast
passive-interface default
no passive-interface Vlan302
!--- This is the interface to send OSPF Hellos to the ASA.
default-information originate always
!--- Always distribute the default route.
redistribute static
ipv6 route ::/0 FD99::2
!--- Creates a static default route for IPv6 to the internet.
Nachfolgend finden Sie die relevante Schnittstellenkonfiguration:
C881#show run int Vlan302
interface Vlan302
....
ipv6 address FD02::1/64
ipv6 ospf 1 area 0
C881#
Sie können ASA-Paketerfassungen verwenden, um zu überprüfen, ob die OSPF-Hello-Pakete vom ISR an der externen Schnittstelle erkannt werden:
ASAv(config)# show run access-list test_ipv6
access-list test_ipv6 extended permit ip any6 any6
ASAv(config)# show cap
capture capout type raw-data access-list test_ipv6 interface outside
[Capturing - 37976 bytes]
ASAv(config)# show cap capout
367 packets captured
1: 11:12:04.949474 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
neighbor sol: who has fe80::250:56ff:fe9d:34a8 [class 0xe0]
2: 11:12:06.949444 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
neighbor sol: who has fe80::250:56ff:fe9d:34a8 [class 0xe0]
3: 11:12:07.854768 fe80::c671:feff:fe93:b516 > ff02::5: ip-proto-89 40
[hlim 1]
4: 11:12:07.946545 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
neighbor sol: who has fe80::250:56ff:fe9d:34a8 [class 0xe0]
5: 11:12:08.949459 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
neighbor sol: who has fe80::250:56ff:fe9d:34a8 [class 0xe0]
6: 11:12:09.542772 fe80::217:fff:fe17:af80 > ff02::5: ip-proto-89 40
[hlim 1]
....
13: 11:12:16.983011 fe80::c671:feff:fe93:b516 > ff02::5: ip-proto-89 40
[hlim 1]
14: 11:12:18.947170 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
neighbor sol: who has fe80::250:56ff:fe9d:34a8 [class 0xe0]
15: 11:12:19.394831 fe80::217:fff:fe17:af80 > ff02::5: ip-proto-89 40
[hlim 1]
16: 11:12:19.949444 fe80::250:56ff:fe9d:34a8 > ff02::1:ff9d:34a8: icmp6:
21: 11:12:26.107477 fe80::c671:feff:fe93:b516 > ff02::5: ip-proto-89 40
[hlim 1]
ASAv(config)#
Bei der vorherigen Paketerfassung können Sie sehen, dass die OSPF-Pakete (ip-proto-89) von der IPv6 link-local-Adresse eintreffen, die der richtigen Schnittstelle auf dem ISR entspricht:
C881#show ipv6 interface brief
......
Vlan302 [up/up]
FE80::C671:FEFF:FE93:B516
FD02::1
C881#
Sie können jetzt einen OSPFv3-Prozess auf der ASA erstellen, um eine Adjacency mit dem ISR herzustellen:
ASAv(config)# ipv6 router ospf 1
ASAv(config-rtr)# passive-interface default
ASAv(config-rtr)# no passive-interface outside
ASAv(config-rtr)# log-adjacency-changes
ASAv(config-rtr)# redistribute connected
ASAv(config-rtr)# exit
Wenden Sie die OSPF-Konfiguration auf die externe ASA-Schnittstelle an:
ASAv(config)# interface GigabitEthernet0/1
ASAv(config-if)# ipv6 ospf 1 area 0
ASAv(config-if)# end
Dies kann dazu führen, dass die ASA die Broadcast-OSPF-Hello-Pakete im IPv6-Subnetz sendet. Geben Sie den Befehl show ipv6 ospf neighbor ein, um die Adjacency zum Router zu überprüfen:
ASAv# show ipv6 ospf neighbor
Neighbor ID Pri State Dead Time Interface ID Interface
14.38.104.1 1 FULL/BDR 0:00:33 14 outside
Sie können auch die Nachbar-ID auf dem ISR bestätigen, da dieser standardmäßig die am höchsten konfigurierte IPv4-Adresse für die ID verwendet:
C881#show ipv6 ospf 1
Routing Process "ospfv3 1" with ID 14.38.104.1
Supports NSSA (compatible with RFC 3101)
Event-log enabled, Maximum number of events: 1000, Mode: cyclic
It is an autonomous system boundary router
Redistributing External Routes from,
static
Originate Default Route with always
!--- Notice the other OSPF settings that were configured.
Router is not originating router-LSAs with maximum metric
....
C881#
Die ASA muss nun die Standard-IPv6-Route vom ISR erhalten haben. Um dies zu bestätigen, geben Sie den Befehl show ipv6 route ein:
ASAv# show ipv6 route
IPv6 Routing Table - 8 entries
Codes: C - Connected, L - Local, S - Static
O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, B - BGP
O 2001:aaaa:aaaa:aaaa::/64 [110/10]
via ::, outside
L fd02::2/128 [0/0]
via ::, outside
C fd02::/64 [0/0]
via ::, outside
L fd03::1/128 [0/0]
via ::, inside
C fd03::/64 [0/0]
via ::, inside
L fe80::/10 [0/0]
via ::, inside
via ::, outside
L ff00::/8 [0/0]
via ::, inside
via ::, outside
OE2 ::/0 [110/1], tag 1
!--- Here is the learned default route.
via fe80::c671:feff:fe93:b516, outside
ASAv#
Die grundlegende Konfiguration der Schnittstelleneinstellungen und Routing-Funktionen für IPv6 auf dem ASA-Gerät ist jetzt abgeschlossen.
Für diese Konfiguration ist derzeit kein Überprüfungsverfahren verfügbar.
Bei der Fehlerbehebung für IPv6-Verbindungen wird größtenteils die gleiche Methode verwendet wie bei IPv4-Verbindungen, wobei jedoch einige Unterschiede bestehen. Im Hinblick auf die Fehlerbehebung besteht einer der wichtigsten Unterschiede zwischen IPv4 und IPv6 darin, dass das Address Resolution Protocol (ARP) in IPv6 nicht mehr vorhanden ist. Anstelle von ARP zur Auflösung von IP-Adressen im lokalen LAN-Segment verwendet IPv6 das Protokoll Neighbor Discovery (ND).
Es ist auch wichtig zu verstehen, dass ND Internet Control Message Protocol Version 6 (ICMPv6) für die MAC-Adressauflösung nutzt. Weitere Informationen zu IPv6 ND finden Sie im ASA IPv6-Konfigurationsleitfaden im Abschnitt IPv6 Neighbor Discovery des CLI Book 1: Cisco ASA Series General Operations CLI Configuration Guide, 9.4 oder in RFC 4861.
Derzeit umfassen die meisten IPv6-bezogenen Fehlerbehebungen Probleme mit ND, Routing oder der Subnetzkonfiguration. Dies ist wahrscheinlich darauf zurückzuführen, dass dies auch die Hauptunterschiede zwischen IPv4 und IPv6 sind. Das ND funktioniert anders als ARP, und die interne Netzwerkadressierung ist ebenfalls ganz anders, da bei IPv6 von der Verwendung von NAT stark abgeraten wird und die private Adressierung nicht mehr so genutzt wird wie bei IPv4 (nach RFC 1918). Wenn diese Unterschiede erkannt und/oder die L2/L3-Probleme behoben sind, entspricht der Fehlerbehebungsprozess auf Layer 4 (L4) und höher im Wesentlichen dem für IPv4 verwendeten, da die TCP/UDP- und die Protokolle höherer Layer im Wesentlichen gleich funktionieren (unabhängig von der verwendeten IP-Version).
Der einfachste Befehl, der zur Fehlerbehebung bei L2-Verbindungen mit IPv6 verwendet wird, ist der Befehl show ipv6 neighbor [nameif]. Dieser entspricht dem Befehl show arp für IPv4.
Hier ein Beispiel:
ASAv(config)# show ipv6 neighbor outside
IPv6 Address Age Link-layer Addr State Interface
fd02::1 0 c471.fe93.b516 REACH outside
fe80::c671:feff:fe93:b516 32 c471.fe93.b516 DELAY outside
fe80::e25f:b9ff:fe3f:1bbf 101 e05f.b93f.1bbf STALE outside
fe80::b2aa:77ff:fe7c:8412 101 b0aa.777c.8412 STALE outside
fe80::213:c4ff:fe80:5f53 101 0013.c480.5f53 STALE outside
fe80::a64c:11ff:fe2a:60f4 101 a44c.112a.60f4 STALE outside
fe80::217:fff:fe17:af80 99 0017.0f17.af80 STALE outside
ASAv(config)#
In dieser Ausgabe sehen Sie die erfolgreiche Auflösung für die IPv6-Adresse von fd02::1, die zu dem Gerät mit der MAC-Adresse c471.fe93.b516 gehört.
Anmerkung: Möglicherweise stellen Sie fest, dass dieselbe MAC-Adresse für die Router-Schnittstelle in der vorherigen Ausgabe zweimal angezeigt wird, da der Router auch über eine selbst zugewiesene Link-Local-Adresse für diese Schnittstelle verfügt. Die Link-Local-Adresse ist eine gerätespezifische Adresse, die nur für die Kommunikation im direkt verbundenen Netzwerk verwendet werden kann. Router leiten Pakete nicht über Link-Local-Adressen weiter, sondern dienen lediglich der Kommunikation auf dem direkt verbundenen Netzwerksegment. Viele IPv6-Routing-Protokolle (z. B. OSPFv3) verwenden Link-Local-Adressen, um Routing-Protokollinformationen auf dem L2-Segment auszutauschen.
Um den ND-Cache zu löschen, geben Sie den Befehl clear ipv6 neighbors ein. Wenn das ND für einen bestimmten Host fehlschlägt, können Sie den Befehl debug ipv6 nd eingeben, die Paketerfassung durchführen und die Syslogs überprüfen, um zu bestimmen, was auf L2-Ebene geschieht. Denken Sie daran, dass IPv6 ND ICMPv6-Nachrichten verwendet, um die MAC-Adressen für IPv6-Adressen aufzulösen.
Betrachten Sie die Vergleichstabelle von ARP für IPv4 und ND für IPv6:
| IPv4-ARP | IPv6 ND |
|---|---|
| ARP REQUEST (Wer hat 10.10.10.1?) | Nachbar-Ausschreibung |
| ARP REPLY (10.10.10.1 ist bei dead.dead.dead) | Nachbarwerbung |
Im nächsten Szenario kann das ND die MAC-Adresse des fd02::1-Hosts, der sich an der externen Schnittstelle befindet, nicht auflösen.
Hier ist die Ausgabe des Befehls debug ipv6 nd:
ICMPv6-ND: Sending NS for fd02::1 on outside
!--- "Who has fd02::1"
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: INCMP deleted: fd02::1
ICMPv6-ND: INCMP -> DELETE: fd02::1
ICMPv6-ND: DELETE -> INCMP: fd02::1
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: Sending NA for fd02::2 on outside
!--- "fd02::2 is at dead.dead.dead"
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: INCMP deleted: fd02::1
ICMPv6-ND: INCMP -> DELETE: fd02::1
ICMPv6-ND: DELETE -> INCMP: fd02::1
!--- Here is where the ND times out.
ICMPv6-ND: Sending NS for fd02::1 on outside
ICMPv6-ND: Sending NS for fd02::1 on outside
In dieser Debug-Ausgabe scheint es, dass die Neighbor Advertisements von fd02::2 nie empfangen werden. Sie können die Paketerfassungen überprüfen, um festzustellen, ob dies tatsächlich der Fall ist.
Anmerkung: Seit ASA Version 9.4(1) sind Zugriffslisten für die IPv6-Paketerfassung weiterhin erforderlich. Es wurde eine Erweiterungsanfrage eingereicht, um dies mit der Cisco Bug-ID CSCtn09836 nachzuverfolgen.
Konfigurieren Sie die Zugriffskontrollliste (ACL) und die Paketerfassung:
ASAv(config)# access-list test_ipv6 extended permit ip any6 any6
ASAv(config)# cap capout interface outside access-list test_ipv6
Initiieren Sie einen Ping an fd02::1 von der ASA:
ASAv(config)# show cap capout
....
23: 10:55:10.275284 fd02::2 > ff02::1:ff00:1: icmp6: neighbor sol: who has
fd02::1 [class 0xe0]
24: 10:55:10.277588 fd02::1 > fd02::2: icmp6: neighbor adv: tgt is fd02::1
[class 0xe0]
26: 10:55:11.287735 fd02::2 > ff02::1:ff00:1: icmp6: neighbor sol: who has
fd02::1 [class 0xe0]
27: 10:55:11.289642 fd02::1 > fd02::2: icmp6: neighbor adv: tgt is fd02::1
[class 0xe0]
28: 10:55:12.293365 fd02::2 > ff02::1:ff00:1: icmp6: neighbor sol: who has
fd02::1 [class 0xe0]
29: 10:55:12.298538 fd02::1 > fd02::2: icmp6: neighbor adv: tgt is fd02::1
[class 0xe0]
32: 10:55:14.283341 fd02::2 > ff02::1:ff00:1: icmp6: neighbor sol: who has
fd02::1 [class 0xe0]
33: 10:55:14.285690 fd02::1 > fd02::2: icmp6: neighbor adv: tgt is fd02::1
[class 0xe0]
35: 10:55:15.287872 fd02::2 > ff02::1:ff00:1: icmp6: neighbor sol: who has
fd02::1 [class 0xe0]
36: 10:55:15.289825 fd02::1 > fd02::2: icmp6: neighbor adv: tgt is fd02::1
[class 0xe0]
Wie in den Paketerfassungen gezeigt, werden die Nachbarankündigungen von fd02::1 empfangen. Die Meldungen werden jedoch aus irgendeinem Grund nicht verarbeitet, wie in den Debug-Ausgaben dargestellt. Für weitere Untersuchungen können Sie die Syslogs anzeigen.
Hier einige Beispiele für ND-Syslogs:
May 13 2015 10:55:10: %ASA-7-609001: Built local-host identity:fd02::2
May 13 2015 10:55:10: %ASA-6-302020: Built outbound ICMP connection for faddr
ff02::1:ff00:1/0 gaddr fd02::2/0 laddr fd02::2/0(any)
May 13 2015 10:55:10: %ASA-3-325003: EUI-64 source address check failed. Dropped
packet from outside:fd02::1/0 to fd02::2/0 with source MAC address c471.fe93.b516.
May 13 2015 10:55:10: %ASA-3-313008: Denied IPv6-ICMP type=136, code=0 from fd02::1
on interface outside
May 13 2015 10:55:11: %ASA-3-325003: EUI-64 source address check failed. Dropped
packet from outside:fd02::1/0 to fd02::2/0 with source MAC address c471.fe93.b516.
May 13 2015 10:55:11: %ASA-3-313008: Denied IPv6-ICMP type=136, code=0 from fd02::1
on interface outside
May 13 2015 10:55:12: %ASA-3-325003: EUI-64 source address check failed. Dropped
packet from outside:fd02::1/0 to fd02::2/0 with source MAC address c471.fe93.b516.
May 13 2015 10:55:12: %ASA-3-313008: Denied IPv6-ICMP type=136, code=0 from fd02::1
on interface outside
May 13 2015 10:55:14: %ASA-3-325003: EUI-64 source address check failed. Dropped
packet from outside:fd02::1/0 to fd02::2/0 with source MAC address c471.fe93.b516.
May 13 2015 10:55:14: %ASA-3-313008: Denied IPv6-ICMP type=136, code=0 from fd02::1
on interface outside
May 13 2015 10:55:15: %ASA-3-325003: EUI-64 source address check failed. Dropped
packet from outside:fd02::1/0 to fd02::2/0 with source MAC address c471.fe93.b516.
May 13 2015 10:55:15: %ASA-3-313008: Denied IPv6-ICMP type=136, code=0 from fd02::1
on interface outside
In diesen Syslogs können Sie sehen, dass die ND Neighbor Advertisement-Pakete vom ISR bei fd02::1 aufgrund fehlgeschlagener Formatprüfungen für den Modified Extended Unique Identifier (EUI) 64 (Modified EUI-64) verworfen wurden.
Tipp: Weitere Informationen zu diesem spezifischen Problem finden Sie im Abschnitt Modified EUI-64 Address Encoding in diesem Dokument. Diese Fehlerbehebungslogik kann auch auf alle möglichen Ursachen angewendet werden, z. B. wenn die ACLs ICMPv6 auf einer bestimmten Schnittstelle nicht zulassen oder wenn Unicast Reverse Path Forwarding (uRPF)-Überprüfungsfehler auftreten, die beide L2-Verbindungsprobleme mit IPv6 verursachen können.
Die Fehlerbehebungsverfahren für Routing-Protokolle bei Verwendung von IPv6 entsprechen im Wesentlichen denen bei Verwendung von IPv4. Die Verwendung von Debug- und Show-Befehlen sowie von Paketerfassungen ist nützlich, wenn versucht werden soll, den Grund dafür zu ermitteln, dass sich ein Routing-Protokoll nicht wie erwartet verhält.
In diesem Abschnitt werden die nützlichen Debugbefehle für IPv6 bereitgestellt.
Globale IPv6-Routing-Debugs
Sie können den Debug-Debugger für IPv6-Routing verwenden, um alle Änderungen der IPv6-Routing-Tabelle zu beheben:
ASAv# clear ipv6 ospf 1 proc
Reset OSPF process? [no]: yes
ASAv# IPv6RT0: ospfv3 1, Route update to STANDBY with epoch: 2 for
2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ospfv3 1, Delete 2001:aaaa:aaaa:aaaa::/64 from table
IPv6RT0: ospfv3 1, Delete backup for fd02::/64
IPv6RT0: ospfv3 1, Route update to STANDBY with epoch: 2 for ::/0
IPv6RT0: ospfv3 1, Delete ::/0 from table
IPv6RT0: ospfv3 1, ipv6_route_add_core for 2001:aaaa:aaaa:aaaa::/64 [110/10],
next-hop :: nh_source :: via interface outside route-type 2
IPv6RT0: ospfv3 1, Add 2001:aaaa:aaaa:aaaa::/64 to table
IPv6RT0: ospfv3 1, Added next-hop :: over outside for 2001:aaaa:aaaa:aaaa::/64,
[110/10]
IPv6RT0: ospfv3 1, ipv6_route_add_core Route update to STANDBY with epoch: 2 for
2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ipv6_route_add_core: input add 2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ipv6_route_add_core: output add 2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ospfv3 1, ipv6_route_add_core for fd02::/64 [110/10], next-hop ::
nh_source :: via interface outside route-type 2
IPv6RT0: ospfv3 1, ipv6_route_add_core for ::/0 [110/1], next-hop
fe80::c671:feff:fe93:b516
nh_source fe80::c671:feff:fe93:b516 via interface outside route-type 16
IPv6RT0: ospfv3 1, Add ::/0 to table
IPv6RT0: ospfv3 1, Added next-hop fe80::c671:feff:fe93:b516 over outside for ::/0,
[110/1]
IPv6RT0: ospfv3 1, ipv6_route_add_core Route update to STANDBY with epoch: 2 for ::/0
IPv6RT0: ipv6_route_add_core: input add ::/0
IPv6RT0: ipv6_route_add_core: output add ::/0
IPv6RT0: ospfv3 1, ipv6_route_add_core for 2001:aaaa:aaaa:aaaa::/64 [110/10],
next-hop :: nh_source :: via interface outside route-type 2
IPv6RT0: ospfv3 1, Route add 2001:aaaa:aaaa:aaaa::/64 [owner]
IPv6RT0: ospfv3 1, ipv6_route_add_core Route update to STANDBY with epoch: 2 for
2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ipv6_route_add_core: input add 2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ipv6_route_add_core: output add 2001:aaaa:aaaa:aaaa::/64
IPv6RT0: ospfv3 1, ipv6_route_add_core for fd02::/64 [110/10], next-hop ::
nh_source :: via interface outside route-type 2
IPv6RT0: ospfv3 1, Reuse backup for fd02::/64, distance 110
IPv6RT0: ospfv3 1, ipv6_route_add_core for ::/0 [110/1], next-hop
fe80::c671:feff:fe93:b516 nh_source fe80::c671:feff:fe93:b516 via interface outside
route-type 16
IPv6RT0: ospfv3 1, Route add ::/0 [owner]
IPv6RT0: ospfv3 1, ipv6_route_add_core Route update to STANDBY with epoch: 2 for ::/0
IPv6RT0: ipv6_route_add_core: input add ::/0
IPv6RT0: ipv6_route_add_core: output add ::/0
OSPFv3-Debugs
Sie können den Befehl debug ipv6 ospf verwenden, um OSPFv3-Probleme zu beheben:
ASAv# debug ipv6 ospf ?
adj OSPF adjacency events
database-timer OSPF database timer
events OSPF events
flood OSPF flooding
graceful-restart OSPF Graceful Restart processing
hello OSPF hello events
ipsec OSPF ipsec events
lsa-generation OSPF lsa generation
lsdb OSPF database modifications
packet OSPF packets
retransmission OSPF retransmission events
spf OSPF spf
Nachfolgend finden Sie ein Beispiel für alle Debugging-Vorgänge, die nach dem Neustart des OSPFv3-Prozesses aktiviert werden:
ASAv# clear ipv6 ospf 1
OSPFv3: rcv. v:3 t:1 l:44 rid:192.168.128.115
aid:0.0.0.0 chk:a9ac inst:0 from outside
OSPFv3: Rcv hello from 192.168.128.115 area 0 from outside fe80::217:fff:fe17:af80
interface ID 142
OSPFv3: End of hello processingpr
OSPFv3: rcv. v:3 t:1 l:44 rid:14.38.104.1
aid:0.0.0.0 chk:bbf3 inst:0 from outside
OSPFv3: Rcv hello from 14.38.104.1 area 0 from outside fe80::c671:feff:fe93:b516
interface ID 14
OSPFv3: End of hello processingo
ASAv# clear ipv6 ospf 1 process
Reset OSPF process? [no]: yes
ASAv#
OSPFv3: Flushing External Links
Insert LSA 0 adv_rtr 172.16.118.1, type 0x4005 in maxage
OSPFv3: Add Type 0x4005 LSA ID 0.0.0.0 Adv rtr 172.16.118.1 Seq 80000029 to outside
14.38.104.1 retransmission list
....
!--- The neighbor goes down:
OSPFv3: Neighbor change Event on interface outside
OSPFv3: DR/BDR election on outside
OSPFv3: Elect BDR 14.38.104.1
OSPFv3: Elect DR 192.168.128.115
OSPFv3: Schedule Router LSA area: 0, flag: Change
OSPFv3: Schedule Router LSA area: 0, flag: Change
OSPFv3: Schedule Prefix DR LSA intf outside
OSPFv3: Schedule Prefix Stub LSA area 0
OSPFv3: 14.38.104.1 address fe80::c671:feff:fe93:b516 on outside is dead, state DOWN
....
!--- The neighbor resumes the exchange:
OSPFv3: Rcv DBD from 14.38.104.1 on outside seq 0xd09 opt 0x0013 flag 0x7 len 28
mtu 1500 state EXSTART
OSPFv3: First DBD and we are not SLAVE
OSPFv3: rcv. v:3 t:2 l:168 rid:14.38.104.1
aid:0.0.0.0 chk:5aa3 inst:0 from outside
OSPFv3: Rcv DBD from 14.38.104.1 on outside seq 0x914 opt 0x0013 flag 0x2 len 168
mtu 1500 state EXSTART
OSPFv3: NBR Negotiation Done. We are the MASTER
OSPFv3: outside Nbr 14.38.104.1: Summary list built, size 0
OSPFv3: Send DBD to 14.38.104.1 on outside seq 0x915 opt 0x0013 flag 0x1 len 28
OSPFv3: rcv. v:3 t:2 l:28 rid:192.168.128.115
aid:0.0.0.0 chk:295c inst:0 from outside
OSPFv3: Rcv DBD from 192.168.128.115 on outside seq 0xfeb opt 0x0013 flag 0x7 len 28
mtu 1500 state EXSTART
OSPFv3: NBR Negotiation Done. We are the SLAVE
OSPFv3: outside Nbr 192.168.128.115: Summary list built, size 0
OSPFv3: Send DBD to 192.168.128.115 on outside seq 0xfeb opt 0x0013 flag 0x0 len 28
OSPFv3: rcv. v:3 t:2 l:28 rid:14.38.104.1
aid:0.0.0.0 chk:8d74 inst:0 from outside
OSPFv3: Rcv DBD from 14.38.104.1 on outside seq 0x915 opt 0x0013 flag 0x0 len 28
mtu 1500 state EXCHANGE
....
!--- The routing is re-added to the OSPFv3 neighbor list:
OSPFv3: Add Router 14.38.104.1 via fe80::c671:feff:fe93:b516, metric: 10
Router LSA 14.38.104.1/0, 1 links
Link 0, int 14, nbr 192.168.128.115, nbr int 142, type 2, cost 1
Ignore newdist 11 olddist 10
EIGRP (Enhanced Interior Gateway Routing Protocol)
Das EIGRP auf der ASA unterstützt die Verwendung von IPv6 nicht. Weitere Informationen finden Sie im Abschnitt Guidelines for EIGRP im CLI Book 1: Cisco ASA Series General Operations CLI Configuration Guide, 9.4 für weitere Informationen.
Border Gateway Protocol (BGP)
Dieser Debug-Befehl kann bei Verwendung von IPv6 zur Fehlerbehebung für BGP verwendet werden:
ASAv# debug ip bgp ipv6 unicast ?
X:X:X:X::X IPv6 BGP neighbor address
keepalives BGP keepalives
updates BGP updates
<cr>
Sie können die folgenden show-Befehle verwenden, um IPv6-Probleme zu beheben:
Sie können die integrierte Paket-Tracer-Funktion mit IPv6 auf der ASA auf die gleiche Weise wie mit IPv4 verwenden. Hier ist ein Beispiel, wo die Paket-Tracer-Funktion verwendet wird, um den internen Host bei fd03::2 zu simulieren, der versucht, eine Verbindung zu einem Webserver mit 5555::1 herzustellen, der sich im Internet mit der Standardeinstellung befindet Route, die von der 881-Schnittstelle über OSPF abgefragt wird:
ASAv# packet-tracer input inside tcp fd03::2 10000 5555::1 80 detailed
Phase: 1
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
Forward Flow based lookup yields rule:
in id=0x7fffd59ca0f0, priority=1, domain=permit, deny=false
hits=2734, user_data=0x0, cs_id=0x0, l3_type=0xdd86
src mac=0000.0000.0000, mask=0000.0000.0000
dst mac=0000.0000.0000, mask=0100.0000.0000
input_ifc=inside, output_ifc=any
Phase: 2
Type: ROUTE-LOOKUP
Subtype: Resolve Egress Interface
Result: ALLOW
Config:
Additional Information:
found next-hop fe80::c671:feff:fe93:b516 using egress ifc outside
Phase: 3
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Forward Flow based lookup yields rule:
in id=0x7fffd589cc30, priority=1, domain=nat-per-session, deny=true
hits=1166, user_data=0x0, cs_id=0x0, reverse, use_real_addr, flags=0x0,
protocol=6
src ip/id=::/0, port=0, tag=any
dst ip/id=::/0, port=0, tag=any
input_ifc=any, output_ifc=any
<<truncated output>>
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
ASAv#
Beachten Sie, dass die Ausgangs-MAC-Adresse die Link-Local-Adresse der 881-Schnittstelle ist. Wie bereits erwähnt, verwenden Router bei vielen dynamischen Routing-Protokollen verbindungslokale IPv6-Adressen, um Nachbarschaften herzustellen.
Nachfolgend finden Sie die verfügbaren Debugging-Methoden zur Behebung von IPv6-Problemen:
ASAv# debug ipv6 ?
dhcp IPv6 generic dhcp protocol debugging
dhcprelay IPv6 dhcp relay debugging
icmp ICMPv6 debugging
interface IPv6 interface debugging
mld IPv6 Multicast Listener Discovery debugging
nd IPv6 Neighbor Discovery debugging
ospf OSPF information
packet IPv6 packet debugging
routing IPv6 routing table debugging
In diesem Abschnitt wird beschrieben, wie Sie die häufigsten Probleme im Zusammenhang mit IPv6 beheben.
Viele IPv6 TAC Fälle werden aufgrund eines allgemeinen Mangels an Wissen über die Funktionsweise von IPv6 oder aufgrund von Versuchen des Administrators generiert, IPv6 mithilfe von IPv4-spezifischen Prozessen zu implementieren.
Das TAC hat beispielsweise Fälle beobachtet, in denen einem Administrator von einem Internet Service Provider (ISP) ein Block \56 mit IPv6-Adressen zugewiesen wurde. Der Administrator weist dann der externen ASA-Schnittstelle eine Adresse und das vollständige Subnetz \56 zu und wählt einen internen Bereich für die internen Server aus. Bei IPv6 müssen jedoch alle internen Hosts auch routingfähige IPv6-Adressen verwenden, und der IPv6-Adressblock muss bei Bedarf in kleinere Subnetze aufgeteilt werden. In diesem Szenario können Sie viele \64-Subnetze als Teil des zugewiesenen \56-Blocks erstellen.
Tipp: Weitere Informationen finden Sie unter RFC 4291.
Die ASA kann so konfiguriert werden, dass geänderte EUI-64-kodierte IPv6-Adressen erforderlich sind. Die EUI gemäß RFC 4291 ermöglicht es Hosts, sich eine eindeutige 64-Bit-IPv6-Schnittstellenkennung (EUI-64) zuzuweisen. Diese Funktion ist im Vergleich zu IPv4 vorteilhaft, da DHCP nicht mehr für die IPv6-Adresszuweisung verwendet werden muss.
Wenn die ASA so konfiguriert ist, dass diese Erweiterung über den Befehl ipv6 enforcement-eui64 nameif erforderlich wird, werden wahrscheinlich viele Neighbor Discovery-Anfragen und -Anzeigen von anderen Hosts im lokalen Subnetz verworfen.
Tipp: Weitere Informationen finden Sie im Dokument Understanding IPv6 EUI-64 Bit Address Cisco Support Community.
Viele Client-Betriebssysteme (OS), wie z. B. Microsoft Windows 7 und 8, Macintosh OS-X und Linux-basierte Systeme, verwenden standardmäßig selbst zugewiesene temporäre IPv6-Adressen für erweiterten Datenschutz über IPv6 Stateless Address Autoconfiguration (SLAAC).
Das Cisco TAC hat in einigen Fällen unerwartete Probleme in Umgebungen verursacht, da die Hosts Datenverkehr von der temporären Adresse generieren und nicht von der statisch zugewiesenen Adresse. Infolgedessen können die ACLs und die hostbasierten Routen dazu führen, dass der Datenverkehr entweder verworfen oder nicht ordnungsgemäß geroutet wird, was zu einem Fehler bei der Hostkommunikation führt.
Es gibt zwei Methoden, die verwendet werden, um diese Situation anzugehen. Das Verhalten kann auf den Client-Systemen einzeln deaktiviert werden, oder Sie können dieses Verhalten auf den ASA- und Cisco IOS-Routern deaktivieren. Auf Seiten der ASA oder des Routers müssen Sie die Warnmeldung für Router Advertisement (RA) ändern, die dieses Verhalten auslöst.
Lesen Sie die nächsten Abschnitte, um dieses Verhalten auf einzelnen Client-Systemen zu deaktivieren.
Microsoft Windows
Führen Sie die folgenden Schritte aus, um dieses Verhalten auf Microsoft Windows-Systemen zu deaktivieren:
netsh interface ipv6 set global randomizeidentifiers=disabled
netsh interface ipv6 set privacy state=disabled
sudo sysctl -w net.inet6.ip6.use_tempaddr=0
sudo sh -c 'echo net.inet6.ip6.use_tempaddr=0 >> /etc/sysctl.conf'
sysctl -w net.ipv6.conf.all.use_tempaddr=0
ASAv(config)# interface gigabitEthernet 1/1
ASAv(config-if)# ipv6 nd prefix 2001::db8/32 300 300 no-autoconfig
Tipp: Weitere Informationen finden Sie unter RFC 4941.
In diesem Abschnitt werden einige häufig gestellte Fragen zur Verwendung von IPv6 beschrieben.
Ja. Sie müssen einfach IPv6 auf der Schnittstelle aktivieren und der Schnittstelle eine IPv4- und eine IPv6-Adresse zuweisen. Beide Datenverkehrstypen werden gleichzeitig verarbeitet.
Dies ist in ASA-Versionen vor Version 9.0(1) möglich. Ab ASA Version 9.0(1) sind alle ACLs auf der ASA einheitlich, d. h., eine ACL unterstützt eine Kombination aus IPv4- und IPv6-Einträgen in derselben ACL.
In ASA Version 9.0(1) und höheren Versionen werden die ACLs einfach zusammengeführt, und die einzelne, einheitliche ACL wird über den Befehl access-group auf die Schnittstelle angewendet.
Ja. Die ASA unterstützt das Festlegen von Richtlinien und das Prioritätswarteschlangen für IPv6 auf die gleiche Weise wie für IPv4.
Ab ASA Version 9.0(1) sind alle ACLs auf der ASA einheitlich, d. h., eine ACL unterstützt eine Kombination aus IPv4- und IPv6-Einträgen in derselben ACL. Daher werden alle QoS-Befehle, die in einer Klassenzuordnung, die einer ACL entspricht, umgesetzt werden, sowohl für den IPv4- als auch den IPv6-Verkehr aktiv.
Obwohl NAT auf der ASA für IPv6 konfiguriert werden kann, wird von der Verwendung von NAT in IPv6 dringend abgeraten und ist angesichts der nahezu unbegrenzten Anzahl verfügbarer, global routbarer IPv6-Adressen nicht erforderlich.
Wenn NAT in einem IPv6-Szenario erforderlich ist, finden Sie weitere Informationen zur Konfiguration im Abschnitt IPv6 NAT Guidelines des CLI Book 2: Konfigurationsleitfaden für die Firewall-CLI der Cisco ASA-Serie, 9.4.
Anmerkung: Es gibt einige Richtlinien und Einschränkungen, die bei der Implementierung von NAT mit IPv6 berücksichtigt werden können.
Dies hängt von der Softwareversion ab.
Wenn für eine Schnittstelle auf der ASA eine IPv6-Adresse konfiguriert ist und diese betriebsbereit ist, fordert die ASA bei allen Versionen ohne CSCup8922 eine IPv6-Adresse an, wenn eine Anfrage bei einem DNS-Server eingeht. Wenn keine IPv6-Adresse zurückgegeben wird oder die Adresse gemäß der Routing-Tabelle der ASA nicht erreichbar ist, wird eine IPv4-Adresse angefordert (die Erreichbarkeitsprüfung wurde in CSCuu02761 hinzugefügt).
In neueren Versionen kann der Abfragetyp explizit pro FQDN konfiguriert werden. Beispiel:
object network <fqdn> fqdn v4 <fqdn>
<fqdn> ist der vollqualifizierte Domänenname. Beachten Sie, dass dies genau im Namen des Objekts und der FQDN selbst übereinstimmen muss. Wenn 'v6' für den fqdn-Adresstyp angegeben ist oder kein solches Objekt vorhanden ist, wird das ursprüngliche Verhalten beibehalten. Wenn "v4" angegeben ist, fordert die ASA die IPv4-Adresse vom DNS-Server an und verwendet die IPv4-Adresse nur, wenn die IPv6-Adresse bereits im DNS-Cache vorhanden ist (wenn z. B. zuvor kein solches Netzwerkobjekt vorhanden war und die ASA die DNS-Anforderung und die zwischengespeicherte IPv6-Adresse vom DNS-Server zurückgegeben hat).
Dies ist eine wichtige Verbesserung für Benutzer, die Botnet Traffic Filtering oder Smart CallHome auf ASA verwenden, da die Websites "updates.ironport.com", "update-manifests.ironport.com" und "tools.cisco.com" von der Kunden-ASA möglicherweise nicht per IPv6 erreichbar sind. Konfigurationsbeispiel:
object network update-manifests.ironport.com
fqdn v4 update-manifests.ironport.com
object network updates.ironport.com
fqdn v4 updates.ironport.com
Bei IPv6 verwendet ND Link-Local-Adressen, um die L2-Adressauflösung durchzuführen. Aus diesem Grund zeigen die IPv6-Adressen für die überwachten Schnittstellen in der Ausgabe des Befehls show failover die Link-Local-Adresse und nicht die globale IPv6-Adresse an, die auf der Schnittstelle konfiguriert ist. Dies ist ein erwartungsgemäßes Verhalten.
Es folgen einige bekannte Vorbehalte in Bezug auf die Verwendung von IPv6:
| Überarbeitung | Veröffentlichungsdatum | Kommentare |
|---|---|---|
1.0 |
29-Jun-2015
|
Erstveröffentlichung |
Feedback