章 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

您系統必須執行 slpd,才能提供 SLP 服務。如果機器僅做為用戶端執行並且不提供服務,則無需執行 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 前端,例如 slptool (openslp 套件) 或 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,它是以 service: 開始。這包含服務類型 (scanner.sane) 以及位址 (可在其中找到伺服器可用的服務)。$HOSTNAME 會以完整的主機名稱自動取代。接著可以找到相關服務的 TCP 埠名稱,它們之間是以冒號分隔。然後輸入服務應該出現的語言以及註冊期間的秒數。這些都應該使用逗號與服務 URL 分隔。在 065535 之間設定註冊期間的值。0 會防止註冊。65535 會移除所有的限制。

註冊檔另外還包含 watch-port-tcpdescription 兩個變數。watch-port-tcp 將 SLP 服務宣告連結至由 slpd 檢查到的服務狀態,即相關服務是否啟用。第二個變數是對顯示在適當瀏覽器中的服務,提供更為精確的描述。

使用 /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 套件隨附的《程式設計師指南》中找到詳細資訊。