IPv6 mit Telekom All IP auf eigenem Router

11/07/2015 - 07:39 von Andreas Hartmann | Report spam
Hallo zusammen,

hier eine kurze Doku zur Einrichtung von nativem IPv6 via Telekom All IP
auf einem eigenen Linux-Router.

Voraussetzungen:
- Auf dem eigenen Router ist IPv6 aktiviert (auch für die relevanten
Devices).
- Ein Modem, mit dem man den "Internet login" via PPPoE passthrough auf
einem eigenen Router via PPPoE selbst durchführt (z.B. Zyxel VMG1312-
B30A [1]).


Erster Schritt ist, dass die providerspezifische Konfig des pppd in
/etc/ppp/peers/ auf dem eigenen Router durch ein "+ipv6" ergànzt wird.

Die vollstàndige Konfig sieht dann so aus:

plugin rp-pppoe.so
noauth
# switch off all compressions (this is a must)
nopcomp
# this is recommended
novjccomp
noccp
user Telekom-Zugangsnummer@t-online.de
defaultroute
idle 0
persist
lcp-echo-interval 60
lcp-echo-failure 2
+ipv6


Nachdem man PPPoE gestartet hat, bekommt man nun zusàtzlich eine link
local IP auf das ppp0 interface. Mit der kommt man aber noch nicht weit.
Man benötigt noch eine globale IPv6. Diese bekommt man entweder durch
Warten (ca. 10 Minuten) oder man holt sie sich aktiv selbst ab mit

rdisc6 ppp0

Damit hat man nun auch eine globale IPv6 Adresse für das ppp0-Interface
und vom Router selbst aus kann man nun IPv6 sprechen (z.B. testbar mit
ping6 heise.de) - funktionierender Nameserver natürlich vorausgesetzt -
der kann auch noch über IPv4 gehen.

Damit ist das Ziel aber erst zur Hàlfte erreicht - bis hierher kann
nàmlich nur der Router IPv6 sprechen - alle dahinterliegenden Devices
nicht :-(. Um das zu erreichen, muss man sich für das betreffende
Router-Interface (z.B. eth0) erst noch ein IPv6-Netz besorgen, aus dem
man dann Adressen an die dahinterliegenden Devices vergeben kann. Dies
geschieht via DHCPv6-PD (prefix delegation) mit

dhcpcd

und der folgenden Konfiguration in /etc/dhcpcd.conf:

duid
noipv6rs
waitip 6
# Uncomment this line if you are running dhcpcd for IPv6 only.
ipv6only

# use the interface connected to WAN
interface ppp0
ipv6rs
iaid 1
# use the interface connected to your LAN
# ia_pd 1 eth0
ia_pd 1/::/64 eth0/0/64


Nun hat man auf dem Router-Interface ein komplettes /64 Prefix, aus dem
man nun selbst globale IPv6-Adressen an die eigenen Devices vergeben kann:

inet6 Adresse: 2003:6b:abc:1def::1/64 Gültigkeitsbereich:Global


Nun ist man fast soweit. Man muss nun nur noch dafür sorgen, dass die am
Router via eth0 angeschlossenen eigenen Devices sich auch eine globale
IPv6-Adresse abholen können (via SLAAC).

Hierzu verwendet man den radvd auf dem Router mit folgender
/etc/radvd.conf Konfig (falls eth0 das Router-Interface ist, an dem das
interne Netz angeschlossen ist, in das man IPv6-Adressen vergeben möchte):

interface eth0
{
AdvSendAdvert on;
MaxRtrAdvInterval 30;

prefix ::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
AdvValidLifetime 300;
AdvPreferredLifetime 120;
};

};


Damit der radvd làuft, muss auf dem Router IPv6-forwarding aktiviert sein:

sysctl -w net.ipv6.conf.all.forwarding=1


Von nun an können Rechner im eigenen Netz eine IPv6-Adresse
beziehen und haben somit direkten Zugriff auf das Internet und
umgekehrt, falls man nicht via Portfilter einschreitet. Einen globalen
Portfilter kann man auf dem Router etablieren, um sicherzustellen, dass
man z.B. nicht vom Internet auf die eigenen Devices hinter dem Router
zugreifen kann:

ip6tables -P FORWARD DROP
ip6tables -I FORWARD -p tcp -i ppp0 -o eth0 -d 2003:6b:abc:1def::1/64 \
-m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -I FORWARD -p tcp -o ppp0 -i eth0 -s 2003:6b:abc:1def::1/64 \
-m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT

plus weitere Regeln, die nötig sind, um die gewünschte
Internetconnectivity der Devices im LAN zu erreichen. Die Devices selbst
im LAN benötigen natürlich auch noch geeignete Portfilter, die den
Verkehr auf den jeweils gewollten einschrànken.

Man benötigt natürlich für den Router selbst auch noch einen Portfilter,
der sich um die IPv6-Adresse von ppp0 kümmert (INPUT und OUTPUT-Filter).

Aufpassen muss man auf eigene Devices im LAN, die auch IPv6-fàhig sind,
von denen man aber nicht möchte, dass sie ins Internet kommen (Fernseher
oder andere Boxen z.B.). Diese muss man im Router selbst blocken
(entweder verhindern, dass sie eine IPv6-Adresse via SLACC bekommen oder
den Datenverkehr via IPv6 ins Internet selbst blocken - was u.U. etwas
aufwàndiger sein dürfte).


Eine weitere Frage ist noch, ob man die privacy extensions aktivieren
möchte (net.ipv6.conf.ens3.use_tempaddr = 2). Die grundsàtzliche
Überlegung ist an dieser Stelle: was bringt es, den MAC-Adressen Part in
der globalen IPv6-Adresse regelmàßig zu àndern, wenn der Rest bis zu
einem halben Jahr (angeblich gibt's dann einen Zwangslogout bei der
Telekom bei All IP - konnte ich bis dato nicht selbst verifizieren, da
ein Reboot des Routers wg. neuer Kernelversionen wg. gefixter CVEs in
kürzeren Abstànden stattfindet) gleich gleibt? Man hat spàtestens nach
einem halben Jahr keine Verfolgbarkeit mehr, wenn man zwangsweise eine
neue IP bekommt.


Noch was: hat man auf dem Router mehrere Interfaces, auf denen man
*kein* IPv6 nutzen möchte, kann man diese speziell für IPv6
deaktivieren. Z.B. eth1 mit

sysctl -w net.ipv6.conf.eth1.disable_ipv6 = 1



Gruß,
Andreas

[1]
http://hilfe.telekom.de/hsp/cms/con...-1312-B30A
 

Lesen sie die antworten

#1 Marc Haber
11/07/2015 - 09:06 | Warnen spam
Andreas Hartmann wrote:
Um das zu erreichen, muss man sich für das betreffende
Router-Interface (z.B. eth0) erst noch ein IPv6-Netz besorgen, aus dem
man dann Adressen an die dahinterliegenden Devices vergeben kann.



"besorgen"? muss man jedes einzelne Netz extra beantragen oder bekommt
man einen Prefix (/56 oder gar /48) automatisch zugewiesen?

Grüße
Marc
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

Ähnliche fragen