如何在Open vSwitch路由器上的VLAN之间转发数据包?

问题描述 投票:0回答:2

我正在尝试配置OVS路由器。我希望通过在OVS路由器上添加流量来实现这一点,如果将互联网电缆插入WAN端口(端口1),则与交换机端口(端口2-5)连接的设备可以访问互联网。

我在OVS路由器的文件/etc/config/network中的VLAN配置是:

eth1.1: 0t, 2
eth1.2: 0t, 3
eth1.3: 0t, 4
eth1.4: 0t, 5
eth1.5: 1, 6

ovs-vsctl show的输出是:

root@OpenWrt:~# ovs-vsctl show
84d9ab2f-a3e6-46e3-874f-156ef975d673
Bridge "br0"
    Controller "tcp:<an IP address>"
        is_connected: true
    fail_mode: standalone
    Port "eth1.4"
        Interface "eth1.4"
    Port "eth1.2"
        Interface "eth1.2"
    Port "eth1.1"
        Interface "eth1.1"
    Port "br0"
        Interface "br0"
            type: internal
    Port "eth1.3"
        Interface "eth1.3"

ifconfig的截断输出是:

br0: 192.168.3.1 
eth0: 192.168.0.105 (There is another home router)
eth1, eth1.1-1.4

由于子网提供了192.168.3。*的IP前缀,并且路由器本身被分配了IP为192.168.0。我想知道添加流来转发来自192.168.3的数据包是否有帮助。到192.168.0.104。

所以如果我认为这是正确的,例如,一台IP为192.168.3.10的机器,它想要查询google,路径应该是192.168.3.10-> 192.168.0.105-> 192.168.0.1(家用路由器) - >外?

这是基于Layer3构建流程。但我想知道我是否可以在VLAN之间构建流量?根据我的配置,WAN端口是port1,属于VLAN 5.您认为从VLAN 1(连接机器)到VLAN 5以及从VLAN 5到VLAN 1双向添加流量是否可行?如果是的话,有什么例子可以流动吗?

另一个细节。 ifconfig的输出显示eth0接口被分配IP 192.168.0.105,这意味着它与我的家用路由器(192.168.0.1)连接。那么我需要在这些IP地址之间转发数据包吗?

我非常感谢任何帮助。

router openvswitch vlan
2个回答
0
投票

以下命令添加了两个规则,用于将数据包从VLAN 5和端口5发送到具有VLAN 1的端口1,反之亦然:

ovs-ofctl add-flow br0 in_port=5,dl_vlan=5,actions=mod_vlan_vid:1,output:1
ovs-ofctl add-flow br0 in_port=1,dl_vlan=1,actions=mod_vlan_vid:5,output:5

0
投票

我已经解决了这个问题。以下是解决方案。

主要思想是建立一个与OVS网桥连接的linux网桥,当我需要VLAN能够与外部互联网通信时。我可以使用brctl来操作linux桥。首先我试过:

brctl addbr br-lan
brctl addif br-lan br0

然后所有机器都可以访问互联网。但不幸的是,只有几分钟。之后,路由器崩溃了。除非我重置它,否则我无法再访问OVS路由器。这可能是由错误的桥接配置引起的。我尝试了很多方法,最后这个方法有效:

brctl addbr br-lan
ifconfig br-lan 192.168.3.1
brctl addif br-lan br0
ifconfig br0 0.0.0.0

我认为linux bridge br-lan应该最初与eth0(wan)连接。据我所知,br0可能意味着“本地”,IP地址为192.168.3.1。所有VLAN都与此IP地址通信。如果我将'local'移动到与wan端口连接的linux网桥,它应该工作。

感谢所有观看并试图帮助我的人!

© www.soinside.com 2019 - 2024. All rights reserved.