36 SLP #
要配置网络客户端,需要了解关于通过网络提供的服务(例如打印或 LDAP)的详细知识。为了简化在网络客户端上配置此类服务的工作,“服务定位协议” (SLP) 应运而生。SLP 可向本地网络中的所有客户端告知所选服务的可用性和配置数据。支持 SLP 的应用程序可以利用这一信息来进行自动配置。
SUSE® Linux Enterprise Server 支持使用 SLP 提供的安装源进行安装,并且包含许多集成了 SLP 支持的系统服务。您可以使用 SLP 为联网客户端(如系统上的安装服务器、文件服务器或打印服务器)提供核心功能。提供 SLP 支持的服务包括 cupsd、login、ntp、openldap2、postfix、rpasswd、rsyncd、saned、sshd(通过 fish)、vnc 和 ypserv。
默认情况下,系统会安装在网络客户端上使用 SLP 服务所需的所有包。但如果您要通过 SLP 提供服务,请检查 openslp-server
包是否已安装。
36.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
。
36.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
。有关详细信息,请参见第 36.1 节 “SLP 前端slptool
”。
36.2.1 设置 SLP 安装服务器 #
在网络中通过 SLP 公告安装数据可简化网络安装过程,因为系统会通过 SLP 查询自动请求服务器 IP 地址或安装媒体路径等安装数据。有关指导,请参见第 16 章 “设置网络安装源”。
36.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》(编程指南),以了解更多信息。