vServer IPV6 /64 Subnet und DNS Eintrag?

  • Hi,


    ich habe einen vServer mit einer IPV4 Adresse mit dem passenden A Record. Nun habe ich auch ein IPV6 /64 Subnet erhalten.
    Leider kenne ich mich IPV6 noch nicht wirklich aus und kann mit /64 subnet nichts anfangen.
    Beim DNS AAAA Records kann ich doch nur eine IPv6 Adresse hinterlegen oder? Aber welche nehme ich aus diesem Subnet jetzt? Ist das mit dem /64 Subnet überhaupt richtig auf dem vServer oder benötige ich eine einzelne IPv6 Adresse?
    Hat jemand hier Erfahrungen und kann mich kurz abholen oder auf eine gute Beschreibung verweisen? Ich habe leider nichts gutes für mein Problem gefunden.


    Danke
    Grüße
    Martin

  • Ich bin (noch) kein IPv6 Experte, aber das 64er Subnet kannst du ähnlich verwenden wie bei IPv4.
    Du musst wohl aber einzelne IPv6 Adresse im DNS eintragen.


    Dennoch ist Voraussetzung, dass überhaupt irgendwas mit IPv6 läuft, dass deine Ethernet-Karte eine IPv6 Adresse aktiv hat.
    Die kann man wie bisher über verschiedene Varianten zuweisen.


    Entweder manuell konfigurieren mit den Daten vom Provider. Oder die unter IPv6 verfügbare eine Autokonfiguration durch den nächsten Router versuchen. Ob das funktioniert hängt aber wohl auch vom Provider ab. Ich bin mir auch nicht sicher wie das bei der Autokonfiguration mit der Adressstabilität aussieht. (Ob du nach einem Reboot z.b. wieder die gleiche bekommen würdest).
    http://www.ipv6-portal.de/info…ik/autokonfiguration.html


    Vielleicht ist es wichtig zu wissen, dass man unter Linux IPv4 & IPv6 parallel an ein und der selben Netzwerkkarte laufen lassen kann. Ich glaube das wird im Windows auch so sein.
    Also prinzipiell würde ich IPv4 nicht antasten, und IPv6 einfach manuell eine IPv6 im zur Verfügung gestellten Subnet eintragen.


    Wichtig zu wissen bei den Adressen ist, dass ein "::" für "beliebig viele aufeinander folgende Blöcke von "0000" stehen kann und dass eine voranstehende 0 weggelassen werden kann. Das erleichtert die Eingaben und verkürzt die Adresslängen.
    Für Google IPv6 z.B: 2001:4860:0:2001::68 bedeutet dies, dass die volle Adresslänge ausgeschrieben so aussieht:
    2001:4860:0000:2001:0000:0000:0000:0068


    In hexadezimal dargestellt sind es 8x4 Blöcke der Lesbarkeit halber mit ":" abgetrennt. Binär sind es bei IPv6 128 bit Adresslängen.
    Wenn du jetzt ein 64 Subnet bekommen hast, dann heißt das dass die letzten 64 bit von dir genutzt werden könnten. Die ersten 64 sind fix vergeben und sieht vielleicht so aus: "abcd:efab:cdef:abcd"
    Du kannst jetzt die erste Adresse eventuell so aussehen lassen: "abcd:efab:cdef:abcd::1"


    IPv6 kannst du dann mit ping6 testen. Das wenn die Adresse damit erreichbar ist sollte alles passen.
    Nicht alle Provider können ipv4<->v6. Der ping6 könnte u.U. nicht funktionieren wie bei meinem privaten ISP.


    Es gibt dazu auch online ping6 tools: http://www.subnetonline.com/pa…ools/online-ipv6-ping.php
    Da kannst du erst die Adresse direkt probieren und dann den DNS Eintrag.

  • Aber welche nehme ich aus diesem Subnet jetzt? Ist das mit dem /64 Subnet überhaupt richtig auf dem vServer oder benötige ich eine einzelne IPv6 Adresse?


    Betrachte es wie IPv4, irgendeine gewürfelte ist auch gut. Möglichkeiten gibts ja viele mit /64. Nur gab es bei IPv4 schon lange nicht mehr den Luxus derart viele Addressen frei zur Verfügung zu haben. Das /64 Subnet wird, soweit ich das verstanden, habe aktuell oft vergeben. Auch /56 und /48 ist noch leicht zu bekommen. Damit hast du Milliarden von Adressen mit denen du anstellen kannst was du willst. :)
    Das tolle dabei ist, dass du jetzt jeder Glühbirne, jedem Amazon-Dash-Button, jedem Container, jeder virtuellen Maschine usw. eine direkte öffentliche IP vergeben kannst, ohne Proxy/NAT oder ähnliches.


    Sicherheitstechnisch ist das eine andere Sache...



    32 bit Adressen (IPv4) sind gesamt 4.294.967.296
    Damit hätte man pro Erdenbürger rund 0,5 Adressen.


    64 bit Adressen sind gesamt 18.446.744.073.709.551.616
    Naja, ich hab keine Ahnung wie viele /64er Netze pro Erdenbürger das jetzt genau wären... Jedenfalls hast du eins von denen bekommen.
    Und du hast in dem einen Netz Platz für 18.446.744.073.709.551.616 denn über die zweiten 64 bit der 128 bit Adressierung bist du der Meister. ;)


    Ja, ich denke dass es richtig ist, dass du die /64 bekommen hast, es gibt zur Zeit genug davon. Aber es ist auch richtig, dass der DNS einen AAAA Eintrag mit einer einzigen von diesen 18.446.744.073.709.551.616 Möglichkeiten enthalten soll.


    Anhand vom Google und ORF DNS Eintrag sieht man, dass hier wirklich eine Adresse drin steht:

    Code
    1. hargut@bench:~$ dig +nocmd google.com any +multiline +noall +answer | grep AAAA
    2. google.com. 2 IN AAAA 2a00:1450:4001:816::200e
    3. hargut@old-bench:~$ dig +nocmd orf.at any +multiline +noall +answer | grep AAAA
    4. orf.at. 85817 IN AAAA 2a01:468:1000:9::150
    5. orf.at. 85817 IN AAAA 2a01:468:1000:9::149
    6. hargut@old-bench:~$
  • Hi,
    danke erstmal für die Antwort.
    Also ein wenig Grundwissen über IPv6 ist vorhanden. Vielleicht ist das ganze am praktischen Beispiel besser zu erklären.


    ip addr gibt mir folgendes aus

    Code
    1. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    2. inet6 2a05:bec0:1:1:c831:f2ff:fe47:f6ea/64 scope global mngtmpaddr dynamic
    3. valid_lft 2591750sec preferred_lft 604550sec
    4. inet6 fe80::c831:f2ff:fe47:f6ea/64 scope link
    5. valid_lft forever preferred_lft forever


    Soweit ich das verstanden habe ist die fe80 Adresse für die Kommunikation im LAN. Die 2a05 ist für die Kommunikation im Internet, richtig soweit?


    Irgendwie bin ich mir unsicher ob ich wirklich ein /64 Subnet habe, so lese ich das zwar aber bin mir nicht sicher. Wenn es ein Subnet wäre dann müsste doch die erste Adresse mein Network sein oder nicht?
    Im DNS AAAA Record habe ich jetzt die erste Adresse also 2a05:bec0:1:1:c831:f2ff:fe47:f6ea angegeben. Und erstmal scheint dies zu funktionieren aber ich bin mir halt nicht sicher.
    Testen kann ich das mangels IPv6 Client nur auf dem Server. Ich kann die IPv6 Adresse anpingen und mit w3m -6 kann ich von lokal auch die Adresse aufrufen.
    Die nächste Adresse, also 2a05:bec0:1:1:c831:f2ff:fe47:f6eb kann ich nicht anpingen.


    Grüße
    Martin


  • Soweit ich das verstanden habe ist die fe80 Adresse für die Kommunikation im LAN. Die 2a05 ist für die Kommunikation im Internet, richtig soweit?


    Ja, das ist richtig. Bei IPv6 ist es auch üblich, dass ein Interface mehrere Adressen verwendet. fe8x wird nur lokal verwendet, der Router gibt nichts aus dem Adressbereich weiter, das wird oft als non-routable bezeichnet.



    Irgendwie bin ich mir unsicher ob ich wirklich ein /64 Subnet habe, so lese ich das zwar aber bin mir nicht sicher. Wenn es ein Subnet wäre dann müsste doch die erste Adresse mein Network sein oder nicht?


    Ein Subnet ist eigentlich unabhängig von deiner Netzwerkadresse (diese muss natürlich schon im Subnet liegen). 192.168.1.244/24 ist auch eine valide CIDR Angabe. Früher hat man das oft auf zwei Zahlen aufgeteilt. Da wurde es als IP 192.168.1.244 & Netmask 255.255.255.0 angegeben. Bei 192.168.1.244/24 heißt es, dass die ersten 24 bit die Netmask sind, und die sind im Netzwerk "fix". Die letzten 8 bit (IPv4 32 bit - 24 bit fix) sind das Netzwerk, bei IPv4 bleiben da 256 Adressen. Binär würden die /24 bedeuten, dass die ersten 24 bit auf "1" stehen, was in üblicher IPv4 Notation den 255.255.255.0 entspricht. Die /24 sind somit nichts anderes als eine effektivere/kürzere Darstellung der Netmask.


    Wenn man das ganze jetzt auf deine öffentliche IPv6 umlegt dann ist der fett markierte Teil der "fixe" der Rest ist Subnet. Sprich alle Adressen die im Subnet aufgerufen werden werden direkt kontaktiert. Da geht nichts über einen Router.
    2a05:bec0:1:1:c831:f2ff:fe47:f6ea/64


    Die Adresse könnte genauso gut aber auch die erste im Subnet sein. Das steht dir frei zur Wahl und somit müsste das folgende Beispiel auch funktionieren und von extern erreichbar sein, wenn du die Adresse manuell am Interface vergibst bzw. hinzufügst:
    2a05:bec0:1:1::1/64


    Ich vermute stark, dass es sich bei deiner Adresse um eine "automatisch" erstellte handelt. Bei dem Mechanismus wird bei IPv6 die MAC-Adresse an einer bestimmten Stelle, jedoch aufgetrennt (bei 48 bit MAC-Adressen), eingebunden:
    https://mirrors.bieringer.de/Linux+IPv6-HOWTO-de/x625.html
    http://packetlife.net/blog/2008/aug/4/eui-64-ipv6/


    Leider kann man das anhand vom geposteten Output nicht direkt feststellen, da der keine MAC Adresse enthält.
    Ich gehe davon aus, dass deine MAC-Adresse am Interface "c8:31:f2:47:f6:ea" ist. Mich würde interessieren ob das stimmt. :)



    Grüße,
    Harald


  • Testen kann ich das mangels IPv6 Client nur auf dem Server. Ich kann die IPv6 Adresse anpingen und mit w3m -6 kann ich von lokal auch die Adresse aufrufen.


    Sofern deine Firwall ICMP nicht geblockt hat kannst du zum Testen den DNS Record oder die IPv6 Adresse in das oben erwähnte online-ping6-tool eingeben und schauen ob der Host von extern pingbar ist.

  • Ja das mit der MAC habe ich auch schon öfter gelesen. Die MAC stimmt fast. Sie beginnnt mit ca und nicht c8 der Rest ist identisch.
    Und ja die IPv6 Adresse wurde automatisch zugewiesen.


    Sorry das ich nochmal direkt nachfragen muss. Habe ich nun ein Subnet oder eine IP-Adresse? Kann ich im DNS mein AAAA Eintrag so lassen und alles funktioniert?


    Grüße
    Martin

  • Ein Subnet beschreibt die Größe eines Netzwerks.
    Der Einfachheit halber bleiben wir bei IPv4, das ist ein bisschen übersichtlicher:


    192.168.1.244/24 bedeutet dass das Netz "8-bit" groß ist.
    Sprich alle adressen von: 192.168.1.0-192.168.1.255 gehören zu dem Netz.
    Anders geschrieben ist die Netmask von 192.168.1.244 255.255.255.0.


    Wenn jetzt 192.168.1.244 eine Anfrage an z.B. 192.168.1.12 schickt, dann wird 192.168.1.12 direkt kontaktiert.
    Es sind an der Kommunikation nur diese zwei Rechner beteiligt (Layer 2).


    Wenn 192.168.1.244 nun aber 192.168.77.33 kontaktiert, dann weiß der Rechner Anhand der Netmask, dass die Adresse außerhalb seines Subnetzes liegt und sieht in der Routing Tabelle nach wie dieser Host kontaktiert werden kann. Gibt es in der Routing Tabelle keinen Eintrag für das Netz des zu kontaktierenden Hosts, dann wird das "Default Gateway" zur Kontaktaufnahme genommen.
    Alles außerhalb des Subnetzes benötigt einen dritten Kommunikationsteil (Layer 3).


    Ein DNS Eintrag ist ein IP -> Name Eintrag. Als Client kommuniziert man meist direkt mit einem Host und nicht mit einem Netzwerk (außer Broadcasts, oder ähnliches).
    Somit muss der DNS Eintrag eine einzelne IP sein, und nicht ein Netzwerk. Der Browser würde ja nicht wissen, was er tun soll, wenn du den DNS Namen eingibst und er bekommt als Antwort ein Subnetz in dem theoretisch
    18.446.744.073.709.551.616 Hosts gemeint sein könnten. Praktisch liegt die einzutragende Adresse im DNS aber in deinen Händen du kannst eine von diesen vielen Möglichkeiten verwenden. Es muss nicht die sein, die automatisch generiert wurde.


    In der Netzwerktechnik werden Subnetz Einträge an Switches / Router verwendet. Wenn z.B. auf Port1 von einem Router ein Switch dranhängt mit einem Netz (z.B. 192.168.1.0/24) und auf Port2 ein anderer mit einem Netz (192.168.77.0/24).
    Dann sind in der Routing Tabelle vom Router z.B. folgende Einträge:
    192.168.1.0/24 -> ethPORT1
    192.168.77.0/24 -> ethPORT2


    Wenn am Port17 eine Anfrage nach 192.168.1.244 kommt, dann weiß der Router dass er diesen Host über ethPORT1 erreichen kann.
    Wenn am Port17 eine Anfrage nach 192.168.77.33 kommt, dann weiß der Router dass er diesen Host über ethPORT2 erreichen kann.



    In deinem vServer Fall gibt es irgendwo (wahrscheinlich am vServer Host und/oder am Switch davor) eine Routing Tabelle in der der steht:
    2a05:bec0:1:1::/64 -> eth0MARTIN_vSERVER


    Was heißt alle Pakete die an 2a05:bec0:1:1: adressiert sind landen auf deinem ethMARTIN_vSERVER was dein vSERVER damit macht und ob es eine Antwort gibt, ob dort weiter geroutet, das hängt von deiner Konfiguration ab.
    Aktuell hast du in dem Adressbereich "nur" 2a05:bec0:1:1:c831:f2ff:fe47:f6ea als Host aktiv. Somit kann nur dieser erreicht werden. Bei allen anderen würde ein "Timeout" oder "Host not reachable" als Antwort kommen.



    Veilleicht ist in dem Zusammenhang auch noch wichtig, dass die Netmask nicht /24 (IPv4) oder /64 (IPv6) sein muss. In IPv4 ist auch oft /16 verwendet worden, oder /8.
    /16 ist meist der Adressbereich 172.16.0.0-172.16.255.255. /8 oft 10.0.0.0-10.255.255.255. Je nach physischer Netzwerkgröße macht das eine oder andere mehr Sinn.
    Die Netmask könnte genauso gut /19 sein. Da muss man dann aber ein bisschen Rechnen um auf die Größe des Netzes zu kommen:
    123.123.17.12/19 wäre eine IP im Netzwerk: 123.123.0.0 - 123.123.31.255



    Grüße,
    Harald

  • Sorry das ich nochmal direkt nachfragen muss. Habe ich nun ein Subnet oder eine IP-Adresse? Kann ich im DNS mein AAAA Eintrag so lassen und alles funktioniert?


    Du hast ein Subnet vom Provider erhalten, bei dem in dieser Konfiguration alles das auf das Subnetz adressiert ist auf deiner Netzwerkkarte des vServers landet.
    Du brauchst aber eine einzelne IP-Adresse in dem Netzwerk um erreichbar zu sein.


    Welche IP du wählst kannst du selber entscheiden, solange diese Teil des Subnetzes ist, wird es funktionieren.
    Ob du eine davon, oder 100.000 nutzt hängt davon ab was dein Server machen soll. Wenn du ISP bist und der Server der Eintritt in dein Rechenzentrum ist, dann brauchst du vielleicht viele davon.


    Wenn du nur einen einzelnen "Webserver" betreibst, dann brauchst du vielleicht nur eine davon. Wenn du einen Webserver mit IP-based virtualhosts aufsetzt, dann kannst du vielleicht auch mehrere IPs in dem Subnetz verwenden und verschiedene Adressen auf der Netzwerkkarte für verschiedene Subdomains mit eigenen DNS einträgen vergeben.