Як я можу отримати пінгуючий IPv6 адресу своєї машини?


14

коли я намагаюся: $ ip -6 addr я отримую щось на кшталт:

inet6 fe80::d773:9cf0:b0fd:572d/64 scope link

якщо я спробую відігнути це від самої машини:

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

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

Що я роблю неправильно?

Відповіді:


24

Будь-яка IPv6-адреса, яка починається з fe80:, еквівалентна IPv4- 169.254.*.*адресі, тобто це локальна адреса посилання, доступна лише в сегменті мережі, до якого безпосередньо підключений, використовуючи NIC, який спеціально підключається до цього сегмента. На відміну від IPv4, однак, цілком нормально для NIC мати одночасно локальну IPv6-адресу посилання та один або більше глобальних IPv6-адрес одночасно.

Оскільки fe80:IPv6-адреса є локальною ланкою, ви повинні вказати мережевий інтерфейс, який ви хочете використовувати під час його пінг.

Приклад:

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

Ви також можете додати інтерфейс в кінці адреси за допомогою %знака: ping6 fe80::beae:c5ff:febe:a742%eth0.

Ця вимога стосується лише локальних IPv6-адрес локальних посилань: ви можете пінгнути глобально маршрутизовані адреси IPv6, не вказуючи інтерфейс.

$ 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прямо у виході :)
hobbs

4
Як додаток до відповіді: ви також можете вказати інтерфейс в кінці адреси:ping6 fe80::beae:c5ff:febe:a742%eth0
Ferrybig

@Ferrybig: дякую, що нагадали, оновили свою відповідь.
telcoM

1
Зауважте, що якщо ви хочете пінг-код віддаленої адреси ipv6, ваш домашній маршрутизатор також повинен підтримувати ipv6. Старі маршрутизатори не завжди мають оновлення програмного забезпечення / мікропрограмного забезпечення для підтримки з'єднання через ipv6. Ви, швидше за все, отримаєте таке повідомлення:ping6: UDP connect: No route to host
Daniel Gelling

4

Звідси man ping6, ви повинні повідомити ping, який інтерфейс ви використовуєте:

-Я адреса інтерфейсу

Встановіть адресу джерела на вказану адресу інтерфейсу. Аргументом може бути числова IP-адреса або назва пристрою. Під час пінгінгу локальної адреси IPv6 посилання потрібна ця опція.

Наприклад, якщо ваш інтерфейс eth0:

ping6 -I eth0 fe80::xxxxxx

або без -Iопції:

ping6 fe80:xxxxxx%eth0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.