OpenVswitch How To

OpenSwitch How To

Implementierung unter XEN

Open vSwitch http://openvswitch.org/
“lynx http://git.openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=INSTALL;hb=HEAD” oder “wget http://openvswitch.org/releases/openvswitch-2.0.0.tar.gz”

“wget http://openvswitch.org/releases/openvswitch-1.11.0.tar.gz”
“tar -xzf openvswitch-1.11.0.tar.gz”
“cd openvswitch-1.11.0”
“./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include”
“make”
“make install”
“mkdir -p /usr/local/etc/openvswitch”
“ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema”

OpenVswitch starten:
ovsdb-server –remote=punix:/usr/local/var/run/openvswitch/db.sock \
–remote=db:Open_vSwitch,Open_vSwitch,manager_options \
–private-key=db:Open_vSwitch,SSL,private_key \
–certificate=db:Open_vSwitch,SSL,certificate \
–bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
–pidfile –detach

ovs-vsctl –no-wait init
ovs-vswitchd –pidfile –detach

Bridge Initial Konfig
ovs-vsctl add-br xenbr0

################################################################################################################################################################################################
##OVS Bridge für das Bond Device und XEN VMs erstellen
Bridge erstellen
ovs-vsctl add-br xenbr0
ovs-vsctl set bridge xenbr0 datapath_type=netdev stp_enable=true Vorsich bei dieser Option mit XEN 4.4 !!!
(ovs-vsctl add-port xenbr0 eth0)
ovs-vsctl add-port xenbr0 bond0
ovs-vsctl add-port xenbr0 vif1.0
ifconfig xenbr0 10.0.56.254 netmask 255.255.240.0 up
ovs-vsctl list-br
ovs-vsctl list-ports xenbr0
ovs-vsctl show
ovs-vsctl list interface bond0
ovs-ofctl show xenbr0
ifconfig
cat /proc/net/dev

################################################################################################################################################################################################
##Andere Möglichkeit eine OVS Brücke zu erstellen
Bridge erstellen
ovs-vsctl add-br xenbr0
ifconfig eth0 0.0.0.0
screen (Falls man nur eine Netzwerkkarte hat wäre das mit screen besser 😉 )
sleep 10; ifconfig eth0 0.0.0.0; ovs-vsctl add-port xenbr0 eth0; ifconfig xenbr0 10.0.56.14 netmask 255.255.240.0 up;
ifconfig xenbr0 10.0.56.14 netmask 255.255.240.0 up;
ovs-vsctl add-port xenbr0 eth0
ifconfig xenbr0 10.0.56.254 netmask 255.255.240.0 up
ovs-vsctl list-br
ovs-vsctl list-ports xenbr0
ovs-vsctl show
ovs-vsctl list interface eth0
ovs-ofctl show xenbr0
ifconfig
cat /proc/net/dev
ovs-ofctl dump-flows xenbr0

##################################################################################################################################################################################################
OpenVswitch beenden
kill `cd /usr/local/var/run/openvswitch && cat ovsdb-server.pid ovs-vswitchd.pid`

####
ovs-vsctl del-br br0 = Brücke löschen
ovs-vsctl del-port eth0 = Interface an Bridge löschen
ovs-vsctl list bridge
ovs-vsctl list netflow
ovs-vsctl emer-reset = reset alle einstelluneg

##################################################################################################################################################################################################
##Speedlimit setzen#######
10 MBit = 10000

ovs-vsctl set Interface win_172-emu ingress_policing_rate=60000
ovs-vsctl set Interface win_172 ingress_policing_rate=60000
ovs-vsctl set Interface win_2_172-emu ingress_policing_rate=60000
ovs-vsctl set Interface win_2_172 ingress_policing_rate=60000

##Port Mirroring######################
dummy device erstellen
ovs-vsctl add-port xenbr0 dummy0

ovs-vsctl \
— –id=@m create mirror name=mirror0 \
— add bridge xenbr0 mirrors @m

ovs-vsctl list port dummy0

ovs-vsctl set mirror mirror0 \
output_port=4d5ed382-a0c3-4453-ab3c-58e1e7f603b0

ovs-vsctl set mirror mirror0 select_all=1

##################################################################################################################################################################################################
##OVS V-LAN Trunks###
OpenVswitch Trunk erstllen via V-LAN. Nur Ausfallsicherheit !!!!
http://de.wikipedia.org/wiki/Trunking
Der Begriff „Trunk“ wird bei VLANs in einer etwas geänderten Bedeutung verwendet. Hier werden mehrere verschiedene VLANs über eine physikalische Verbindung geführt, es gibt also keine Durchsatzsteigerung.

ovs-vsctl list-ports xenbr1
ovs-vsctl show
ovs-vsctl add-port xenbr1 win_172_1 tag=10
ovs-vsctl add-port xenbr1 win_172_2 tag=20
ovs-vsctl add-port xenbr1 win_172_3 tag=30
ovs-vsctl add-port xenbr1 win_172_4 trunks=10,20,30
ovs-vsctl show
in der XEN VM Konfig
vif=[‘bridge=xenbr0, vifname=win_10’, ‘type=paravirtualized, bridge=xenbr1, vifname=win_172_4’]
ovs-vsctl set port win_172_4 trunks=10,20,30
ovs-vsctl set port win_172_4-emu trunks=10,20,30
##

ovs-vsctl list-ports xenbr1
ovs-vsctl show
ovs-vsctl add-port xenbr1 win_172_2_1 tag=10
ovs-vsctl add-port xenbr1 win_172_2_2 tag=20
ovs-vsctl add-port xenbr1 win_172_2_3 tag=30
ovs-vsctl add-port xenbr1 win_172_2_4 trunks=10,20,30
ovs-vsctl show
in der XEN VM Konfig
vif=[‘bridge=xenbr0, vifname=win_2_10’, ‘type=paravirtualized, bridge=xenbr1, vifname=win_172_2_4’]
ovs-vsctl set port win_172_2_4 trunks=10,20,30
ovs-vsctl set port win_172_2_4-emu trunks=10,20,30
#############

##################################################################################################################################################################################################
#OVS Bond Trunk##
OpenVswitch Bond. Link Agregation. NIC Teaming

ovs-vsctl show
ovs-vsctl list-ports xenbr1
ovs-vsctl add-bond xenbr1 bond_win_172_1 win_172_1 win_172_2 win_172_3 lacp=active trunks=10,20,30
ovs-vsctl show
ovs-vsctl list-ports xenbr1
vif=[‘bridge=xenbr0, vifname=win_1_10’, ‘type=paravirtualized, bridge=xenbr1, vifname=bond_win_172_1:10:20:30’]

ovs-vsctl show
ovs-vsctl list-ports xenbr1
ovs-vsctl add-bond xenbr1 bond_win_172_2 win_172_2_1 win_172_2_2 win_172_2_3 lacp=active trunks=10,20,30
ovs-vsctl show
ovs-vsctl list-ports xenbr1
vif=[‘bridge=xenbr0, vifname=win_2_10’, ‘type=paravirtualized, bridge=xenbr1, vifname=bond_win_172_2:10:20:30’]

ovs-appctl bond/list

##################################################################################################################################################################################################
###Testen
ovs-vsctl set-controller switch1 tcp:192.168.1.208:6633
http://humblec.com/configure-openvswitch-in-virt-environment/
http://blog.scottlowe.org/2013/05/28/vlan-trunking-to-guest-domains-with-open-vswitch/
http://brezular.wordpress.com/2011/06/25/part2-openvswich-vlans-trunks-l3-vlan-interface-intervlan-routing-configuration-and-testing/
http://www.heise.de/netze/artikel/Linux-224004.html
ovsdb-tool show-log
ovs-­dpctl show
ovs-dpctl dump-flows xenbr0
ovs-appctl vlog/list
ovs-appctl dpif/show

##################################################################################################################################################################################################
V-Lan Aufbau mit VM

Bei Debian:
“wget http://www.candelatech.com/~greear/vlan/vlan.1.9.tar.gz” oder “wget http://ftp.de.debian.org/debian/pool/main/v/vlan/vlan_1.9.orig.tar.gz”
“cd vlan”
“cp -frv vconfig /usr/bin/”
“cp -frv macvlan_config /usr/bin/”

Vorher am Switch die Ports definieren und entsprechen TAGen.
Dann Virtal IP auf eth.XXX erstellen

Mit einem dummy Device ist V-LAN nicht möglich.
“vconfig add eth0 666”
“ifconfig eth0.666 192.168.1.1”

“cat /proc/net/vlan/config”
“cat /proc/net/vlan/eth0.666”

V-LAN Brücke zwischen DSL-Modem und VM erzeugen

“ovs-vsctl show”
“ovs-vsctl add-br routebr01”
“ovs-vsctl show”
“ovs-vsctl add-port routebr01 eth0.666 tag=666”
“ovs-vsctl list-ports routebr01”
“ovs-vsctl get port eth0.666 tag”

in der XEN VM:
vif=[‘type=paravirtualized, bridge=routebr01.666, model=e1000, mac=00:16:3E:52:4C:58’]

Nun kann man den Netzwerk Port an dem das DSL/Kabel Modem hängt V-Lan technisch (untagged) taggen und direkt
quasi zur VM leiten. Diese übernimmt dann die Router Funktion.
In der VM (Router: Netzwerkkarte auf DHCP stehen bei einem Kabelnetzbetreiber)
ggf. noch IPtables Filter anpassen

##################################################################################################################################################################################################


Post Revisions: