我的问题是这样的设置是否可行:
有线调制解调器、几台 LAN 机器以及路由器/服务器(Linux 机箱,只有 1 个端口)连接到便宜的智能管理交换机,例如 TP-LinkTL-SG108E. 局域网内的机器应该能够通过路由器连接到互联网。
是否可以配置这样的交换机,使得 LAN 机器接收未标记的流量,但路由器将接收其流量(例如 VLAN ID 1),并且调制解调器也将接收未标记的流量,但路由器将接收其流量(例如 VLAN ID 2)?
此外,是否还有任何安全或性能方面的考虑*?
*) 我知道由于路由器只使用 1 个端口,带宽将在 LAN 和 WAN 流量之间分配。为此,我会根据需要在 eth0 上进行双向调整。
答案1
我之所以找到您的问题,是因为我正在研究您提到的特定路由器 (TL-SG108E) 的 VLAN 广播问题。暂时先不谈这个问题,您所问的问题应该可以通过该设备上的 VLAN 或任何其他支持 VLAN 的“智能交换机”来解决。
您可以将电缆调制解调器插入的端口定义为给定 VLAN 的“未标记”端口,并设置 PVID 以匹配。在此模式下,交换机将自动为端口的所有流量插入和删除 VLAN 标头,这样设备就不知道它在 VLAN 上,但网络中的其他设备(例如其他交换机或路由器)将收到 VLAN 标记。当然,正如它们的目的一样,不同 VLAN 上的设备将看不到彼此的网络流量。
您可以对所有其他本地 LAN 设备执行相同操作,将它们设置为不同 VLAN 上的未标记。
然后,对于通往 Linux 路由器的端口,您可以将其定义为带有两个 VLAN 的标记端口,这将告诉交换机将带有 VLAN 标记的数据包直接传递到设备。Linux 能够设置 VLAN 接口,这些接口将处理 VLAN 标记并将数据包传送到适当的接口。
此时,您可以使用 iptables 使用 FORWARD 链在它们之间随意路由数据包,就像您在 Linux 机器上有两个想要在其间路由的物理接口一样。