Конфигурация всех Open vSwitch коммутаторов, портов, настройки поддерживаемых протоколов хранятся в собственной базе данных OVS. Утилита ovs-vsctl предоставляет интерфейс для внесения изменений в эту БД. Для некоторых типичных задач существуют вполне понятные, говорящие сами за себя параметры, подобные представленным в предыдущем разделе. Но как только появится необходимость в каком либо продвинутом функционале, например, создании GRE-туннеля, необходимо будет на прямую править записи БД(в формате JSON) с помощью специального синтаксиса. В общем случае синтаксис для внесения изменений в БД выглядит так:
# ovs-vsctl <команда> <таблица> <запись> <ключ=значение>
Например разрешим порту eth0 пропускать во внешний мир трафик из определенных VLAN-ов:
# ovs-vsctl set port eth0 trunks=10,20,30,40,50
Вместо команды set, могут также использоваться:
list <таблица> <запись>
find <таблица> <условие>
get <таблица> <запись> <ключ=значение>
add <таблица> <запись> <ключ=значение>
remove <таблица> <запись> <ключ=значение>
clear <таблица> <запись> <ключ>
create <таблица> <запись> <ключ=значение>
destroy <таблица> <запись>
wait-until <таблица> <запись> <ключ=значение>
Думаю, что по началу команд, понятно их предназначение без пояснения. Единственный вопрос вызывает wait-until. Но к сожалению, я так и не понял как она работает.
В стандартной конфигурации в OVSDB существуют следующие таблицы:
Open_vSwitch — Cхема
Bridge
Port
Interface
Flow_Table — конфигурация OpenFlow
QoS
Mirror
Controller — параметры подключения к контроллеру OpenFlow
Manager — конфигурация OVSDB
NetFlow
SSL
sFlow
IPFIX
Flow_Sample_Collector_Set
Содержание большинства таблиц понятно из их названия. Изначально почти все они пусты, так как конфигурация отсутствует.
Например, просмотреть, какие записи присутствуют в таблице описывающей порты можно следующим образом:
# ovs-vsctl list port
а конфигурацию (запись) конкретно для eth0:
# ovs-vsctl list port eth0
так же можно пользоваться поиском оперируя различными параметрами
например, вывести все порты включенные в конкретный VLAN:
# ovs-vsctl find port tag=10
Помогла ли вам статья?