Перейти к основному содержимому

Дополнительные возможности работы с сетевой частью с помощью CLI Гипервизора Горизонт-ВС

Описание​

В статье рассматривается задача «Дополнительные возможности работы с сетевой частью с помощью CLI Гипервизора Горизонт-ВС» в системе виртуализации «Горизонт-ВС».

Требования​

  1. Развёрнутая платформа «Горизонт-ВС» и доступ к веб-интерфейсу СГУ.
  2. Доступ к командной строке соответствующего узла с правами администратора.
  3. Сведения о сетевых интерфейсах, VLAN и параметрах подключения.

Пошаговая инструкция​

Просмотр списка интерфейсов, подключенных к системе и активированных в данный момент, осуществляется командой:

ifconfig

Рисунок 302 – Вывод команды ifconfig

Просмотр информации о всех сетевых интерфейсах и их сетевых настройках, осуществляется командой:

ip a

Рисунок 303 – Вывод команды ip a

Краткая информация о выводимых данных представлена ниже:

enp3s0 или lo: Имя сетевого интерфейса в виде строки.

<LOOPBACK,UP,LOWER_UP>: это петлевой интерфейс. Здесь указано UP, что означает, что он работает. Физический сетевой уровень (первый уровень) также работает, об этом говорит LOWER_UP.

<NO-CARRIER,BROADCAST,MULTICAST,UP>: NO-CARRIER означает, что сетевой разъем не обнаруживает сигнал на линии. Обычно это происходит потому, что сетевой кабель отключён или повреждён. В редких случаях это также может быть аппаратный сбой или ошибка драйвера. В данном случае просто не подключён сетевой кабель. UP означает, что устройство работает. BROADCAST — устройство может отправлять трафик всем хостам по link. MULTICAST — устройство может выполнять и принимать многоадресные пакеты.

mtu 65536: максимальная единица передачи. Это размер наибольшего фрагмента данных, который может передавать этот интерфейс.

**qdisc noqueue: qdisc **— это механизм организации очередей. Планирует передачу пакетов. Существуют различные методы очередей, называемые дисциплинами. Дисциплина noqueue означает «отправляй мгновенно, не ставь в очередь». Это стандартная дисциплина qdisc для виртуальных устройств, например адресов LOOPBACK.

state: могут быть такие состояния как DOWN (сетевой интерфейс выключен), UNKNOWN (сетевой интерфейс включен, но ничего не подключено; является нормальным состоянием внутреннего интерфейса виртуального коммутатора, например, интерфейса sys0) или UP (сетевой интерфейс включен и соединение установлено).

group default: интерфейсы могут быть сгруппированы логически. По умолчанию они помещаются в группу под названием «default».

qlen 1000: максимальная длина очереди передачи.

link/loopback: адрес управления доступом к среде (MAC) интерфейса.

link/ether: MAC-адрес интерфейса.

inet 127.0.0.1/8: IP-адрес версии 4. Часть адреса после косой черты (/) представляет собой нотацию бесклассовой междоменной маршрутизации (CIDR), представляющую маску подсети. Она указывает, сколько ведущих непрерывных битов имеют значение единица в маске подсети. Значение восемь означает восемь битов. Восемь битов, равных единице, представляют 255 в двоичном виде, поэтому маска подсети равна 255.0.0.0. Более подробно об IP адресе и подсетях смотрите в статье «IP адрес».

scope host: область IP-адреса. Этот IP-адрес действителен только внутри компьютера («хост»).

scope global: IP-адрес действителен везде в этой сети.

lo: интерфейс, с которым связан этот IP-адрес.

valid_lft: допустимое время жизни. Для IP-адреса версии 4 IP, назначенного протоколом динамической конфигурации хоста (DHCP), это период времени, в течение которого IP-адрес считается действительным и может создавать, и принимать запросы на подключение.

preferred_lft: предпочтительное время жизни. Для IP-адреса версии 4, выделенного протоколом DHCP, это количество времени, в течение которого IP-адрес может использоваться без ограничений. Оно никогда не должно быть больше значения valid_lft.

inet6: IP-адрес версии 6, о valid_lft и preferred_lft.

Проверка конфигурации виртуального коммутатора (Bridge), установленного по умолчанию, выполняется с помощью команды:

ovs-vsctl show

Рисунок 304 – Вывод команды

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

ovs-vsctl add-br <имя_коммутатора>
ovs-vsctl add-br hvssw1

Добавление порта в коммутатор, осуществляется командой:

ovs-vsctl add-port <имя_коммутатора> <имя_порта>
ovs-vsctl add-port hvssw1 enp4s0

Присваиваем тип интерфейса internal командой (применяется в случае создания нового внутреннего интерфейса, не применима для физических интерфейсов):

ovs-vsctl set Interface <имя_интерфейса> type=internal
ovs-vsctl set Interface sys1 type=internal

Рисунок 305 – Вывод команды

Удаление порт из Bridge:

ovs-vsctl del-port <имя_коммутатора> <имя_порта>
ovs-vsctl del-port hvssw1 enp4s0

Рисунок 306 – Вывод команды

Добавление порта типа bond в Bridge:

ovs-vsctl add-bond <имя_коммутатора> <имя порта типа bond> <имя_порта_1> <имя_порта_2>
ovs-vsctl add-bond hvssw1 bond1 enp4s0 enp10s0

Рисунок 307 – Вывод команды

Вывод информации о режиме балансировки порта типа bond:

ovs-appctl bond/show

Рисунок 308 – Вывод команды

Смена режима балансировки порта типа bond на balance-tcp и активного режима работы LACP:

ovs-vsctl set port <имя_порта> bond_mode=<режим_работы>
ovs-vsctl set port bond1 lacp=<режим_LACP>
ovs-vsctl set port bond1 bond_mode=balance-tcp
ovs-vsctl set port bond1 lacp=active

Настройка тегирования трафика на порте (принадлежность к VLAN):

ovs-vsctl set port <имя_порта> tag=<VLAN_ID> 
ovs-vsctl set port sys0 tag=4094

Вывести имена всех коммутаторов:

ovs-vsctl list-br

Рисунок 309 – Вывод команды

Посмотреть текущий список портов конкретного коммутатора:

ovs-vsctl list-ports <имя_коммутатора>
ovs-vsctl list-ports hvssw1

Рисунок 310 – Вывод команды

Удалить коммутатор целиком:

ovs-vsctl del-br <имя_коммутатора>
ovs-vsctl del-br hvssw1

Важно!

Виртуальный коммутатор с именем hvssw0 является основным и его удаление приведет к потери сетевой связности. В случае необходимости данные действия стоит выполнять только при непосредственном управлении консолью по средствам подключения по iLO или KVM over iP.

Рисунок 311 – Вывод команды

Настройка trunk на порту:

ovs-vsctl set Port <имя_интерфейса> trunks=<trunk_id>
Примечание

Для указания нескольких trunk их необходимо записывать через запятую> ovs-vsctl set port bond1 trunks=4094,101,102. При редактировании trunk на определённом порту, указываются все необходимые ID, т.к. осуществляется перезапись значения, а не ее обновление/дополнение.

Указание в команде trunks=0, разрешает прохождение нетегированного (не принадлежащего определенному VLAN) трафика.

Отсутствие настройки указывает на то, что разрешен любой трафик.

ovs-vsctl set Port enp4s0 trunks=10,20,30,40,50

Рисунок 312 – Вывод команды

Удаление настройки trunk на порту:

ovs-vsctl set Port <имя_интерфейса> trunks=[]
ovs-vsctl set Port enp4s0 trunks=[]

Просмотр записей о всех портах виртуального коммутатора:

ovs-vsctl list Port

Рисунок 313 – Вывод команды

Просмотр записи о конкретном порте:

ovs-vsctl list Port <имя_порта>
ovs-vsctl list Port enp4s0

Рисунок 314 – Вывод команды

Также можно пользоваться поиском оперируя различными параметрами, например, вывести все порты, включенные в конкретный VLAN:

ovs-vsctl find Port tag=10

Посмотреть, в каком VLAN-е находится конкретный коммутатор:

ovs-vsctl br-to-vlan <имя_коммутатора>

Рисунок 315 – Вывод команды

Информация о LACP интерфейса типа bond:

ovs-appctl lacp/show <bond-интерфейс>
ovs-appctl lacp/show bond1

Рисунок 316 – Вывод команды

Для создания нового виртуального интерфейса в виртуальном коммутаторе, назначения ему статического IP-адреса и использования его для управления хостом, назначения его для NFS хранилища и других целей, необходимо выполнить следующие команды (далее в примерах команд настраиваемый порт - mgmt0):

ovs-vsctl add-port <имя_коммутатора> <имя_интерфейса>
ovs-vsctl add-port ovs-sw0 mgmt0

Далее необходимо указать, что это внутренний интерфейс:

ovs-vsctl set interface mgmt0 type=internal

При необходимости, добавить в нужный VLAN:

ovs-vsctl set port mgmt0 tag=100

Создать символьную ссылку на новый интерфейс:

cd /etc/init.d
ln -s net.lo net.mgmt0

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

vi /etc/conf.d/net

В файл /etc/conf.d/net необходимо добавить конфигурацию IP:

— В случае dhcp:

config_mgmt0="dhcp"

— В случае статического IP-адреса, используя запись CIDR:

config_mgmt0="172.16.100.11/24"

— В случае статического IP-адрес, используя запись с указанием маски подсети:

config_mgmt0="172.16.100.11 netmask 255.255.255.0"

Задать провайдера и зависимости для интерфейса:

rc_net_mgmt0_provide="net"
rc_net_mgmt0_need="ovs-vswitchd" #опция только для внутренних интерфейсов

При ниобходимости закрепись за данным интерфейсом MAC-адрес:

mac_ mgmt0="0e:7d:9f:3e:1a:bc"

Результат​

Настройки применены. Проверьте состояние объекта в СГУ или результатом проверки, описанной в инструкции.

Устранение неисправностей​

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

См. также​