实验环境
配置ovs桥
ovs-vsctl add-br br1
ovs-vsctl add-br br2
ovs-vsctl add-port br1 tap1 -- set Interface tap1 type=internal
ovs-vsctl add-port br2 tap2 -- set Interface tap2 type=internal
ip netns add ns1
ip netns add ns2
ip link set tap1 netns ns1
ip link set tap2 netns ns2
ip netns exec ns1 ip addr add 1.1.1.1/24 dev tap1
ip netns exec ns1 ip link set tap1 up
ip netns exec ns1 ip link set lo up
ip netns exec ns2 ip addr add 1.1.1.2/24 dev tap2
ip netns exec ns2 ip link set tap2 up
ip netns exec ns2 ip link set lo up
ovs-vsctl add-port br1 patch-ovs-1 -- set Interface patch-ovs-1 type=patch options:peer=patch-ovs-2
ovs-vsctl add-port br2 patch-ovs-2 -- set Interface patch-ovs-2 type=patch options:peer=patch-ovs-1
试验验证
ovs 常用操作命令
Bridge 操作
添加网桥
ovs-vsctl add-br br-int
查询网桥列表
ovs-vsctl list-br
删除网桥
ovs-vsctl del-br br-int
Port 操作
- Normal Port
# 将物理网卡eth0添加到网桥br-int上
ovs-vsctl add-port br-int eth0
# 移除网桥br-int上的Port
ovs-vsctl del-port br-int eth0
- Internal Port
# 添加Internal Port
ovs-vsctl add-port br-int vnet0 -- set Interface vnet0 type=internal
# 把网卡vnet0启动并配置IP
ip link set vnet0 up
ip addr add 192.168.0.1/24 dev vnet0
# 设置VLAN tag
ovs-vsctl set Port vnet0 tag=100
# 移除vnet0上面的VLAN tag配置
ovs-vsctl remove Port vnet0 tag 100
# 设置vnet0允许通过的VLAN tag
ovs-vsctl set Port vnet0 trunks=100,200
# 移除vnet0允许通过的的VLAN tag配置
ovs-vsctl remove Port vnet0 trunks 100,200
- Patch Port
ovs-vsctl add-br br0
ovs-vsctl add-br br1
ovs-vsctl \
-- add-port br0 patch0 -- set interface patch0 type=patch options:peer=patch1 \
-- add-port br1 patch1 -- set interface patch1 type=patch options:peer=patch0
ovs-vsctl add-port br1 vx1 -- set interface vx1 type=vxlan options:remote_ip=172.16.0.100 options:key=100
-
- Tunnel Port