1

Я дал IPv6-адрес своей машине SUSE Linux на виртуальной машине VirtualBox с ifconfig eth0 inet6 add .. .

Я не могу пропинговать этот адрес из Windows XP (и наоборот). Адрес компьютера Linux - efbb::26 а XP - efbb::27 .

ping6 -s efbb::27 -r efbb::26 
the output:
from efbb::27 with 32 bytes of data ( I think it must be 56 bytes)
Invalid source route specified
    Problem with source address or scope-id

В чем проблема?

2 ответа2

0

В очень упрощенном виде первый выбор адреса ipv6 может иметь особое значение. Определенные биты указывают, что адрес используется для многоадресной рассылки. Другие определяют сферу. Проще говоря: вы не можете просто выбрать любое значение для него.

Итак, мой вопрос, откуда адреса, которые вы используете. Я нахожу их довольно "необычными". Если вы строите сеть с обслуживанием, рассмотрите возможность использования адресов из так называемых "уникальных локальных адресов" (fc00::/7). fc00::/8 возвращается для глобально назначенных уникальных локальных адресов. Таким образом, вы должны выбрать адреса из fd00::/8.

См. RFC 4193 для получения дополнительной информации по этому вопросу.

0

Вы перепутали адреса: вы пытаетесь отправить пинги из Windows, но вы указали адрес Linux как "источник" и Windows как "пункт назначения". ОС не может отправлять пакеты с адреса, который ей не принадлежит.

Как правило, вам вообще не нужно указывать -s addr ; таблица маршрутизации 1 обрабатывает выбор адресов. Просто запустите один из:

ping6 efbb::26
ping efbb::26

Сколько байтов данных отправлено, не имеет значения; это может даже быть ноль - заголовок ICMP отправляется так или иначе и будет отвечен. Однако, некоторые системы могут игнорировать эхо-запросы, размер которых превышает ~ 1000 байт, но 32 на 56 действительно не имеют значения.


1 Используйте netshinterface ipv6 для доступа к таблице маршрутизации IPv6 среди прочего.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .