Aktionen

PfSense - IPv6 mit Tunnel Broker und Reverse DNS rDNS

Aus znilwiki

Vorwort

Zum dem Zeitpunkt an dem ich diesen Artikel schrieb hatte ich 2 Testumgebungen die beide nur über IPv4 verfügten.

  • Einen Kimusfi-ESXi Server dessen IPv6 ich nur für den ESXi-Server nutzen konnte
  • Eine ESXi-Umgebung bei meinem Arbeitgeber in der noch kein IPv6 zur Verfügung steht.


Seit mein Internet-Anschluss zu Hause auch IPv6 kann nutze ich dieses nun schon oft - auch weil es die Gelegenheit war sich mal näher mit der Materie zu beschäftigen.

Über Anleitungen im Internet - insbesondere die von pfSense selbst: https://doc.pfsense.org/index.php/Using_IPv6_with_a_Tunnel_Broker -
hatte ich mir schon mal eine IPv6 Verbindung zu meinen Test-Domänencontrollern und Exchange-Servern gebaut ... das ging eine weile gut aber dann hat es mir fast die Umgebung zerhauen.
Nun hab ich einen 2. Anlauf gestartet - bei dem ich insbesondere für mich das Problem mit den Reverse DNS Einträgen gelöst habe.
Wenn die Exchange Server Emails versenden über IPv6 muss schließlich auch dieses Abfrage das richtige Ergebnis zurück liefern.

Da ich dann noch die ein oder andere Stolperstelle hatte - zum Beispiel das meine Windows-Server zunächst alle 2 IPv6 Adressen statt einer hatten - habe ich mich zu dieser Komplett-Anleitung entschlossen.
Es funktioniert nach dieser Anleitung - aber ggf. solltet Ihr bei dem einen oder anderen Überdenken ob Ihr das nicht anderes gelöst haben wollt.


Ablauf

Nachfolgende beschreibe ich euch in einer hoffentlich sinnvollen Reihenfolge die nötigen Schritte

  • Ping freischalten
  • Bei https://tunnelbroker.net - Hurricane Electric registrieren
  • IPv6 Tunnel aufbauen
  • DHCP6 konfigurieren
  • Feste IPv6 Adressen im Netzwerk vergeben
  • Firewallregeln und NAT
  • Reverse DNS für IPv6 einrichten
  • SMTP Empfang und Versand für den Tunnel freischalten




Ping freischalten

Für die Registrierung bei einem Tunnel Brocker ist es wichtig das eure öffentliche IPv4 Adresse von extern anpingbar ist. Und bleibt - sonst klappt der spätere Betrieb nicht.

Du gehen wir unter

Firewall - Rules

und erstellen folgende Regel (falls noch nicht vorhanden):

PfSense-IPv6-Tunnel-Broker-reverseDNS-005.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-006.png


Und bitte einmal testen ob das wirklich geht bevor Ihr weiter macht!
Wer es unbedingt sonst nicht will: Ihr könnt natürlich bei Source die Server IPv4 Adresse des IPv6 Tunnel Endpoints angeben und bei Destination wählt Ihr dann "WAN address".



Bei Tunnel Broker registrieren und Tunnel einrichten

Geht auf https://tunnelbroker.net/register.php und registriert einen neuen Account. Falls Ihr dort schon einen habt meldet euch mit diesem an.
Im Anschluss könnt Ihr euren Tunnel erstellen über das Menü links:
PfSense-IPv6-Tunnel-Broker-reverseDNS-001.png
Im nächsten Schritt sollt Ihr einen Zugangspunkt in der räumlichen Nähe euerer IP auswählen.
Tragt dazu die externe IPv4 Adresse eurer pfSense in das Feld oben ein und wählt dann darunter einen Ort aus der Nähe aus:

Klicken zum Vergrößern


Danach seht Ihr eine Übersichtsseite mit euren neuen Tunneldaten:

Klicken zum Vergrößern

Bei "Routed IPv6 Prefixes" - "Routed /64" steht euer zukünftiges Netzwerk,
PfSense-IPv6-Tunnel-Broker-reverseDNS-004.png

Hier steht da die

2001:470:1f0b:83d::/64

So eine IPv6-Adresse besteht aus 8 Blöcken welche durch : voneinander getrennt werden.
Die ersten 4 Blöcke sind nun vorgegeben, die nächsten 4 Blöcke sind eure.
Das Netz oben ist in verkürzter Schreibweise dargestellt, ausgeschrieben sieht das so aus

2001:470:1f0b:83d::/64
2001:0470:1f0b:083d:0000:0000:0000:0000 / 64

Ihr dürft dann in euren Bereich folgende Adressen vergeben:

2001:0470:1f0b:083d:0000:0000:0000:0000-
2001:0470:1f0b:083d:ffff:ffff:ffff:ffff

Das sind dann

18.446.744.073.709.551.616

Adressen die Ihr in eurem Bereich vergeben könnt ... 18 Trillionen Adressen, nur für euch, das sollte für eine Weile reichen.



IPv6 Tunnel einrichten

Das geht in mehreren Schritten:



Schritt 1: GIF Interface

Ihr geht auf der pfSense in das Menü

Interfaces -> (assign)

und dort dann auf den Reiter GIF:
PfSense-IPv6-Tunnel-Broker-reverseDNS-007.png
und fügt ein neues Interface hinzu.
Dann müsst Ihr die Felder mit den Daten des IPv6 Tunnels befüllen:

gif remote address          =   Server IPv4 Address
gif tunnel local address    =   Client IPv6 Address
gif tunnel remote address   =   Server IPv6 Address

Hier einmal als Bild:
PfSense-IPv6-Tunnel-Broker-reverseDNS-008.png

Danach wechseln wir wieder auf den Reiter Interface assignments und klicken neben den Vorschlag unten auf das PfSense-IPv6-Tunnel-Broker-reverseDNS-010.png Symbol:
PfSense-IPv6-Tunnel-Broker-reverseDNS-009.png

Das neue Interface heißt dann erst einmal OPT1 (was wir aber gleich umbenennen) und noch nicht aktiv.
Klickt auf den Namen:
PfSense-IPv6-Tunnel-Broker-reverseDNS-011.png

PfSense-IPv6-Tunnel-Broker-reverseDNS-012.png
Aktiviert das Interface und gebt dem Ding einen Namen der auf den IPv6 Tunnel schließen lässt.
Den Abschnitt unten mit "Private networks" könnt ihr ignorieren.



Schritt 2: IPv6 Default Gateway setzen

Geht zum Menüpunkt

System -> Routing

und bearbeitet das automatisch erstellte IPv6 Gateway:
PfSense-IPv6-Tunnel-Broker-reverseDNS-013.png

Hier müsst Ihr nun den Haken bei Default Gateway setzen:
PfSense-IPv6-Tunnel-Broker-reverseDNS-014.png
so das es hinterher so aussieht:
PfSense-IPv6-Tunnel-Broker-reverseDNS-015.png



Schritt 3: Internes LAN Interface anpassen

Unser LAN Interface hat bisher nur eine IPv4 Adresse und braucht nun die IPv6 Adresse zusätzlich. Schließlich ist ja intern das Default Gateway für den IPv6 Datenverkehr.
Wir gehen zu:

Interfaces -> LAN

und setzen die IPv6 Konfiguration:
PfSense-IPv6-Tunnel-Broker-reverseDNS-016.png
Ihr müsst

  • IPv6 Configuration Type auf Static IPv6 setzen
  • Die IPv6 Adresse eintragen ...


Aber welche IPv6?
Nun, unser /64 Netzwerk ist in diesem Fall ja die

2001:470:1f0b:83d::/64

Wir erinnern uns: die ersten 4 Blöcke sind vom Tunnelanbieter ... und mit den letzten 4 Blöcken können wir unsere 18 Trillionen Adressen verwalten.
Ich mache es mir nun einfach und setze in den 4 letzten Blöcken immer einfach die IPv4 Adresse ein - nur mit : statt .

IPv4: 192.168.244.1
IPv6: 2001:470:1f0b:83d:192:168:244:1

So kann ich später auch einfach die Adresse herauskopieren und brauche immer nur die letzten Zahlen ändern.
Dabei ist es egal ob Ihr ein 192.168.x.x, 172.16.x.x oder 10.x.x.x Netz nutzt - es ist genug für alles da!
Die Idee ist natürlich nicht von mir sondern hab ich irgendwo als "Best Practice" aufgeschnappt und für Gut befunden.



IPv6 DHCP Server konfigurieren

Wir wollen nun das sich unsere Geräte im Netzwerk natürlich nicht selbst eine IPv6 suchen (Autokonfig) sondern das diese entweder statisch Konfiguriert sind oder aber per DHCP eine IPv6 bekommen. Dazu gehen wir unter:

Services -> DHCPv6 server

Hier habe ich einfach den gleichen Bereich wie bei dem IPv4 DHCP Server genommen, in diesem Fall:

DHCP IPv4: 192.168.244.151 bis 192.168.244.199
DHCP IPv6: 2001:470:1f0b:83d:192:168:244:151 bis 2001:470:1f0b:83d:192:168:244:199


Bei DNS-Server könnt Ihr zum Beispiel euren interen DNS-Server eintrage, die pfSense oder die Google Server:
PfSense-IPv6-Tunnel-Broker-reverseDNS-017.png

Danach gehen wir oben noch auf den Reiter Router Advertisements und stellen diese Option auf

Router Only

Windows-mit-2-IPv6-001.png
Sonst haben Server zum Beispiel gerne mal 2 IPv6 Adressen: Windows 2008 R2 hat 2 IPv6 Adressen aus gleichen Adressbereich


Statische IPv6 Adressen vergeben

Auch bei IPv6 sollen unsere Server feste IP-Adressen haben. In den Netzwerkeinstellungen setzen wie die Adresse wie folgt:
PfSense-IPv6-Tunnel-Broker-reverseDNS-018.png
Der Server hier ist in diesem Fall auch DNS Server - deshalb habe ich diesen selbst auch bei DNS eingetragen. (::1 wäre natürlich auch gegangen)



Testen!

geht auf einem Rechner im Netzwerk und lasst diesen

  • entweder per DHCP eine IPv6 beziehen
  • oder setzt eine feste IPv6 Adresse


Pingt nun die LAN-Schnittstelle der pfSense einmal an.

Danach öffnet einen Browser uns geht auf:

http://test-ipv6.com/

Der Test sollte dann etwas so aussehen:
PfSense-IPv6-Tunnel-Broker-reverseDNS-019.png



DNS Einträge für IPv6 beim Provider

Anhand des Beispiels für den Host

cs-vcenter.dghbcstest.local

zeige ich wie wir diesen extern erreichbar machen bzw. dessen Namen von extern auflösen können.
Das typische Szenario ist hierbei das

  • das gesamte interne Netzwerk sich eine externe IPv4 teilt - typisches NAT
  • Jeder Host in dem Netzwerk aber über eine eigene IPv6-Adresse verfügt die intern und extern nutzbar ist


Die externe Domäne ist in der Regel bei einem Provider wie zum Beispiel 1und1 oder STRATO registriert.
Die obige Domäne dghbcstest.local ist die interne Domäne.
Als externe Domäne verwende ich für diese Demonstration die Domäne znil.de so das wir folgende Ausgangssituation haben:

Interner DNS-Name:        cs-vcenter.dghbcstest.local
Interne IPv4-Adresse:     192.168.244.200
Externe IPv4-Adresse:     213.168.209.200 (= externe IP Firewall)
IPv6-Adresse:             2001:470:1f0b:83d:192:168:244:200
Externer DNS-Name:        cs-vcenter.znil.de

Beim Domänen-Hoster erstelle ich hierzu die Subdomäne

cs-vcenter.znil.de

und nehme für diese dann die passenden DNS-Einstellungen vor:

  • Die externe IPv4 Adresse der pfSense Firewall
  • Die IPv6 Adresse des Host CS-vCenter.dghbcstest.local
PfSense-IPv6-Tunnel-Broker-reverseDNS-020.png


Kleiner Test in der DOS-Box:

PfSense-IPv6-Tunnel-Broker-reverseDNS-021.png

So - die Namensauflösung funktioniert ... aber der Ping nicht? Kunststück! Wir haben ganz am Anfang eine Firewall-Regel erstellt die einen externen Ping auf diese erlaubt.
Es gibt aber keine Regel die erlaubt den Ping zu der IPv6 Adresse eines Host im internen Netzwerk durch zu lassen.
Wir müssen also eine Regel dafür erstellen:

PfSense-IPv6-Tunnel-Broker-reverseDNS-022.png

Beachtet unbedingt das

  • Die Regeln für den IPv6 Datenverkehr für das IPv6-Interface erstellt werden müssen (NICHT WAN!!!)
  • In der Regel trotzdem immer auch das IPv6 Protokoll ausgewählt werden muss

Ihr könnt natürlich für den Host auch einen Alias hinterlegen und nutzen statt direkt die IP einzutragen wie auf dem Bild.
Nun klappt der Ping dann aber:

PfSense-IPv6-Tunnel-Broker-reverseDNS-023.png




Reverse DNS für IPv6

Der DNS-Name wird nun also erfolgreich auch für die IPv6 Adresse aufgelöst.
Hierzu geht der Weg über den Domänen-Hoster, in meinem Fall 1und1.
Für die Subdomäne ist angegeben das die DNS-Server zuständig sind - und denen haben wir im Abschnitt vorher mitgeteilt wohin diese bitte schön zeigen sollen.

Nun brauchen wir das ganze noch Rückwärts. Wenn wir also nach der IPv6 Adresse fragen soll er uns den Hostnamen zurück geben.
Diese Information muss der Besitzer der IP-Adresse bereitstellen - in diesem Fall also unser Tunnel Broker.
Nun, bei dem dürfen wir aber leider keine DNS-Einträge hierzu machen.
Aber wir dürfen für unseren Tunnel andere DNS-Server setzen!

Also brauchen wir einen eigenen DNS Server. Ich nutze hierzu den Microsoft DNS-Server den ich auf meinem Server einfach nachinstalliert habe.
Als Grundkonfiguration habe ich

  • die lokale Domäne
  • die IPv4 Reverse-Lookupzone

konfiguriert. Für einen reinen Reverse DNS Server brauchen wir das aber nicht.

PfSense-IPv6-Tunnel-Broker-reverseDNS-024.png


Wir brauchen nun zunächst 2 Dinge:

  • Eine Forward-Lookupzone für znil.de weil wir sonst keinen Reverse DNS Eintrag dafür machen können
  • Eine Reverse-Lookupzone für 2001:470:1f0b:83d::/64




Forward-Lookupzone erstellen

Zuerst erstellen wir die Forward-Looupzone:

PfSense-IPv6-Tunnel-Broker-reverseDNS-025.png


Ob diese in eine Datei gespeichert wird oder im Active Directory spielt Technisch keine Rolle - das müsst Ihr wissen.
Hier nutze ich einen Standalone Server der in keiner Domäne ist.

PfSense-IPv6-Tunnel-Broker-reverseDNS-026a.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-026b.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-026c.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-026d.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-026e.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-026f.png

Ich lasse hier für diese Zone keine Updates zu - ich trage hier von Hand die Hosts ein für die ich ein Reverse DNS haben möchte.



Reverse-Lookupzone

Nun noch die Reverse-Lookupzone:

PfSense-IPv6-Tunnel-Broker-reverseDNS-028.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-029a.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-029b.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-029c.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-029d.png


Beim Präfix der IPv6-Adresse geben wir die "Routed /64" unseres Tunnels an (gleichnamiger Eintrag der Tunnel Details Seite des Tunnel Brokers)

PfSense-IPv6-Tunnel-Broker-reverseDNS-029e.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-029f.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-029g.png




Host Eintrag anlegen

Important.png
Hinweis: Die Forward-Lookup Zone könnt Ihr auch weglassen! Legt nur eine Reverse-DNS Zone an und gebt dann beim Eintrag zur IP den Namen direkt an - mit einem abschließenden . (Punkt). Also z.B. den Server mail.linz.email gebt Ihr als mail.linz.email. an!


Nun legen wir unseren Host in der Forward-Lookup Zone an:

PfSense-IPv6-Tunnel-Broker-reverseDNS-027.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-030.png


Oben tragt Ihr nur den Hostnamen ein, in dem Feld darunter könnt Ihr sehen das dieser dem DNS Namen entspricht wie er auch beim Provider als Subdomäne angelegt wurde.
Darunter dann die IPv6 Adresse - und setzt den Haken bei Verknüpften PTR-Eintrag erstellen

PfSense-IPv6-Tunnel-Broker-reverseDNS-031.png



Markiert danach (1) die Reverse-Lookupzone, drückt danach oben in der Symbolleiste auf Aktualisieren (2) - dann seht Ihr rechts (3) den Eintrag.

Nun können wir den auch gleich lokal testen:

nslookup IPv6 IP-des-DNS-Servers

Als DNS-Servers gebt ihr natürlich den gerade eben eingerichteten ein.

PfSense-IPv6-Tunnel-Broker-reverseDNS-033.png




DNS Server von außen erreichbar machen

Damit die Reverse DNS Abfrage nun auch von außen möglich ist brauchen wir wieder 2 Dinge:

  • Einen externen DNS-Namen für unseren DNS-Server mit IPv4 und IPv6 Einträgen. Es ist nicht erlaubt hierbei IP-Adressen anzugeben.
  • Eine Firewallregel damit der DNS Server auch wirklich von außen zu erreichen ist


In meinem Beispiel ist der DNS Server identisch mit dem Server für den ich ein Reverse DNS machen will.
Deshalb kann ich hierfür auch wieder den DNS-Namen cs-vcenter.znil.de nehmen.
Besser sieht es natürlich aus wenn ich eine weitere Subdomain wie z.B. dns.znil.de anlege und diese auf meinen DNS-Server verweisen lasse.<vr>

Fehlt noch die Firewall-Regel ... und das sind in diesem Fall 1 x NAT und 2 Regeln

  • Ein Forwarding (NAT) von Port 53 von der externen IPv4 auf die interne IPv4 Adresse unseres DNS-Servers. Die Notwendige Firewallregel hierzu erstellt die pfSense automatisch.
  • Eine Rule für IPv6 die den Zugriff auf Port 53 der IPv6 Adresse des DNS-Servers erlaubt


NAT für IPv4

Wir gehen zu

Firewall -> NAT -> Port Forward

und erstellen eine neues Port-Forwarding:

PfSense-IPv6-Tunnel-Broker-reverseDNS-034.png


Achtet unbedingt als Protokoll TCP/UDP zu verwenden!!!

Fertig sieht diese dann so aus:

PfSense-IPv6-Tunnel-Broker-reverseDNS-035.png


Die pfSense legt uns dazu auch gleich automatisch eine Rule an unter

Firewall - Rules - WAN
PfSense-IPv6-Tunnel-Broker-reverseDNS-036a.png
PfSense-IPv6-Tunnel-Broker-reverseDNS-036a.png




Rule für IPv6

Wir gehen zu

Firewall -> Rules -> HENETV6

also auf den IPv6 Tunnel und erstellen folgende Regel:

PfSense-IPv6-Tunnel-Broker-reverseDNS-037.png


Achtet unbedingt als Protokoll TCP/UDP zu verwenden!!!

PfSense-IPv6-Tunnel-Broker-reverseDNS-038.png


Zum Testen sollten nun natürlich einen Rechner nehmen der außerhalb in einem anderen Netzwerk steht.
Macht wieder eine nslookup Abfrage mit der Angabe des DNS-Servers



DNS-Server beim Tunnel Broker angeben

So, wir haben nun also einen funktionierenden DNS Server der Rückfragen zu unserem 18 Trillionen IPv6 Adressen beantworten kann UND der von außen über einen DNS-Namen erreichbar ist.
Diesen tragen wir nun noch noch beim Tunnelbroker ein:

PfSense-IPv6-Tunnel-Broker-reverseDNS-039.png


PfSense-IPv6-Tunnel-Broker-reverseDNS-041.png


Netter weise reicht hier schon ein DNS-Server.



Testen!

Nun fragen wir doch mal den google-DNS Server ob er einen Reverse-DNS Eintrag für unsere IPv6 Adresse finden ...
Falls das nicht gleich funktioniert - GEDULD! probiert es halt in ein paar Stunden noch einmal.

Wie die Abfrage erfolgt kann man auch schön sehen wenn Ihr eure IPv6 IP hier angebt:

http://www.simpledns.com/lookup-dg.aspx

Da seht Ihr wie er sich bis zu eurem IPv6 rDNS Server durchhangelt.

Falls es nach mehr als 24h immer noch nicht geht (im Normalfall geht es nach wenigen Minuten) so schreibt eine EMail an

ipv6@he.net

mit euren Tunneldaten und eurem Problem das die Einstellungen für die Rverse DNS-Server nicht greifen. (Aber nur wenn ihr auch über http://tunnelbroker.net euren Tunnel erhalten habt!)

Ich hatte das Problem bei 2 von 4 Tunneln. Das ist ein Fehler bei HE.net der auftreten kann falls jemand den Tunnel von euch schon mal vorher hatte UND derjenige an den DNS-Daten was geändert hatte.


SMTP Versand un Empfang freischalten

Bei HE.net ist pauschal der Versand und Empfang von EMails über Port 25 gesperrt.
Diesen könnt Ihr bei http://tunnelbroker.net unter Advanced:

PfSense-IPv6-Tunnel-Broker-reverseDNS-042.png


Jetzt ist diese Option bei euch wahrscheinlich nicht vorhanden bzw. gepserrt.
Und wie entsperrt Ihr diese Option?

In der FAQ steht das meine eine Email an den Support schreiben sollt.
Der wird euch Antworten das Ihr den IPv6 Test bestehen sollt, dann wird die Option automatisch frei geschaltet.

Den Test findet Ihr unter

https://ipv6.he.net/certification/

Da meldet Ihr euch mit den gleichen Zugangsdaten wie für den Tunnel an.
Und dann macht Ihr den Test. Jede Stufe kann einzeln gemacht werden, unter anderem Testen die dort auch ob einbe Domäne von euch per IPv6 zu erreichenist und ob das Reverse DNS funktioniert.
Wenn Ihr obiges fertig habt also an sich kein Problem.
Ich war in einer Stunde damit durch - dabei musste ich mal eben den Mailempfang über IPv6 aktivieren etc.



Kommentare

Loading comments...