Como obtenho o endereço IPv6 pingável da minha máquina?

7

quando eu tento: %código% Eu recebo algo como:

$ ip -6 addr

se eu tentar fazer o ping da própria máquina:

$ ping6 fe80::d773:9cf0:b0fd:572d/64
unknown host

$ ping6 fe80::d773:9cf0:b0fd:572d
connect: Invalid argument

O que estou fazendo de errado?

    
por marathon 12.02.2018 / 08:27

2 respostas

17

Qualquer endereço IPv6 que comece com fe80: é o equivalente a IPv4 169.254.*.* address, ou seja, é um endereço de link local, acessível somente no segmento de rede ao qual ele está diretamente conectado, usando a NIC que se conecta a esse segmento especificamente . Ao contrário do IPv4, no entanto, é perfeitamente normal que um NIC tenha o endereço IPv6 de ligação local e um ou mais endereços IPv6 globais simultaneamente.

Como o endereço fe80: IPv6 é link-local, você deve especificar a interface de rede que deseja usar ao efetuar o ping.

Exemplo:

$ ping6 fe80::beae:c5ff:febe:a742
connect: Invalid argument

$ ping6 -I eth0 fe80::beae:c5ff:febe:a742
PING fe80::beae:c5ff:febe:a742(fe80::beae:c5ff:febe:a742) from fe80::beae:c5ff:febe:a742%eth0 eth0: 56 data bytes
64 bytes from fe80::beae:c5ff:febe:a742%eth0: icmp_seq=1 ttl=64 time=0.182 ms
64 bytes from fe80::beae:c5ff:febe:a742%eth0: icmp_seq=2 ttl=64 time=0.167 ms
...

Você também pode anexar a interface no final do endereço usando o sinal % : ping6 fe80::beae:c5ff:febe:a742%eth0 .

Esse requisito é apenas para endereços IPv6 de link local: é possível efetuar ping de endereços IPv6 roteáveis globalmente sem especificar a interface.

$ ping6 2a00:1450:400f:80a::200e  # that's ipv6.google.com
PING 2a00:1450:400f:80a::200e(2a00:1450:400f:80a::200e) 56 data bytes
64 bytes from 2a00:1450:400f:80a::200e: icmp_seq=1 ttl=55 time=17.6 ms
64 bytes from 2a00:1450:400f:80a::200e: icmp_seq=2 ttl=55 time=19.6 ms
...
    
por 12.02.2018 / 08:49
3

De man ping6 , você deve informar ao ping qual interface está usando:

-I interface address

Set source address to specified interface address. Argument may be numeric IP address or name of device. When pinging IPv6 link-local address this option is required.

Por exemplo, se sua interface for eth0 :

ping6 -I eth0 fe80::xxxxxx

ou, sem a opção -I :

ping6 fe80:xxxxxx%eth0
    
por 12.02.2018 / 08:47