我负责开发一款产品,该产品由多个无头 Linux 机箱组成,它们作为一个集群一起工作。
这些机箱通过发送专有格式的链路本地 IPv6 多播数据包(到)来同步它们的状态ff12::xxxx%en0
。当系统状态快速变化时,这些数据包会占用大量带宽,但这没关系,因为 Linux 机箱在千兆以太网 LAN 上运行,有足够的带宽可用。
问题出现在当客户在建筑物内漫步时,他决定使用他的笔记本电脑(或 iPad)作为系统客户端,因此客户在 LAN 中添加 WiFi 接入点,并设置他的笔记本电脑通过 WiFi 与其中一个 Linux 机器进行通信(通过单播)。
这通常“有点”有效,但问题是 Linux 设备发送的所有多播同步数据包现在都通过 WiFi 发送,即使客户端不需要或使用它们。因此,WiFi 带宽经常受到影响,有时甚至处于不可用状态,客户抱怨我们的系统无法正常工作。
当然,我们可以直接告诉客户“不要这样做”,但 WiFi 非常有用,我想找到一个比禁止 WiFi 更有建设性的解决方案。是否有某种(相当简单的)方法来配置 WiFi 接入点以过滤掉这些同步多播数据包?只需让 WiFi 接入点不处理 IPv6 数据包就足以满足我们的目的,因为客户端软件可以在必要时通过 IPv4 运行,但一些更细致的过滤(不排除所有 IPv6 流量)会更好。
请注意,我们的客户安装的最常见接入点是 Apple 的 Airport,但如果有另一个(更可配置的)WiFi 接入点产品效果更好,则可以选择用不同型号的接入点替换该接入点。
答案1
如果您的交换机(或者更准确地说是客户端的交换机)能够通过地址过滤多播数据包(阻止多播前缀),那么这是我的第一个建议。
除非您可以在 WAP 和主网络之间放置一个简单的过滤设备(防火墙),该设备只会丢弃往返于多播地址范围的所有数据包......
答案2
不要阻止 IPv6 的多播流量!邻居发现(IPv4 世界中的 ARP)等基本功能是多播的,路由器发现也是多播的。如果您阻止,您的 IPv6 连接将无法正常工作。
答案3
在我看来,将服务器的集群流量与客户端访问流量放在同一个 VLAN 上并不是一个好主意。我认为将集群控制/状态流量与访问流量分开是一个建设性的解决方案。也许服务器有多个网络接口,这样就简单多了(而且比托管交换机便宜)。
答案4
听起来您的客户正在桥接以太网和 WiFi 流量。如果他们使用 WiFi 路由器或使用路由器模式下的设备,多播功能可能会更好地工作。
当然,本地链路将不起作用。必须更改为使用可路由的多播地址。