Open vSwitch часть №4. Создаем коммутатор и добавляем порты

Open vSwitch — все статьи

После установки OVS никаких коммутаторов автоматически не создается. Это необходимо проделать самостоятельно. Open vSwitch

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

Пример создания коммутатора:

# ovs-vsctl add-br ovs-sw0

Теперь у нас есть коммутатор «ovs-sw0» к которому мы уже можем подключать свои ВМ. Если используется virt-manger то в настройках сетевого интерфейса виртуалки, в качестве общего сетевого устройства\моста просто указываем ovs-sw0. При использовании virt-install строка с параметрами будет выглядеть примерно так:

# virt-install --connect qemu:///system --accelerate --hvm --network bridge=ovs-sw0 --name vm01 --ram 512 --cdrom=/iso-store/systemrescuecd-x86-1.6.3.iso --disk=/vm-store/vm01.img

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

# ovs-vsctl add-port <имя_комутатора> <имя_физ.Интерфейса>

Пример добавления порта:

# ovs-vsctl add-port ovs-sw0 eth0

Физический интерфейс, включаемый в ovs-sw0, не должен иметь IP-адреса или любых других настроек. Для управления хост-системой (гипервизором) подразумевается использование отдельного физического или виртуального интерфейса, о чем пойдет речь далее. Так же, в один виртуальный коммутатор, не должно быть включено более одного физического интерфейса. Данное ограничение связанно с протоколом STP (Spanning Tree Protocol) который используется OVS по умолчанию. Такое возможно, только если они будут агрегированы, о чем рассказывается ниже. Иначе каждый из физических интерфейсов должен быть подключен к отдельному виртуальному коммутатору.

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

# ovs-vsctl show

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

# ovs-vsctl list-br

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

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

Удалить порт:

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

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

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