web-dev-qa-db-fra.com

Comment puis-je envoyer une requête ping à localhost en utilisant IPv6?

J'essaie de comprendre IPv6 mieux.

Tout d'abord, j'essaie ifconfig et j'obtiens ce qui suit:

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

Donc, de ce qui précède, je peux supposer que IPv6 est activé (corrigez-moi si je me trompe ici).

Maintenant si j'utilise ping localhost je reçois:

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
...

Mais quand j'utilise ping6 localhost je reçois:

unknown Host

Comment utiliser ping6? Ou plus précisément, quels changements faut-il apporter pour que ping6 localhost fonctionne (si possible)?

22
nafas

réponse courte [ 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`

Modifications permettant de travailler ping6 localhost

Si vous souhaitez définir localhost comme alias à la fois pour ping et ping6 et que ce ne soit pas déjà le cas sur votre ordinateur, il suffit d'écrire dans le fichier /etc/hosts les deux lignes:

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

En ce qui concerne l’alias actuellement utilisé sur votre système, vous pouvez vérifier votre fichier hosts, /etc/hosts [ 1 ] ou à un autre endroit si celui-ci est sur un autre système [ 2 ] .
Vous pouvez trouver ip6-localhost, ip6-loopback, ipv6-localhost, ipv6-loopback ou localhost lui-même ...


Quelques mots de plus

Je comprends votre confusion en effet pour ce que je lis dans le rfc6761 à propos de "Noms de domaine à usage spécial" 6,3 [ 3 ], à propos du nom localhost ,

Les utilisateurs peuvent supposer que les requêtes d'adresses IPv4 et IPv6 pour les noms d'hôte local seront toujours résolues en adresses de bouclage IP respectives .

so devrait être prévu par défaut mais:

  • Sur la mise à jour actuelle et intacte Ubuntu 14.04.3 LTS /etc/hosts J'ai trouvé la section suivante avec 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
    
  • Sur un système Suse Enterprise 10 , j'ai trouvé localhost, ipv6-localhost, ipv6-loopback

    # special IPv6 addresses
    ::1             localhost ipv6-localhost ipv6-loopback
    
  • Sur un ancien Debian GNU/Linux 8.2 système localhost, ip6-localhost, ip6-loopback

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

Cela signifie que, dans mon expérience limitée, vous devriez regarder dans votre fichier /etc/Host et le modifier ou utiliser ce que vous constaterez faire, par exemple:

ping6 ipv6-localhost   # On some systems (maybe on Suse) 
ping6 ip6-localhost    # On some systems (maybe on Debian/*buntu)
14
Hastur

Essayer:

ping6 ::1

Le résultat ressemblerait à ceci:

# 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

(Idem pour ping6 -V.)

24
Archemar

localhost est le nom d'hôte qui résout l'adresse 127.0.0.1. Votre fichier /etc/hosts doit comporter une entrée distincte pour ::1, probablement localhost6. Alors essayez ceci:

ping6 ::1
ping6 localhost6
8
gogators