TTL=1 的组播无法转发
2026/1/5路由常见问题7.X.X大约 1 分钟
TTL=1 的组播无法转发
问题现象
在默认配置(启用multicast-forward)下:
config system settings
set multicast-forward enable
end- FortiGate 会丢弃 TTL(Time To Live)值为 1 的组播(Multicast)报文。
- 仅转发 TTL ≥ 2 的组播 IP 报文(转发后变为 TTL=1)。
而 TTL=1 的组播流量在实际网络中非常常见,尤其用于链路本地(link-local)组播通信。在某些业务场景下(如特定协议或设备发现机制),需要 FortiGate 能够转发 TTL=1 的组播报文:
- 链路本地组播协议需要跨接口转发。
- 依赖 TTL=1 进行设备发现(如打印机发现)或服务通告的业务。
- 测试/实验环境中对组播 TTL 行为有明确控制需求。
解决方法
要允许 FortiGate 转发 TTL=1 的组播报文,需要启用multicast-ttl-notchange配置。启用后,FortiGate 不会修改组播报文的 TTL 值,即使 TTL=1,也允许进行组播转发。
config system settings
set multicast-ttl-notchange enable
end注意事项
multicast-forward模式与multicast-routing不能同时启用,如果使用multicast-forward,请确保multicast-routing已关闭。- 组播相关配置可参考官方文档:https://docs.fortinet.com/document/fortigate/7.4.99/administration-guide/999756/multicast