Я дал 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
В чем проблема?
Ответы:
Вы перепутали адреса: вы пытаетесь отправить пинги из Windows, но вы указали адрес Linux как «источник» и Windows как «пункт назначения». ОС не может отправлять пакеты с адреса, который ей не принадлежит.
Как правило, вам не нужно указывать вообще; таблица маршрутизации 1 обрабатывает выбор адресов. Просто запустите одно из:
-s addr
Сколько байтов данных отправлено, не имеет значения; это может даже быть ноль - заголовок ICMP отправляется так или иначе и будет отвечен. Некоторые системы могут игнорировать пинги, размер которых превышает ~ 1000 байт, но 32 на 56 действительно не имеют значения.
1 Используйте
netsh
→interface ipv6
для доступа к таблице маршрутизации IPv6 среди прочего.источник
В очень упрощенном виде первый выбор адреса ipv6 может иметь особое значение. Определенные биты указывают, что адрес используется для многоадресной рассылки. Другие определяют сферу. Проще говоря: вы не можете просто выбрать любое значение для него.
Итак, мой вопрос, откуда адреса, которые вы используете. Я нахожу их довольно "необычными". Если вы строите сеть с обслуживанием, рассмотрите возможность использования адресов из так называемых «уникальных локальных адресов» (fc00 :: / 7). fc00 :: / 8 возвращается для глобально назначенных уникальных локальных адресов. Таким образом, вы должны выбрать адреса из fd00 :: / 8.
См. RFC 4193 для получения дополнительной информации по этому вопросу.
источник