系统管理指南:网络服务

部署范围

借助范围可对依赖于用户的逻辑、物理和管理分组的服务进行调配。使用范围可对服务通知的访问进行管理。

使用 net.slp.useScopes 属性创建范围。例如,在主机上的 /etc/inet/slp.conf 文件中,添加一个名为 newscope 的新范围,如下所示:


net.slp.useScopes=newscope

例如,您的组织可能在 6 号楼的 2 层的南厅一端有一个联网设备室,其中包括打印机和传真机等设备。2 层的所有人都可以使用这些设备,也可以将这些设备的使用限制为某个部门的成员。通过范围可对这些机器的服务通知的访问进行调配。

如果设备专供一个部门使用,则可用该部门的名称创建一个范围,例如 mktg。属于其他部门的设备可用不同的范围名称来配置。

在另一种情况下,部门可能是分散的。例如,机械工程部门和 CAD/CAM 部门可能分散在 1 层和 2 层。但是,可在 2 层为这两层的主机提供机器,方法是为其指定相同的范围。可以通过适用于网络和用户的其他任何方式来部署范围。


注 –

实际上,并不禁止具有特定范围的 UA 使用在其他范围内通知的服务。配置范围只控制 UA 检测哪些服务通知。该服务负责强制实施所有访问控制限制。


何时配置范围

无需进行任何范围配置,SLP 便可正常工作。在 Solaris 操作环境中,SLP 的缺省范围是 default。如果没有配置任何范围,则 default 是所有 SLP 消息。

可在以下任何情况下配置范围。

为拨号网络配置 DA 搜索中列举了第一种情况的示例。第二种情况的示例是,组织分布于两个大楼内,您希望大楼内的用户访问本大楼内的本地服务。可为 1 号楼内的用户配置 B1 范围,而为 2 号楼的用户配置 B2 范围。

配置范围时的注意事项

当您在 slpd.conf 文件中修改 net.slp.useScopes 属性时,便会为主机上的所有代理配置范围。当主机正在运行任何 SA 或用作 DA 时,如果要将 SA 或 DA 配置到 default 之外的范围中,则必须配置此属性。如果只有 UA 在机器中运行,并且 UA 应搜索 default 之外的 SA 和 DA 支持范围,则除非要限制 UA 使用的范围,否则无需配置此属性。如果未配置该属性,UA 可以通过 slpd 自动搜索可用的 DA 和范围。SLP 守护进程使用主动和被动 DA 搜索来查找 DA,如果没有 DA 在运行,则使用 SA 搜索。另外,如果已配置上述属性,UA 将只使用已配置的范围,而不会将其废弃。

如果您决定要配置范围,则应考虑将 default 范围保留在已配置范围的列表中,除非确保网络中的所有 SA 都已配置范围。如果有任何 SA 未配置,则已配置范围的 UA 将无法找到这些 SA。出现这种情况的原因是,未配置的 SA 会自动以 default 为范围,而 UA 会使用已配置的范围。

如果您还决定通过设置 net.slp.DAAddresses 属性来配置 DA,请确保已配置的 DA 所支持的范围与您使用 net.slp.useScopes 属性配置的范围相同。如果这两个范围不同,slpd 将在重新启动时列显错误消息。

Procedure如何配置范围

使用以下过程在 slp.conf 文件中为 net.slp.useScopes 属性添加范围名称。

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

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

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


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

  4. slpd.conf 文件中更改 net.slp.useScopes 属性:


    net.slp.useScopes=<scope names>
    
    scope names

    字符串列表,表示 DA 或 SA 发出请求时允许其使用的范围或表示 DA 必须支持的范围

    缺省值 = 缺省值(SA 和 DA)/未指定( UA )


    注 –

    使用以下各项来构造范围名称:

    • 任何字母数字字符(大写或小写)

    • 任何标点符号(''\!<=>~ 除外)

    • 被视为名称一部分的空格

    • 非 ASCII 字符

      使用反斜杠可对非 ASCII 字符进行转义。例如,UTF-8 编码使用 0xc3a9 十六进制代码来表示具有法语 aigue 重音的字母 e。如果平台不支持 UTF-8,则可使用 UTF-8 十六进制代码作为转义序列 \c3\a9


    例如,要为 bldg6 中的 eng 组和 mktg 组指定范围,请对 net.slp.useScopes 行进行如下更改。


    net.slp.useScopes=eng,mktg,bldg6
  5. 保存更改并关闭文件。

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


    # svcadm enable network/slp