Frage zu IPv4/IPv6 Dual Stack Problem

Pius Noel
Pius Noel
Hallo zusammen. Aus technischen Gründen muss ich unsere Regionen kurzfristig auf einen neuen Server mit anderer Virtualisierung (LXD) zügeln und bin dabei auf ein lästiges Problem mit dem IPv4/IPv6 Dual Stack gestossen.

Das Problem ist soweit simpel: der Server hat sowohl eine IPv4 als auch eine IPv6 Adresse und OpenSim 0.8.3.0 Dev PLUS Metropolis Edition [018] verwendet dabei immer die IPv6 Adresse und die Region bleibt natürlich unerreichbar.

Ich dachte, dass es genügt, wenn ich in der Regions.ini die SYSTEMIP durch die IPv4 Adresse ersetze. Das ist aber nicht der Fall, d.h. unter show region  wird sowohl unter Region address  als auch External endpoint  immer meine IPv6 Adresse ausgewiesen.

Ich habe in der Regions.ini folgende Einträge versucht:
1) ExternalHostName = 94.130.31.9
2) ExternalHostName = "94.130.31.9"
3) ExternalHostName = SYSTEMIP

Das Resultat ist aber immer dasselbe, d.h. es wird immer die IPv6 Adresse verwendet. Lässt sich das irgendwie ändern oder mache ich etwas falsch? 

Falls nein, dann kann ich das zwar anderweitig konfigurieren, aber es wäre für mich am einfachsten wenn ich das Problem über die OpenSim-Konfiguration oder ggf. einem DNS-Eintrag für die IPv4-Adresse lösen könnte. 

Comments

  • Sheera Khan
    Sheera Khan
     Moderator
    Huhu Pius,

    verwendest Du denn die IPv6 Adressen? Wenn nicht, dann ist es am einfachsten zu lösen, indem Du IPv6 deaktivierst. Das geht unter Linux mit dem Kommando:
    echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
    Danach kannst Du testen, ob noch alles funktioniert, im schlimmsten Fall (nix geht mehr!) müsstest Du nur den Server (Deine virtuelle Maschine) neu booten und alle Einstellungen sind wieder auf dem alten Stand.

    Um diese Einstellung dauerhaft zu machen, müsstest Du eine Datei anlegen (z.B. /etc/sysctl.d/01-disable-ipv6.conf) und dort reinschreiben:
    net.ipv6.conf.all.disable_ipv6 = 1
    Nach einem Neustart müsste dann die Einstellung wieder korrekt sein, d.h. IPv6 sollte inaktiv sein. Je nach Linux-Distribution kann der Dateiname aber etwas variieren, letztlich muss man es in die Datei /etc/sysctl.conf eintragen, da die aber leicht mal durch andere Quellen verändert wird, z.B. Plesk u.ä. Server-Management-Software, verwendet man bei den meisten Distributionen das /etc/sysctl.d Verzeichnis.

    Sollte es nicht ganz klappen, müsstest Du mir mal das Betriebssystem und Version durchgeben, dann kann ich nachschauen, wie die Dateien dort verwaltet werden ...

    Ciaoo

    Sheera

    PS.: Quelle der Anleitung ist das Thomas-Krenn-Wiki: https://www.thomas-krenn.com/de/wiki/IPv6_deaktivieren

    Thanked by: Pius Noel
  • Pius Noel
    Pius Noel
     Member
    Danke Sheera.

    Das mit dem Deaktivieren war mir schon klar. Da ich mittlerweilen fast überall wo es möglich ist IPv6 verwende, hätte ich gerne IPv6 mitkonfiguriert. Damit könnte ich z.B. Backups auf VM's machen die nur IPv6 haben oder von solchen mit ssh direkt auf den Container mit OpenSim zugreifen.

    Wie bereits erwähnt, es muss nicht unbedingt sein, aber es wäre für mich ein nettes Feature. Dazu kommt, dass ich Mitglied eines Konsortiums bin, das sich für IPv6 stark macht ;)


  • Mareta Dagostino
    Mareta Dagostino
     Member edited August 31
    Hallo Pius,

    urlaubsbedingt was spät die Antwort, aber vielleicht hilft es ja noch. Mein Server läuft mit IPv4 und IPv6, und die OpenSim Regionen (Metropolis Edition zeitweise, sonst Arriba) kommen problemlos über IPv4. In der OpenSim Konfiguration muss nichts besonderes gemacht werden, die ganze Magie steckt wohl in der allgemeinen Linux-Konfiguration.

    /etc/network/interfaces
    # Loopback device:
    auto lo
    iface lo inet loopback
    iface lo inet6 loopback

    # device: eth0
    auto eth0
    iface eth0 inet static
    address 5.9.70.104
    netmask 255.255.255.224
    gateway 5.9.70.97
    # default route to access subnet
    up route add -net 5.9.70.96 netmask 255.255.255.224 gw 5.9.70.97 eth0

    iface eth0 inet6 static
    address 2a01:4f8:161:8062::2
    netmask 128
    gateway fe80::1

    /etc/hosts

    # IPv4
    127.0.0.1 localhost.localdomain localhost
    5.9.70.104 hyperweb.eu
    #
    # IPv6
    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts
    2a01:4f8:161:8062::2 hyperweb.eu
    DNS-Eintrag (beim Betreiber des Nameservers, hier Hetzner):
    $TTL 86400
    @ IN SOA ns1.first-ns.de. postmaster.robot.first-ns.de. (
    2017030102 ; serial
    14400 ; refresh
    1800 ; retry
    604800 ; expire
    86400 ) ; minimum

    @ IN NS robotns3.second-ns.com.
    @ IN NS robotns2.second-ns.de.
    @ IN NS ns1.first-ns.de.

    @ IN A 5.9.70.104
    localhost IN A 127.0.0.1
    mail IN A 5.9.70.104
    www IN A 5.9.70.104
    @ IN AAAA 2a01:4f8:161:8062::2
    localhost IN AAAA ::1
    mail IN AAAA 2a01:4f8:161:8062::2
    www IN AAAA 2a01:4f8:161:8062::2
    ftp IN CNAME www
    imap IN CNAME www
    loopback IN CNAME localhost
    pop IN CNAME www
    relay IN CNAME www
    smtp IN CNAME www
    @ IN MX 10 mail
    Reverse-DNS-Eintrag (beim Betreiber des Nameservers, hier Hetzner):
    5.9.70.104 => hyperweb.eu
    Wo du in einem IPv6 Konsortium bist, wird dich vielleicht gruseln, wie ich mir einfach eine einzelne IPv6 Adresse statisch gegriffen habe. Eigentlich soll man ja ganze Subnetz-Bereiche zuweisen, das war mir aber zu lästig beim Routen zur Virtuellen Maschine. (Die ist hier der Übersichtlichkeit wegen rausgelöscht.)

    Vielleicht hilft es ja. Wenn du an weiteren Konfig-Dateien interessiert bist, melde dich einfach.

    Liebe Grüße,
    Mareta
    Thanked by: Pius Noel
  • Pius Noel
    Pius Noel
     Member
    Hallo Mareta, danke für deine Ausführungen. sobald ich mal Zeit finde werde ich die Sache genauer analysieren. Im Prinzip entspricht deine IPv6 Konfiguration auch meiner.

    Bei meinem "Server" handelt es sich um einen virtuellen Server, bzw. einem LXD Container mit einer Routed Bridge Konfiguration, wie sie im Wiki von Hetzner z.B. für Proxmox/LXC-Konfigurationen beschrieben wird. Das macht es vielleicht ein bisschen komplizierter. 

    Beim Simulator für OSGrid muss ich in der Regions.ini die IP Adresse anstelle von SYSTEMIP fest eintragen.

    Ich hab jetzt die IPv6 Konfiguration für den Opensim-Container einfach mal auskommentiert und die DNS-Eintrage entfernt.
  • Mareta Dagostino
    Mareta Dagostino
     Member edited September 2
    Hallo Pius,

    SYSTEMIP benutze ich auch nicht, auf Servern habe ich ja systembedingt immer eine bekannte feste IP. Deshalb kann ich dazu keine Erfahrungen beitragen, theoretisch müsste aber die Metro-Edition immer die von außen sichtbare IP ermitteln. (Dafür wurde sie ja extra modifiziert.)

    Meine Virtuelle Maschine hat ebenfalls IPv4 und IPv6, ich betreibe sie mit QEMU und Virsh. Im Folgenden ergänze ich die Einträge, wie die IP durchgeschliffen wird. Im Host muss das Routing für IPv6 erlaubt sein: "net.ipv6.conf.all.forwarding=1" in /etc/sysctl.conf

    Ergänzung im DNS-Eintrag des Rechenzentrums nur für die zweite IPv4 Adresse. IPv6 Adressen bekommt man ja in rauhen Mengen zugeteilt, da kümmere ich mich lokal um die Zuordnung.
    ...
    freifunk IN A 5.9.70.120
    ...
    5.9.70.120 => freifunk.hyperweb.eu
    Jetzt wieder /etc/network/interfaces
    # device: virbr1
    auto virbr1
    iface virbr1 inet static
    # fixed MAC address used also in ebtables and QEMU config
    hwaddress ether 52:54:00:b3:79:8c
    # main IP address
    address 5.9.70.104
    netmask 255.255.255.224
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    pre-up brctl addbr virbr1

    iface virbr1 inet6 static
    # => change IPv6 "netmask" of eth0 to 128 if not already set.
    # main IPv6 address
    address 2a01:4f8:161:8062::2
    netmask 64
    Jetzt weiter auf dem Guest, also in der Virtuellen Maschine

    /etc/network/interfaces
    # Das lokale Interface
    auto lo
    iface lo inet loopback
    iface lo inet6 loopback

    # Verbindung zum Wirtsrechner, dort ins echte Internet geroutet
    auto eth0
    iface eth0 inet static
    # Zusatz-IP-Adresse von Hetzner
    address 5.9.70.120
    netmask 255.255.255.224
    # Haupt-IP-Adresse des Root-Servers
    gateway 5.9.70.104

    iface eth0 inet6 static
    # Freie IPv6-Adresse aus dem zugewiesenen Adressband
    address 2a01:4f8:161:8062::3
    netmask 64
    # Haupt-IPv6-Adresse des Root-Servers
    gateway 2a01:4f8:161:8062::2
    # Statisches Routing
    post-up ip -6 addr add 2a01:4f8:161:8062::3/64 dev eth0
    post-up ip -6 route add 2a01:4f8:161:8062::2/64 dev eth0
    post-up ip -6 route add default via 2a01:4f8:161:8062::2
    /etc/hosts
    127.0.0.1       localhost
    127.0.1.1 freifunk.salzmagazin freifunk

    # The following lines are desirable for IPv6 capable hosts
    ::1 localhost ip6-localhost ip6-loopback
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    Im Ergebnis auf IPv6 Seite hat der Host jetzt die IP [2a01:4f8:161:8062::2] und spielt Gateway für den Guest. Der Guest hat die IP [2a01:4f8:161:8062::3].

    EDIT nur als Hintergrundinfo: QEMU legt zur Laufzeit automatisch ein Interface "virbr0" an und macht damit irgendwelche Magic, die für Clients zwar praktisch ist, aber für Server untauglich. Deshalb bin ich auf ein separates Interface "virbr1" umgezogen und ignoriere "virbr0".

    Liebe Grüße,
    Mareta
    Thanked by: Pius Noel
Sign In or Register to comment.

Welcome

It looks like you're new here. If you want to get involved, click one of these buttons!

Discussions

© Copyright 2017 - Metropolis Metaversum
All times are GMT