为了确保客户机获得可访问的服务,在具有多宿主主机的网络中放置 DA 和指定范围名称时必须格外谨慎。当禁用了路由且配置了 net.slp.interfaces 属性时,要特别小心。此外,如果在多宿主计算机的接口之间启用了单播路由,则不需要进行任何特殊的 DA 和范围配置。将以从任何子网中都可访问的 DA 标识服务对通告进行高速缓存。但是,如果禁用了单播路由,则不合适的 DA 放置将产生问题。
要确定上一个示例会导致什么问题,请考虑 bigguy 运行 DA 并且所有子网中的客户机都具有相同范围时可能出现的情况。143 子网中的 SA 将向 DA 注册其服务通告。即使 143 子网中的主机无法访问,144 子网上的 UA 也可以获得这些服务通告。
此问题的一个解决方案是在每个子网而非多宿主主机上运行 DA。在此情况下,多宿主主机上的 net.slp.interfaces 属性应配置一个接口主机名或地址,或者应将其保留为不配置,从而强制使用缺省接口。此解决方案的一个缺点是,多宿主主机通常是可以更好处理 DA 的计算负载的大型计算机。
另一个解决方案是在多宿主主机上运行 DA 但配置范围,以使每个子网上的 SA 和 UA 具有不同范围。例如,在前面的情况下,142 子网上的 UA 和 SA 可能具有一个名为 scope142 的范围。143 子网上的 UA 和 SA 可能具有名为 scope143 的另一个范围,而 144 子网上的 UA 和 SA 可能具有名为 scope144 的第三个范围。可在具有三个接口的 bigguy 中配置 net.slp.interfaces 属性,以使 DA 对这三个子网中的三个范围提供服务。