[Berlin-wireless] vpn03 + NPTv6

Bastian fly at d00m.org
Mo Feb 29 19:10:57 CET 2016


Hi,

dieser Thread richtet sich hauptsächlich an Menschen, die unsere
momentane BGP->OpenVPN->OLSR Architektur ein wenig kennen und verstehen
warum wir nicht einfach eine IPv6 default-route mit vpn03 verschicken
koennen.

Ich erinnere mich an inzwischen schon etwas angestaubte Experimente von
Sven-Ola bzgl. nat66. Ohne hier eine Diskussion ala "NAT mit IPv6 ist
doch kacke" zu starten, möchte ich nochmal auf die eigentliche
Problemstellung eingehen:

Aktuell ist IPv6 nur im BBB möglich. Auf Nodes wird ein /64 pro
Interface aus unserem 2001:bf7::/32 konfiguriert und im olsr6-Mesh
announcen unsere FTTR Standorte eine default-route. Das funktioniert
soweit, weil uns 2001:bf7::/32 auch gehört und eine echte end-to-end
connectivity in der Form "Internet via bgp01/bgp02 -> icvpn01/icvpn02
und dann olsr6 bis zum Knoten" besteht.

Das ganze funktioniert nicht mehr, sobald irgend ein $ISP
(KD/dtag/whatever) eine default-route im BBB verkündet. $ISP werden IPs
aus unserem 2001:bf7::/32 nicht ins Internet lassen.
Aber selbst wenn $ISP unsere IPs nicht filtert, dann ist der Rückweg
immer über das BBB! Sogar wenn wegen WLAN Multi-Hop die Verbindung
richtig mies oder gar unmöglich ist.

Selbes gilt für einfaches end-to-end via OpenVPN/VPN03. Solange wir kein
Mesh-Protokoll auf vpn03 sprechen, werden unsere BGP-router das
Antwort-Paket immer versuchen via FTTR zuzustellen.

Warum funktioniert das aber mit IPv4?
Weil wir NAT einsetzen. Unsere BGP-router kennen die VPN03 Subnetze und
sorgen dadurch für symmetrisches Routing. Schickst du ein Paket über
vpn03 ins Internet, kommt die Antwort auch über das VPN rein.
Das funktioniert übrigens auch genauso für die wenigen, die einfach ohne
VPN direkt ins Internet ausleiten.


Wuerde das auch mit IPv6 funktionieren, wenn wir NAT haetten?
Ich denke schon!

IPv6 und NAT ist ein leidiges Thema. Eigentlich ist NAT ja wirklich
kacke, weil es end-to-end connectivity kaputt macht. Denkt nur mal an
port-forwarding...
Es gibt NAT66, was versucht genauso wie NAT44 statefull ist. Also auch
mit IP-overloading usw.
Es gibt aber auch NPTv6, was einfach stateless den Prefix-Anteil einer
IP ersetzt. Der Host-Anteil bleibt erhalten. Funktioniert natürlich nur
wenn auf beiden Seiten ein gleich großes Prefix verwendet wird.

Wenn also ausgehende Pakete immer in ein Prefix uebersetzt werden, von
dem unsere BGP-Router wissen das sie von vpn03 kommen, dann können wir
das problemlos symmetrisch weiterleiten.

Mehr dazu unter
http://www.howfunky.com/2012/02/ipv6-to-ipv6-network-prefix-translation.html


Meine Fragen in die Runde:

Wie groß sind die typischen $ISP Prefixes?
Wie groß ist unser ULA Prefix?
Haben wir überhaupt ein "eigenes ULA Prefix?"
Wollen wir ueberhaupt ULA dafuer verwenden, oder einfach via vpn03 ein
Prefix je Client vergeben?
Macht NPTv6 eher auf einem vpn03-client oder auf einem vpn03-server Sinn?

Cheers, Bastian

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 473 bytes
Beschreibung: OpenPGP digital signature
URL         : <https://lists.berlin.freifunk.net/pipermail/berlin/attachments/20160229/f6995328/attachment.sig>


Mehr Informationen über die Mailingliste Berlin