我想建立一个有 3 个独立 VLAN 的网络
- 10.140.1.0/24
- 10.140.2.0/24
- 10.140.3.0/24
于是我把两台安装了Openwrt的路由器TL-WR740n连接起来,开始实验。
第一个路由器(10.140.X.1)作为 DHCP 服务器,第二个路由器(10.140.X.2)作为具有第二组端口的客户端。
我创建了三个 VLAN — 每个 VLAN 都链接到相应的端口号。
在端口 4 上,所有 VLAN 都已标记 - 它用于连接两个设备。
我想完全隔离 VLAN。但是当我在 VLAN1(子网 10.140.1.X)时,我可以从 VLAN2(子网 10.140.2.X)打开路由器(10.140.2.1)的面板。
为什么?我怎样才能阻止 VLAN 间流量?
我为每个 VLAN 创建了一个单独的区域 - 并阻止从 VLAN1 到 VLAN2 的转发(只是为了尝试)。
它对我没有帮助 - 我仍然可以打开一个路由器站点 10.140.2.1(VLAN2),其地址为 10.140.1.140,并且位于 VLAN1 上。
先感谢您!
答案1
您的地址位于不同的子网中。这意味着当 10.140.1.X 有发往 10.140.2.1 的数据包时,它将查询其路由表并查看几条路由,一条路由表明 10.140.1.0/24 直接连接,另一条路由表明通过 10.140.1.1 连接到 0.0.0.0/0。由于 10.140.2.1 不在 10.140.1.0/24 中,因此匹配的是第二条路由,因此数据包将发往 10.140.1.1。它们位于同一个 VLAN 中。
然后,连接到两个 VLAN 的 10.140.1.1 将其转发到 10.140.2.1。这是预期的行为。如果要阻止它,请在 10.140.1.1 上添加一些防火墙规则来禁止通信,例如使用 iptables:
iptables -A FORWARD -s 10.140.1.0/24 -d 10.140.2.0/24 -j REJECT
iptables -A FORWARD -s 10.140.2.0/24 -d 10.140.1.0/24 -j REJECT
但是,等等,我们还没有测试您的 VLAN 是否正常工作。从 10.140.1.0/24 发送到 10.140.2.0/24 测试子网之间的路由是否正常工作。测试您的 VLAN 是否真正相互隔离的方法是配置一个具有 10.140 中的静态地址的设备。2.0/24,将其插入 10.140 的 VLAN。1.0/24 并查看它是否可以到达地址为 10.140 的另一个 VLAN 中的设备。2.0/24。如果 VLAN 正确隔离,则应该无法实现。