我尝试在网络工程上询问这个问题,但却被指向这里......
假设一个网络由一台不支持 VLAN 的路由器、一些设备(包括多播 IPTV 接收器)和一台不支持 IGMP 侦听的 VLAN 交换机组成,所有设备都通过该交换机连接到路由器。由于交换机不支持 IGMP 侦听,因此所有多播以太网帧都会广播到交换机上的所有设备。
我的想法:用两个不同的 VLAN 分隔 IPTV 和非 IPTV 设备,并将两者连接到路由器,路由器将只在单个端口上看到 IPTV 设备,并且只在该端口上发送多播帧。所有设备都保持 DHCP 模式,并由路由器的 DHCP 服务器分配 IP,所有设备都位于同一个 IP 网络上。VLAN 的存在只是为了将两种设备的“最近的公共交换点”移动到能够仅向正确端口发送多播的设备,但所有设备都位于同一个 3 级网络上。双上行链路是一种标记 IPTV 和非 IPTV 帧的黑客解决方法。两个 VLAN 之间不应该有“路由”,因为所有设备都可以通过 ARP 找到所有其他设备,除了这个交换机之外没有 VLAN 的概念。
switch router (no VLAN)
IPTV [U]====[10] [ ]
[10]=====[U]
other device [U]====[20] [ ]
[20]=====[U]
U = no VLAN
10/20 = untagged/access port for that VLAN
我试过这个,它通常有效,多播帧不再到达非 IPTV 设备,但所有设备(包括非 IPTV)都经历了非常高的数据包丢失和非常不稳定的连接,即使网络上根本没有发送多播。为什么会这样?是否有其他重要的第 2 层协议(例如 STP)受到路由器和交换机之间的这种循环的影响并导致问题?交换机不支持 STP。
编辑:我在这里有意识地滥用 VLAN 来实现不寻常的目的,而不是完全分离广播域。
路由器充当多播路由器,并且作为整个设备(包括其交换机),不会在设备请求的端口以外的端口上发出多播帧。这部分设置有效。
路由器是 ISP 提供的 Telekom Speedport W925V,所涉及的交换机是 Ubiquiti Flex Mini。
答案1
问题是,你的消费级路由器实际上只有两个路由器接口:LAN 和 WAN。你拥有的实际上是一个包含其他设备(包括交换机)的怪人盒子。路由器 LAN 接口连接到交换机,你看到的接口是交换机接口,而不是路由器接口。
使用真正的路由器,这很容易,因为每个路由器接口都在不同的网络中,并且路由器将绑定一个 VLAN。您的交换机接口都在同一个 LAN 中,您实际上是在桥接两个 VLAN,本质上创建了一个 VLAN,这违背了 VLAN 的目的。