Każdy adres IPv6, który zaczyna się od, fe80:
jest równoważny 169.254.*.*
adresowi IPv4 , tzn. Jest to adres lokalny dla łącza, dostępny tylko w segmencie sieci, z którym jest bezpośrednio połączony, przy użyciu karty sieciowej, która łączy się z tym segmentem. Jednak w przeciwieństwie do IPv4, karta sieciowa ma jednocześnie zarówno lokalny adres IPv6, jak i jeden lub więcej globalnych adresów IPv6.
Ponieważ fe80:
adres IPv6 jest lokalny dla łącza, musisz określić interfejs sieciowy, którego chcesz używać podczas pingowania.
Przykład:
$ 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
...
Można również dołączyć do interfejsu na końcu adresu za pomocą %
znaku: ping6 fe80::beae:c5ff:febe:a742%eth0
.
To wymaganie dotyczy tylko adresów IPv6 lokalnych dla łącza: możesz pingować globalnie routowalne adresy IPv6 bez określania interfejsu.
$ 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
...
scope link
bezpośrednio na wyjściu :)ping6 fe80::beae:c5ff:febe:a742%eth0
ping6: UDP connect: No route to host
Od
man ping6
, musisz powiedzieć pingowi, którego interfejsu używasz:Na przykład jeśli twój interfejs to
eth0
:lub bez
-I
opcji:źródło