jessiep
Goto Top

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 face-sad

Vielen Dank und viele Grüße
jessiep

Content-Key: 398066

Url: https://administrator.de/contentid/398066

Printed on: April 20, 2024 at 06:04 o'clock

Member: aqui
aqui Jan 12, 2019 updated at 21:30:07 (UTC)
Goto Top
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 face-sad
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. face-sad

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.
Member: jessiep
jessiep Jan 12, 2019 at 22:54:07 (UTC)
Goto Top
Hallo aqui,

vielen Dank für Deine schnelle Reaktion.

Mir liegt vom Provider nur der Adressbereich und das Gateway vor.

Das outside-Interface wurde ganz banal so konfiguriert:
interface GigabitEthernet1/1
 nameif outside
 security-level 0
 ip address y.y.y.y 255.255.255.248
 ipv6 address x:x:x:1000::2/64
 ipv6 enable
!
Eine separate Einwahl ist an dieser Stelle nicht nötig und die Konfiguration des outside-Interfaces ist so ausreichend, um - vom outside-Interface aus - eine Verbindung nach 'draußen' herstellen zu können. Der Adressbereich wird vom Betreiber des Gebäudes so gestellt, da habe ich keinen weiteren Einfluss darauf.
Ebenso soll wirklich statisch adressiert werden.
Ich kann dem outside-Interface auch eine andere IP aus dem x:x:x:1000::2/64 bzw. /56 geben und es klappt immer.

Das VLAN-Interface sieht so aus:
interface GigabitEthernet1/4.100
 vlan 100
 nameif testing
 security-level 90
 ip address 10.0.100.250 255.255.255.0
 ipv6 address x:x:x:1001::1/64
 ipv6 enable
!

Um es nochmal zusammenzufassen:
Ich habe dem outside-Interface das erste 64-Subnet der öffentlichen /56-Range gegeben. Das VLAN-Interface hat das zweite 64-Subnet aus der öffentlichen /56-Range - es wurden somit keine privaten Adressen vergeben.

Ausser den Accessrules gibt's IPv6-bezüglich sonst nichts mehr in der Konfig.
ipv6 route outside ::/0 x:x:x:1000::1
access-list outside_access_out extended permit icmp6 any6 any6
access-list outside_access_in extended permit icmp6 any6 any6
access-list testing_access_out extended permit icmp6 any6 any6
access-list testing_access_in extended permit icmp6 any6 any6

Vielen Dank für die Mühe!
Member: aqui
aqui Jan 13, 2019 updated at 15:55:59 (UTC)
Goto Top
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.
Member: jessiep
jessiep Jan 13, 2019 at 16:58:27 (UTC)
Goto Top
Danke für Deine Rückmeldung!

Genau, ich hab vom Provider mein eigenes festes IPv6-Subnetz.
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.

Genau, auf dem outside ist aktuell x:x:x:1000::2/64 konfiguriert. mit der x:x:x:1000::1 als Gateway komme ich - von der ASA aus - ins Internet.
Die ASA mag es nicht, wenn auf mehreren Interfaces die gleichen Adressbereich liegen, deshalb hätte ich den Weg mit den kleineren Subnetzen probiert.
Mein Gedankengang war so, dass ich z.B. meine Windows 10 VM direkt mit einer WAN-IPv6-Adresse statisch adressieren kann, so dass ich dafür keine internen bzw. privaten Adressen brauche.

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...
Ich will letztendlich nur sowas einfaches wie, dass meine Windows 10 VM mit einer frei wählbaren WAN-IPv6 aus dem /56-Subnetz ins Internet kommt und von extern auch über diese IP angesprochen werden kann.
Entschuldigt bitte die blöde Fragerei, ich kapiers grad beim besten Willen einfach nicht.
Member: aqui
aqui Jan 14, 2019 updated at 08:53:32 (UTC)
Goto Top
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 !
Member: jessiep
jessiep Jan 14, 2019 at 10:16:36 (UTC)
Goto Top
Aber bei IPv4 geht's ja genauso? Dort habe ich meinen Adressbereich, adressiere mein outside-Interface auf diesen Adressbereich, setze meine Defaultroute auf den Gateway, der mir genannt wurde und route meine privaten Adressbereich darüber ins WAN. Wenn ich einer privaten Adresse eine feste WAN-Adresse geben möchte, wird das halt über NAT konfiguriert und es läuft damit einwandfrei.

Grundsätzlich muss das ja auch so bei IPv6 funktionieren. Ich komme ja immerhin ins Internet(ping von der ASA aus ist ja über IPv6 erfolgreich). Ich hab mir mal eben private Adressen auf den mein VLAN-Interface und meine VM gelegt. Den Adressbereich auf dem outside auf /56 geändert und der Rest bleibt unverändert. Grundsätzlich ist das der identische Aufbau zum IPv4 - somit sollte ich auf jeden Fall ins Internet kommen. Funktioniert aber nicht. Ping von der VM auf das VLAN-Interface jeweils über die privaten IPv6-Adressen klappt, weiter komme ich aber nicht - also genau wie zuvor auch.

Mit dem Provider hab ich telefoniert und wieder die gleichen Daten erhalten, die ich schon habe. Das muss so funktionieren..
Alternativ versuche ich mehr IPv4-Adressen zu bekommen, aber das kann ja auch nicht Sinn und Zweck des Ganzen sein.

Danke für die Mühe!
Member: aqui
aqui Jan 14, 2019 at 13:41:14 (UTC)
Goto Top
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 !
Member: jessiep
jessiep Jan 14, 2019 at 15:32:38 (UTC)
Goto Top
Das outside-Interface hat, wie geschrieben, x:x:x:1000::2 als IPv6 definiert, das Gateway, welches der Port ist, an dem das outside-Interface steckt, hat die x:x:x:1000::1. Das passt schon so, ist analog zur IPv4-Konfiguration und ich komme damit von der ASA aus über Ping ins Internet.

Nun hab ich meinem VLAN-Interface mal diese Adresse gegeben: fddd:x:x:6e9::1/64
Meine Windows 10 VM, die an dem VLAN hängt, hat die fddd:x:x:6e9::2/64.
Ping von der Windows 10 VM auf das VLAN-Interface funktioniert, umgedreht genauso. Aber ich komme nicht raus.
Das Ganze ist in der Form analog zu IPv4 aufgebaut - dort klappts ja wunderbar.

Es wird wohl irgendwo zwischen VLAN-Interface und outside-Interface einen Stolperstein geben, den ich leider nicht finde und trotzdem immer wieder darüber stolpere face-sad

Danke!
Member: aqui
aqui Jan 15, 2019 updated at 09:37:17 (UTC)
Goto Top
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:

ipv6

Das Provider Netz wo deine Default Route hinzeigt darf nie Teil deines Netzes (Beispiel hier FDDD:DEAD:BEEF:: /56) sein !
Member: jessiep
jessiep Jan 15, 2019 at 10:37:42 (UTC)
Goto Top
Nein, nein, das ist schon eine IP-Adresse des Providers. Sozusagen die IP-Adresse, unter der die Firewall von außen her erreichbar wäre.

Es ist exakt genau so konfiguriert, wie es in Deinem Bild dargestellt ist, aber es klappt nicht..
Member: aqui
aqui Jan 15, 2019 updated at 11:20:39 (UTC)
Goto Top
OK, dann sind wir wenigstens konform was die grundsätzliche Adressierung anbetrifft face-wink 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 ! face-smile

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.
Member: jessiep
jessiep Jan 17, 2019 at 14:39:40 (UTC)
Goto Top
Hallo aqui, danke für Deine Mühe.
Entschuldige bitte die späte Rückmeldung, die Tage sind grad lang und die Nächte kurz.

Ich hab bei den gleichen Regeln, welche das ICMP-Scheunentor beinhaltet haben, auch mal noch ein IP-Scheunentor hinzugefügt. Leider hat das auch nichts gebraucht. Die ASA zeigt auch keine Deny-Logeinträge an..

Ich habe gestern vom Provider einen zweiten IPv4-Adressbereich zugeteilt bekommen und mir den in der ASA geroutet, das klappt soweit und damit ist das ursprüngliche Problem zwar nicht gelöst, aber die Notwendigkeit für mich erfüllt.

Ja, ich habe reguläre IPv6-Adressen benutzt, lange rumprobiert, aber es läuft nicht - keine Ahnung wieso.

Ich danke Dir auf jeden Fall für Deine ausführliche Hilfe! Super face-smile
Member: aqui
aqui Jan 17, 2019 updated at 16:42:49 (UTC)
Goto Top
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 !
Member: jessiep
jessiep Jan 18, 2019 at 09:55:47 (UTC)
Goto Top
Genau, ich komme leider einfach nicht raus, auch wenn alles offen ist.
Traceroute hab ich jetzt nicht mehr weiter probiert, weil ich dann ja ohnehin das zusätzliche v4-Subnetz beauftragt habe.
Auch wenn mir das sehr widerstrebt, werde ich die tatsächliche Ursache wohl erstmal nicht herausfinden. Das Komische ist eben, dass es von der ASA direkt aus ging.

Auf jeden Fall danke Dir! face-smile
Member: aqui
aqui Jan 18, 2019 at 10:07:06 (UTC)
Goto Top
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 !