OVS Bridge — 如何在 VLAN 之间切换端口?

OVS Bridge — 如何在 VLAN 之间切换端口?

我是一名老派网络人员,正在尝试在 OVS Bridge 上进行一些开发工作。我需要帮助弄清楚在 VLAN 之间切换 OVS Bridge 接口的语法。

首先,一些系统信息...我的主机箱是 Ubuntu 箱,16.04.4;我的 OVS 版本是 2.12.1(DB Schema 8.0.0)。

好的,这是我的开发测试平台的简单图片:

在此处输入图片描述

非常简单。测试客户端和服务器对位于我的 OVS 桥的两侧,通过默认 VLAN 相互连接。我还有两个虚拟路由器连接到桥,但在此配置中,它们什么也不做。我能够使用一些在线教程来设置它,尤其是这个

现在,问题来了。我需要将 OVS 网桥的 VLAN 结构修改为:

在此处输入图片描述

现在情况不同了。要到达服务器,客户端的流量必须通过 VLAN 100 转发,跨两个 vRouter,然后通过 VLAN 200。(是的,我故意让同一个数据包通过 OVS 桥接器两次——我的项目正在尝试开发一种发现数据包重复计数的方法。)VLAN 100 和 200 是普通访问 VLAN,这里没有中继。事实上,不可能有中继,因为我想将 100 和 200 的流量分开。

我可以更改客户端的 IP,没有问题。但在 OVS Bridge 中使用 VLAN 却很糟糕。

我原本以为我可以使用“add-port”命令来更改 VLAN 标记:

ovs-vsctl add-port ovs_bridge dpdk1 tag=100
ovs-vsctl add-port ovs_bridge vy0 tag=100
ovs-vsctl add-port ovs_bridge dpdk2 tag=200
ovs-vsctl add-port ovs_bridge vy1 tag=200

但那会引发一个错误,很不幸我把它弄丢了。我在 Google 上搜索过“OVS 桥接更改 VLAN 标签”,但我找到的所有网站都向您展示了如何从头开始创建新的标记接口……这不是我真正想要的。

此外,由于测试的性质,我需要在这两种测试平台配置之间切换。换句话说,我需要将所有接口放入默认 VLAN,然后将它们移入 VLAN 100/200,然后将它们移回,然后再移回 100/200,然后再次设置为默认,然后是 100/200,依此类推。我可能需要这样做数百次。

拆除所有端口并从头开始重建非常麻烦。如果网桥是 Cisco 或 Juniper 交换机,我可以用一个命令设置 VLAN。但我在 OVS 网桥世界中找不到这样做的方法。有什么建议吗?谢谢!

答案1

对于关注此主题的任何人...我也发布了我的问题这里,并得到了答案。在 VLAN 100 和默认 VLAN 之间移动端口的语法是:

root@liux:~# ovs-vsctl get port dpdk1 tag
[]
root@liux:~# ovs-vsctl set port dpdk1 tag=100
root@liux:~# ovs-vsctl get port dpdk1 tag
100
root@liux:~# ovs-vsctl set port dpdk1 tag=[]
root@liux:~# ovs-vsctl get port dpdk1 tag
[]
root@liux:~# 

相关内容