Cisco ASA und IPv6 - Routing VLAN zu outside
Hallo zusammen!
Ich versuche gerade IPv6 über eine Cisco ASA 5506 zum Laufen zu bekommen, aber leider will das nicht so, wie ich will.
Die Firmware der ASA ist die 9.9.(2)25.
Folgendes Szenario: meine IPv4-Adressen werden knapp. Der IPv4-Adressbereich ist auf outside konfiguriert, funktioniert alles, wie gewünscht.
Zusätzlich habe ich nun den mir vom Provider zugewiesenen /56-IPv6-Adressbereich ebenfalls auf outside konfiguriert.
x:x:x:1000::1/64 ist das mir zugeordnete Gateway. Dieses ist in der Defaultroute für alle IPv6-Adressen(any6 bzw. ::/0) auf der ASA konfiguriert.
x:x:x:1000::2/64 ist die IP, welche mein outside-Interface zusätzlich zu seiner IPv4-Adresse bekommen hat. ipv6 enable ist ebenso auf dem Interface konfiguriert.
Zwischenstand: Ping direkt von der ASA aus auf z.B. ipv6.google.com funktioniert.
Dann habe ich ein VLAN zum Testen. An dem VLAN hängt eine Windows 10 VM.
x:x:x:1001::1/64 ist die IP des VLAN-Interfaces. ipv6 enable ist auch konfiguriert.
x:x:x:1001::2/64 ist die IP der Windows 10 VM.
Das Problem(jeweils mit ping, links ist jeweils die Quelle):
x:x:x:1001::2/64(W10 VM) -> x:x:x:1001::1/64 (VIF): erfolgreich
x:x:x:1001::2/64(W10 VM) -> x:x:x:1000::2/64 (outside): nicht erfolgreich
x:x:x:1001::2/64(W10 VM) -> x:x:x:1000::1/64(Gateway): nicht erfolgreich
x:x:x:1000::2/64(outside) -> x:x:x:1000::1/64 (Gateway): erfolgreich
x:x:x:1000::2/64(outside) -> x:x:x:1001::1/64 (VIF): erfolgreich
x:x:x:1000::2/64(outside) -> x:x:x:1001::2/64 (W10 VM): erfolgreich
x:x:x:1001::1/64(VIF) -> x:x:x:1000::2/64(outside): erfolgreich
x:x:x:1001::1/64(VIF) -> x:x:x:1000::1/64(Gateway): nicht erfolgreich
Zusammengefasst: es sieht einfach so aus, als würde die Route fehlen. Aber z.B. auch wenn ich x:x:x:1001::/64 direkt über die ASA an x:x:x:1000::1/64 route, ändert sich nichts.
Bloß, fürs Troubleshooting wurde zunächst auf dem outside-Interface und auf dem VLAN-Interface sowohl bei incoming als auch outgoing any6 als Quelle und als Ziel mit icmp6 erlaubt.
Nützt nur alles nichts.
Es funktioniert natürlich nicht nur ICMP nicht, sondern auch alles andere, das versucht, outside über IPv6 zu erreichen.
Diese ganzen Cisco-Leitfäden habe ich durch, auch etliche Forenbeiträge, aber ich komme auf keine Lösung.
Vielleicht hat ja jemand von Euch einen Ansatz parat, wo das Problem liegen könnte? Mir fällt langsam nichts mehr ein
Vielen Dank und viele Grüße
jessiep
Ich versuche gerade IPv6 über eine Cisco ASA 5506 zum Laufen zu bekommen, aber leider will das nicht so, wie ich will.
Die Firmware der ASA ist die 9.9.(2)25.
Folgendes Szenario: meine IPv4-Adressen werden knapp. Der IPv4-Adressbereich ist auf outside konfiguriert, funktioniert alles, wie gewünscht.
Zusätzlich habe ich nun den mir vom Provider zugewiesenen /56-IPv6-Adressbereich ebenfalls auf outside konfiguriert.
x:x:x:1000::1/64 ist das mir zugeordnete Gateway. Dieses ist in der Defaultroute für alle IPv6-Adressen(any6 bzw. ::/0) auf der ASA konfiguriert.
x:x:x:1000::2/64 ist die IP, welche mein outside-Interface zusätzlich zu seiner IPv4-Adresse bekommen hat. ipv6 enable ist ebenso auf dem Interface konfiguriert.
Zwischenstand: Ping direkt von der ASA aus auf z.B. ipv6.google.com funktioniert.
Dann habe ich ein VLAN zum Testen. An dem VLAN hängt eine Windows 10 VM.
x:x:x:1001::1/64 ist die IP des VLAN-Interfaces. ipv6 enable ist auch konfiguriert.
x:x:x:1001::2/64 ist die IP der Windows 10 VM.
Das Problem(jeweils mit ping, links ist jeweils die Quelle):
x:x:x:1001::2/64(W10 VM) -> x:x:x:1001::1/64 (VIF): erfolgreich
x:x:x:1001::2/64(W10 VM) -> x:x:x:1000::2/64 (outside): nicht erfolgreich
x:x:x:1001::2/64(W10 VM) -> x:x:x:1000::1/64(Gateway): nicht erfolgreich
x:x:x:1000::2/64(outside) -> x:x:x:1000::1/64 (Gateway): erfolgreich
x:x:x:1000::2/64(outside) -> x:x:x:1001::1/64 (VIF): erfolgreich
x:x:x:1000::2/64(outside) -> x:x:x:1001::2/64 (W10 VM): erfolgreich
x:x:x:1001::1/64(VIF) -> x:x:x:1000::2/64(outside): erfolgreich
x:x:x:1001::1/64(VIF) -> x:x:x:1000::1/64(Gateway): nicht erfolgreich
Zusammengefasst: es sieht einfach so aus, als würde die Route fehlen. Aber z.B. auch wenn ich x:x:x:1001::/64 direkt über die ASA an x:x:x:1000::1/64 route, ändert sich nichts.
Bloß, fürs Troubleshooting wurde zunächst auf dem outside-Interface und auf dem VLAN-Interface sowohl bei incoming als auch outgoing any6 als Quelle und als Ziel mit icmp6 erlaubt.
Nützt nur alles nichts.
Es funktioniert natürlich nicht nur ICMP nicht, sondern auch alles andere, das versucht, outside über IPv6 zu erreichen.
Diese ganzen Cisco-Leitfäden habe ich durch, auch etliche Forenbeiträge, aber ich komme auf keine Lösung.
Vielleicht hat ja jemand von Euch einen Ansatz parat, wo das Problem liegen könnte? Mir fällt langsam nichts mehr ein
Vielen Dank und viele Grüße
jessiep
Please also mark the comments that contributed to the solution of the article
Content-Key: 398066
Url: https://administrator.de/contentid/398066
Printed on: May 4, 2024 at 08:05 o'clock
15 Comments
Latest comment
den mir vom Provider zugewiesenen /56-IPv6-Adressbereich ebenfalls auf outside konfiguriert.
WIE hast du das gemacht ?Die ASA Konfig hätte allen hier weitergeholfen um ggf. Fehler zu erkennen. Leider hat es dafür nicht gereicht
Normal konfiguriert man das nicht statisch sondern dynamisch sofern du das per Prefix Delegation bekommst. Hast du vermutlich ja auch so gemacht ?!
Über den Prefix Delegation Pool gibst du das Kontingent dann z.B. als /64er Netze an deine internen IPv6 Netze weiter.
Ohne deine Konfig oder den IPv6 Auszug der ASA (show run) können wir aber auch nur im freien Fall raten.
Vielleicht hilft dir als Grundlage wie man es mit einem IOS Router an einem Telekom xDSL Anschluss löst:
Cisco 880, 890 und ISR Router Konfiguration mit xDSL, Kabel oder FTTH Anschluss plus VPN und IP-TV
Das dürfte bei der ASA identisch sein, richtige v6 Firewall Regeln vorausgesetzt !
Funktionierende v6 ASA Konfig Beispiele findest du sonst hier:
https://www.alcatron.net/2016/09/02/configuring-cisco-asa-5506-x-ipv6-wi ...
http://www.it-dienstleistungen.de/ipv6-prefix-delegation-unter-cisco-io ...
usw.
Mir liegt vom Provider nur der Adressbereich und das Gateway vor.
Nur nochmal doof nachgefragt damit es da keine Missverständnisse gibt.D.h. du bekommst vom Provider ein eigenes, festes und statisches IPv6 Subnetz und keine Prefix Delegation ?!
Ist das so richtig ?
Das outside-Interface wurde ganz banal so konfiguriert:
OK, das ipv6 address x:x:x:1000::2/64 ist dann das IPv6 Netz des Providers an dem deinen ASA hängt.Statische default Route ist auch OK.
Was etwas unverständlich ist ist deine Aussage:
auch eine andere IP aus dem x:x:x:1000::2/64 bzw. /56 geben und es klappt immer.
Wieso /64 oder /56 ??Du kannst auf dem WAN Netz ja niemals irgendwelche wilden Subnetzmasken haben !!
Der Betreiber dieses Netzes muss dir doch ganz klar eine Subnetzmaske hier vorgeben. Hier dafst du keinesfalls frei nach Gutsherrenart wählen, das ist klar.
Wenn das WAN Netz in Wahrheit ein /56er ist und du hast deine internen Teilnetze als /64er Subnetze dieses WAN Netzes eingerichtet geht das natürlich in die Hode, das ist klar.
Deine internen v6 Subnetze dürfen natürlich nicht Teilnetze des WAN v6 Netzes sein und die WAN Maske muss fest vorgegeben sein.
OK das sind banale IP Adressierungs Binsenweisheiten die natürlich auch für v6 gelten.
In so fern sind deine Aussagen mit diesen Masken irgendwie verwirrend...?? Es kann nur eine dort geben !
Das solltest du wasserdicht klären !
Deine ACLs sind ja erstmal reine Schrotschuß ACLs für ICMPv6. Also mindestens Pingen sollte dann klappen.
Dafür liegen mir genau zwei Dinge vor: der Adressbereich mit x:x:x:1000::/56 und der Gateway mit x:x:x:1000::1.
Das kann ja so auch nicht gehen !Du brauchst mindestens 3 Dinge und zwar dein festes IPv6 Netz das du ja selber nach deinen Vorstellungen subnetten kannst. Und...
du brauchst ja ein Provider Netz oder Gateway Zugang das NICHT selber Teil deines eigenen Netzes ist.
Der Provider kann dir ja nicht dein eigenes Netz geben und und sein eigenes Gateway in deinem Netzwerk liegen haben. Das kann niemals gehen, weder bei IPv4 noch bei IPv6.
Irgendwas stimmt also grundsätzlich mit den Provider Daten da nicht. Wie sollst du das denn routen ?
Die ASA mag es nicht, wenn auf mehreren Interfaces die gleichen Adressbereich liegen
Nicht nur die ASA !Das verstößt generell gegen den Standard völlig egal ob IPv4 oder IPv6 ! Kein Router oder Firewall kann das bzw. sollte das machen weil eben nicht Standard konform.
Wie sollte damit auch eine saubere Adressierung möglich sein, geht nicht !
Bei IPv4 ist mir die ganze Vorgehensweise und Funktionalität durchaus klar(auch das mit den Subnetzen), aber bei IPv6 stelle ich mich irgendwie an...
Ist da doch völlig identisch !Genau aus dem Grund stimmt mit den Adressdaten deines Providers was nicht.
Klar, du bekommst dein x:x:x:1000::/56 Subnetz. Wo du da übrigens für dich deine Gateways hinlegst ist allein deine Sache.
Das Provider Gateway darf aber logischerweise niemals in deinem eigenen Netzwerk liegen. Wie sollte das gehen ?
ich kapiers grad beim besten Willen einfach nicht.
Da trifft dich auch keine Schuld !Das sind die falschen bzw. fehlerhaften Angaben deines Providers !
OK, dann stellt der Provider dir aber ein System und dem dann dein geroutetes Netz als Port zur Verfügung steht.
Ist das bei deiner ASA dann auch so ?
Dort muss ja zwangsläufig immer ein Port sein wo es ins Provider eigene Netz geht und ein Port wo dein eigenes Netz aufliegt.
Das muss ja so immer vorhanden sein. Ist dem so ?
Ein Port auf einem Router oder Firewall MUSS immer ins Provider Netz gehen und darf natürlich nicht Teil deines Subnetzes sein.
Das muss so bei IPv4 und auch v6 so sein. Ansonsten könntest du dein Subnetz ja niemals durchgehend routen.
Private IP Netze gibt es generell bei IPv6 nicht, denn dort gibt es kein NAT mehr wenn man mal vom Unique local absieht fc00::/7
Die Frage ist also WIE es letztlich bei deiner Provider Anbindung aussieht.
Auf deiner ASA MUSS zwangsläufig ein Port sein der nichts mit deinem eigenen dir zur Verfügung gestellten Netz zu tun hat und dem Provider gehört.
Sonst könntest du das /56er Subnetz ja in Gänze niemals routen.
Ausnahme wäre natürlich das der Provider ein /64er Koppelnetz aus deinem /56er Kontingent dafür vorgesehen hat. Was aber höchst ungewöhnlich wäre.
Nur mit deinem Kontingent kannst du das also niemals richtig routen.
Ist übrigens bei IPv4 ganz genau so !
Ist das bei deiner ASA dann auch so ?
Dort muss ja zwangsläufig immer ein Port sein wo es ins Provider eigene Netz geht und ein Port wo dein eigenes Netz aufliegt.
Das muss ja so immer vorhanden sein. Ist dem so ?
Ein Port auf einem Router oder Firewall MUSS immer ins Provider Netz gehen und darf natürlich nicht Teil deines Subnetzes sein.
Das muss so bei IPv4 und auch v6 so sein. Ansonsten könntest du dein Subnetz ja niemals durchgehend routen.
Private IP Netze gibt es generell bei IPv6 nicht, denn dort gibt es kein NAT mehr wenn man mal vom Unique local absieht fc00::/7
Die Frage ist also WIE es letztlich bei deiner Provider Anbindung aussieht.
Auf deiner ASA MUSS zwangsläufig ein Port sein der nichts mit deinem eigenen dir zur Verfügung gestellten Netz zu tun hat und dem Provider gehört.
Sonst könntest du das /56er Subnetz ja in Gänze niemals routen.
Ausnahme wäre natürlich das der Provider ein /64er Koppelnetz aus deinem /56er Kontingent dafür vorgesehen hat. Was aber höchst ungewöhnlich wäre.
Nur mit deinem Kontingent kannst du das also niemals richtig routen.
Ist übrigens bei IPv4 ganz genau so !
Das outside-Interface hat, wie geschrieben, x:x:x:1000::2
Ja, schon klar, aber x:x:x:1000::2 ist ja eine IP Adresse aus DEINEM Netzwerk Bereich, oder ?Das kann dann nicht gehen !
Wie willst du über einene eigenen gesubnetteten IP Bereich routen ohne an der Routing Tabelle des Providers zu drehen ? Das geht nicht.
Der Provider routet ja dein gesamtes /56er Netz über eines seiner Transport Backbone Netze und genau aus diesem Transport Backbone benötigst du eine externen IP Adresse für deine ASA. Er kann nicht wissen das du deine Netze in weitere /64er gesubnettet hast und genau daran scheiterst du.
Es wird also immer nur für das einzige Netz gehen was direkt angeschlossen ist, denn das ist ja immer Teilsubnetz aber niemals für die weiteren Subnetze.
Genau DAS ist dein Stolperstein !!
Ein Bild sagt mehr als 1000 Worte:
Das Provider Netz wo deine Default Route hinzeigt darf nie Teil deines Netzes (Beispiel hier FDDD:DEAD:BEEF:: /56) sein !
OK, dann sind wir wenigstens konform was die grundsätzliche Adressierung anbetrifft Deine Adress Angaben oben waren sehr irreführend so das der Schluß nahe lag das o.g. Provider Netz beinhaltet Adressen aus deinem dir zugeteilten /56er Subnetz was dann natürlich nicht gehen kann. Aber dann ist das ja geklärt !
Wenn es dennoch nicht geht, dann hast du noch einen Fehler in den ASA Firewall Regeln, das ist eindeutig.
Bedenke das ein Großteil des IPv6 Protokoll Handlings auf ICMP basiert. Du hast das Regelwerk ja sehr strikt ausgelegt indem du einzig nur Ping (ICMP Echo) erlaubst. Damit stirbt dann der gesamte Rest. Möglich das das eine der Ursachen ist.
Du solltest mal testweise alles aufmachen für IPv6, die Routing Funktion testen und dann die Schotten wieder dichtmachen.
Dann wirst du sehen das es nur noch an deinen Regeln liegen kann !
Du benutzt ja hoffentlich reguläre v6 Adressen und hoffentliche KEINE aus dem Unique Local Unicast Bereich, oder ?
Letztere werden im Internet nicht geroutet. Damit muss es dann natürlich schon Prinzipien bedingt scheitern.
Weisst du aber sicher auch selber.
Wenn es dennoch nicht geht, dann hast du noch einen Fehler in den ASA Firewall Regeln, das ist eindeutig.
Bedenke das ein Großteil des IPv6 Protokoll Handlings auf ICMP basiert. Du hast das Regelwerk ja sehr strikt ausgelegt indem du einzig nur Ping (ICMP Echo) erlaubst. Damit stirbt dann der gesamte Rest. Möglich das das eine der Ursachen ist.
Du solltest mal testweise alles aufmachen für IPv6, die Routing Funktion testen und dann die Schotten wieder dichtmachen.
Dann wirst du sehen das es nur noch an deinen Regeln liegen kann !
Du benutzt ja hoffentlich reguläre v6 Adressen und hoffentliche KEINE aus dem Unique Local Unicast Bereich, oder ?
Letztere werden im Internet nicht geroutet. Damit muss es dann natürlich schon Prinzipien bedingt scheitern.
Weisst du aber sicher auch selber.
auch mal noch ein IP-Scheunentor hinzugefügt. Leider hat das auch nichts gebraucht.
Was du damit sagen willst ist das auch bei einem komplett offenen und transparenten Router es dennoch nicht klappt mit dem v6 Routing ??Hast du mal mit einem v6 Traceroute gecheckt wie weit du kommst ?
Aber wenn solch ein Basic Test schon fehlschlägt, dann kannst du ganz sicher davon ausgehen das das am Provider liegt !!
Der hat dann dein Subnetz nocht nicht in seine Routing Tabelle eingetragen, nutzt falsche Prefixe oder sonstwas.
Da liegt dann der Fehler ganz sicher nicht mehr bei dir sondern zu 99% auf Provider Seite !
Das Komische ist eben, dass es von der ASA direkt aus ging
Tja, da ist jetzt natürlich die Frage WIE ??Vermutlich hast du von der ASA nur einen simplen Ping abgesetzt aber keinen Extended Ping.
Beim normal Ping verwendet die ASA als v6 Absender IP eine IP aus dem Providernetz. Im Beispiel oben also die 2019::2.
Das der Ping dann sauber klappt, ist klar, denn damit nutzt du als Absender IP ja eine dedizierte IP des Providers aber eben keine aus deinem dir zugeteilten Subnetz !
Dazu musst du einen Extended Ping machen.
Also auf der ASA dann ping <return> eingeben und den Dialog beantworten. Bei der Frage Extended commands dann mit YES antworten und dann bei de Frage nach der Absender IP die deines Subnetzes auf dem ASA Interface eingeben (Beispiel oben FDDD:DEAD:BEEF:0001:1)
Nur dann nutzt deine ASA eine Absender IP aus deinem Netz beim Ping !