web-dev-qa-db-ja.com

IPv6を使用してlocalhostにpingするにはどうすればよいですか?

IPv6 を理解しようとしています。

最初に、私は ifconfig を試して、以下を取得します。

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

上記から、IPv6が有効になっていると想定できます(ここで間違っている場合は修正してください)。

ping localhostを使用すると、次のようになります。

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

しかし、ping6 localhostを使用すると、次のようになります。

unknown Host

ping6の使用方法を教えてください。より具体的には、ping6 localhostを機能させるためにどのような変更が必要ですか(可能な場合)。

22
nafas

短い答え [ 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`

ping6 localhostを機能させるための変更

localhostpingping6の両方のエイリアスとして設定する必要があり、マシンにまだ設定されていない場合、/etc/hostsファイルに両方の行を書き込むだけで十分です。

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

システムで現在使用されているエイリアスに関する問題については、ホストファイル/etc/hostsを確認できます [ 1 ] または別のシステムの場合は別のplace [ 2 ]
ip6-localhostip6-loopbackipv6-localhostipv6-loopbackまたはlocalhost自体が見つかります...


さらにいくつかの単語

rfc6761からについて読んだことについて、あなたの混乱が本当にわかりました「特殊用途ドメイン名」6.3 []、名前localhostについて、

ユーザーは、localhost名のIPv4およびIPv6アドレスクエリが常にそれぞれのIPループバックアドレスに解決されると想定する場合があります。

それはデフォルトとして期待されるはずですが:

  • 現在更新されていないUbuntu 14.04.3 LTSについて/etc/hostsip6-localhostip6-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
    
  • Suse Enterprise 10システムでlocalhostipv6-localhostipv6-loopbackが見つかりました

    # special IPv6 addresses
    ::1             localhost ipv6-localhost ipv6-loopback
    
  • 古いDebian GNU/Linux 8.2システムの場合localhostip6-localhostip6-loopback

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

つまり、私の限られた経験では、/etc/Hostファイルを調べて変更するか、次のようにして、あなたが見つけたものを使用する必要があります。

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

試してください:

ping6 ::1

結果は次のようになります。

# 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

ping6 -Vについても同様です。)

24
Archemar

localhostは、127.0.0.1アドレスに解決されるホスト名です。 /etc/hostsファイルには、::1の別のエントリが必要です。おそらくlocalhost6です。だからこれらを試してください:

ping6 ::1
ping6 localhost6
9
gogators