我在尝试配置OVS路由器。我希望通过在OVS路由器上添加流,连接到交换机端口(端口2-5)的设备可以访问internet,如果internet电缆被插入WAN端口(端口1)。
我在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前缀,而路由器本身被分配了192.168.0的IP,所以我不知道添加流是否有助于从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(家庭路由器)->outside?
这是建立一个基于Layer3的流。但是我想知道我是否能在VLAN之间建立流?根据我的配置,广域网端口是port1,属于VLAN 5。您认为从VLAN 1 (机器连接)到VLAN 5和从VLAN 5到VLAN 1双向添加流是否可行?如果是这样的话,请问有什么我能提供的例子吗?
另一个细节。ifconfig
的输出显示eth0接口被分配给IP 192.168.0.105,这意味着它与我家路由器连接(192.168.0.1)。那么,我需要在这些地址之间转发数据包到IP地址吗?
我真的很感谢你的帮助。
发布于 2018-01-02 02:39:12
我已经解决了这个问题。以下是解决办法。
主要的想法是建立一个连接到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桥br-lan最初应该与eth0 (wan)连接。据我所知,br0的意思可能是“本地”,IP地址为192.168.3.1。所有的VLAN都使用这个IP地址进行通信。如果我将“local”移动到与wan端口连接的linux,它应该可以工作。
感谢所有观看并试图帮助我的人!
发布于 2017-12-24 18:35:31
以下命令添加两个规则,将包从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
https://stackoverflow.com/questions/47957092
复制相似问题