Создание физических вычислительных сетей

В физических сетях могут размещаться несколько подсетей IPv4, IPv6 и с двойным стеком. Подсети IPv6 поддерживают три режима назначения IP-адресов: автоматическая конфигурация без отслеживания состояния (SLAAC), DHCPv6 без отслеживания состояния и DHCPv6 с отслеживанием состояния. Эти режимы описаны в следующей таблице:

Режим адресации IPv6 Назначение адреса ВМ Конфигурация внешнего маршрутизатора Конфигурация DHCP-сервера
SLAAC ВМ получает адрес IPv6, шлюз по умолчанию и префикс подсети через объявления маршрутизатора (RA) с внешнего маршрутизатора. DNS-серверы и имя хоста не настраиваются автоматически. Внешний маршрутизатор должен отправлять сообщения RA без флагов M (управляемая конфигурация адресов) и O (другая конфигурация). Встроенный сервер DHCPv6 автоматически отключается.
DHCPv6 без отслеживания состояния ВМ получает адрес IPv6 и шлюз по умолчанию через сообщения RA с внешнего маршрутизатора, а другую информацию (префикс подсети, DNS-серверы, имя хоста) со встроенного сервера DHCPv6. Внешний маршрутизатор должен отправлять сообщения RA с флагом O. Встроенный сервер DHCPv6 автоматически включается.
DHCPv6 с отслеживанием состояния ВМ получает адрес IPv6 и другую информацию (префикс подсети, DNS-серверы, имя хоста) со встроенного сервера DHCPv6, а шлюз по умолчанию — через сообщения RA с внешнего маршрутизатора. Внешний маршрутизатор должен отправлять сообщения RA с флагом M. Встроенный сервер DHCPv6 автоматически включается.

Назначение адреса IPv6 внутри виртуальной машины также зависит от сетевых параметров гостевой операционной системы.

Ограничения

  • Поверх сети инфраструктуры можно создать только одну нетегированную физическую сеть.
  • Когда предоставляется сетевой доступ ко всему домену, он настраивается только для существующих проектов внутри этого домена. Вновь созданные проекты не будут иметь доступа к сети.
  • Нельзя подключать подсети IPv6 к маршрутизаторам. Как следствие, плавающие адреса IPv6 не поддерживаются.
  • Адреса IPv6 не поддерживаются для балансировщиков нагрузки и кластеров Kubernetes.
  • Виртуальная машина, которая подключена к сети с двойным стеком, всегда получает адрес IPv6, если для сети включен режим SLAAC или DHCPv6 без отслеживания состояния.
  • Чтобы работать в подсети IPv6 с включенным режимом SLAAC посредством cloud-init, гостевая операционная система ВМ должна иметь версию cloud-init 19.4 или выше.

Предварительные требования

Как добавить физическую вычислительную сеть

Панель администратора

  1. На экране Вычисления > Сеть > Сети нажмите Создать сеть.
  2. На шаге Конфигурация сети выполните следующие действия:

    1. Включите или отключите управление IP-адресами:

      • Если управление IP-адресами включено, встроенный DHCP-сервер автоматически назначит ВМ, подключенным к сети, IP-адреса из пулов IP-адресов, а также задаст для ВМ настраиваемые DNS-серверы. Кроме того, по умолчанию для всех сетевых портов ВМ будет включена защита от спуфинга. Каждый сетевой интерфейс ВМ сможет принимать и отправлять IP-пакеты, только если ему назначены IP- и MAC-адреса. При необходимости защиту от спуфинга для интерфейса ВМ можно отключить вручную.
      • Если управление IP-адресами отключено, то ВМ, подключенные к сети, получат IP-адреса от DHCP-серверов в этой сети (при их наличии). Кроме того, защита от спуфинга будет отключена для всех сетевых портов ВМ, и ее нельзя будет включить вручную. Это означает, что каждый сетевой интерфейс ВМ с назначенными IP- и MAC-адресами или без них сможет принимать и отправлять IP-пакеты.

      В любом случае можно будет вручную назначить статические IP-адреса изнутри виртуальных машин.

    2. Выберите тип сети Физическая.
    3. Укажите имя сети, а затем выберите сеть инфраструктуры с типом трафика ВМ внешн.

    4. Чтобы создать сеть на базе VLAN, выберите VLAN и укажите идентификатор VLAN. Чтобы создать плоскую физическую сеть, выберите Untagged (Без тега).
    5. Нажмите кнопку Далее.

  3. Если вы включили управление IP-адресами, вы будете перенаправлены на шаг Управление IP-адресами, где можно добавить подсети IPv4 и IPv6.

  4. На шаге Сетевой доступ можно настроить сетевой доступ следующим образом:

    1. Выберите проекты, для которых нужно обеспечить сетевой доступ:

      • Чтобы сеть была доступна из всех существующих и новых проектов, выберите Все проекты.
      • Чтобы сеть была доступна из всех существующих проектов в пределах домена, выберите Выбрать проекты, а затем установите флажок напротив нужного домена.
      • Чтобы сеть была доступна из определенного проекта внутри домена, выберите Выбрать проекты, щелкните имя домена, а затем выберите нужный проект.
      • Если вы не хотите открывать общий доступ к сети, пропустите этот шаг, нажав Далее.
    2. Выберите тип доступа:

      • Предоставляя полный доступ, вы разрешаете виртуальным машинам в выбранных проектах взаимодействовать с этой сетью напрямую либо через виртуальные маршрутизаторы.
      • Предоставляя маршрутизируемый доступ, вы разрешаете виртуальным машинам в выбранных проектах взаимодействовать с этой сетью только через виртуальные маршрутизаторы.

      Также можно предоставить прямой доступ, который подразумевает прямое подключение виртуальных машин внутри проектов к физической сети. Прямой доступ можно открыть только с помощью инструмента vinfra, указав ключ direct в параметре --rbac-policies. Этот тип доступа нельзя настроить на панели администрирования.

    3. Нажмите кнопку Далее.

  5. На шаге Сводка просмотрите конфигурацию и нажмите кнопку Добавить сеть.

Интерфейс командной строки

Используйте следующую команду:

vinfra service compute network create [--dhcp | --no-dhcp]
                                      [--dns-nameserver <dns-nameserver>]
                                      [--allocation-pool <allocation-pool>]
                                      [--gateway <gateway> | --no-gateway]
                                      [--rbac-policies <rbac-policies>]
                                      [--physical-network <physical-network>]
                                      [--vlan-network <vlan-network>]
                                      [--vlan <vlan>] [--cidr <cidr>]
                                      [--ipv6-address-mode <ipv6-address-mode>]
                                      <network-name>
--dhcp
Включение DHCP
--no-dhcp
Отключение DHCP
--dns-nameserver <dns-nameserver>
IP-адрес сервера DNS. Этот параметр можно использовать несколько раз.
--allocation-pool <allocation-pool>
Пул IP-адресов для создания внутри сети в формате: ip_addr_start-ip_addr_end. Этот параметр можно использовать несколько раз.
--gateway <gateway>
IP-адрес шлюза
--no-gateway
Не настраивать шлюз для этой сети.
--rbac-policies <rbac-policies>

Разделенный запятыми список политик RBAC в формате <target>:<target_id>:<action> | none. Допустимые цели: project, domain. Допустимые действия: direct, full, routed. «*» является допустимым значением target_id для всех целей. Передайте none для очистки всех существующих политик.

Пример: domain:default:routed,project:uuid1:full

--physical-network <physical-network>
Инфраструктурная сеть для связи с физической сетью
--vlan-network <vlan-network>
Сеть VLAN для связи
--vlan <vlan>
Идентификатор VLAN виртуальной сети
--cidr <cidr>
Маска подсети в нотации CIDR
--ipv6-address-mode <ipv6-address-mode>
Режим адресации IPv6: dhcpv6-stateful, dhcpv6-stateless, slaac
<network-name>
Имя сети

Пример 1. Чтобы создать нетегированную физическую сеть поверх инфраструктурной сети Public с включенным управлением IP-адресами, заданными сетевыми параметрами и полным сетевым доступом между всеми проектами в пределах указанного домена, выполните:

# vinfra service compute network create mypubnet --physical-network Public \
--cidr 10.136.16.0/22 --gateway 10.136.16.1 --dns-nameserver 10.35.11.7 \
--allocation-pool 10.136.18.141-10.136.18.148 \
--rbac-policies domain:cd421db9f3e84e3e8cd2c932c1f7a698:full

Пример 2. Чтобы создать физическую сеть на базе VLAN поверх инфраструктурной сети Public с идентификатором VLAN 10, включенным управлением IP-адресами, заданными сетевыми параметрами и прямым (общим) сетевым доступом между всеми проектами в инфраструктуре, выполните:

# vinfra service compute network create mypubnet_vlan --vlan 10 \
--physical-network Public --cidr 10.136.16.0/22 --gateway 10.136.16.1 \
--dns-nameserver 10.35.11.7 --allocation-pool 10.136.18.131-10.136.18.138 \
--rbac-policies project:*:direct

Новая вычислительная сеть появится в выводе команды vinfra service compute network list:

# vinfra service compute network list -c id -c name -c cidr -c allocation_pools
+----------------+---------------+------------------+-------------------------------+
| id             | name          | cidr             | allocation_pools              |
+----------------+---------------+------------------+-------------------------------+
| 22674f9d-<...> | mypubnet      | 10.136.16.0/22   | - 10.136.18.141-10.136.18.148   |
| 8f0dc747-<...> | mypubnet_vlan | 10.136.16.0/22   | - 10.136.18.131-10.136.18.138   |
| a0019b43-<...> | myprivnet     | 192.168.128.0/24 | - 192.168.128.2-192.168.128.254 |
+----------------+---------------+------------------+-------------------------------+