Логика работы IPv6 в VMmanager


VMmanager поддерживает IPv6-сети с длиной префикса от 32 до 96 включительно. При работе с IPv6 каждая виртуальная машина (ВМ) получает отдельную подсеть, и на её интерфейс добавляется первый IP-адрес подсети. При добавлении IPv6-адреса на ВМ вы можете выбрать префикс выделяемой подсети от /32 до /125. Как вручную добавить IPv6-адрес на интерфейс ВМ см. в статье Назначение IP-адресов средствами ОС

Чтобы выделять IPv6-подсети на виртуальные машины, в VMmanager должна быть создана сеть и пул IP-адресов, который входит в эту сеть. Пул IPv6-адресов указывается подсетью в формате <адрес сети>/<длина префикса сети>.

Как добавить IPv6-сеть и пул адресов


Чтобы добавить физическую сеть и пул адресов:

  1. Перейдите в Сети → Физические сети → Создать сеть
  2. Укажите Сеть в формате <адрес сети>/<длина префикса сети>. Используйте длину префикса от 32 до 96 включительно. Например, "be6a:2a1d:f079:d165::/32". 

  3. Укажите адрес Шлюза для сети.
  4. Включите опцию Создать пул и блок адресов.
  5. Укажите Название пула.
  6. В поле IP-адреса под создание VM укажите подсети для пула адресов. Указывайте подсети в формате <адрес сети>/<длина префикса сети>. Используйте длину префикса от 32 до 96 включительно. Например, "be6a:2a1d:f079:d165::/32".

     Подсети для пула адресов должны входить в сеть, указанную в поле Сеть. Рекомендуем создать пул адресов, который включает всю физическую сеть.

  7. Разрешите использовать пул на нужных кластерах. Если в кластере используются два сетевых интерфейса, укажите к какой сети относится пул — Основной или Дополнительной.
  8. Нажмите Создать.

Настройка IPv6 на узлах кластера в дата-центрах Hetzner и OVH

Для настройки IPv6-маршрутизации добавьте на узел кластера IPv6-адрес: Узлы  имя узла IP-адреса IPv6  Добавить IP-адрес. Для корректной работы IPv6-сети укажите адрес ::2 и длину префикса 64. Например, 2a01:4f8:13b:9a7::2/64. VMmanager проведёт автоматическую настройку сети на этом узле.

Если маршрутизация с сетью провайдера отсутствует, вы можете включить проксирование IPv6 через протокол NDP:

NDP используется для multicast-проксирования ICMP6-запросов типа neighbor discovery (ND). Если IPv6-сеть у провайдера смаршрутизирована on-link, то на физический интерфейс узла кластера будет приходить multicast-запрос ND (аналог ARP-запроса в IPv4). Проксирование позволяет пересылать ND-запросы в бридж vmbr0, а ответы — обратно на физический интерфейс.

  1. Подключитесь к узлу кластера по SSH.
  2. Установите сервис ndppd: 

    dnf install ndppd
    CODE
  3. Создайте конфигурационный файл /etc/ndppd.conf

    Пример конфигурационного файла

    proxy enp3s0f0 {
     rule 2a01:4f8:13b:9a7::/64 {
     iface vmbr0
     }
    }
    CODE

    enp3s0f0 — сетевой интерфейс для проксирования

    2a01:4f8:13b:9a7::/64 — подсеть IPv6

    vmbr0 — интерфейс бриджа на узле кластера

  4. Добавьте правило для шлюза по умолчанию: 

    ip -6 neigh add proxy <address> dev vmbr0
    CODE

    <address> — IPv6-адрес узла кластера. Например, 2a01:4f8:13b:9a7::2