Назад | Перейти на главную страницу

ipv6: почему ndp преобразуется в адрес глобальной области?

Я столкнулся со странным поведением ipv6, и я не знаю, как его решить, потому что я не знаком с ipv6. Может такое поведение нормально. Я надеюсь, что вы мне поможете. (Я работаю под debian 6.0.9 с кастомным ядром 3.2.58)

машина A "2a00: 7d30: edf6: 100 :: 1" хочет проверить связь с машиной B, которая имеет значение "2a00: 7d30: edf6: 100 :: 10". Оба находятся в одном сегменте.

машина A запрашивает адрес машины B, и я не понимаю, почему машина B дает адрес своей глобальной области, а не адрес локальной области?

10: 59: 02.082785 IP6 2a00: 7d30: edf6: 100 :: 1> ff02 :: 1: ff00: 10: ICMP6, запрос соседа, у кого есть 2a00: 7d30: edf6: 100 :: 10, длина 32

10: 59: 02.082821 IP6 2a00: 7d30: edf6: 100 :: 10> 2a00: 7d30: edf6: 100 :: 1: ICMP6, объявление соседа, tgt равно 2a00: 7d30: edf6: 100 :: 10, длина 32

после этого машина A проверяет адрес глобальной области видимости машины B, и она работает нормально:

10: 59: 02.082927 IP6 2a00: 7d30: edf6: 100 :: 1> 2a00: 7d30: edf6: 100 :: 10: ICMP6, запрос эха, последовательность 1, длина 64

10: 59: 02.082960 IP6 2a00: 7d30: edf6: 100 :: 10> 2a00: 7d30: edf6: 100 :: 1: ICMP6, эхо-ответ, последовательность 1, длина 64

Спасибо за вашу помощь, С уважением, Жюльен

NDP для IPv6 - это то же самое, что ARP для IPv4: он дает вам адрес уровня 2 (MAC-адрес Ethernet) для данного адреса уровня 3 (IP-адрес). Если вы хотите отправить пакет на глобальный адрес IPv6, который находится в той же подсети, что и вы, тогда NDP спросит, на какой MAC-адрес будет поступать трафик для этого глобального адреса. Затем «владелец» этого IP-адреса ответит и сообщит отправителю запроса на обнаружение, какой у него MAC-адрес уровня 2.

Если бы вы отправили пакет на локальный для канала IPv6-адрес, тогда в ответе NDP был бы указан MAC-адрес для локального для канала IPv6-адреса.