如果设置了 net.slp.interfaces 属性,slpd 将侦听该属性所列接口而非缺省接口上的单播和多播/广播 SLP 请求。
通常,设置 net.slp.interfaces 属性时会同时通过设置 net.slp.isBroadcastOnly 属性来启用广播,原因是网络中尚未部署多播。但是,如果已经部署多播,而多播未在此特定多宿主主机上路由,则多播请求可从多个接口到达 slpd。当包的路由由与子网(接口为这些子网提供服务)连接的另一台多宿主主机或路由器处理时,会出现这种情况。
出现此类情况时,发送请求的 SA 服务器或 UA 将收到来自多宿主主机上的 slpd 的两个响应。然后,客户机库对响应进行过滤,客户机将看不到这些响应。但这些响应在 snoop 跟踪中可见。
如果关闭单播路由,则所有子网都无法访问多宿主主机上的 SA 客户机通告的服务。如果这些服务无法访问,SA 客户机可以执行以下操作:
对每个子网通告一个服务 URL。
确保用可访问的 URL 应答来自特定子网的请求。
SA 客户机库不执行任何操作来确保对可访问的 URL 进行通告。服务计划(它可能处理也可能不处理无路由的多宿主主机)将负责确保对可访问的 URL 进行通告。
在禁用单播路由的多宿主主机上部署服务之前,请使用 snoop 来确定服务是否可以正确处理来自多个子网的请求。此外,如果计划在多宿主主机上部署 DA,请参见DA 放置和范围名称指定。
使用以下过程在 slp.conf 文件中更改 net.slp.interfaces 属性。
# svcadm disable network/slp
net.slp.interfaces=value
网络接口卡的 IPv4 地址或主机名的列表,DA 或 SA 应在该网络接口卡上侦听端口 427 上的多播、单播 UDP 和 TCP 消息
例如,具有三个网络接口卡和已关闭多播路由的服务器将连接至三个子网。这三个网络接口的 IP 地址为 192.168.142.42、192.168.143.42 和 192.168.144.42。子网掩码为 255.255.255.0。以下属性设置将使 slpd 侦听所有三个接口上的单播和多播/广播消息:
net.slp.interfaces=192.168.142.42,192.168.143.42,192.168.144.42
# svcadm enable network/slp