组网环境:
port0:为wan口,连接外网,剩下的都是lan口;
port1,port2,port3分别直连pc0,pc1,pc2,并配置好ip地址
预想结果:
pc0,pc1,pc2分别为三个不同的网段,pc1与pc2不能相互通信,其他都可以互通,并且可以上网
实际配置:
1.先划分vlan(页面-网络-交换机)
id为1:关联cpu0,不关联port1,关闭port2,关闭port3,不关联port4 (这个vlan1默认就存在)
id为2:关联cpu0,关闭port1,不关联port2,关闭port3,关闭port4
id为3:关联cpu0,关闭port1,关闭port2,不关联port3,关闭port4
2.配置接口(页面-网络-接口)
接口名为lan1 选择虚拟接口eth1.1 配置静态ip为172.168.0.1/16 (这个接口也是默认存在的,下面的虚拟接口eth1.2中的2其实就是vlan的id,也就是vlan2)
接口名为lan2 选择虚拟接口eth1.2 配置静态ip为192.16.2.2/24
接口名为lan3 选择虚拟接口eth1.3 配置静态ip为1792.16.3.3/24
3.其实虽然配置了上面的vlan,但是并没有真正的隔离(pc1能ping同pc2,因为这个设备不是真正的二层交换机,有路由功能),需要防火墙配置,用命令iptables进行过滤
iptables -I FORWARD -d 192.168.2.126 -i eth1.3 -j DROP
iptables -I FORWARD -d 192.168.3.126 -i eth1.2 -j DROP 也就是针对端口进行隔离ip,检查port2的端口,不允许192.168.3.126这个ip进来
根据以上三点配置,可以实现需求了。
用到的原理:
vlan就不多说了,划分地址,进行隔离。由于这个设备相当于既有交换机功能,又有路由功能,所以vlan隔离不能生效。
因为是openwrt系统,不支持acl配置,所以这里选择了iptables命令。
粘贴两个相关链接,讲的不错,学习很多。
http://blog.chinaunix.net/uid-26495963-id-3279216.html
https://www.cnblogs.com/metoy/p/4320813.html