
У меня типичная проблема "a может пинговать b, но b не может пинговать a". Я использую IPv6 для пинга. Особенность моего случая в том, что "b" может пинговать "a" сразу после того, как "b" пингует "a". После некоторых попыток я понял, что все работает нормально, если я указываю сетевой интерфейс, который должен использоваться, с помощью "-I eth0" (да, два интерфейса на машине Linux находятся в одной подсети). Я все еще хотел бы понять, что меняется, когда машина "b" пингует обратно, и был бы признателен за некоторые экспертные знания. Пинг с IPv4 работает нормально в обоих направлениях. Если я останавливаю пинг с "b", "a" все еще может пинговать "b", пока я не остановлю его с помощью Ctrl-C. Повторная попытка не удалась, даже если я пытаюсь немедленно, поэтому я считаю, что это не проблема upcache. Немного информации:
Машина "а"
ОС: Windows (добавлено «ICMPv6» в исключения для брандмауэра)
IPv6-адрес: fe80::21c:1cff:fe00:3de3
Машина "б":
ОС: Linux Busybox
IPv6-адрес: fe80::21c:1cff:fe00:3de4
Пробовал и "ping", и "ping6" бинарные файлы
решение1
С
локальные IPv6-адреса
всегда нужно указывать интерфейс. Причина в том, что в каждой сети используется один и тот же блок адресов (префикс): адрес fe80::21c:1cff:fe00:3de3
уникален только на определенном канале (интерфейсе). На другом канале тот же адрес может использоваться для совершенно другого устройства.
Из-за этого локальные адреса ссылок обычно не очень полезны для ручного использования, так как вам нужно указывать интерфейс каждый раз. На другом компьютере имя интерфейса может быть другим, поэтому вы не можете просто отправить кому-то ссылку с адресом, так как вы не знаете, какое имя интерфейса для этой ссылки на его стороне.
Чтобы избежать указания интерфейса, вам понадобятся «реальные» адреса IPv6 с глобальной областью действия, которые вы можете маршрутизировать.
Например, вы можете использовать https://cd34.com/rfc4193/, где вы вводите MAC-адрес, а он выполняет вычисления и возвращает блок адресов IPv6 для использования.
В вашем случае, после того как один компьютер отправил пинг другому, его адрес IPv6 и его интерфейсбыли известны целевому компьютеру, поэтому он мог отправить ответный сигнал.