Общие сведения о сетевой подсистеме SpaceVM
Краткое описание
Данный раздел содержит описание построения и функционирования сетевой подсистемы SpaceVM, основных объектов, составляющих сетевую подсистему, их взаимодействия и доступные пользователю настройки. Сетевая подсистема построена на основе виртуальных коммутаторов, представляющих собой изолированные сетевые устройства на уровне ОС вычислительного узла.
Виртуальные коммутаторы являются связующим звеном для других объектов сетевой подсистемы:
-
сетевых интерфейсов всех типов:
- физических интерфейсов вычислительного узла;
- агрегированных интерфейсов;
- внутренних (сервисных) интерфейсов;
- сетевых интерфейсов виртуальных машин.
Примечание
Описание типов сетевых интерфейсов приведено ниже в данном разделе.
На схеме изображен виртуальный коммутатор 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»: предназначены для интерфейсов виртуальных машин.
Примечания
- Порт-группы типа «kernel» создаются автоматически. Их нельзя создать или удалить. Помимо этого, в порт-группы типа «kernel» нельзя подключить интерфейсы, созданные пользователем.
- Порт-группы типа «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
порт-группы, к которой относится физический или агрегированный интерфейс, указанный
выше, не будут препятствовать прохождению сетевого трафика, порождаемого создаваемым
внутренним интерфейсом.
Создание внутреннего интерфейса может быть осуществлено двумя способами:
- открыть окно информации о целевом виртуальном коммутаторе -- нажать кнопку Подключить интерфейс -- выбрать тип интерфейса «internal» -- следовать шагам мастера добавления интерфейса
- на целевом сервере перейти в пункт меню Сети -- Внутренние интерфейсы -- нажать кнопку Добавить.
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-адреса внутренних интерфейсов,
физических интерфейсов, виртуальных интерфейсов, виртуальных функций.
Файл hosts (локальная база данных доменных имен)
Активный контроллер SpaceVM управляет записями в /etc/hosts
по всей инфраструктуре, то есть для каждого
внутреннего интерфейса каждого узла генерируется отдельный файл в каталоге /etc/hosts.d
, и результирующе
на их основе (плюс файлы в каталоге /etc/hosts.d.local
, плюс текущему hostname узла) генерируется целевой файл /etc/hosts
. Контроллер циклично копирует файлы из каталога /etc/hosts.d
по всем узлам, на каждом из них при изменении генерируется целевой файл /etc/hosts
.
Команда hosts
в CLI выводит все записи в /etc/hosts
.
Команда 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
- статус возможности включения интерфейса.