为了确保客户机获得可访问的服务,在具有多宿主主机的网络中进行 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 对这三个子网中的三个范围提供服务。