我们有一个运行 Ubuntu 20.04 LTS 的网关产品。它有两个使用systemd-networkd
.我们使用多播消息与连接到 LAN 的数千个物联网设备进行通信。重要的是,这些多播消息不要在 WAN 上发出,因为它可能会无意中改变 WAN 端可能存在的 IoT 设备的行为。
为了确保组播消息仅路由到 LAN,LAN 配置包括以下内容:
[Route]
Destination=224.0.0.0/4
Type=multicast
问题是,只有当 LAN 接口具有 CARRIER(插入电缆)时,才会加载多播路由。如果没有运营商,则永远不会加载多播路由,因此多播消息会在 WAN 上发出。大多数时候,LAN 接口都会插入电缆,但这不能保证(尤其是在启动期间)。
我们已经尝试过ConfigureWithoutCarrier=true
LAN 接口上的设置。这似乎可以确保无论电缆是否插入,组播路由始终加载。但是有没有更好的方法来配置组播路由以确保组播消息永远不会在 WAN 接口上出去?
答案1
添加
[Route]
Destination=224.0.0.0/4
Type=blackhole
WAN 配置可能可以解决问题。