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,它是以
service:
開始。這包含服務類型 (scanner.sane
) 以及位址 (可在其中找到伺服器可用的服務)。$HOSTNAME 會以完整的主機名稱自動取代。接著可以找到相關服務的 TCP 埠名稱,它們之間是以冒號分隔。然後輸入服務應該出現的語言以及註冊期間的秒數。這些都應該使用逗號與服務 URL 分隔。在0
與65535
之間設定註冊期間的值。0
會防止註冊。65535
會移除所有的限制。註冊檔另外還包含
watch-port-tcp
與description
兩個變數。watch-port-tcp
將 SLP 服務宣告連結至由slpd
檢查到的服務狀態,即相關服務是否啟用。第二個變數是對顯示在適當瀏覽器中的服務,提供更為精確的描述。提示: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》(程式設計指南),以瞭解詳細資訊。