Comment envoyer un ping à l'hôte local en utilisant IPv6?

22

J'essaie de mieux comprendre IPv6 .

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, à partir 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 localhostj'obtiens:

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 localhostj'obtiens:

unknown host

Comment est-ce que j'utilise ping6? Ou plus précisément, quels changements faut-il apporter pour que cela ping6 localhostfonctionne (si possible)?

nafas
la source
3
Si vous êtes sous Linux, vous devriez généralement éviter ifconfiget route- préférer ip addret ip route, qui prennent en charge plus de fonctionnalités de mise en réseau et ont une sortie plus cohérente.
grawity
@grawity thx pour le tip mate, très utile
nafas

Réponses:

15

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`

Changements pour faire fonctionner ping6 localhost

Si vous souhaitez définir localhostcomme alias pour les deux pingetping6 ce n'est pas déjà le cas sur votre machine, il suffit d'écrire dans le /etc/hostsfichier les deux lignes:

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

Pour ce qui concerne l' alias actuellement utilisé sur votre système, vous pouvez vérifier votre fichier d'hôtes, /etc/hosts [ 1 ] ou à un autre endroit si sur un système différent [ 2 ] .
Vous trouverez peut - être ip6-localhost, ip6-loopback, ipv6-localhost, ipv6-loopbackou localhostlui - même ...


Quelques mots de plus

Je comprends bien votre confusion pour ce que j'ai lu dans le rfc6761 sur les "Noms de domaine à usage spécial" 6.3 [ 3 ] , sur le nom localhost ,

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

donc il faut attendre par défaut , mais:

  • Sur l' Ubuntu 14.04.3 LTS actuel mis à jour et intact, /etc/hostsj'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 SuSE Enterprise 10 système que je trouve localhost, ipv6-localhost,ipv6-loopback

    # special IPv6 addresses
    ::1             localhost ipv6-localhost ipv6-loopback
    
  • Sur un vieux 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 /etc/hostfichier et le modifier ou utiliser ce que vous trouverez faire, par exemple,

ping6 ipv6-localhost   # On some systems (maybe on Suse) 
ping6 ip6-localhost    # On some systems (maybe on Debian/*buntu)
Hastur
la source
réponse très détaillée merci, ce qui m'inquiète atm, nous serons obligés d'utiliser ipv6 très bientôt et pourtant, il y a tellement d'obstacles (ça ne pourrait pas être plus simple que localhost vraiment) et il n'y a pas de standardisation. Je suppose que nous n'y ferons rien tant que cela ne
causera pas
Comme vous l'avez vu des ::1travaux sur chacune de ces machines ... "La bonne chose au sujet des normes est que vous avez tellement de choix." ASTanenbaum [ 1 ] :-) Une solution sera trouvée ... peut-être la mauvaise! ;)
Hastur
, Je comprends parfaitement. ::1est l'ip (v6), où localhostest le hostname. entièrement mon opinion, mais je crois que si nous ne gardons pas la norme telle quelle, nous serons confrontés à de nombreux problèmes dans un avenir proche. J'espère vraiment qu'une fois ipv6 dépassé, nous n'aurons pas à taper par exemple ipv6.google.comau lieu degoogle.com
nafas
1
Il était clair que vous l'obteniez :-) ... BTW RFC 6761 (noms de domaine à usage spécial) a atteint le niveau de maturité proposé en février 2013. ... il est donc encore temps d'espérer le voir comme standard avant il sera trop tard.
Hastur
1
@nafas Ils ont ajouté IPv6 à google.com.
Matt Nordhoff
24

Essayer:

ping6 ::1

Le résultat ressemblerait à:

# 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

(Pareil pour ping6 -V.)

Archemar
la source
6
Les versions plus récentes de iputilsn'ont pas d' ping6utilitaire séparé , il a été fusionné avec ping. Pour ces versions, utilisez ping -6 ::1ou (car il ::1ne s'agit pas d'une adresse IPv4) ping ::1.
Lekensteyn
1
@Lekensteyn Lequel? La dernière version -6n'est même pas reconnue.
edmz
@black: Quelle version considérez-vous comme "la plus récente"? ping et ping6 ont été fusionnés dans iputils-s20150815 (vérifier ping -V). Votre distribution n'a peut-être pas encore été mise à niveau. (Et les BSD ont leur propre logiciel et n'utilisent pas d'iputils.)
grawity
@grawity: J'ai la dernière version, mais ce n'est pas la dernière version réelle et c'est bien OOD, même sur Arch Linux (20140519).
edmz
@black: "Latest but not the actual latest"? ... Quoi qu'il en soit, Arch a eu iputils-20150815 dans [testing] depuis plus d'un mois, bien que je ne sache pas quand il va être déplacé en stable.
grawity
9

localhostest le nom d'hôte qui résout l' 127.0.0.1adresse. Votre /etc/hostsfichier devrait avoir une entrée distincte pour ::1, probablement localhost6. Essayez donc ces derniers:

ping6 ::1
ping6 localhost6
gogators
la source
7
Un nom d'hôte peut se résoudre en plusieurs adresses à la fois, surtout s'il s'agit de protocoles différents. La plupart des systèmes alias localhostà la fois 127.0.0.1 et ::1.
grawity
1
@grawity Aucun des systèmes que j'ai vérifiés n'utilise localhostIPv6. Les noms que j'ai trouvé utilisé pour ::1étaient ip6-localhost, ip6-loopback, localhost6et localhost6.localdomain6.
kasperd
3
@kasperd, d'un Gentoo /etc/hosts: 127.0.0.1 localhost, ::1 localhost; Windows Vista est identique (à l'exception de la mise en place du fichier C:\Windows\System32\drivers\etc). MacOSX 10.9.5 y ajoute fe80::1%lo0 localhostun troisième nom.
Mark
3
@kasperd: Vous n'avez alors pas utilisé beaucoup de systèmes. Windows, Arche, CentOS, Ubuntu toutes les carte localhostà ::1. (Je pense que cela va être encore plus courant à mesure que les distributions adoptent systemd et activent nss_myhostname.)
grawity
2
CentOS 6 a :: 1 comme localhost6, bien que CentOS 7 ait localhost pour les deux. OpenWRT, Xenserver et Solaris ne contiennent aucune entrée IPv6.
qasdfdsaq