Como sibilo localhost usando IPv6?

22

Estou tentando entender melhor o IPv6 .

Em primeiro lugar, tento ifconfig e obtenho o seguinte:

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

Portanto, pelo exposto, posso assumir que o IPv6 está ativado (corrija-me se estiver errado aqui).

Agora, se eu usar ping localhost, recebo:

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

Mas quando eu uso ping6 localhost, recebo:

unknown host

Como eu uso ping6? Ou, mais especificamente, que mudanças precisam ser feitas para dar ping6 localhostcerto (se possível)?

nafas
fonte
3
Se você estiver no Linux, geralmente evite ifconfige route- prefira ip addre ip route, que suporte mais recursos de rede e tenha uma saída mais consistente.
grawity
thx @grawity para o companheiro de ponta, muito útil
Nafas

Respostas:

15

Resposta curta [ 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`

Alterações para tornar o trabalho ping6 localhost

Se você deseja definir localhostcomo alias para ambos pingeping6 ainda não o é em sua máquina, basta escrever no /etc/hostsarquivo as duas linhas:

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

No que diz respeito ao alias atualmente usado em seu sistema, você pode verificar o arquivo de hosts, /etc/hosts [ 1 ] ou em um local diferente, se estiver em um sistema diferente [ 2 ] .
Você pode encontrar ip6-localhost, ip6-loopback, ipv6-localhost, ipv6-loopbackou localhostsi ...


Algumas palavras mais

Compreendo sua confusão de fato pelo que li no rfc6761 sobre "Nomes de Domínio de Uso Especial" 6.3 [ 3 ] , sobre o nome localhost ,

Os usuários podem assumir que as consultas de endereço IPv4 e IPv6 para nomes de host local sempre serão resolvidas para o respectivo endereço de loopback IP .

portanto , deve ser esperado como padrão, mas:

  • No atual Ubuntu 14.04.3 LTS atualizado e intocado, /etc/hostsencontrei a seção a seguir com 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
    
  • Em um Suse Enterprise 10 sistema Eu encontrei localhost, ipv6-localhost,ipv6-loopback

    # special IPv6 addresses
    ::1             localhost ipv6-localhost ipv6-loopback
    
  • Em um velho Debian GNU / Linux 8.2 sistema localhost, ip6-localhost,ip6-loopback

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

Isso significa que, na minha experiência limitada, você deve procurar no seu /etc/hostarquivo e modificá-lo ou usar o que achará fazer, por exemplo,

ping6 ipv6-localhost   # On some systems (maybe on Suse) 
ping6 ip6-localhost    # On some systems (maybe on Debian/*buntu)
Hastur
fonte
resposta muito detalhada obrigado, o que me preocupa, nós seremos obrigados a usar o ipv6 muito em breve e, no entanto, existem muitos obstáculos (não poderia ser mais simples que o localhost realmente) e não há padronizações. Acho que não faremos nada até que isso cause muitos problemas ...
nafas
Como você viu ::1trabalhos em cada uma dessas máquinas ... "O bom dos padrões é que você tem muitas opções para escolher". ASTanenbaum [ 1 ] :-) Uma solução será encontrada ... talvez a errada! ;)
Hastur
, Eu entendo totalmente, cara. ::1é o ip (v6), onde localhostestá o hostname. inteiramente minha opinião, mas acredito que, se não mantivermos o padrão como estamos, enfrentaremos muitos problemas no futuro próximo. Eu realmente espero que uma vez ipv6 ultrapassa nós não tem que digitar, por exemplo ipv6.google.com, em vez degoogle.com
Nafas
1
Ficou claro que você conseguiu :-) ... O BTW RFC 6761 (Nomes de Domínio para Uso Especial) atingiu o nível de maturidade proposto em fevereiro de 2013. ... então ainda há tempo para esperar vê-lo como padrão antes Será muito tarde.
precisa
1
@nafas Eles adicionaram o IPv6 ao google.com.
Matt Nordhoff
24

Experimentar:

ping6 ::1

O resultado seria semelhante a:

# 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

(O mesmo para ping6 -V.)

Archemar
fonte
6
Versões mais recentes do iputilsnão têm nenhum ping6utilitário separado , ele foi mesclado ping. Para essas versões, use ping -6 ::1ou (já que ::1não é um endereço IPv4) ping ::1.
Lekensteyn
1
@Lekensteyn Which? Versão mais recente, -6nem sequer é reconhecida.
Edmz
@ black: Qual versão você considera "mais recente"? ping e ping6 foram mesclados no iputils-s20150815 (cheque ping -V). Sua distribuição talvez ainda não tenha sido atualizada. (E BSDs têm o seu próprio software e não use iputils.)
grawity
@rawity: Eu tenho a versão mais recente, embora não seja a versão mais atual e de fato seja OOD, mesmo no Arch Linux (20140519).
Edmz 26/11/2015
@black: "Mais recente, mas não a mais recente"? ... De qualquer forma, o Arch teve iputils-20150815 em [testing] por mais de um mês, embora eu não tenha idéia de quando será movido para estável.
grawity
9

localhosté o nome do host que resolve para o 127.0.0.1endereço. Seu /etc/hostsarquivo deve ter uma entrada separada para ::1, provavelmente localhost6. Então tente estes:

ping6 ::1
ping6 localhost6
gogators
fonte
7
Um nome de host pode resolver para vários endereços ao mesmo tempo - especialmente se eles são de protocolos diferentes. A maioria dos sistemas alias localhostpara ambos 127.0.0.1 e ::1.
grawity
1
@rawrawity Nenhum dos sistemas que eu verifiquei usa localhostpara IPv6. Os nomes que eu encontrei utilizados para ::1foram ip6-localhost, ip6-loopback, localhost6, e localhost6.localdomain6.
kasperd
3
@kasperd, de um Gentoo /etc/hosts: 127.0.0.1 localhost, ::1 localhost; O Windows Vista é idêntico (exceto para colocar o arquivo C:\Windows\System32\drivers\etc). O MacOSX 10.9.5 é adicionado fe80::1%lo0 localhostcomo um terceiro nome.
Mark
3
@ Kasperd: Você ainda não usou muitos sistemas. Windows, Arch, CentOS, Ubuntu são mapeados localhostpara ::1. (Acho que isso vai ser ainda mais comum como distros adotar systemd e permitir nss_myhostname.)
grawity
2
O CentOS 6 possui :: 1 como localhost6, embora o CentOS 7 tenha localhost para ambos. O OpenWRT, o Xenserver e o Solaris não possuem nenhuma entrada IPv6.
qasdfdsaq