系统管理指南:网络服务

适应不同的网络介质、拓扑结构或配置

本节介绍可以通过更改以下属性来调节 SLP 性能的可能情况。

表 9–3 SLP 性能属性

属性 

说明 

net.slp.DAAttributes

DA 接受通知的最短刷新间隔。 

net.slp.multicastTTL

为多点传送包指定的生存时间值。

net.slp.MTU

为网络包设置的字节大小。该大小包括 IP 以及 TCP 或 UDP 数据包头。 

net.slp.isBroadcastOnly

布尔值,设置该值以指示是否应将广播用于 DA 搜索和不基于 DA 的服务搜索。 

减少 SA 重新注册

SA 在生命周期到期之前,需要定期刷新其服务通知。如果 DA 需要处理来自许多 UA 和 SA 的大量负载,则频繁刷新会导致 DA 过载。如果 DA 过载,UA 请求将开始超时,然后将被删除。UA 请求超时可能有多种原因。在您断定 DA 过载是导致 UA 请求超时的原因之前,应先使用 snoop 跟踪来检查已进行服务注册的服务通知的生命周期。如果生命周期很短并且重新注册频繁发生,则超时很可能是由频繁重新注册引起的。


注 –

如果未设置 FRESH 标志,则注册服务时就会造成服务的重新注册。有关服务注册消息的更多信息,请参见第 11 章,SLP(参考)


Procedure如何减少 SA 重新注册

使用以下过程可以增大 SA 的最短刷新间隔,以减少重新注册。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 停止 slpd 和主机上的所有 SLP 活动。


    # svcadm disable network/slp
    
  3. 在更改配置设置之前,先备份缺省的 /etc/inet/slp.conf 文件。

  4. 增大 net.slp.DAAttributes 属性的 min-refresh-interval 属性的值。

    缺省的最短重新注册周期是零。缺省值零允许 SA 在任意时刻注册。在以下示例中,该间隔增大到 3600 秒(1 小时)。


    net.slp.DAAttributes(min-refresh-interval=3600)
  5. 保存更改并关闭文件。

  6. 重新启动 slpd 以激活更改。


    # svcadm enable network/slp
    

配置多点传送生存时间属性

多点传送生存时间属性 (net.slp.multicastTTL) 确定多点传送包在内联网中的传播范围。多点传送 TTL 是通过将 net.slp.multicastTTL 属性设置为 1 与 255 之间的整数来配置的。多点传送 TTL 的缺省值为 255,这表明从理论上讲,包路由不受限制。但是,TTL 为 255 时会使多点传送包穿透内联网,到达管理域边缘的边界路由器。需要在边界路由器上正确配置多点传送,才能防止多点传送包泄漏到 Internet 的多点传送主干网中,或泄露给您的 ISP。

多点传送 TTL 作用域设置与标准 IP TTL 相似,区别在于要进行 TTL 比较。对于启用了多点传送的路由器上的每个接口,都会为其指定一个 TTL 值。当多点传送包到达时,路由器会将该包的 TTL 与接口的 TTL 进行比较。如果包的 TTL 大于或等于接口的 TTL,包 TTL 将减小 1,这与标准 IP TTL 相同。如果 TTL 变为零,将放弃该包。将 TTL 作用域设置用于 SLP 多点传送时,必须对路由器进行正确配置,以将包限制到内联网的特定子段。

Procedure如何配置多点传送生存时间属性

使用以下过程可以重置 net.slp.multicastTTL 属性。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 停止 slpd 和主机上的所有 SLP 活动。


    # svcadm disable network/slp
    
  3. 在更改配置设置之前,先备份缺省的 /etc/inet/slp.conf 文件。

  4. slpd.conf 文件中更改 net.slp.multicastTTL 属性。


    net.slp.multicastTTL=value
    
    value

    小于或等于 255 的正整数,用于定义多点传送 TTL


    注 –

    通过减小 TTL 值可以缩小多点传送传播的范围。如果 TTL 值为 1,包将限制到子网。如果该值为 32,包将限制到该站点。不过,术语站点不是由 RFC 1075 定义的,RFC 1075 探讨了多点传送 TTL。大于 32 的值表示在 Internet 上的理论路由,不应使用。如果路由器正确配置了 TTL,则小于 32 的值可用来将多点传送限制到一组可访问的子网。


  5. 保存更改并关闭文件。

  6. 重新启动 slpd 以激活更改。


    # svcadm enable network/slp
    

配置包大小

SLP 的缺省包大小为 1400 字节。对于大多数局域网而言,该大小应该足够。对于无线网络或广域网而言,可以减小包大小,以避免消息分段并减少网络通信流量。对于具有较大包的局域网而言,增大包大小可以改善性能。通过检查网络的最小包大小可以确定是否需要减小包大小。如果网络介质具有较小的包大小,则可相应减小 net.slp.MTU 的值。

如果网络介质具有较大的包,则可增大包大小。但是,除非来自 SA 的服务通知或来自 UA 的查询频繁使缺省包大小溢出,否则不应更改 net.slp.MTU 值。可以使用 snoop 来确定 UA 请求是否经常使缺省包大小溢出,并滚动使用 TCP 而非 UDP。

net.slp.MTU 属性会度量完整的 IP 包大小,包括链路层头、IP 数据包头、UDP 或 TCP 数据包头以及 SLP 消息。

Procedure如何配置包大小

使用以下过程通过调节 net.slp.MTU 属性来更改缺省包大小。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 停止 slpd 和主机上的所有 SLP 活动。


    # svcadm disable network/slp
    
  3. 在更改配置设置之前,先备份缺省的 /etc/inet/slp.conf 文件。

  4. slpd.conf 文件中更改 net.slp.MTU 属性。


    net.slp.MTU=value
    
    value

    一个 16 位整数,用于指定网络包大小(以字节为单位)

    缺省值 = 1400

    值范围 = 128–8192

  5. 保存更改并关闭文件。

  6. 重新启动 slpd 以激活更改。


    # svcadm enable network/slp
    

配置仅限广播路由

设计 SLP 的目的是使用多点传送来进行服务搜索(不存在 DA 时)和 DA 搜索。如果网络不部署多点传送路由,则可通过将 net.slp.isBroadcastOnly 属性设置为 True 来将 SLP 配置为使用广播。

与多点传送不同,广播包缺省情况下不在子网中传播。因此,在非多点传送网络中没有 DA 的服务搜索只适用于单个子网。此外,在使用广播的网络中部署 DA 和范围时,需要考虑特殊的注意事项。多宿主主机上的 DA 可在禁用多点传送的多个子网之间桥接服务搜索。有关在多宿主主机上部署 DA 的更多信息,请参见 DA 放置和范围名称指定

Procedure如何配置仅限广播路由

使用以下过程可将 net.slp.isBroadcastOnly 属性更改为 True

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 停止 slpd 和主机上的所有 SLP 活动。


    # svcadm disable network/slp
    
  3. 在更改配置设置之前,先备份缺省的 /etc/inet/slp.conf 文件。

  4. slpd.conf 文件中将 net.slp.isBroadcastOnly 属性更改为 True


    net.slp.isBroadcastOnly=True
  5. 保存更改并关闭文件。

  6. 重新启动 slpd 以激活更改。


    # svcadm enable network/slp