Wie pinge ich localhost mit IPv6?

22

Ich versuche IPv6 besser zu verstehen .

Als erstes versuche ich ifconfig und bekomme folgendes:

eth0      Link encap:Ethernet  HWaddr XXXXXXX
          inet addr:X.X.X.X  Bcast:X.X.X.X  Mask:XXXXXXXXX
          inet6 addr: XXXX::XXXX:XXX:XXXX:XXX/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:138752772 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67894054 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:67347428211 (67.3 GB)  TX bytes:168368922639 (168.3 GB)
          Interrupt:43

Daher kann ich davon ausgehen, dass IPv6 aktiviert ist (korrigieren Sie mich, wenn ich hier falsch liege).

Wenn ich jetzt benutze, ping localhostbekomme ich:

64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.026 ms
64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.019 ms
64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.025 ms
...

Aber wenn ich benutze, ping6 localhostbekomme ich:

unknown host

Wie verwende ich ping6? Oder genauer gesagt, welche Änderungen müssen vorgenommen werden, um die ping6 localhostArbeit zu ermöglichen (falls überhaupt möglich)?

Nafas
quelle
3
Wenn Sie auf Linux sind, sollten Sie in der Regel vermeiden ifconfigund route- bevorzugen ip addrund ip route, die mehr Netzwerkfunktionen unterstützen und eine konsistentere Ausgang.
Grawity
@grawity Danke für den Tipp Kumpel, sehr nützlich
Nafas

Antworten:

15

Kurze Antwort [ rcf4291 ]

ping6 ip6-localhost    # Or the alias you have in /etc/hosts file (See below)
ping6 0:0:0:0:0:0:0:1  # Similar to `ping 127.0.0.1` with 7 `:` instead of 4 `.`
ping6 ::1              # The used analogous of `ping 127.0.0.1`

Änderungen an der Arbeit machen ping6 localhost

Wenn Sie festlegen möchten localhostals Alias für beide pingundping6 , und es ist nicht bereits auf Ihrer Maschine, ist es genug , um zu schreiben in /etc/hostsDatei sowohl die Zeilen:

127.0.0.1       localhost
# ... and below
::1             localhost ipv6-localhost ipv6-loopback

In Bezug auf den aktuell auf Ihrem System verwendeten Alias können Sie Ihre Hosts-Datei überprüfen /etc/hosts [ 1 ] oder an einer anderen Stelle, wenn Sie sich auf einem anderen System befinden [ 2 ] .
Sie können feststellen ip6-localhost, ip6-loopback, ipv6-localhost, ipv6-loopbackoder localhostselbst ...


Noch ein paar Worte

Ich verstehe Ihre Verwirrung in der Tat für das, was ich aus dem RFC6761 über "Special-Use Domain Names" 6.3 [ 3 ] , über den Namen localhost , gelesen habe.

Benutzer können davon ausgehen, dass IPv4- und IPv6-Adressabfragen für Localhost-Namen immer in die jeweilige IP-Loopback-Adresse aufgelöst werden .

so sollte es als Standard zu erwarten, aber:

  • Auf dem aktuell aktualisierten und unberührten Ubuntu 14.04.3 LTS habe /etc/hosts ich folgenden Abschnitt mit gefunden ip6-localhost,ip6-loopback

    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    
  • Auf einem Suse - Enterprise - 10 - System fand ich localhost, ipv6-localhost,ipv6-loopback

    # special IPv6 addresses
    ::1             localhost ipv6-localhost ipv6-loopback
    
  • Auf einem alten Debian GNU / Linux 8.2 - System localhost, ip6-localhost,ip6-loopback

    # The following lines are desirable for IPv6 capable hosts
    ::1     localhost ip6-localhost ip6-loopback
    

Das bedeutet, dass Sie nach meiner begrenzten Erfahrung in Ihrer /etc/hostDatei nachsehen und diese ändern oder verwenden sollten, was Sie tun, z. B.

ping6 ipv6-localhost   # On some systems (maybe on Suse) 
ping6 ip6-localhost    # On some systems (maybe on Debian/*buntu)
Hastur
quelle
sehr ausführliche antwort danke, was mich beunruhigt atm, wir werden sehr bald ipv6 verwenden müssen und dennoch gibt es so viele hindernisse (es könnte nicht einfacher sein als localhost wirklich) und es gibt keine standardisierungen. Ich denke, wir werden nichts dagegen tun, bis es so viele Probleme verursacht ...
Nafas
Wie Sie gesehen haben, ::1funktioniert jede dieser Maschinen ... "Das Schöne an Standards ist, dass Sie so viele zur Auswahl haben." ASTanenbaum [ 1 ] :-) Eine Lösung wird gefunden ... vielleicht die falsche! ;)
Hastur
Ich verstehe es total, Kumpel. ::1ist die ip (v6), wo wie localhostist die hostname. Ganz meine Meinung, aber ich glaube, wenn wir den Standard nicht so wie er ist einhalten, werden wir in naher Zukunft mit vielen Problemen konfrontiert sein. Ich hoffe wirklich, dass wir nach dem Überholen von ipv6 nicht mehr z. B. ipv6.google.comstattgoogle.com
nafas 26.11.15
1
Es war klar , dass Sie es :-) ... BTW RFC 6761 (Special-Use Domain Names) erreicht die vorgeschlagene Standard Reifegrad im Februar 2013 ... also noch Zeit , um Hoffnung ist es als Standard zu sehen , bevor Es wird zu spät sein.
Hastur
1
@nafas Sie haben IPv6 hinzugefügt google.com.
Matt Nordhoff
24

Versuchen:

ping6 ::1

Das Ergebnis würde so aussehen:

# ping6 ::1
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.040 ms
(...)
64 bytes from ::1: icmp_seq=9 ttl=64 time=0.037 ms
^C
--- ::1 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 7998ms
rtt min/avg/max/mdev = 0.035/0.042/0.055/0.011 ms

Ubuntu 14.04.1 LTS (Trusty Tahr):

# ping ::1
ping: unknown host ::1
# ping -6 ::1
ping: invalid option -- '6'
Usage: ping [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]
        [-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]
        [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]
        [-w deadline] [-W timeout] [hop1 ...] destination
# ping -V
ping utility, iputils-s20121221

(Das gleiche für ping6 -V.)

Archemar
quelle
6
Neuere Versionen von iputilshaben kein separates ping6Dienstprogramm, mit dem sie zusammengeführt wurden ping. Verwenden Sie für diese Versionen ping -6 ::1oder (da dies ::1keine IPv4-Adresse ist) ping ::1.
Lekensteyn
1
@Lekensteyn Welche? Neueste Version -6wird nicht einmal erkannt.
Edmz
@black: Welche Version halten Sie für "aktuell"? ping und ping6 wurden in iputils-s20150815 (check ping -V) zusammengeführt. Ihre Distribution wurde möglicherweise noch nicht aktualisiert. (Und BSDs haben ihre eigene Software und verwenden keine iputils.)
Grawity
@grawity: Ich habe die neueste Version, obwohl es nicht die aktuellste Version ist, und es ist in der Tat OOD, sogar unter Arch Linux (20140519).
Edmz
@black: "Aktuell, aber nicht aktuell"? ... Wie auch immer, Arch hat iputils-20150815 seit über einem Monat in [testing], obwohl ich keine Ahnung habe, wann es in den Stall verschoben wird.
Grawity
9

localhostist der Hostname, der in die 127.0.0.1Adresse aufgelöst wird. Ihre /etc/hostsDatei sollte ::1wahrscheinlich einen separaten Eintrag für haben localhost6. Also probieren Sie diese:

ping6 ::1
ping6 localhost6
Gogatoren
quelle
7
Ein Hostname kann in mehrere Adressen gleichzeitig aufgelöst werden - insbesondere, wenn sie aus verschiedenen Protokollen stammen. Die meisten Systeme haben einen Alias localhostfür beide 127.0.0.1 und ::1.
Grawity
1
@grawity Keines der von mir überprüften Systeme verwendet localhostIPv6. Die Namen, für ::1die ich sie gefunden habe ip6-localhost, ip6-loopbackwaren localhost6,, und localhost6.localdomain6.
Kasperd
3
@kasperd, von einem Gentoo /etc/hosts: 127.0.0.1 localhost, ::1 localhost; Windows Vista ist identisch (mit Ausnahme des Ablegens der Datei C:\Windows\System32\drivers\etc). MacOSX 10.9.5 fügt fe80::1%lo0 localhostals dritten Namen hinzu .
Mark
3
@kasperd: Sie haben damals nicht viele Systeme verwendet. Windows, Arch, CentOS, Ubuntu alle localhostauf ::1. (Ich denke, dies wird noch häufiger vorkommen, wenn Distributionen systemd übernehmen und nss_myhostname aktivieren.)
grawity
2
CentOS 6 hat :: 1 als localhost6, obwohl CentOS 7 localhost für beide hat. OpenWRT, Xenserver und Solaris haben überhaupt keine IPv6-Einträge.
Qasdfdsaq