обычное использование без vlan:
ovs-vsctl show - показывает информацию по свитчу, проверяем работу и заодно узнаем какая у нас версия ovs
ovs-vsctl add-br br0 - добавляем свитч с именем br0
ovs-vsctl add-port br0 eth0 - добавляем интерфейс eth0 в свитч br0
пример с vlan:
ovs-vsctl add-br ovs0 - добавляем свитч openvswitch с именем br0
ovs-vsctl add-port ovs0 eth0 - добавляем интерфейс eth0 в свитч ovs0
ovs-vsctl set port eth0 vlan_mode=native-untagged tag=2 trunks=2,3,4 - вешаем trunk на интерфейс eth0
ovs-vsctl add-port ovs0 ovs0-vlan2 tag=2 -- set Interface ovs0-vlan2 type=internal - добавляем порт и вешаем access (tag=2) на интерфейс ovs0-vlan2
ovs-vsctl add-port ovs0 ovs0-vlan4 tag=4 -- set Interface ovs0-vlan4 type=internal - добавляем порт и вешаем access (tag=4) на интерфейс ovs0-vlan2
ovs-vsctl add-port ovs0 ovs0-vlan3 tag=3 -- set Interface ovs0-vlan3 type=internal - добавляем порт и вешаем access (tag=3) на интерфейс ovs0-vlan2
ovs-vsctl set port ovsbr0 tag=29
удаление портов и коммутатора:
ovs-vsctl del-port ovs0-vlan2 - удалить порт (ovs0-vlan2) из коммутатора
ovs-vsctl del-br ovs0 - удалить коммутатор ovs0
Примеры настройки сети:
dhcp client:
dhclient ovs0-vlan3 - получить настройки по dhcp для интерфейса ovs0-vlan3
static ifconfig:
ifconfig ovs0-vlan2 inet 10.254.254.1/24 up - настраиваем ip 10.254.254.1/24 и запускаем интерфейс
ifconfig ovs0-vlan4 up - просто запускаем интерфейс без настройки ip
static ip:
ip a - показать доступные устройства
ip address add 192.168.66.10/24 dev eth0 - задаем адрес ipv4
ip link set up eth0 - запускаем интерфейс
Собственно пытаемся работать:
virsh --c lxc:// - подключаемся к консоли управления lxc контейнерами
create /root/lxc0.xml - создаем контейнер из шаблона lxc0.xml
create /root/lxc1.xml - создаем контейнер из шаблона lxc1.xml
list - показать доступные контейнеры
console lxc0 - подключаемся к контейнеру lxc0 (CTRL+] - отключится контейнера)
ip a - показать доступные устройства
ip address add 192.168.66.10/24 dev eth0 - задаем адрес ipv4
ip link set up eth0 - запускаем интерфейс
ip a - показать доступные устройства
ip address add 192.168.66.11/24 dev eth0 - задаем адрес ipv4
ip link set up eth0 - запускаем интерфейс
Шаблон для контейнера(lxc0.xml)
lxc0131072exe/sbin/init1
Шаблон для контейнера(lxc1.xml)
lxc1131072exe/sbin/init1
OpenFlow
По умолчанию openvswitch работает как обычный свитч (нету vlan)
ovs-vsctl set-fail-mode br0 secure - включаем режим работы умного свитча (Задействуем протокол OpenFlow)
Гоняем трафик между двумя портами
ovs-ofctl add-flow br0 in_port=1,action=output=2
ovs-ofctl add-flow br0 in_port=2,action=output=1
ovs-ofctl dump-flows br0 - проверяем что мы там настроили
ovs-vsctl set-fail-mode br0 standalone - вернуть настройки в обычный режим (br0 снова будет как обычный свитч)
# еще
ovs-ofctl -O OpenFlow13 dump-flows ovsbr0
ovs-ofctl -O OpenFlow13 dump-ports ovsbr0