可信伺服器池 （Reliable Server Pooling RSerPool） 是一個用於管理及訪問伺服器池的計算機軟體框架協議。目前，IETF 的 RSerPool 工作組指導下，其協議框架正處在標準化過程中。 引 言 用可信伺服器池（Reliable Server Pooling RSerPool）的術語，可信伺服器池中的一個伺服器叫池元素 PE Pool Element 每個 PE 用一個 32 位位元的 PE ID 標識。每個 PE 標識由 PE 註冊到伺服器池中時隨機選擇。所有伺服器池的標識集合稱為控制代碼空間。在舊文獻中，控制代碼空間又叫名字空間。為了避免與域名系統 DNS 相混淆，RSerPool 不再使用名字空間的術語。控制代碼空間中的每個伺服器池由一個唯一的池控制代碼（PH）標識，池控制代碼是一個任意的位元組向量。通常它用 ASCII 或 Unicode 碼來表示這個池的名字，例如像：DownloadPool 或 WebServerPool。 每個控制代碼空間有一個確定的管理範圍〔如，一個組織，一個機構或一個公司〕，這個確定的範圍被稱為操作範圍。很明顯，在一個控制代碼空間內管理全球性的 Internet 的池並不是 RSerPool 的目標。由於操作範圍的侷限，使用 無層次 控制代碼空間管理是可行的。也就是說，與域名系統相比，RSerPool 控制代碼空間〔PHs〕沒有使用層次管理結構。這種非層次的管理方式簡化了控制代碼空間的管理。 在一個操作範圍內，控制代碼空間由一組冗餘的池註冊器（Pool Registrars PR）管理，這組註冊器稱為 ENRP （Endpoint Handlespace Redundancy Protocol） 伺服器或者叫名字伺服器（Name Servers NS ）。為了避免一個 PR 成為一個失敗的單點 （Single Point of Failure SPoF ），PRs 必須由多個 PR 組成。一個操作範圍內的每個 PR 由它的註冊 ID （PR ID）標識，其識別符號是一個 32bit 的隨機數，但不必保證 PR IDs 的唯一性。每個 PR 包含了一個完整的操作範圍控制代碼空間的複製。一個操作範圍內的所有 PRs 透過使用 ENRP 協議來同步控制代碼空間的檢視。 舊版的 ENRP 協議使用了終端名字空間冗餘協議 （Endpoint Namespace Redundancy Protocol）的術語，為了避免與域名系統混淆，這個命名已經被替換，但縮寫仍然依舊。由於透過 ENRP 協議實現同步，一個操作範圍內的所有 PRs 有相同的功能。也就是說，任何一個 PR 失效，其它的 PR 能無縫地替代失效 PR 的工作。 在一個操作範圍內，一個 PE 可以使用 ASAP （Aggregate Server Access Protocol）協議透過請求註冊或請求登出把它自己加入任意一個 PR 或從任意一個 PR 登出自己。一旦註冊成功，這個 PR 將成為該 PE 的 PRH（HomePR）。 PRH 不僅通知該操作範圍內其它 PRs 關於它的 PEs 的註冊或登出資訊，它也要透過 ASAP KeepAlive messages 監視它的 PEs 工作的有效性。由 PRH 發出的一個 keepalive message 報文必須在一個確定的時間間隔內被它的 PEs 確認。如果該 PE 不能在一個確定的時間間隔內應答，那麼該 PE 被假定失效了，並立即從控制代碼空間中登出。通常，緊接著，期待一個 PE 再註冊。在再註冊時，很有可能這個 PE 改變它的傳送地址列表或它的策略資訊。 為了使用一個池的服務，一個客戶端 用 RSerPool 的術語被稱為 PU （Pool User） 首先必須請求該操作範圍內任一個 PR 伺服器池的池控制代碼 PH 解析成一個 PE 標識列表。這個選擇過程稱為處理解析。一旦被請求的池存在，該 PR 將根據池成員選擇策略（Pool Member Selection Policy 簡稱為池策略 Pool Policy）選擇一個 PE 標識列表。 例如，可選的池策略有隨機選擇（random selection）或最小負載 PE （Least Used）。第一種策略不需要任何選擇資訊，PEs 被隨機地選擇；而第二種策略需要維護更新的負載資訊，以便選擇當前最小負載的 PE。透過使用合適的選擇策略，可以將請求負載均衡地分配到池元素中，以達到負載均衡的目的。 從一個 PR 收到 PE 標識列表後，一個 PU 會把這個列表資訊寫入到自己本地的緩衝儲存器（簡稱 PU 方快取 PUside Cache）中。從 PU 方快取， 該 PU 將再次使用池策略選擇一個 PE 並透過像基於 SCTP 協議之上的 HTTP 或 TCP 這樣的應用協議與這個 PE 建立聯接。透過這個聯接，PU 可以使用由於伺服器 PE 提供的服務。如果聯接建立失敗或在服務過程失效，透過重複上面描述的聯接過程選擇一個新的 PE。如果 PU 方快取中的資訊沒有超時或失效，一個 PE 的標識可以直接地從該快取中選取，而不需再請求 PR 執行解析處理的過程。當 PU 與一個新的 PE 重建聯接後，該 PU 與前一個 PE 的應用會話狀態資訊必須在這個新 PE 上重現。這個會話狀態資訊在新 PE 上的恢復過程叫 Failover 過程， 當然它也是一個特定的應用過程。例如，用檔案傳協議（FTP）下載檔案的例子，failover 過程意謂著需要告訴新的 FTP 伺服器的檔名，以及最後收到的資料位置。這樣，新的 FTP 伺服器就能夠恢復下載會話過程。由於 failover 過程是高度地依賴於特定的應用，儘管 RSerPool 透過它的會話層機制支援任意 failover 的實施方案， 但 failover 並不屬於 RSerPool 的一部分。 為了實現 RSerPool 池成員的自動配置，PRs 可以透過基於 IPmulticast 的 UDP 報文協議來通告所有池成員。 PEs PUs 和其它的 PRs 都可以收到這些通告，並且在操作範圍內這些通告允許池成員獲悉當前有效的 PRs 列表。使用 IP 多地址（IP multicast ）取代廣播傳送的優點是這種機制可以工作在路由器之上 （例如，透過虛擬專用網 VPN 互聯的區域網 LAN），並且這些通告只會被對此感興趣的成員監聽並處理。對於 IP 多地址傳送無效的情況，可以使用靜態方式配置 PRs 的地址。 實施 RSerPool RSerPool 具體實施可以從下面連結中獲悉 RSPLIB Project Motorola 公司 Cisco 公司 Münster University of Applied Sciences RSerPool 標準文件 RSerPool RFCs 文件 RFC 3237 RSerPool 需求 RFC 5351 An Overview of Reliable Server Pooling Protocols RFC 5352 Aggregate Server Access Protocol ASAP RFC 5353 Endpoint Handlespace Redundancy Protocol ENRP RFC 5354 Aggregate Server Access Protocol ASAP and Endpoint Handlespace Redundancy Protocol ENRP Parameters RFC 5355 Threats Introduced by Reliable Server Pooling RSerPool and Requirements for Security in Response to Threats RFC 5356 Reliable Server Pooling Policies RFC 5525 Reliable Server Pooling MIB Module Definition RSerPool 工作組草案 Architecture for Reliable Server Pooling RSerPool 體系結構 Comparison of Protocols for Reliable Server Pooling RSerPool 協議比較 TCP Mapping for Reliable Server Pooling Enhanced Mode 關於 RSerPool 增強模式 TCP 對映 Services Provided By Reliable Server Pooling RSerPool 的服務功能 Reliable Server Pooling Sockets API Extensions RSerPool 套接字 API 擴充套件 其它工作草案 Handle Resolution Option for ASAP LeastUsed Policy for Reliable Server Pooling Reliable Server Pooling Applicability for IP Flow Information Exchange Applicability of Reliable Server Pooling for RealTime Distributed Computing Reliable Server Pooling RSerPool Bakeoff Scoring Applicability of Reliable Server Pooling for SCTPBased Endpoint Mobility Takeover Suggestion Flag for the ENRP Handle Update Message The Applicability of Reliable Server Pooling RSerPool for Virtual Network Function Resource Pooling VNFPOOL Ideas for a Next Generation of the Reliable Server Pooling Framework 其它連結 Thomas Dreibholzs Reliable Server Pooling RSerPool Page IETF RSerPool Working Group Category 網際協議 Category 網際網路標準 CategorySession layer protocols