10 из 15 конфигураций серверов в наличииМгновенная выдачаБез платы за установку

Сеть

Настройка подсети /64 IPv6

Каждый сервер включает маршрутизируемую подсеть /64 IPv6. Проверьте или восстановите настройки в Ubuntu, Debian, AlmaLinux и Rocky Linux, добавьте адреса и приведите правила файрвола в соответствие.

5 мин чтенияОбновлено UbuntuDebianAlmaLinuxRocky Linux

Применимо к
UbuntuDebianAlmaLinuxRocky Linux
Время чтения
5 минут
Обновлено
Тема
Сеть

Не получается? Инженеры отвечают 24/7

На этой странице

Каждый сервер DediJet поставляется с маршрутизируемой подсетью /64 IPv6 без дополнительной платы, а при установке в один клик IPv6 настраивается автоматически. С помощью этого руководства можно проверить эти настройки, восстановить их после нестандартной установки или задействовать больше адресов из подсети.

Как работает маршрутизируемая подсеть /64

Число адресов в подсети /64 — 2^64, то есть около 18 квинтиллионов. «Маршрутизируемая» означает, что вышестоящий маршрутизатор направляет весь трафик подсети на ваш сервер, а вы сами решаете, какие адреса и где использовать. Запрашивать каждый адрес отдельно не нужно: добавьте адрес из префикса на интерфейс, и он станет доступен.

Ваш префикс указан в личном кабинете: откройте сервер и выберите «Сеть». В этом руководстве в качестве префикса используется 2001:db8:1234:5678::/64, в качестве основного адреса сервера — 2001:db8:1234:5678::1, а в качестве интерфейса — enp1s0; имя вашего интерфейса показывает ip -br link. Шлюз IPv6 — это link-local-адрес fe80::1. Проверьте значение в личном кабинете и, если оно отличается, используйте его.

Посмотрите, что уже настроено:

Shell
ip -6 addr show dev enp1s0 scope global
ip -6 route show default

Если в выводе есть ваш адрес и маршрут по умолчанию через fe80::1, значит, IPv6 уже настроен и можно сразу переходить к проверкам ниже.

Настройка адреса и шлюза

Используйте инструмент, который уже управляет вашей конфигурацией IPv4: YAML-файлы в /etc/netplan/ означают Netplan (стандарт в Ubuntu, также используется в некоторых образах Debian), /etc/network/interfaces — ifupdown (классический Debian), а в AlmaLinux и Rocky Linux используется NetworkManager.

Совет: изменение сетевых настроек по SSH может оборвать ваше подключение. Держите под рукой консоль IPMI: она дает доступ к серверу без сети.

Ubuntu: Netplan

Отредактируйте существующий файл в /etc/netplan/ (его имя может отличаться) и добавьте IPv6-адрес и маршрут по умолчанию рядом с настройками IPv4:

YAML
network:
  version: 2
  ethernets:
    enp1s0:
      addresses:
        - 203.0.113.10/24
        - 2001:db8:1234:5678::1/64
      routes:
        - to: default
          via: 203.0.113.1
        - to: default
          via: fe80::1

Строки IPv4 приведены для примера: оставьте свой адрес, маршруты и раздел nameservers (если он есть) в точности как есть. Затем примените изменения со страховкой:

Shell
netplan try

netplan try применяет изменения и откатывает их через 120 секунд, если вы не нажмете Enter, чтобы их сохранить. Если из-за ошибки SSH-сессия оборвется, подождите две минуты и подключитесь снова. Если Netplan предупреждает о слишком открытых правах доступа, выполните chmod 600 /etc/netplan/*.yaml.

Debian: ifupdown

В /etc/network/interfaces добавьте секцию inet6 для того же интерфейса под секцией IPv4:

Конфигурация
iface enp1s0 inet6 static
    address 2001:db8:1234:5678::1/64
    gateway fe80::1

Вместо перезапуска интерфейса по SSH примените те же настройки «на лету»; со следующей загрузки они будут браться из файла:

Shell
ip -6 addr add 2001:db8:1234:5678::1/64 dev enp1s0
ip -6 route add default via fe80::1 dev enp1s0

AlmaLinux и Rocky Linux: NetworkManager

Shell
nmcli connection show
nmcli connection modify enp1s0 ipv6.method manual ipv6.addresses 2001:db8:1234:5678::1/64 ipv6.gateway fe80::1
nmcli connection up enp1s0

Замените enp1s0 в двух последних командах на имя подключения из вывода первой команды (в кавычках, если оно содержит пробелы). Повторная активация подключения заново применяет и настройки IPv4, поэтому SSH-сессия может ненадолго замереть.

Каким бы инструментом вы ни пользовались, один раз перезагрузите сервер в спокойное время, чтобы убедиться, что конфигурация сохраняется.

Проверка работы IPv6

Shell
ping -6 -c 4 2606:4700:4700::1111
curl -6 -sI https://www.debian.org
ip -6 route get 2606:4700:4700::1111

Ping до публичного DNS-резолвера должен получать ответы, а curl — выводить HTTP-заголовки. Последняя команда показывает адрес источника, который сервер использует для исходящего трафика: он указан после src. Затем проверьте доступ снаружи: с машины с IPv6 выполните ping до 2001:db8:1234:5678::1 или подключитесь к нему по SSH.

Дополнительные адреса из подсети /64

Добавляйте адреса по мере необходимости, например по одному на каждый сайт или сервис. Используйте ту же длину префикса /64 и не добавляйте второй шлюз:

  • Netplan: еще одна строка в addresses, например - 2001:db8:1234:5678::25/64.
  • ifupdown: еще одна секция iface enp1s0 inet6 static, содержащая только address 2001:db8:1234:5678::25/64.
  • NetworkManager: nmcli connection modify enp1s0 +ipv6.addresses 2001:db8:1234:5678::25/64, затем nmcli connection up enp1s0.

Чтобы опробовать адрес, прежде чем закрепить его в конфигурации, используйте ip -6 addr add 2001:db8:1234:5678::25/64 dev enp1s0: команда действует сразу, а после перезагрузки адрес исчезает.

Чтобы виртуальные машины и контейнеры за мостом работали, хост должен маршрутизировать их адреса (см. Установка Proxmox VE). Включенная для этого пересылка пакетов заставляет Linux игнорировать объявления маршрутизатора (router advertisements), но при настроенном здесь статическом шлюзе это не имеет значения. Если вам нужны отдельные сети, например по одной /64 на мост или на клиента, по запросу бесплатно предоставляется подсеть /56 (256 подсетей /64): создайте тикет.

Постоянные адреса

Серверам нужны фиксированные адреса: на них указывают DNS-записи, списки разрешенных адресов в файрволах и обратные DNS-записи. Расширения конфиденциальности (privacy extensions), созданные для ноутбуков, добавляют временные адреса, которые регулярно меняются, а SLAAC формирует адреса автоматически. Приведенные выше статические конфигурации исключают и то, и другое. Если ip -6 addr показывает лишние адреса с пометкой temporary или mngtmpaddr, отключите privacy extensions для интерфейса и для новых интерфейсов в /etc/sysctl.d/60-ipv6.conf:

Конфигурация
net.ipv6.conf.enp1s0.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0

Примените настройки командой sysctl --system. В NetworkManager вместо этого задайте для подключения ipv6.ip6-privacy 0.

Защита IPv6 файрволом

Ваши IPv6-адреса доступны из интернета так же, как и IPv4-адрес, а сервисы, слушающие [::] или *, принимают подключения по обоим протоколам. Команда ss -tlnp показывает, что и на каком адресе слушает. Убедитесь, что ваш файрвол охватывает IPv6:

  • ufw фильтрует IPv6, если в /etc/default/ufw задано IPV6=yes (это значение по умолчанию).
  • Зоны firewalld одинаково применяются к IPv4 и IPv6.
  • Таблицы nftables семейства inet охватывают оба протокола.
  • Правила iptables не распространяются на IPv6: добавьте соответствующие правила ip6tables или перейдите на nftables.

Внимание: не блокируйте ICMPv6 целиком. Обнаружение соседей (Neighbor Discovery, типы 133–137) и сообщения «Packet Too Big» (тип 2) — неотъемлемая часть работы IPv6; без них соединения зависают, и причину трудно диагностировать.

Следующие шаги

Добавьте записи AAAA для своих сервисов, настройте обратные DNS-записи для каждого адреса, с которого отправляется почта, и прочитайте руководство Добавление дополнительных IPv4-адресов, если вам нужны и дополнительные IPv4-адреса. Все еще не получается? Создайте тикет в разделе Поддержка и приложите вывод ip -6 addr и ip -6 route.

Нужна помощь?

Клиенты с активным сервером создают тикеты в личном кабинете, а отвечают на них инженеры 24/7.

Как работает поддержка