Ситуация:
В нашей сети есть маршрутизатор только с ipv4, и каждый компьютер подключен к нему (Wi-Fi или кабель). К этому роутеру также подключен сервер с ipv4 и ipv6. Сервер был настроен с туннельными брокерами для туннелирования 6to4 и radvd. Клиенты в сети имеют правильный префикс и могут пинговать друг друга через ipv6. Но они не могут пинговать в Интернет, пока не пингуют первый сервер (тот, у которого есть туннель). Я где-то обнаружил, что это проблема с icmp, но не смог найти решения.
Проблема в том, что роутер только ipv4?
Пинг попробовать:
standa@standa-laptop:~$ ping6 ipv6.google.com PING ipv6.google.com(2a00:1450:8007::69) 56 data bytes ^C --- ipv6.google.com ping statistics --- 29 packets transmitted, 0 received, 100% packet loss, time 28223ms standa@standa-laptop:~$ ping6 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478 PING 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478(2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478) 56 data bytes 64 bytes from 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=1 ttl=64 time=3.55 ms 64 bytes from 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=2 ttl=64 time=0.311 ms 64 bytes from 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=3 ttl=64 time=0.269 ms 64 bytes from 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478: icmp_seq=4 ttl=64 time=0.292 ms ^C --- 2001:470:XXXX:XXXX:21c:c0ff:fe2b:6478 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3000ms rtt min/avg/max/mdev = 0.269/1.107/3.559/1.415 ms standa@standa-laptop:~$ ping6 ipv6.google.com PING ipv6.google.com(2a00:1450:8007::69) 56 data bytes 64 bytes from 2a00:1450:8007::69: icmp_seq=1 ttl=57 time=20.7 ms 64 bytes from 2a00:1450:8007::69: icmp_seq=2 ttl=57 time=20.2 ms 64 bytes from 2a00:1450:8007::69: icmp_seq=3 ttl=57 time=23.4 ms ^C --- ipv6.google.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 20.267/21.479/23.413/1.392 ms
ОБНОВЛЕНИЕ: конфигурация Radvd
interface eth0 { AdvSendAdvert on; MinRtrAdvInterval 3; MaxRtrAdvInterval 10; AdvLinkMTU 1280; prefix 2001:470:1f0a:1511:1::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; };
ОБНОВЛЕНИЕ 2: Без подключения
ip -6 neigh fe80::21c:c0ff:fe2b:6478 dev wlan1 lladdr 00:1c:c0:2b:64:78 router REACHABLE
С подключением (после пинга)
fe80::21c:c0ff:fe2b:6478 dev wlan1 lladdr 00:1c:c0:2b:64:78 router STALE 2001:470:1f0a:1511::1 dev wlan1 lladdr 00:1c:c0:2b:64:78 router REACHABLE
При пинге происходит запрос соседа:
fe80::21c:c0ff:fe2b:6478 2001:470:1f0a:1511:21c:bfff:fe60:b389 ICMPv6 Neighbor solicitation 2001:470:1f0a:1511:21c:bfff:fe60:b389 fe80::21c:c0ff:fe2b:6478 ICMPv6 Neighbor advertisement
Назначаются ли префиксы клиентов вручную? Обычно они должны автоматически найти маршрутизатор через протокол обнаружения соседей (во время которого маршрутизатор рассылает рекламные объявления и автоматически назначает им префиксы), но похоже, что этот шаг может отсутствовать.
Кроме того, объявление маршрутизатора должно включать его адрес канального уровня в качестве опции в заголовке ICMP объявления маршрутизатора. Если это поле отсутствует, клиент не будет знать, как отправлять данные на маршрутизатор. Похоже, это могло быть так. Клиент не знает, как связаться с маршрутизатором, пока он не отправит сообщение Neighbor Discovery и не получит Neighbor Advertisement от маршрутизатора (с флагом маршрутизатора в наборе сообщений ICMP).
Чтобы включить адрес исходного ссылочного уровня в рекламу вашего маршрутизатора, добавьте следующее в свой radvd.conf
AdvSourceLLAddress on;
Я думаю, что ваш radvd.conf в порядке, хотя не помешало бы сравнить ip -6 addr; ip -6 route
на клиенте до и после пинга. Включено ли какое-то отслеживание соединения на туннельном блоке или на маршрутизаторе? Достаточно ли ping6 из туннельного бокса? Брандмауэр с отслеживанием состояния может объяснить, почему пакеты возвращаются только после успешного пинга.
Убедитесь, что ваши клиенты используют IPv6-адрес сервера в качестве шлюза / маршрутизатора. Как указал Джефф, это может быть назначено автоматически (проверьте конфигурацию radvd) или вручную, в этом случае проверьте конфигурацию клиентов.