OpenVSwitch: Difference between revisions
(15 intermediate revisions by 5 users not shown) | |||
Line 15: | Line 15: | ||
== Using ovs-vsctl == | == Using ovs-vsctl == | ||
Open | Open VSwitches are manually managed with the '''ovs-vsctl''' command. | ||
To manually create a switch named "lan": | To manually create a switch named "lan": | ||
Line 23: | Line 23: | ||
{{Cmd|ovs-vsctl add-port lan eth0}} | {{Cmd|ovs-vsctl add-port lan eth0}} | ||
Note | Note: You need to set the link status to ''up'' on the added interfaces. | ||
{{Cmd|ip link set dev eth0 up}} | {{Cmd|ip link set dev eth0 up}} | ||
To see what OVS are defined: | |||
{{Cmd|ovs-vsctl list-br}} | |||
To see what interfaces are linked to the lan OVS: | |||
{{Cmd|ovs-vsctl list-ports lan}} | |||
To enable spanning tree (if needed): | |||
{{Cmd|1=ovs-vsctl set bridge lan stp_enable=true}} | |||
LACP Timer setting 'fast' mode: | |||
{{Cmd|1=ovs-vsctl set port bond0 other_config:lacp-time=fast}} | |||
== Using OVS appctl == | |||
ovs-appctl lacp/show bond0 | |||
== Configuration file == | == Configuration file == | ||
Line 43: | Line 58: | ||
=== Helper scripts === | === Helper scripts === | ||
ovs-ifup- | ovs-ifup- | ||
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
switch=" | switch=$(echo $0|/usr/bin/cut -d- -f3) | ||
[ -z ${switch} ] && echo "Please define some symlink with suffix to use." && exit 1 | |||
[ $# -lt 1 ] && echo "Too few params. Must be 1 and is $#." && exit 2 | |||
/sbin/ifconfig $1 0.0.0.0 up | /sbin/ifconfig $1 0.0.0.0 up | ||
ovs-vsctl add-port ${switch} $1 | ovs-vsctl add-port ${switch} $1 | ||
Line 52: | Line 69: | ||
</pre> | </pre> | ||
ovs-ifdown- | ovs-ifdown- | ||
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
switch=" | switch=$(echo $0|/usr/bin/cut -d- -f3) | ||
[ -z ${switch} ] && echo "Please define some symlink with suffix to use." && exit 1 | |||
[ $# -lt 1 ] && echo "Too few params. Must be 1 and is $#." && exit 2 | |||
/sbin/ifconfig $1 0.0.0.0 down | /sbin/ifconfig $1 0.0.0.0 down | ||
ovs-vsctl del-port ${switch} $1 | ovs-vsctl del-port ${switch} $1 | ||
Line 64: | Line 83: | ||
=== Helper scripts === | === Helper scripts === | ||
lxc-ovs-ifdown- | |||
<pre> | |||
#!/bin/sh | |||
switch=$(echo $0|/usr/bin/cut -d- -f4) | |||
[ -z ${switch} ] && echo "Please define some symlink with suffix to use." && return 1 | |||
[ $# -lt 5 ] && echo "Too few params. Must be 5 and is $#." && exit 2 | |||
nic=$5 | |||
/usr/bin/ovs-vsctl del-port ${switch} ${nic} | |||
/usr/bin/logger "lxc: ${nic} removed from ${switch} at shutdown of VM." | |||
</pre> | |||
== Caveats == | == Caveats == | ||
Ensure you have OVS package files available at the next reboot! That can be a problem when running from RAM with no cache... |
Latest revision as of 06:52, 23 July 2021
This document describes how to configure an OpenVSwitch in Alpine Linux.
Installing OVS
apk add openvswitch rc-update add ovs-modules rc-update add ovsdb-server rc-update add ovs-vswitchd rc-service ovs-modules start rc-service ovsdb-server start rc-service ovs-vswitchd start
Using ovs-vsctl
Open VSwitches are manually managed with the ovs-vsctl command.
To manually create a switch named "lan":
ovs-vsctl add-br lan
To add interface eth0 to the switch "lan":
ovs-vsctl add-port lan eth0
Note: You need to set the link status to up on the added interfaces.
ip link set dev eth0 up
To see what OVS are defined:
ovs-vsctl list-br
To see what interfaces are linked to the lan OVS:
ovs-vsctl list-ports lan
To enable spanning tree (if needed):
ovs-vsctl set bridge lan stp_enable=true
LACP Timer setting 'fast' mode:
ovs-vsctl set port bond0 other_config:lacp-time=fast
Using OVS appctl
ovs-appctl lacp/show bond0
Configuration file
configured in /etc/network/interfaces
auto eth0 lan iface eth0 inet manual up ifconfig eth0 0.0.0.0 up down ifconfig eth0 down iface lan inet dhcp
OVS and qemu
Helper scripts
ovs-ifup-
#!/bin/sh switch=$(echo $0|/usr/bin/cut -d- -f3) [ -z ${switch} ] && echo "Please define some symlink with suffix to use." && exit 1 [ $# -lt 1 ] && echo "Too few params. Must be 1 and is $#." && exit 2 /sbin/ifconfig $1 0.0.0.0 up ovs-vsctl add-port ${switch} $1 logger "qemu: $1 added to ${switch} at startup of VM"
ovs-ifdown-
#!/bin/sh switch=$(echo $0|/usr/bin/cut -d- -f3) [ -z ${switch} ] && echo "Please define some symlink with suffix to use." && exit 1 [ $# -lt 1 ] && echo "Too few params. Must be 1 and is $#." && exit 2 /sbin/ifconfig $1 0.0.0.0 down ovs-vsctl del-port ${switch} $1 logger "qemu: $1 removed from ${switch} at shutdown of VM"
OVS and LXC
Helper scripts
lxc-ovs-ifdown-
#!/bin/sh switch=$(echo $0|/usr/bin/cut -d- -f4) [ -z ${switch} ] && echo "Please define some symlink with suffix to use." && return 1 [ $# -lt 5 ] && echo "Too few params. Must be 5 and is $#." && exit 2 nic=$5 /usr/bin/ovs-vsctl del-port ${switch} ${nic} /usr/bin/logger "lxc: ${nic} removed from ${switch} at shutdown of VM."
Caveats
Ensure you have OVS package files available at the next reboot! That can be a problem when running from RAM with no cache...