0x1b - ESCAPE
HTML PDF Postscript
 PPP 
IPv6 Geschrieben von Beat Rubischon (Link) am Montag, 26. Mai 2008, 09:01
aus dem *to-be-defined* dept.

Zu PPP und IPv6 sind noch nicht alle Specs geschrieben. Ich musste dies merken, als ich meinen PPTP Tunnel nach Hause IPv6 fähig machen wollte.

Ja, ich weiss, PPTP ist evil. Aber es ist durchaus praktisch, aus dem Netz einer grossen Hochschule Internetaccess zu bekommen. Und so lange man den PPTP Tunnel als genauso unsicher wie das offene Internet betrachtet, ist dem ja auch nichts einzuwenden.

Irgendwann begriff ich, dass der Haken automatic IPv6 configuration im Preference Pane bzw. die Aktivierung von IPv6 in einem Linux pppd nur die Link Local Adresse aushandelt. Allfällige Global Adressen müssen mittels Router Advertisement von der Gegenseite her angekündigt werden. Cisco's IOS kann mittels einem Adresspool die Adressen selbst verwalten - entsprechende Infrastruktur vorausgesetzt, ist auch eine Verwaltung in einem Radius Server möglich. Meine Konfig, ausschliesslich der IPv6 Teil:

!
interface Virtual-Template1
ipv6 enable
ipv6 nd ra-interval 30
ipv6 nd ra-lifetime 900
ipv6 nd prefix default infinite infinite off-link
no ipv6 nd suppress-ra
ipv6 verify unicast reverse-path
peer default ipv6 pool dial-in
!
ipv6 local pool dial-in 2001:8E0:1006:FF00::/59 64

Einmal mehr ein relativ häufiges Announcement, da mein 836er trotz bleeding Edge IOS sich noch immer weigert, auf Router Solicitations zu antworten.

Noch immer keine public IP auf der Client Seite :-(

Etwas Googeln brachte mehr Infos. Die Jungs in den Standardisierungsgremien sind sich noch immer uneinig daüber, wie ein Client hinter einem Point to Point Link auf ein Router Advertisement regieren soll. Das /64 (immerhin sind sich die Leute über diese Grösse im klaren :-) dem PPP Interface geben? Oder das /64 dem allfällig vorhandenen LAN / Wifi / Bluetooth Interface zuordnen, damit auch andere Devices Internet Access bekommen?

Ich weiss genau, was ich will. Also geht es darum, meinem Mac beizubringen, was er tun soll. Der configd will dem Interface keine IP geben, ich kann aber mit einem sysctl die automomatische Konfig im Kernel aktivieren. Die Defaultroute muss ich - analog zu IPv4 - selbst setzen, hier hilft mir weder der Kernel noch der pppd. Resultat sind zwei Scripte:

/etc/ppp/ipv6-up

#!/bin/sh

PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"

/usr/sbin/sysctl -w net.inet6.ip6.accept_rtadv=1
/sbin/route add -inet6 default $PPP_REMOTE%$PPP_IFACE
sleep 10
/usr/sbin/sysctl -w net.inet6.ip6.accept_rtadv=0

/etc/ppp/ipv6-down

#!/bin/sh

PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"

/usr/sbin/sysctl -w net.inet6.ip6.accept_rtadv=0
/sbin/route delete -inet6 default $PPP_REMOTE%$PPP_IFACE

Ab sofort gibt es Kaffee auch mit IPv6 ;-)

Permalink