Что значит «маршрутизируемый» здесь
Префикс маршрутизируется к вашему инстансу, а не разделяется на сегменте с другими клиентами. Ничто другое в сети не отвечает на эти адреса, нет прокси обнаружения соседей посередине, и вы можете привязать что угодно внутри /64, не спрашивая разрешения. Это также означает, что объявления маршрутизатора не являются механизмом: адрес и шлюз статичны, и ожидание SLAAC не даст вам ничего.
Панель выводит три значения для каждого инстанса — префикс, адрес внутри него, который мы назначаем заранее, и шлюз. Возьмите все три оттуда. Шлюз отличается в зависимости от сайта.
Debian 13
Образы используют systemd-networkd. Напишите свой собственный unit и оставьте поставляемый в покое:
cat > /etc/systemd/network/20-wan-v6.network <<EOF
[Match]
Name=enp1s0
[Network]
Address=<ipv6>/64
Gateway=<gateway6>
IPv6AcceptRA=no
EOF
networkctl reload
networkctl status enp1s0Где шлюз является link-local адресом, интерфейс, на котором он находится, должен быть известен. Станца уже ограничена одним интерфейсом с помощью [Match], так что больше ничего не нужно.
AlmaLinux 10
Файлов ifcfg- больше нет. AlmaLinux 10 хранит подключения как keyfiles NetworkManager, и поддерживаемый способ их редактирования — nmcli:
nmcli -f NAME,DEVICE connection show
nmcli connection modify "System eth0" ipv6.method manual ipv6.addresses <ipv6>/64 ipv6.gateway <gateway6> ipv6.may-fail no
nmcli connection up "System eth0"ipv6.may-fail no останавливает объявление загрузкой, что сеть готова, до настройки v6. Это важно для любого сервиса, который привязывает адрес v6 при запуске и сдаётся, если его ещё нет.
Проверка
ip -6 addr show dev enp1s0
ip -6 route show
ping -6 -c 3 paragonvps.comАдрес присутствует, маршрут по умолчанию присутствует, ничто не отвечает? Обычно виноват файрвол, а ICMPv6 — обычная причина. Обнаружение соседей и packet-too-big живут в ICMPv6; выборочная фильтрация ломает IPv6 так, что это выглядит как ошибка приложения день и половину. Маленькие пакеты работают, большие исчезают. В статье о nftables есть правило, которое этого не делает.
Использование остальной части префикса
Дополнительные адреса на том же интерфейсе:
ip -6 addr add <ipv6-2>/64 dev enp1s0 nodadСделайте так, чтобы это пережило перезагрузку с помощью ещё одной строки Address= или второй записи в ipv6.addresses. Для контейнеров вырежьте срез из /64, назначьте его мосту и маршрутизируйте на хосте. /80 — больше, чем мосту когда-либо понадобится. Здесь нет шага NAT и нет шага прокси, потому что весь префикс уже указывает на вас.
Если вам нужно несколько маршрутизируемых подсетей, за несколькими мостами или вложенным гипервизором, закажите дополнение /48. Оно делегируется, а не проксируется, так что дизайн маршрутизации на вашей стороне действительно ваш.
Две вещи, которые тихо ломают это
- Что-то включает приём RA обратно. Инструменты, которые «исправляют» сеть, часто делают это, и вы получаете второй маршрут по умолчанию, который болтается между двумя. Закрепите
IPv6AcceptRA=no. - Включение пересылки. Установка
net.ipv6.conf.all.forwarding=1заставляет ядро прекратить обработку объявлений маршрутизатора на всех интерфейсах. Здесь это безвредно, поскольку RA уже выключен, но полезно знать, прежде чем винить сайт.
Полная детализация по сайтам, включая какие локации несут v6 до edge, находится на странице сети.