понедельник, 27 мая 2019 г.

Установка OpenVSwitch на Ubuntu + пара команд

        Программный многоуровневый коммутатор с открытым исходным текстом, предназначенный для работы в гипервизорах и на компьютерах с виртуальными машинами.

Установив систему и сделав:

apt update && apt upgrade

Начинаем ставить.

Мой совет, берите LTS, не стабильный выдаст много интересного и надо будет маятся с доп установкой много чего

root@OpenVSwitch:~# cd /tmp

 Скачиваем

root@OpenVSwitch:/tmp# wget https://www.openvswitch.org/releases/openvswitch-2.5.8.tar.gz

Распаковываем

root@OpenVSwitch:/tmp#  tar -xzf openvswitch-2.5.8.tar.gz

Переходим в папку и приступаем к установке:

root@OpenVSwitch:/tmp/openvswitch-2.5.8# ./configure

Если не послушали меня и ставили самую новую, то получите похожее:

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
checking how to create a pax tar archive... gnutar
checking for style of include used by make... none
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/openvswitch-2.5.8':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
root@OpenVSwitch:/tmp/openvswitch-2.5.8#


В целом тут тоже все просто: идем по пунктам доставляя чего не хватает

Потом классика:
root@OpenVSwitch:/tmp/openvswitch-2.5.8# make && make install

Нюанс с Убунтой серверной:

root@OpenVSwitch:/tmp/openvswitch-2.5.8# make && make install
The program 'make' can be found in the following packages:
 * make
 * make-guile
Try: apt install <selected package>

root@OpenVSwitch:/tmp/openvswitch-2.5.8#

В ней нет по дефолту make, надо доставлять ручками.

После этого можно загрузить модуль ядра с помощью insmod:

$ insmod datapath/linux/openvswitch.ko

Создать базу настроек, которая будет использована для хранения текущей конфигурации коммутатора:

$ mkdir -p /usr/local/etc/openvswitch 
$ ovsdb-tool create /usr/local/etc/openvswitch/conf.dbvswitch/vswitch.ovsschema

Можно пойти более простым путем(более старая весия):

root@OpenVSwitch:~# apt install openvswitch-switch

Запусукаетс просто, правки чтобы не выдавал отладку в консоль:

ovs-vswitchd --pidfile --detach

Есть памятка по настройке

/usr/share/doc/openvswitch-switch/README.Debian.gz

Пример:

Examples:
--------
ex 1: A standalone bridge.

allow-ovs br0
iface br0 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    ovs_type OVSBridge

ex 2: A bridge with one port.

allow-ovs br0
iface br0 inet dhcp
    ovs_type OVSBridge
    ovs_ports eth0

allow-br0 eth0
iface eth0 inet manual
    ovs_bridge br0
    ovs_type OVSPort

ex 3: A bridge with multiple physical ports.

allow-ovs br0
iface br0 inet dhcp
    ovs_type OVSBridge
    ovs_ports eth0 eth1

allow-br0 eth0
iface eth0 inet manual
    ovs_bridge br0
    ovs_type OVSPort

allow-br0 eth1
iface eth1 inet manual
    ovs_bridge br0
    ovs_type OVSPort

ex 4: A bridge with an OVS internal port.

allow-ovs br1
iface br1 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    ovs_type OVSBridge
    ovs_ports vlan100

allow-br1 vlan100
iface vlan100 inet manual
    ovs_bridge br1
    ovs_type OVSIntPort
    ovs_options tag=100
    ovs_extra set interface ${IFACE} external-ids:iface-id=$(hostname -s)

ex 5: Bonding.

allow-ovs br2
iface br2 inet static
    address 192.170.1.1
    netmask 255.255.255.0
    ovs_type OVSBridge
    ovs_ports bond0

allow-br2 bond0
iface bond0 inet manual
    ovs_bridge br2
    ovs_type OVSBond
    ovs_bonds eth2 eth3
    ovs_options bond_mode=balance-tcp lacp=active
ex 6: Patch ports.

allow-ovs br0
iface br0 inet manual
    ovs_type OVSBridge
    ovs_ports patch0

allow-br0 patch0
iface patch0 inet manual
    ovs_bridge br0
    ovs_type OVSPatchPort
    ovs_patch_peer patch1

allow-ovs br1
iface br1 inet manual
    ovs_type OVSBridge
    ovs_ports patch1

allow-br1 patch1
iface patch1 inet manual
    ovs_bridge br1
    ovs_type OVSPatchPort
    ovs_patch_peer patch0

ex 7: Tunnel.

allow-ovs br1
iface br1 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    ovs_type OVSBridge
    ovs_ports gre1

allow-br1 gre1
iface gre1 inet manual
    ovs_bridge br1
    ovs_type OVSTunnel
    ovs_tunnel_type gre
    ovs_tunnel_options options:remote_ip=182.168.1.2 options:key=1

ex 8: Create and destroy bridges.

ifup --allow=ovs $list_of_bridges
ifdown --allow=ovs $list_of_bridges


Два стартовых скрипта для управления, подсмотренные в интернете:

$ sudo vi /etc/ovs-ifup
#!/bin/sh

switch='br0'
/sbin/ifconfig $1 0.0.0.0 up
ovs-vsctl add-port ${switch} $1

$ sudo vi /etc/ovs-ifdown
#!/bin/sh

switch='br0'
/sbin/ifconfig $1 0.0.0.0 down
ovs-vsctl del-port ${switch} $1

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

brctl addbr ovs-br0
ovs-vsctl add-br ovs-br0
 
Теперь подключим физический интерфейс к виртуальному порту:
 
 
 
А теперь подправим настройки сети:
 
vim /etc/network/interfaces
 
auto ens18
iface ens18 inet manual

auto ovs-br0
iface ovs-br0 inet static
 address {addres}
 netmask {mask}
 network {net}
 broadcast {broadcast}
 gateway {gateway}
 # dns-* options are implemented by the resolvconf package, if installed
 dns-nameservers DNS1 DNS2
 
И перезапускаем сеть
 
service networking restart 

После смотрим порты и интерфейсы в коммутаторе:
 
ovs-vsctl add-port ovs0 ens18 

root@OpenVSwitch:~# ovs-vsctl show
fd533f2e-797f-4de9-b86b-5b6f5ac68616
    Bridge "ovs-br0"
        Port "ovs-br0"
            Interface "ovs-br0"
                type: internal
    ovs_version: "2.5.5"

Можно посмотреть еще и так: ovs-vsctl list-br
 
Удаляем так, сначала порт потом коммутатор
 
ovs-vsctl del-port ovs-br0 eth0
ovs-vsctl del-br ovs-br0 

На этом пока все!
 

Комментариев нет:

Отправить комментарий

Debian 12 sources.list редактирование и уход от cdrom

     Если после установки постоянно просит диск и ничего с этим не сделать, то идем в сорс-листы и комментим вот такую строчку  cat /etc/apt...