33 SLP #
要配置网络客户端,需要了解关于通过网络提供的服务(例如打印或 LDAP)的详细知识。为了简化在网络客户端上配置此类服务的工作,“服务定位协议” (SLP) 应运而生。SLP 可向本地网络中的所有客户端告知所选服务的可用性和配置数据。支持 SLP 的应用程序可以利用这一信息来进行自动配置。
SUSE® Linux Enterprise Server 支持使用 SLP 提供的安装源进行安装,并且包含许多集成了 SLP 支持的系统服务。您可以使用 SLP 为联网客户端(如系统上的安装服务器、文件服务器或打印服务器)提供核心功能。提供 SLP 支持的服务包括 cupsd、login、ntp、openldap2-client、postfix、rpasswd、rsyncd、saned、sshd(通过 fish)、vnc 和 ypserv。
默认情况下,系统会安装在网络客户端上使用 SLP 服务所需的所有软件包。但如果您要通过 SLP 提供服务,请检查 openslp-server 包是否已安装。
33.1 SLP 前端 slptool #
slptool 是一个命令行工具,用于查询和注册 SLP 服务。在进行诊断时,查询功能非常有用。下面列出了最重要的 slptool 子命令。slptool --help 列出所有可用的选项和函数。
- findsrvtypes
列出网络上可用的所有服务类型。
tux >slptool findsrvtypes service:install.suse:nfs service:install.suse:ftp service:install.suse:http service:install.suse:smb service:ssh service:fish service:YaST.installation.suse:vnc service:smtp service:domain service:management-software.IBM:hardware-management-console service:rsync service:ntp service:ypserv- findsrvs SERVICE_TYPE
列出提供 SERVICE_TYPE 的所有服务器
tux >slptool findsrvs service:ntp service:ntp://ntp.example.com:123,57810 service:ntp://ntp2.example.com:123,57810- findattrs SERVICE_TYPE//HOST
列出 HOST 上 SERVICE_TYPE 的属性
tux >slptool findattrs service:ntp://ntp.example.com (owner=tux),(email=tux@example.com)- register SERVICE type//HOST:PORT "(ATTRIBUTE=VALUE),(ATTRIBUTE=VALUE)"
使用可选属性列表在 HOST 上注册 SERVICE_TYPE
slptool register service:ntp://ntp.example.com:57810 \ "(owner=tux),(email=tux@example.com)"
- deregister SERVICE_TYPE//host
在 HOST 上取消注册 SERVICE_TYPE
slptool deregister service:ntp://ntp.example.com
有关更多信息,请运行 slptool --help。
33.2 通过 SLP 提供服务 #
要提供 SLP 服务,SLP 守护程序 (slpd) 必须处于运行状态。就像 SUSE Linux Enterprise Server 中的大多数系统服务一样,slpd 通过单独的启动脚本来控制。安装后,默认情况下停用守护程序。要为当前的会话激活它,请运行 sudo systemctl start slpd。如果 slpd 应该在系统启动时激活,请运行 sudo systemctl enable slpd。
SUSE Linux Enterprise Server 中的许多应用程序都已通过 libslp 库集成了 SLP 支持。如果服务未符合 SLP 支持,请使用以下方法之一使其可通过 SLP 发布。
- 使用
/etc/slp.reg.d进行的静态注册 为每个新服务创建单独的注册文件。下面的示例会注册一个扫描仪服务:
## Register a saned service on this system ## en means english language ## 65535 disables the timeout, so the service registration does ## not need refreshes service:scanner.sane://$HOSTNAME:6566,en,65535 watch-port-tcp=6566 description=SANE scanner daemon
此文件中最重要的一行是以 service: 开头的
服务 URL。其中包含服务类型 (scanner.sane) 以及该服务在服务器上的地址。$HOSTNAME 会自动替换为完整主机名。随后是可以找到相关服务的 TCP 端口的名称,端口与主机名之间用冒号分隔。然后输入服务的显示语言及以秒计的注册持续时间。应该用逗号分隔服务 URL 之后的各项内容。将注册持续时间设置为0到65535之间的值。0表示禁止注册。65535表示取消所有限制。该注册文件还包含
watch-port-tcp和description这两个变量。watch-port-tcp通过使slpd检查相关服务的状态,链接 SLP 服务对该服务是否活动的发布。第二个变量为显示在适合的浏览器中的服务提供了更为准确的描述。提示:YaST 和 SLP在模块对话框中激活 SLP 后,由 YaST 代理的某些服务(如安装服务器或 YOU 服务器)会为您自动执行此注册。然后,YaST 为这些服务创建注册文件。
- 使用
/etc/slp.reg进行的静态注册 此方法与使用
/etc/slp.reg.d的步骤之间唯一的区别在于,所有服务在中心文件中分组。- 使用
slptool进行的动态注册 如果某个服务须动态注册,而无需配置文件,请使用 slptool 命令行实用程序。该实用程序还可用于取消注册某个现有服务产品,而无需重启动
slpd。有关详细信息,请参见 第 33.1 节 “SLP 前端slptool”。
33.2.1 设置 SLP 安装服务器 #
在网络中通过 SLP 公告安装数据可简化网络安装过程,因为系统会通过 SLP 查询自动请求服务器 IP 地址或安装媒体路径等安装数据。有关指导,请参见第 16 章 “设置网络安装源”。
33.3 更多信息 #
- RFC 2608、2609、2610
RFC 2608 主要描述了 SLP 的定义。RFC 2609 更详细地描述了所用服务 URL 的语法;RFC 2610 则对通过 SLP 的 DHCP 进行了描述。
- http://www.openslp.org
OpenSLP 项目的主页。
/usr/share/doc/packages/openslp此目录包含
openslp-server软件包随附的 SLP 文档,其中的README.SUSE文件包含 SUSE Linux Enterprise Server 细节、RFC 和两个介绍性的 HTML 文档。要使用 SLP 功能的程序员可参见 SUSE 软件开发包附带的openslp-devel软件包中的《Programmers Guide》(编程指南),以了解更多信息。