У меня есть две системы, которые туннелируют на основной сервер маршрутизации. Обе эти системы имеют адрес клиента с одинаковым префиксом / 64 IPv6. С каждого клиента я могу без проблем пинговать сервер и наоборот.
Однако я не могу пинговать других клиентов. Мне было интересно, есть ли какой-нибудь способ добиться этого.
Вот ошибка, когда я пытаюсь пропинговать другого клиента:
PING 2602:fed2:7706::4(2602:fed2:7706::4) 56 data bytes
From 2602:fed2:7706::2 icmp_seq=1 Time exceeded: Hop limit
куда 2602:fed2:7706::2
это местный клиент, и 2602:fed2:7706::4
это другой клиент, к которому я пытаюсь пинговать.
Изменить: клиенты все еще должны иметь возможность пинговать сервер. По сути, я хочу создать большую ячеистую сеть между всеми клиентами и сервером.
Мне удалось заставить его работать благодаря некоторым комментариям к исходному сообщению.
Первоначально все разные клиенты использовали общие адреса из / 64, и все они были добавлены как / 64 (ip addr add <ip>/64 <etc..>
). Однако я решил проблему, вместо этого присвоив каждой системе / 127 (2 адреса. Один для сервера, один для клиента) из того же / 64.
В одной системе мне действительно нужно было добавить / 64, а также / 127 к интерфейсу GRE на стороне клиента, чтобы система считала адреса маршрутизируемыми, но это произошло только в одной из моих систем.
Имейте в виду, что это произошло только потому, что я использовал необъявленные адреса (это также могло произойти, если вы использовали частные адреса), если бы у вас были общедоступные маршрутизируемые адреса для каждой системы, которую вы использовали через туннель, вы бы не столкнулись с этим вопрос.