Difference between revisions of "Open vSwitch"

From HackerNet
Jump to: navigation, search
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
Open vSwitch är en virtuell multi layer switch, open source licensierad under Apache 2.0. Det används oftast med hypervisors för att koppla ihop vms med varandra mellan hostar och nätverk, t.ex. med KVM eller Xen. Det kan också användas med dedikerad switchhårdvara eller SDN-lösningar. Open vSwitch har stöd för de flesta traditionella tekniker inklusive STP, VLAN, LACP, GRE, VXLAN, QoS och net/sflow. Open vSwitch består i huvudsak av VSWITCHD, OVSDB-server och en kernel-modul. Det går även köra distribuerat över flera hostar likt VMwares vDS och Cisco [[Nexus_1000V|Nexus 1000V]].
+
Open vSwitch är en virtuell multi layer switch, open source licensierad under Apache 2.0. Det används oftast med hypervisors för att koppla ihop vms med varandra mellan hostar och nätverk, t.ex. med KVM eller Xen. Det kan också användas med dedikerad switchhårdvara eller SDN-lösningar. Open vSwitch har stöd för de flesta traditionella tekniker inklusive STP, VLAN, LACP, GRE, VXLAN, BFD, QoS och net/sflow. Open vSwitch består i huvudsak av VSWITCHD, OVSDB-server och en kernel-modul. Det går även köra distribuerat över flera hostar likt VMwares vDS och Cisco [[Nexus_1000V|Nexus 1000V]].
 +
 
 +
'''Tools'''
 +
* ovs-vsctl: configuring the ovs-vswitchd configuration database
 +
* ovs-ofctl: monitor and administer OpenFlow switches
 +
* ovs-dpctl: administer Open vSwitch datapaths
 +
* ovs−appctl: query and controll Open vSwitch daemons
  
 
==Installation==
 
==Installation==
Line 10: Line 16:
 
  sudo dnf install openvswitch
 
  sudo dnf install openvswitch
  
  sudo /usr/share/openvswitch/scripts/ovs-ctl start
+
  sudo systemctl start openvswitch
sudo /sbin/service openvswitch start
 
 
  lsmod | grep openv
 
  lsmod | grep openv
 +
 +
Start at boot
 +
sudo systemctl enable openvswitch
  
 
==Konfiguration==
 
==Konfiguration==
 +
Skapa en virtuell switch och koppla interface till den.
 
  ovs-vsctl add-br br0
 
  ovs-vsctl add-br br0
 
  ovs-vsctl add-port br0 eth0
 
  ovs-vsctl add-port br0 eth0
 +
ovs-vsctl list-ifaces br0
 +
 +
Show
 
  ovs-vsctl show
 
  ovs-vsctl show
 +
ovs-vsctl list-br
 +
ovs-ofctl show br0
 +
 +
/etc/network/interfaces
 +
allow-ovs ovsbr0
 +
iface ovsbr0 inet manual
 +
  ovs_type OVSBridge
 +
  ovs_ports eth1
 +
 
Adress till hosten
 
Adress till hosten
 
  ifconfig eth0 0
 
  ifconfig eth0 0
 
  dhclient br0
 
  dhclient br0
 +
 +
===Interface===
 +
''default all ports are VLAN trunks''<br/>
 +
Access
 +
ovs-vsctl set port eth1 vlan_mode=access tag=1
 +
Trunk
 +
ovs-vsctl set port eth1 vlan_mode=tagged
 +
Hybrid
 +
ovs-vsctl set port eth1 vlan_mode=native-untagged trunks=[1,3] tag=2
 +
Show
 +
ovs-vsctl list port eth1
  
 
===Bond===
 
===Bond===
 
  ovs-vsctl add-bond br0 bond0 eth0 eth1 lacp=active trunks=10,11,12
 
  ovs-vsctl add-bond br0 bond0 eth0 eth1 lacp=active trunks=10,11,12
 +
ovs-vsctl list port bond0
  
 
===STP===
 
===STP===
Line 40: Line 73:
 
  ovs-appctl fdb/show testbridge
 
  ovs-appctl fdb/show testbridge
  
 +
==Controller==
 +
ovs-vsctl set-controller br0 tcp:10.0.0.20:6633
 +
ovs-vsctl list controller
 +
Tappar man konnektivitet med controllern sätter man antingen upp flows själv eller inte alls beroende på standalone eller secure mode.
 +
ovs-vsctl get-fail-mode br0
 +
 +
Ta bort controller
 +
ovs-vsctl del-controller br0
 
==OpenFlow==
 
==OpenFlow==
 
Open vSwitch har stöd för OpenFlow.
 
Open vSwitch har stöd för OpenFlow.
 +
ovs-vsctl -- set bridge br0 protocols=openflow14
 +
 +
==Patch Port==
 +
Med patchportar kan man koppla ihop flera ovs:er med varandra internt inom en host. <br/>
 +
Sw1
 +
ovs-vsctl add-port br1 patch1-2
 +
ovs-vsctl set interface patch1-2 type=patch
 +
ovs-vsctl set interface patch1-2 options:peer=patch2-1
 +
Sw2
 +
ovs-vsctl add-port br2 patch2-1
 +
ovs-vsctl set interface patch2-1 type=patch
 +
ovs-vsctl set interface patch2-1 options:peer=patch1-2
 +
 +
ovs-vsctl show
 +
 +
==sFlow==
 +
Open vSwitch kan streama telemetry med sFlow.
 +
service sflowovsd start
  
 
[[Category:Network]]
 
[[Category:Network]]

Latest revision as of 15:28, 1 July 2016

Open vSwitch är en virtuell multi layer switch, open source licensierad under Apache 2.0. Det används oftast med hypervisors för att koppla ihop vms med varandra mellan hostar och nätverk, t.ex. med KVM eller Xen. Det kan också användas med dedikerad switchhårdvara eller SDN-lösningar. Open vSwitch har stöd för de flesta traditionella tekniker inklusive STP, VLAN, LACP, GRE, VXLAN, BFD, QoS och net/sflow. Open vSwitch består i huvudsak av VSWITCHD, OVSDB-server och en kernel-modul. Det går även köra distribuerat över flera hostar likt VMwares vDS och Cisco Nexus 1000V.

Tools

  • ovs-vsctl: configuring the ovs-vswitchd configuration database
  • ovs-ofctl: monitor and administer OpenFlow switches
  • ovs-dpctl: administer Open vSwitch datapaths
  • ovs−appctl: query and controll Open vSwitch daemons

Installation

Ubuntu

apt-cache show openvswitch-switch | grep Version
sudo apt-get install openvswitch-switch

Fedora

sudo dnf info openvswitch | grep Version
sudo dnf install openvswitch
sudo systemctl start openvswitch
lsmod | grep openv

Start at boot

sudo systemctl enable openvswitch

Konfiguration

Skapa en virtuell switch och koppla interface till den.

ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0
ovs-vsctl list-ifaces br0

Show

ovs-vsctl show
ovs-vsctl list-br
ovs-ofctl show br0

/etc/network/interfaces

allow-ovs ovsbr0
iface ovsbr0 inet manual
  ovs_type OVSBridge
  ovs_ports eth1

Adress till hosten

ifconfig eth0 0
dhclient br0

Interface

default all ports are VLAN trunks
Access

ovs-vsctl set port eth1 vlan_mode=access tag=1

Trunk

ovs-vsctl set port eth1 vlan_mode=tagged

Hybrid

ovs-vsctl set port eth1 vlan_mode=native-untagged trunks=[1,3] tag=2

Show

ovs-vsctl list port eth1

Bond

ovs-vsctl add-bond br0 bond0 eth0 eth1 lacp=active trunks=10,11,12
ovs-vsctl list port bond0

STP

ovs-vsctl set bridge br0 stp_enable=true

SVI

ovs-vsctl add-port br0 vlan90 tag=09 -- set interface vlan09 type=internal

Interface till vms

ip tuntap add mode tap vport1
ip tuntap add mode tap vport2
ovs-vsctl add-port testbridge vport1
ovs-vsctl add-port testbridge vport2
ovs-vsctl show

Kolla mac-tabell

ovs-appctl fdb/show testbridge

Controller

ovs-vsctl set-controller br0 tcp:10.0.0.20:6633
ovs-vsctl list controller

Tappar man konnektivitet med controllern sätter man antingen upp flows själv eller inte alls beroende på standalone eller secure mode.

ovs-vsctl get-fail-mode br0

Ta bort controller

ovs-vsctl del-controller br0

OpenFlow

Open vSwitch har stöd för OpenFlow.

ovs-vsctl -- set bridge br0 protocols=openflow14

Patch Port

Med patchportar kan man koppla ihop flera ovs:er med varandra internt inom en host.
Sw1

ovs-vsctl add-port br1 patch1-2
ovs-vsctl set interface patch1-2 type=patch
ovs-vsctl set interface patch1-2 options:peer=patch2-1

Sw2

ovs-vsctl add-port br2 patch2-1
ovs-vsctl set interface patch2-1 type=patch
ovs-vsctl set interface patch2-1 options:peer=patch1-2
ovs-vsctl show

sFlow

Open vSwitch kan streama telemetry med sFlow.

service sflowovsd start