0x1b - ESCAPE
HTML PDF Postscript
 NAT-PT 
IPv6 Geschrieben von Beat Rubischon (Link) am Freitag, 13. Februar 2009, 21:07
aus dem *auf-dem-weg* dept.

Beim Design von IPv6 wurde ein essentieller Bestandteil vergessen - der Zugang aus einem reinen IPv6 Netzwerk in das bestehende IPv4 basierende Internet. Und dieses wächst noch immer - praktisch alle Web 2.0 Services sind rein IPv4 basierend.

Ein möglicher Workaround ist NAT-PT, siehe RFC2766. Der Gateway eines reinen IPv6 Netzes nimmt die Pakete für einen bestimmten Prefix entgegen und konvertiert sie in IPv4 Pakete. Es ist letztendlich nichts als ein NAT mit all seinen Problemen, entsprechend rät RFC4966 auch davon ab.

Verglichen mit dem Aufwand, in einem typischen Firmennetz dual stack zu fahren, erscheint NAT-PT jedoch nicht so übel. Für einen geplanten IPv6 only Abend in der LUGS bin ich schon länger am Zusammensuchen von Bausteinen und NAT-PT war einer, auf den ich baute.

Erschreckt stellte ich fest, dass der FreeBSD Patch aus dem Kame Projekt irgendwo in den 4er Versionen stehen geblieben ist und nie den Weg in den Releasekernel gefunden hat.

Genauso wusste ich, dass die Netfilter Leute ein übles Problem mit dem Protokollwechsel zwischen IPv4 und IPv6 haben, da beide Stacks unabhängig voneinander im Kernel existieren.

Dann war da noch eine Userspacelösung für Linux. Mit der libpcap und einem - hmm - grässlichen Stück Code dazwischen. Das Ding ist mittlerweile vom Netz.

Also bleibt noch Cisco's IOS als einziger IP Stack, welcher NAT-PT kennt. Gut habe ich so ein Teil im Keller, da kann man basteln. Ganz so einfach ist es nicht, wie es die Dokumentation beschreibt. Das overloading, das Sharen einer public IP durch mehrere Interne, funktioniert nicht. Ein Bug, kein Feature. Die verlinkte Konfig eines Kongreses half mir jedoch weiter. Hier die relevanten Einträge in meinem Router:

interface Ethernet2
 description private LAN
 ip address 172.30.0.1 255.255.0.0
 ipv6 address 2001:8E0:1006:1::/64 eui-64
 ipv6 nat
!
interface Dialer1
 ipv6 nat
!
ipv6 nat v6v4 source list nat6 pool nat6pool
ipv6 nat v6v4 pool nat6pool 212.25.17.171 212.25.17.172 prefix-length 28
ipv6 nat prefix 2001:8E0:1006:FFFF::/96 v4-mapped nat6
!
ipv6 access-list nat6
 permit ipv6 2001:8E0:1006:1::/64 2001:8E0:1006:FFFF::/96

ICMP, TCP und UDP passieren den Router problemlos, ja selbst ftp funktioniert einwandfrei:

beat@spud:~$ ping mirror.switch.ch
PING mimas-nxge0.switch.ch (130.59.10.36): 56 data bytes
64 bytes from 130.59.10.36: icmp_seq=0 ttl=249 time=17.391 ms

beat@spud:~$ ping6 2001:8e0:1006:ffff::130.59.10.36
PING6(56=40+8+8 bytes) 2001:8e0:1006:1:21e:c2ff:fec5:2d1e --> 2001:8e0:1006:ffff::823b:a24
16 bytes from 2001:8e0:1006:ffff::823b:a24, icmp_seq=0 hlim=249 time=18.867 ms

beat@spud:~$ ftp 2001:8e0:1006:ffff::130.59.10.36
Connected to 2001:8e0:1006:ffff::130.59.10.36.
220-SWITCHmirror (formerly known as Swiss SunSITE) welcomes you!
...
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||58809|)
150 Here comes the directory listing.
lrwxrwxrwx 1 ftp ftp 8 Apr 19 2008 README -> .message
drwxr-xr-x 3 ftp ftp 8 Oct 14 05:49 doc
-rw-rw-r-- 1 ftp ftp 55283348 Feb 13 05:33 ls-lR.gz
drwxr-xr-x 2 ftp ftp 108 Jan 22 13:04 mirror
drwxr-xr-x 5 ftp ftp 5 Jul 28 2008 pool
drwxrwxr-x 3 ftp ftp 13 May 19 2007 pub
drwxrwxr-x 10 ftp ftp 11 Mar 21 2004 software
...

Grundsätzlich gesehen tut es und sobald der Fehler mit dem overload geflickt ist, kann man die Konfig auch tatsächlich adresssparend einsetzen. Bis dahin ist aber auch dieser Weg nichts für ein beständiges Testnetz - es sei denn, man hat überflüssige IPv4 Adressen.

Wer sich über die interessanten IP Adressen wundert: Das geht natürlich auch automatisch. Der TOTd, ein kleiner DNS Proxy, erledigt genau diese Umsetzung von IPv4 in IPv6 Adressen.

Permalink

Das Kleingedruckte: Der Besitzer der folgenden Kommentare ist wer immer sie eingeschickt hat. Wir sind in keiner Weise für sie verantwortlich.

  • tg@mirbsd.de Re: NAT-PT
    Geschrieben von mirabilos (Link) am Montag, 16. Februar 2009, 09:47

    Hi,

    lies mal das ↓ da.

    http://undeadly.org/cgi?action=article&sid=20080724184757&mode=expanded