Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.4. 多連接埠與 Load Balancer 外掛程式

建立多連接埠的 Load Balancer 外掛程式服務時,任何拓樸下的 LVS 路由器都需要額外的配置。多連接埠服務可以用人工方式創見,方法是透過使用防火牆標記將不同、但相關的通訊協定(例如 HTTP 的 80 連接埠與 HTTPS 的 443 連接埠)放在一起,或當 Load Balancer 外掛程式與真的多連接埠通訊協定(例如 FTP)使用時。不管是哪一種情況,LVS 路由器使用防火牆標記來辨識封包雖然是向不同的連接埠而去,但因為有著同樣的防火牆標記,因此處理方式是一樣的。同時,與持續性相結合時,只要連線處於持續性參數所指定的時間內,防火牆標記會確保來自用戶端機器的連線會導向到同樣的主機。欲知在虛擬伺服器上指定持續性的資訊,請參閱〈節 4.6.1, “「虛擬伺服器」子區段”〉。
不幸的是,用來平衡真實伺服器負載的機制 — IPVS — 會辨識出指定給某個封包的防火牆標記,但自己無法指定防火牆標記。「指定」防火牆標記的工作必須由網路封包篩選程式,亦即 iptables 來進行,而非 Piranha Configuration Tool

3.4.1. 指定防火牆標記

要指定防火牆標記給連往某個特定連接埠的封包,管理者必須使用 iptables
本節的範例描述如何處理 HTTP 與 HTTPS;然而,FTP 是另一個常見的、叢集化的多連接埠通訊協定。如果 Load Balancer 外掛程式用於 FTP 服務上,請參閱〈節 3.5, “配置 FTP”〉以得知配置詳情。
使用防火牆標記的基本規則,是每個在 Piranha Configuration Tool 中使用防火牆標記的每個通訊協定,都有相對應的 iptables 規則,指定標記到網路封包上。
在建立網路封包篩選規則之前,請確定沒有其它規則。要確定這問題,請以 root 身份在終端機中輸入:
/sbin/service iptables status
如果 iptables 不在執行中,終端機會立即出現提示符號。
如果 iptables 處於啟用狀態,那麼系統會顯示一連串的規則。如果出現規則的話,請輸入以下指令:
/sbin/service iptables stop
如果現有的規則很重要,請檢查 /etc/sysconfig/iptables 的內容,並在進行下一步之前,複製任何值得保存的規則到安全的地方。
以下是指定到同樣防火牆標記(80)到向內的交通、目的地為浮動 IP 位址 n.n.n.n(連接埠 80 與 443)的規則。
/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 -m multiport --dports 80,443 -j MARK --set-mark 80
欲知如何指定 VIP 到公開網路介面的指示,請參閱〈節 4.6.1, “「虛擬伺服器」子區段”〉。同時請注意,您必須以 root 身份登入,並在第一次發出規則前載入 iptables 模組。
在上述 iptables 指令中,n.n.n.n 是您 HTTP 與 HTTPS 虛擬伺服器的浮動 IP 位址。這些指令能指定任何送往 VIP、特定連接埠、且擁有防火牆標記 80 的網路交通,接下來會由 IPVS 所辨識、轉送。

警告

上述指令會立即生效,但系統重新開機後就會失效。要確保重新開機後,網路封包篩選設定依然有效,請參閱〈節 3.6, “儲存網路封包篩選設定”〉。