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)?


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)

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


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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.