![控制网络上设备之间的通信流](https://linux22.com/image/1430181/%E6%8E%A7%E5%88%B6%E7%BD%91%E7%BB%9C%E4%B8%8A%E8%AE%BE%E5%A4%87%E4%B9%8B%E9%97%B4%E7%9A%84%E9%80%9A%E4%BF%A1%E6%B5%81.png)
为了简单起见,假设我的网络如下所示:
[Internet/Modem]
|
[Standard home wi-fi Router]
|
[Windows/Mac PCs] [NAS Drive] [XBOX] [Printer]
按照现在的设置,每个人都可以互相交谈和通过互联网交谈,但我想对其进行如下限制:
- PC 不应该能够与 XBOX 通信
- XBOX 不应该能够与打印机或 PC 通信
- NAS 驱动器和打印机不应具有互联网访问权限,也不应能够启动与网络上任何设备的连接。
为了弄清楚如何做到这一点,我一直在研究路由器、管理型交换机、智能交换机、VPN 防火墙、非管理型交换机等,但我却苦于信息过载,没有足够的正确关键字来搜索我需要的信息。
为小型家庭/办公网络配置此类通信流策略的典型方法是什么?
答案1
对于第 3 项,您只需使用静态 IP 和无默认网关配置打印机和 NAS。如果您的路由器有防火墙,您还可以采取额外步骤,您可以创建一条规则来阻止往返于其 IP 地址的入站和出站流量。
对于其他两项,没有简单的方法可以做到这一点。最简单的方法是从您的 ISP 订购一组 IP,并按照 Daniel 的评论物理地分成两个网络。但是,大多数 ISP 都要求使用企业帐户来订购一组静态 IP。如果没有,您可以升级到允许通过 LAN 连接多个网络的企业级路由器。我熟悉 Zyxel USG 产品。例如,USG 50 允许您将不同的区域分配给不同的 LAN 端口。例如,端口 1 可以是 192.168.1.x,而端口 2 可以是 10.0.0.x。您需要设置路由表和防火墙,以确保端口 1 中的网络无法与端口 2 通信,反之亦然。
答案2
最后,我找到了一个简单的方法来做到这一点,所以在这里发布我的答案。
购买支持 VLAN 的基本交换机,例如 Netgear GS108e。
按如下方式将设备插入交换机:
- 端口 1:Wi-Fi 路由器
- 端口 2:NAS 驱动器
- 端口 3:Xbox
- 端口 4: 打印机
- 端口 5-8:Mac/PC 台式机、笔记本电脑和/或无线客户端的无线接入点。
在交换机上启用高级基于端口的 VLAN 支持,并按如下方式设置基于端口的 VLAN:
- VLAN 1:端口 1、5、6、7、8(台式机/笔记本电脑的互联网接入)
- VLAN 2:端口 4、5、6、7、8(台式机/笔记本电脑的打印机访问)
- VLAN 3:端口 2、5、6、7、8(台式机/笔记本电脑的 NAS 访问)
- VLAN 4:端口1、3(XBOX的互联网接入)
- VLAN 5:端口 2、3(XBOX 的 NAS 访问)
除了阻止打印机和 NAS 驱动器发起出站连接外,此设置满足了我的所有要求。为了解决这个问题,我使用静态 IP 地址设置了打印机和 NAS 驱动器,用 DD-WRT 刷新了我的路由器,并使用 iptables 限制来自这两个静态 IP 的出站流量。