第 21 章网络中的 SLP 服务

目录

21.1. 安装
21.2. 激活 SLP
21.3. 中的 SLP 前端SUSE Linux Enterprise Desktop
21.4. 通过 SLP 提供服务
21.5. 更多信息

摘要

制定服务位置协议 (SLP) 是为了简化本地网络中联网客户端的配置。要配置网络客户端(包括所有必需服务),管理员通常需要对网络中提供的服务器有详细了解。SLP 可以向本地网络中的所有客户端声明选中服务是否可用。支持 SLP 的应用程序则可以利用这一发布信息并进行自动配置。

SUSE® Linux Enterprise Desktop 支持使用 SLP 提供的安装源进行安装,并且包含许多集成了 SLP 支持的系统服务。YaST 和 Konqueror 都有适用于 SLP 的前端。您可以使用 SLP 为联网客户端(如系统上的安装服务器、文件服务器或打印服务器)提供核心功能。

[Important]SUSE Linux Enterprise Desktop 中的 SLP 支持

提供 SLP 支持的服务包括 cupsd、rsyncd、ypserv、openldap2、ksysguardd、saned、kdm、vnc、login、smpppd、rpasswd、postfix 和 sshd(通过 fish)。

21.1. 安装

将默认安装所有必需的包。但是,如果您要通过 SLP 提供服务,请确认 openslp-server 已安装。

21.2. 激活 SLP

要用 SLP 提供服务,您的系统上必须运行 slpd。如果计算机仅作为客户端操作,且不提供服务,则无需运行 slpd。类似 SUSE Linux Enterprise Desktop 中的大多数系统服务,slpd 守护程序通过单独的 init 脚本来控制。安装后,默认情况下停用守护程序。要将其临时激活,请作为 root 运行 rcslpd start,或运行 rcslpd stop 停止它。使用 restartstatus 可分别执行重启动或状态检查。如果希望引导时 slpd 始终处于活动状态,请在 YaST 系统+系统服务(运行级别)中启用 slpd,或以 root 身份运行 insserv slpd 命令。

21.3. SUSE Linux Enterprise Desktop 中的 SLP 前端

要在您的网络中查找通过 SLP 提供的服务,请使用 SLP 前端,比如 slptoolopenslp 包)或 YaST:

slptool

slptool 是可用于在网络中发布 SLP 查询或发布专有服务的命令行程序。slptool --help 列出所有可用的选项和函数。例如,要在当前网络中查找自行发布的所有时间服务器,请运行以下命令:

slptool findsrvs service:ntp
YaST

YaST 也提供 SLP 浏览器。但是,该浏览器不能从 YaST 控制中心访问。要启动该浏览器,请作为 root 用户运行 yast2 slp。单击左侧的服务类型可获取有关服务的更多信息。

21.4. 通过 SLP 提供服务

SUSE Linux Enterprise Desktop 中的许多应用程序都已使用 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 之后的各项内容。将注册持续时间设置为 065535 之间的值。0 表示禁止注册。65535 表示取消所有限制。

该注册文件还包含 watch-port-tcpdescription 这两个变量。watch-port-tcp 通过使 slpd 检查相关服务的状态,链接 SLP 服务对该服务是否活动的发布。第二个变量为显示在适合的浏览器中的服务提供了更为准确的描述。

通过 /etc/slp.reg 进行的静态注册

此方法与使用 /etc/slp.reg.d 的步骤之间唯一的区别在于,所有服务在中心文件中分组。

使用 slptool 进行的动态注册

如果某个服务须动态注册,而无需配置文件,请使用 slptool 命令行实用程序。相同的实用程序还可用于取消某个现有服务产品的注册,而无需重启动 slpd。

21.5. 更多信息

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 Desktop 细节、RFC 和两个介绍性的 HTML 文档。希望使用 SLP 功能的程序员可在 openslp-devel 包中包括的编程指南中找到更多信息。