Home / LinuxUser / 2010 / 02 / Tunnel bauen

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Tunnel bauen

IPv6 in der Praxis

IPv6-Adressen fürs LAN

Damit auch andere Rechnern aus dem lokalen Netz via IPv6 auf das Internet zugreifen können, benötigen diese ebenfalls eine entsprechende Adresse. Für deren Zuweisung gibt es mehrere Lösungsansätze. Zum einen können Sie eine IPv6-Adresse aus dem zugewiesenen Subnetz manuell in die Netzwerk-Konfigurationsdatei eintragen. Im gezeigten Beispiel lautet der von SixXS zugewiesene Subnetz-Präfix 2a01:198:514::/48. Da er nur 48 Bit in Anspruch nimmt, verbleiben 16 Bits für die Definition eigener Netze – damit lassen sich bis zu 65535 Subnetze aufbauen.

Für unseren Zweck genügt ein einzelnes Subnetz, sodass Sie den Rest der Adresse lediglich mit Nullen ausfüllen. Die Interface-ID besteht lediglich aus einer einzelnen Ziffer, der "1". Die so erzeugte IP-Adresse tragen Sie auf einem Fedora-System dann zusätzlich zur bereits bestenden IPv4-Konfiguration in der Datei ifcfg-eth0 unter /etc/sysconfig/network-scripts/ ein. Verwenden Sie ein anderes Interface, müssen Sie den Dateinamen entsprechend anpassen.

Die komplette Konfiguration könnte so aussehen, wie das Listing 2 zeigt. Nach einem Neustart des Netzwerkes mittels /etc/init.d/network restart zeigt der Aufruf von ip -6 a s eth0 und ip -6 r die konfigurierte IPv6-Adresse mitsamt des Default-Gateways an – zumindest, falls alles geklappt hat.

Listing 2
# ifconfig-eth0 (Beispiel)
IPV6INIT=YES
IPV6_AUTOCONF=NO
IPV6ADDR=2a01:198:514::1/64
IPV6_DEFAULTGW=2a01:198:200:6f7::2

Natürlich lassen sich weitere Rechner auf die selbe Weise konfigurieren, einfacher geht es jedoch mit Hilfe der Stateless-Autokonfiguration. Hierzu setzen Sie die Anweisung IPV6_AUTOCONF aus der Konfigurationsdatei der Netzwerkkarte einfach auf den Wert NO. Daraufhin sendet der Client selbständig sogenannte Solicitation Messages an die Multicast-Adresse ff02::2. Als Absenderadresse kommt hierbei die verbindungslokale Adresse (fe80::) zum Einsatz, die Ihr System bei aktivem IPv6 automatisch erzeugt.

Auf einem Fedora-System aktivieren Sie den IPv6-Support gegebenenfalls über die Anweisung NETWORKING_IPV6=yes in der Datei /etc/sysconfig/network. Allerdings verwenden alle gängigen Linux-Distributionen diesen Wert in den aktuellen Releases als Vorgabe, so dass Sie hier meist nichts ändern müssen. Überprüfen Sie im Zweifelsfall einfach mithilfe von ip, ob der Rechner eine solche verbindungslokale Adresse besitzt (Listing 3, oben)

Existiert im LAN ein IPv6-fähiger Router, so antwortet er beim Empfang der Solicitation Messages eines Clients mit einer sogenannten Advertisement Message antworten. Dieses Antwort-Paket enthält unter anderem den Subnetz-Präfix für Ihr Netzwerk. Aus der Hardware-Adresse der Netzwerkkarte generiert der Client dann die Interface-ID, die zusammen mit dem Subnetz-Präfix die IPv6-Adresse ergibt. Klappt alles, dann besitzt der Rechner nun neben der verbindungslokalen Adresse auch eine globale Adresse aus dem oben genannten Subnetz (Listing 3, unten).

Listing 3
# ip -6 a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 100
    inet6 fe80::208:74ff:fea8:dd17/64 scope link
       valid_lft forever preferred_lft forever
# ip -6 a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 100
    inet6 2a01:198:514:0:21b:77ff:fe40:9e8e/64 scope global dynamic
       valid_lft 2587384sec preferred_lft 600184sec
    inet6 fe80::208:74ff:fea8:dd17/64 scope link
       valid_lft forever preferred_lft forever

Über diese Adresse kann der Client dann durch den IPv6-Tunnel mit anderen Rechnern im Internet zu kommunizieren. Natürlich muss er dazu wissen, dass er die Pakete in den Tunnel senden soll. Diese Information bildet in Form des angegebenen Default-Gateways jedoch bereits einen Teil der Advertisement Message des Routers, sodass Sie sie nicht manuell liefern müssen.

IPv6 auf dem Router

Bleibt die spannende Frage: Wie lässt sich solch ein IPv6-fähiger Router konfigurieren? Zum einen gibt es Hardware wie beispielsweise die Fritzbox, die den notwendigen IPv6-Support bereits mitbringt. Solche Geräte können selbstständig einen IPv6-Tunnel zu einem Tunnel-Broker aufzubauen. Zum anderen gibt es mit radvd auch eine passende Software für Linux. Die Anwendung findet sich in den Software-Repositories der meisten Linux-Distributionen, sodass die Installation mit dem jeweiligen Paketmanager leicht gelingt. Unter Fedora rufen Sie dazu einfach yum install radvd auf.

In die Konfigurationsdatei /etc/radvdv.conf tragen Sie anschließend den von SixXS zugewiesen Prefix ein (Listing 4). Nach einem Start des Dienstes mittels /etc/init.d/radvd start lauscht Radvd nun auf entsprechende Client-Anfragen und sendet sogar selbständig in regelmäßigen Zeitintervallen Informationen über den konfigurierten IPv6-Prefix in das Netzwerk.

Listing 4
# /etc/radvdv.conf (Beispiel)
interface eth0
{
  AdvSendAdvert on;
  prefix 2a01:198:514::/64
  {
    AdvOnLink on;
    AdvAutonomous on;
    AdvRouterAddr on;
  };
};

Damit der Router nun auch alle Anfragen der Clients über den IPv6-Tunnel weiterleitet, müssen Sie noch das IP-Forwarding aktivieren. Das erledigen Sie im einfachsten Fall mit dem Befehl

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

Für eine dauerhafte Aktivierung setzen Sie diese Variable einfach statisch in der Datei /etc/sysctl.conf.

Danach sind Ihre Rechner ab sofort unter einer IPv6-Adresse direkt aus dem Internet zu erreichen, also nicht mehr hinter einer NAT-Adresse versteckt. Das bringt neben vielen Vorteilen freilich auch etliche Gefahren mit sich. Es führt demgemäß kein Weg daran vorbei, auf dem zentralen IPv6-Router entsprechende Paketfilter-Regeln zu definieren, um den Zugriff von außen auf das Netzwerk einschränken. Eine beispielhafte Konfiguration für einen solchen Paketfilter zeigt das Listing 5.

Listing 5
# Alle bestehenden Regeln loeschen
ip6tables -F
ip6tables -X
# Zugriff über das Loopback-Device erlauben
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A OUTPUT -o lo -j ACCEPT
# Uneingeschraenkter Zugriff auf den IPv6-Tunnel vom Router aus
ip6tables -A OUTPUT -o sixxs -j ACCEPT
# Zugriff aus dem lokalen Subnetz ebenfalls erlauben
ip6tables -A INPUT -i eth0   -j ACCEPT
ip6tables -A OUTPUT -o eth0   -j ACCEPT
# Source-Routing-Pakete gefaehrlich, nicht zugelassen
ip6tables -A INPUT -m rt --rt-type 0 -j DROP
ip6tables -A FORWARD -m rt --rt-type 0 -j DROP
ip6tables -A OUTPUT -m rt --rt-type 0 -j DROP
# Verbindungslokale Adressen erlaubt
ip6tables -A INPUT -s fe80::/10 -j ACCEPT
ip6tables -A OUTPUT -s fe80::/10 -j ACCEPT
# Multicast-Pakete zulassen
ip6tables -A INPUT -s ff00::/8 -j ACCEPT
ip6tables -A OUTPUT -s ff00::/8 -j ACCEPT
# ICMP-Protokoll zur Fehlersuche zulassen
ip6tables -I INPUT  -p icmpv6 -j ACCEPT
ip6tables -I OUTPUT -p icmpv6 -j ACCEPT
ip6tables -I FORWARD -p icmpv6 -j ACCEPT
# Uneingeschraenkter Zugriff auf den IPv6-Tunnel aus dem Subnetz
ip6tables -A FORWARD -m state --state NEW -i eth0 -o sixxs -s 2a01:198:514::/48 -j ACCEPT
ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Ueber den Tunnel eingehende SSH-Verbindungen zulassen
#ip6tables -A FORWARD -i sixxs -p tcp -d 2a01:198:514::1  --dport 22 -j ACCEPT
# Ueber den Tunnel eingehenden Bittorrent-Traffic erlauben
ip6tables -A FORWARD -i sixxs -p tcp -d 2a01:198:514::1 --dport 33600:33604 -j ACCEPT
# Alles andere ist verboten
ip6tables -P INPUT   DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT  DROP

Speichern Sie das Skript aus Listing 5 als /root/fw.sh und aktivieren Sie dann die Regeln über den Befehl sh /root/fw.sh. Der Aufruf /etc/init.d/iptables-save sorgt dafür, dass die Regeln auch nach einem Neustart des Rechners aktiv bleiben.

Der Paketfilter erlaubt sämtlichen Traffic aus dem eigenen Subnetz über den IPv6-Tunnel nach außen. Er lässt eingehende Pakete jedoch nur dann zu, wenn als Protokoll entweder SSH oder aber Bittorrent zum Einsatz kommen. Bei Bedarf erweitern Sie das Skript nach Belieben um zusätzliche Protokolle. Eine sehr gute Einführung in das Thema Paketfilter auf Basis von Netfilter finden Sie unter [3].

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...