HOWTO: IPv6 unter CENTOS 7 konfigurieren


  • Um IPv6 unter CENTOS 7 zum laufen zu bringen war bei mir ein zusätzlicher Eintrag in der Datei /etc/sysconfig/network-scripts/ifcfg-eth0 notwendig.


    Nach der Installation standen dort folgende Einträge (IPv6 Adresse geändert):

    Code
    1. IPV6ADDR=2a03:4000:2b:dead:beaf:1234:5678:1234/64
    2. IPV6INIT=yes
    3. IPV6_DEFAULTGW=fe80::1

    Besonders verwirrend: das Default Gateway ist eine nicht routebare IPv6 Adresse (fe80::1). :rolleyes:Bei einem anderen Hoster (von dem ich gerade weg migriere), steht hier eine normale IPv6 Adresse.

    Zudem konnte ich den Verbindungsaufbau von einem andern Server ausserhalb von netcup Netz auf meinen Server mit IPv6 beobachten (tcpdump). Es schein so, als ob das SYN Packet verworfen wird, weil der Server nicht wusste wohin die Antwort geschickt werden muss. :/ Nach erfolgloser Sucher im Forum, bin ich zunächst davon ausgegangen, dass das Gateway falsch ist. :cursing:


    Die Lösung ist aber ganz einfach! :) Es fehlt nur eine Zeile im /etc/sysconfig/network-scripts/ifcfg-eth0:


    Code
    1. IPV6ADDR=2a03:4000:2b:dead:beaf:1234:5678:1234/64
    2. IPV6INIT=yes
    3. IPV6_DEFAULTGW=fe80::1
    4. IPV6_DEFAULTDEV=eth0


    Nach dem Neustart (systemctl restart network) funktioniert der Zugriff auch über IPv6. :D

    Die hier im Forum noch vorgeschlagene Lösung mit ndppd war bei mir nicht nötig. 8)


    Interessant in diesem Zusammenhang ist auch folgender Link:

    https://www.geeklab.info/2013/05/ipv6-neighbour-proxy/


    Bei mehreren IPv6 Adressen im gleichen Server ist ev. die dort beschriebene proxy_ndp erforderlich.

  • Stimmt, da steht im Prinzip alles und diese Seite habe ich auch gesehen. Sie beschreibt wie man weitere IP4 und IPv6 Adressen hinzufügen kann. Aber bei mir fehlte die Zeile IPV6_DEFAULTDEV=eth0 bereits nach der Installation und deshalb gab es auch keine Default Route und die voreingestellte IPv6 war nicht erreichbar.

  • Soweit meine Recherchen (5 Minuten) reichen ist das IPV6_DEFAULTDEV, dann notwendig wenn ein nicht geroutetes IPV6_DEFAULTGW gesetzt wird oder komische Technologie wie 6to4 Tunnel. Ansonsten sollte eigentlich die spezifizierung mit DEVICE oder HWADDR ausreichend sein. HWADDR wäre am vernünftigste sofern man keine udev Regeln dafür anwendet. Da spart man sich so das eine oder andere Abenteuer mit openvswitch das die Interfaces nicht mehr richtig sortieren kann.


    Hast du ggf. die Möglichkeit es auszuprobieren mit HWADDR oder DEVICE?

  • Hallo Skulduggery


    Danke für deinen Hinweis! In meinem Fall ist die IPV6_DEFAULTGW eine nicht geroutete Adresse: fe80::1

    Die HWADDR ist gesetzt und passt zum Interface. Dieser Parameter war bereits gesetzt, hat aber offenbar nicht ausgereicht für IPv6 über nicht routebare Adressen. Ich will ja nicht nur von aussen erreichbar sein, sondern auch antworten können! Dazu muss der Server die Antwort an das GW schicken. Wenn IPV6_DEFAULTDEV gesetzt ist, und nur dann, habe ich den dafür notwendigen folgenden Eintrag in der Routing Tabelle:


    Code
    1. # route -n -6|grep UG
    2. ::/0                           fe80::1                    UG   1   4314105 eth0

    Mein Centos7 ist noch ein Stock Image, ich habe keine udev Rules definiert. Inzwischen ist auch alles migriert und es funktioniert alles. Auch docker (ich habe einen einzelnen Container), Verbindungen über Firewall Exception auf andere Server mit IPv6 und der Fallback auf IP4 wenn IPv6 routing nicht möglich ist (sofern ein DNS Eintrag für IP4 vorhanden ist, versteht sich).


    Gibt es bei mir einen 6to4 Tunnel? Ich kenne das nur von Routern. Der Server ist aber nicht als Routern konfiguriert sondern hat ledigilch dual stack, d.h. IP4 und IPv6 sind konfiguriert. Das ist die default Konfiguration für Linux. Mit einen 6to4 Tunnel kann man meines Wissens IPv6/IP4 Adressen NATen. Das mache ich hier nicht und ich glaube da ist auch nichts konfiguriert worden (weder von mir noch vorkonfiguriert).


  • Besonders verwirrend: das Default Gateway ist eine nicht routebare IPv6 Adresse (fe80::1). :rolleyes:Bei einem anderen Hoster (von dem ich gerade weg migriere), steht hier eine normale IPv6 Adresse.

    [...]

    Nach erfolgloser Sucher im Forum, bin ich zunächst davon ausgegangen, dass das Gateway falsch ist. :cursing:


    fe80::1 als Gateway ist de facto der Standard für ein Uplink-Gateway bei IPv6. Das wird dir überall begegnen. Wenn da eine andere IPv6-Adresse steht, dann macht der Hoster sein eigenes Ding.