Перейти к содержанию

Общие сведения о сетевой подсистеме SpaceVM

Краткое описание

Данный раздел содержит описание построения и функционирования сетевой подсистемы SpaceVM, основных объектов, составляющих сетевую подсистему, их взаимодействия и доступные пользователю настройки. Сетевая подсистема построена на основе виртуальных коммутаторов, представляющих собой изолированные сетевые устройства на уровне ОС вычислительного узла.

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

  1. сетевых интерфейсов всех типов:

    Примечание

    Описание типов сетевых интерфейсов приведено ниже в данном разделе.

  2. L2-туннелей.

image
На схеме изображен виртуальный коммутатор switch A, к которому подключены физический и внутренний (сервисный) интерфейсы вычислительного узла.

Основные объекты сетевой подсистемы

Виртуальные коммутаторы

Виртуальные коммутаторы представляют собой виртуальные изолированные сетевые устройства на уровне ОС вычислительного узла. Используются для подключения к ним интерфейсов всех типов для построения сетевой инфраструктуры SpaceVM.

Виртуальные коммутаторы могут быть трех типов:

  • «uplink»: к виртуальному коммутатору этого типа можно подключать только физические или агрегированные интерфейсы;
  • «mixed»: к виртуальному коммутатору этого типа можно подключать любые интерфейсы, кроме интерфейсов виртуальных машин;
  • «virtual»: к виртуальному коммутатору этого типа можно подключать только сетевые интерфейсы виртуальных машин.

Тип коммутаторов virtual

Виртуальные коммутаторы типа «virtual» создаются автоматически и только при создании и в составе виртуальной сети.

STP

На виртуальных коммутаторах типов «uplink» и «mixed» протоколы семейства STP(Spanning Tree Protocol) выключены, а также происходит фильтрация транзита пакетов BPDU (Bridge Protocol Data Units). Для проверки необходимо из CLI-интерфейса вычислительного узла выполнить команду: tcpdump -i "интерфейс" stp -direction='out', где "интерфейс" - это имя физического интерфейса узла в состоянии UP. В выводе на экран не должно быть уведомлений о пакетах STP. Это означает отсутствие исходящих BPDU с портов виртуальных коммутаторов.

Коммутаторы по-умолчанию

  • Коммутатор default типа «mixed» -- это коммутатор СУ SpaceVM. К нему подключены физический интерфейс и виртуальный сетевой интерфейс управления mgmt.
  • Коммутатор blackhole типа «mixed» - это коммутатор -- заглушка. Не имеет никаких подключений. В некоторых случаях используется для подключения к нему сетевых интерфейсов виртуальных машин.

Создать виртуальный коммутатор можно двумя способами:
1. перейти в раздел Сети -- Сетевые настройки основного меню и далее выполнить:
- выбрать нужную подсеть управления; - выбрать пункт меню Виртуальные коммутаторы; - выбрать целевой вычислительный узел и в открывшемся окне нажать кнопку Добавить виртуальный коммутатор;
2. перейти в раздел Серверы основного меню и далее выполнить:
- выбрать целевой сервер; - выбрать пункт меню Сети -- Виртуальные коммутаторы и в открывшемся окне нажать на кнопку Добавить виртуальный коммутатор.

Группы портов

Представляют собой объекты для группировки интерфейсов по совокупности параметров VLAN и MTU (для внутренних интерфейсов и интерфейсов виртуальных машин) и привязываются к виртуальным коммутаторам.

Порт-группы могут быть четырех типов:

  • «internal»: предназначены для внутренних интерфейсов;
  • «uplink»: предназначены для физических и агрегированных интерфейсов;
  • «kernel»: предназначены для внутренних интерфейсов;
  • «virtual»: предназначены для интерфейсов виртуальных машин.

Примечания

  1. Порт-группы типа «kernel» создаются автоматически. Их нельзя создать или удалить. Помимо этого, в порт-группы типа «kernel» нельзя подключить интерфейсы, созданные пользователем.
  2. Порт-группы типа «virtual» создаются автоматически при создании виртуальных сетей.

При создании или изменении параметров порт-группы доступны следующие режимы VLAN:

  • none;
  • access;
  • trunk;
  • native-tagged;
  • native-untagged.

Также предоставлена возможность привязки порт-группы к нескольким виртуальным коммутаторам. Создание порт-групп производится из окна информации виртуального коммутатора с помощью кнопки Добавить порт-группу.

Физические интерфейсы

Данный вид интерфейсов в SpaceVM является представлением физических сетевых интерфейсов сервера. Объекты этого типа нельзя создать или удалить, используя Web-интерфейс или интерфейс командной строки. Информация о существующих физических интерфейсах собирается автоматически на этапе добавления вычислительного узла и хранится на протяжении всего времени существования объекта вычислительного узла. Собираемая информация включает в себя сведения о производителе сетевой карты, используемом драйвере, максимальной поддерживаемой величине MTU, скорости соединения (при условии, что сетевой интерфейс подключен) и др.

Однако, пользователю предоставляется возможность настройки некоторых параметров и состояния физических интерфейсов:

  • изменение величины MTU интерфейса;
  • включение/выключение «promiscuous» (неразборчивого) режима интерфейса;
  • включение/выключение интерфейса (перевод в состояние UP/DOWN);
  • включение/выключение SR-IOV интерфейса (при условии, что сетевой адаптер поддерживает эту функцию).

Подключение физических интерфейсов может быть осуществлено двумя способами:
1. открыть окно информации о целевом виртуальном коммутаторе -- нажать кнопку Подключить интерфейс -- выбрать тип интерфейса «physical»;
2. открыть окно информации о целевом физическом интерфейсе -- нажать кнопку Подключение -- выбрать целевые виртуальный коммутатор и порт-группу.

Агрегированные интерфейсы

Данный вид интерфейсов в SpaceVM является представлением объединенных с целью:

  • объединения пропускной способности;
  • резервирования физических интерфейсов.

Объекты этого типа можно создать, удалить или модифицировать используя Web-интерфейс.

Создание агрегированного интерфейса может быть осуществлено двумя способами:
1. открыть окно информации о целевом виртуальном коммутаторе -- нажать кнопку Подключить интерфейс -- выбрать тип интерфейса «aggregated» -- следовать шагам мастера добавления интерфейса;
2. на целевом сервере перейти в пункт меню Сети -- Агрегированные интерфейсы -- нажать кнопку Добавить.

При создании или модификации параметров агрегированного интерфейса предоставляется выбор следующих режимов агрегации:

  • «active-backup»: используется для резервирования подключения, в этом режиме работает один из физических интерфейсов, включенных в агрегацию, а остальные будут задействованы в случае отказа активного;
  • «balance-slb»: используется для объединения пропускной способности нескольких физических интерфейсов и балансировки нагрузки на них;
  • «balance-tcp»: используется для объединения пропускной способности нескольких физических интерфейсов и балансировки нагрузки на них, однако, в отличие от «balance-slb», использует протокол LACP для отслеживания состояния подключения.

Внимание

Для работы агрегации в режиме «balance-tcp» необходима настройка порт-групп со стороны физического коммутатора.
Для работы агрегации в режимах «active-backup» и «balance-slb» порты физического коммутатора не должны быть объединены в порт-группу.

Внутренние (сервисные) интерфейсы

Данный вид интерфейсов в SpaceVM представляет собой виртуальное сетевое устройство, используется для обеспечения доступности вычислительных узлов на сетевом уровне: этим интерфейсам назначаются IP-адреса. При создании внутреннего интерфейса выбирается виртуальный коммутатор, в который интерфейс будет подключен, параметры интерфейса:

  • режим получения адреса: динамический или статический;
  • IP-адрес;
  • маска подсети;
  • MAC-адрес;
  • порт-группа, которой будет принадлежать интерфейс.

Внимание

При выборе динамического режима получения адреса интерфейсом, необходимо убедиться, что к выбранному для подключения виртуальному коммутатору также подключен физический или агрегированный интерфейс. В противном случае созданный внутренний интерфейс не будет иметь доступ к сети и, как следствие, не сможет получить IP-адрес от DHCP-сервера.
Также необходимо убедиться, что настройки VLAN выбранной порт-группы и настройки VLAN порт-группы, к которой относится физический или агрегированный интерфейс, указанный выше, не будут препятствовать прохождению сетевого трафика, порождаемого создаваемым внутренним интерфейсом.

Создание внутреннего интерфейса может быть осуществлено двумя способами:

  1. открыть окно информации о целевом виртуальном коммутаторе -- нажать кнопку Подключить интерфейс -- выбрать тип интерфейса «internal» -- следовать шагам мастера добавления интерфейса
  2. на целевом сервере перейти в пункт меню Сети -- Внутренние интерфейсы -- нажать кнопку Добавить.

MAC-адреса

Первые 3 октета генерируемых MAC-адресов (Organizational Unique Identifier (OUI)) контроллером SpaceVM для виртуальных и внутренних интерфейсов везде одни и те же: 02:ff:f0.

4 октет в десятичной системе счисления генерируется случайно от 0 до 127 при установке контроллера и доступен для изменения пользователем. При генерации он переводится в шестнадцатеричную систему счисления.

Примеры

  • 4 октет 0: генерируемый MAC-адрес 02:ff:f0:00:68:33;
  • 4 октет 22: генерируемый MAC-адрес 02:ff:f0:16:b4:82;
  • 4 октет 99: генерируемый MAC-адрес 02:ff:f0:63:6a:b0.

Командой controller macs в CLI можно увидеть все имена и MAC-адреса внутренних интерфейсов, физических интерфейсов, виртуальных интерфейсов, виртуальных функций.

Пример из CLI: image

Файл hosts (локальная база данных доменных имен)

Активный контроллер SpaceVM управляет записями в /etc/hosts по всей инфраструктуре, то есть для каждого внутреннего интерфейса каждого узла генерируется отдельный файл в каталоге /etc/hosts.d, и результирующе на их основе (плюс файлы в каталоге /etc/hosts.d.local, плюс текущему hostname узла) генерируется целевой файл /etc/hosts. Контроллер циклично копирует файлы из каталога /etc/hosts.d по всем узлам, на каждом из них при изменении генерируется целевой файл /etc/hosts.

Команда hosts в CLI выводит все записи в /etc/hosts.

Пример из CLI: image

Команда net hosts update в CLI правит все записи в /etc/hosts согласно списку файлов в /etc/hosts.d и текущему hostname узла.

Также есть возможность добавить/удалить свои записи командой net hosts (это тоже будут отдельные файлы, но в каталоге /etc/hosts.d.local). С контроллера можно добавить записи сразу на всех узлах, используя стандартную команду node nodes cli, например, node nodes_cli 'net hosts add myhostname 192.168.11.107'.

На контроллере есть дополнительная команда CLI controller repair_hosts (проверяет и обновляет соответствия файла /etc/hosts таблице внутренних интерфейсов базы данных контроллера).

Описание параметров вывода команды "net show bonds"

  • Name - имя интерфейса.
  • Bond mode - режим работы бонда.

Возможные режимы описаны в Агрегированных интерфейсах:

- balance-tcp;

- balance-slb;

- active-backup.
  • Lacp - отображает поведение протокола управления агрегацией каналов (LACP). Только некоторые коммутаторы поддерживают LACP. Если ваш коммутатор не поддерживает LACP, то используйте bond_mode=balance-slb или bond_mode=active-backup. Возможны варианты:

    • active;
    • passive;
    • off.
  • Lacp time - устанавливает период проверки работоспособности (heartbeat) к 1 секунде (fast) или 30 секундам (slow). По умолчанию - slow. Возможны варианты:

    • fast;
    • slow.
  • Fallback - определяет поведение бонда openvswitch в режиме LACP. Если коммутатор не поддерживает LACP, то установка этого параметра в значение true позволяет вернуться к active-backup режиму работы. Если для параметра установлено значение false, бонд будет отключён. В обоих случаях, когда коммутатор настроен на использование режима LACP, бонд будет использовать LACP протокол. Возможны варианты:

    • true;
    • false.
  • Members - имена интерфейсов, входящих в бонд.

  • Connected to - виртуальный коммутатор, которому принадлежит бонд.

  • Updelay - количество миллисекунд, в течении которых соединение должно быть активным, перед тем как будет принято решение, что интерфейс поднят.

  • Downdelay - количество миллисекунд, в течении которых соединение находится в выключенном состоянии, перед тем как будет принято решение, что интерфейс выключен. Значение "0" отключает интерфейс немедленно.

  • Lacp_status - отображает состояние протокола LACP. Сконфигурирован или нет.

  • Active member mac - MAC-адрес и имя активного интерфейса в бонде.

  • Bond member - имя интерфейса, участвующего в бонде.

  • State - состояние интерфейса (включен/выключен).

  • Status - статус интерфейса (активный/неактивный член бонда).

  • May_enable - статус возможности включения интерфейса.