Сетевые интерфейсы и Алиас

Сетевые интерфейсы в ПК СВ "Брест" могут быть определены двумя различными способами:

  • ручной выбор — интерфейсы ВМ подключаются к предварительно выбранной виртуальной сети. Для этого может потребоваться создать несколько шаблонов ВМ с учетом доступных сетей в каждом кластере;
  • автоматический выбор — виртуальные сети будут распределены планировщиком так же, как и другие ресурсы, необходимые виртуальной машине (например, серверы управления или хранилища данных). Это позволяет указать тип сети, который требуется ВМ, и она будет автоматически выбрана среди доступных в кластере.

Механизм Алиас позволяет назначать псевдонимы сетевого интерфейса и использовать более одного IP-адреса на каждом сетевом интерфейсе. Адрес-псевдоним не создает новый виртуальный интерфейс для ВМ на стороне узла виртуализации и не присваивает адрес виртуальному интерфейсу ВМ (с идентификатором one-<vmid>-0). Дополнительный адрес назначается интерфейсу в запущенной ВМ на этапе конфигурации из шаблона ВМ.

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

Псевдонимы сетевого интерфейса позволяют использовать разные IP-адреса для разных сервисов на одном сервере, временно переносить IP-адреса с другого узла, решать проблемы маршрутизации и т.д.

Виды псевдонимов сетевых интерфейсов

ПК СВ "Брест" поддерживает два вида псевдонимов сетевых интерфейсов:

  • внутренние (internal NIC Alias) — IP-адреса, непосредственно сконфигурированные внутри ВМ в качестве дополнительных IP-адресов на сетевых интерфейсах. ВМ доступна напрямую по внутреннему псевдониму сетевой карты. Управление внутренними псевдонимами доступно через интерфейс командной строки и веб-интерфейс ПК СВ;
  • внешние (external NIC Alias) — в отличие от внутренних псевдонимов сетевых интерфейсов дополнительные IP-адреса не назначаются для ВМ. При присоединении внешнего псевдонима происходит только выделение адреса из диапазона адресов виртуальной сети, подключение к ВМ по этому адресу без дополнительной конфигурации невозможно.

    Внешние псевдонимы сетевых интерфейсов используются при настройке в виртуальных маршрутизаторах сетевой функции SDNAT4 (сопоставления виртуальных сетей). SDNAT4 каждые 30 секунд отслеживает присоединение внешнего псевдонима к любой из ВМ в сетях виртуального роутера и автоматически создает пары интерфейсов для трансляции адресов в обоих направлениях (что позволяет, например, использовать ВМ в частной сети без раскрытия адреса).

    Внешний псевдоним не имеет ограничений на использование режимов работы облачной сети. 

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

Настройка Алиас в ПК СВ "Брест"

Добавление псевдонимов сетевых интерфейсов в шаблон ВМ

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

  1. Для изменения параметров шаблона ВМ необходимо использовать команду:

    onetemplate update <идентификатор_шаблона_ВМ> 

  2. В шаблоне отредактировать параметры сетевого интерфейса:

    NIC = [ NETWORK = "virtnetwork", NAME = "test" ]
    CODE

    где 

    • NETWORK - идентификатор используемой виртуальной сети;
    • NAME - идентификатор сетевого интерфейса.

      Если параметр NAME не задан, сетевому интерфейсу автоматически будет присвоено системное имя вида "NIC<N>".

      При задании пользовательского имени для параметра NAME, оно должно быть использовано в шаблоне для параметра PARENT у NIC_ALIAS. Если этого не сделать, создание ВМ через веб-интерфейс будет приводить к ошибке.

  3. Добавить в шаблон параметры псевдонима сетевого интерфейса:

    NIC_ALIAS = [ NETWORK = "virtnetwork", PARENT = "test" ]
    CODE

    где

    • NETWORK - идентификатор используемой виртуальной сети;

      Виртуальная сеть, используемая для дополнительного IP-адреса, может отличаться от виртуальной сети, используемой сетевым интерфейсом.

    • PARENT - идентификатор сетевого интерфейса, для которого будет использован дополнительный IP-адрес. (Значение параметра NAME заданное при редактировании сетевого интерфейса или сгенерированный ПК СВ идентификатор вида "NIC<N>", если на предыдущем шаге параметр NAME для сетевого интерфейса не был определен.)


  4. Сохранить шаблон ВМ.
    Пример вида шаблона ВМ после добавления указанных параметров: 

    CONTEXT = [
      NETWORK = "YES",
      SSH_PUBLIC_KEY = "$USER[SSH_PUBLIC_KEY]" ]
    CPU = "0.25"
    DISK = [
      IMAGE = "disk",
      IMAGE_UNAME = "adminbrest" ]
    DISK = [
      IMAGE = "173",
      IMAGE_UNAME = "adminbrest" ]
    FEATURES = [
      GUEST_AGENT = "yes" ]
    GRAPHICS = [
      LISTEN = "0.0.0.0",
      TYPE = "VNC" ]
    HOT_RESIZE = [
      CPU_HOT_ADD_ENABLED = "NO",
      MEMORY_HOT_ADD_ENABLED = "NO" ]
    HYPERVISOR = "kvm"
    INPUTS_ORDER = ""
    MEMORY = "2048"
    MEMORY_UNIT_COST = "MB"
    NIC = [
      NAME = "test",
      NETWORK = "virtnetwork",
      NETWORK_UNAME = "adminbrest",
      SECURITY_GROUPS = "0" ]
    NIC_ALIAS = [
      NETWORK = "virtnetwork",
      PARENT = "test" ]
    OS = [
      BOOT = "disk0,disk1",
      FIRMWARE = "" ]
    VCPU = "1"
    CODE
  5. Развернуть ВМ из шаблона командой:

    onetemplate instantiate <идентификатор_шаблона> [<файл_параметров>]
    где <файл_параметров> — файл в котором перечислены параметры ВМ, заменяющие значения, которые были определены в шаблоне. Кроме того, возможно вместо файла параметров в команде в качестве аргумента указывать новые значения параметров.

В веб-интерфейсе ПК СВ

  1. На странице Изменить шаблон ВМ во вкладке Расширенный отредактировать в шаблоне ВМ параметры сетевого интерфейса:

    NIC = [ NETWORK = "virtnetwork", NAME = "test" ]
    CODE

    где 

    • NETWORK - идентификатор используемой виртуальной сети;
    • NAME - идентификатор сетевого интерфейса.

      Идентификаторы сетевого интерфейса вида "NIC<N>" зарезервированы системой. ПК СВ автоматически переименует их в вид "_NIC<N>".

      Веб-интерфейс ПК СВ не поддерживает отображение в элементах интерфейса пользовательских имен заданных в параметре NAME.

      На страницах Создать ВМ и Изменить шаблон ВМ во вкладке Сеть в выпадающем списке Алиас сетевые интерфейсы будут обозначены системными именами вида "NIC<N>".

  2. Добавить в шаблон параметры псевдонима сетевого интерфейса:

    NIC_ALIAS = [ NETWORK = "virtnetwork", PARENT = "test" ]
    CODE

    где

    • NETWORK - идентификатор используемой виртуальной сети;

      Виртуальная сеть, используемая для дополнительного IP-адреса, может отличаться от виртуальной сети, используемой сетевым интерфейсом.


    • PARENT - идентификатор сетевого интерфейса, для которого будет использован дополнительный IP-адрес. (Значение параметра NAME заданное при редактировании сетевого интерфейса или сгенерированный ПК СВ идентификатор вида "NIC<N>", если на предыдущем шаге параметр NAME для сетевого интерфейса не был определен.)

      Возможно создание псевдонима сетевого интерфейса без заданного значения параметра PARENT.

      В таком случае значение родительского сетевого интерфейса можно будет выбрать на страницах Создать ВМ или Изменить шаблон ВМ во вкладке Сеть в выпадающем списке Алиас:

  3. Сохранить отредактированный шаблон ВМ нажав кнопку Обновить:
  4. После изменения шаблона ВМ на странице Изменить шаблон ВМ во вкладке Сеть станет доступен новый сетевой интерфейс с возможностью включения использования дополнительного IP-адреса:

Горячее подключение псевдонимов сетевых интерфейсов в ВМ

Для горячего подключения псевдонимов сетевых интерфейсов к работающим ВМ можно воспользоваться двумя способами:

  1. Добавить псевдоним сетевого интерфейса командой:

    sudo onevm nic-attach <идентификатор_ВМ> --network <идентификатор_сети>--alias <идентификатор_сетевого_псевдонима>

  2. В веб-интерфейсе ПК СВ на странице ВМ во вкладке Сеть нажать кнопку Добавить сетевой интерфейс:

    На открывшейся странице Добавить сетевой интерфейс установить флаг Прикрепить как псевдоним и выбрать виртуальную сеть из списка:
     
    Нажать кнопку Присоединить.