是否有一个 ipfw 规则可以轻松地将 mDns 数据包从一个子网转发到另一个子网?我有一台 Snow Leopard Server 机器作为两个子网之间的网关,并且希望每个子网中的机器都能看到另一个子网中可用的服务。网关机器已确认配置正确,因此数据包在两个子网之间正确路由(ping 正常,traceroute 显示子网跃点等)。我在设计 ipfw 规则时遇到的问题是,我不知道如何指示我希望将发送到 en0 上的 224.0.0.251:5353 的多播数据包发送到相同的 ip/port 但在 fw0(另一个接口)上。我尝试了一个规则,例如
fwd 192.168.10.1 log udp from 192.168.1.0/24 to 224.0.0.251 recv en1
强制数据包跳到另一个接口(从 en1 到 fw0),但没有骰子。ipfw 日志显示该规则是由数据包触发的,但 tcpdump 没有显示其他接口上的任何数据包。此外,唯一的其他防火墙规则是转移端口 8668 和规则#65535“允许任何到任何”。
有什么建议么?谢谢。
很长一段时间以来,我一直试图按预期完成这项工作。
我发现这些多播数据包不会跨越子网。
但是,我发现唯一真正的解决方案是在跨子网的系统上使用 mDNS Reflector 守护程序,例如 avahi-daemon。
听起来您也可以从 Wide Area Bonjour 中受益,它是为大型公司设计的,可以跨子网广播 Bonjour / mDNS 流量。
请参阅http://discussions.apple.com/thread.jspa?threadID=1251044
简而言之,没有。根据RFC2365和 IANA 的多播分配,224.0.0.0/24 保留用于链路本地多播。这意味着到 224.0.0.0 - 224.0.0.255 范围内的任何内容的多播数据包地址不应在 IP 子网之间交叉。
我没有看过另一个答案中提到的广域 Bonjour,但是如果要这样做,它必须使用不来自 224.0.0.0/24 的多播地址