Show Table of Contents
3.4. 多連接埠服務與 Load Balancer
建立多連接埠的 Load Balancer 服務時,任何拓樸下的 LVS 路由器都需經過額外的配置。多連接埠服務可以用人工方式創見,方法是透過使用防火牆標記將不同、但相關的通訊協定(例如 HTTP 的 80 連接埠與 HTTPS 的 443 連接埠)放在一起,或當 Load Balancer 與真實的多連接埠通訊協定(例如 FTP)搭配使用時。不管在哪一種情況下,LVS 路由器皆會使用防火牆標記來以相同的方式處理連向不同連接埠,但卻有著同樣防火牆標記的封包。同時,與持續性相結合時,只要連線處於持續性參數所指定的時間內,防火牆標記便會確保來自用戶端機器的連線會導向至同樣的主機。
不幸的是,用來平衡真實伺服器負載的機制 — IPVS — 會辨識出指定給某個封包的防火牆標記,但自己無法指定防火牆標記。「指定」防火牆標記的工作必須由網路封包篩選程式,亦即
iptables 來進行。
3.4.1. 指定防火牆標記
要指定防火牆標記給連往某個特定連接埠的封包,管理者必須使用
iptables。
本節的範例描述如何處理 HTTP 與 HTTPS;然而,FTP 是另一個常見、叢集化的多連接埠通訊協定。
使用防火牆標記的基本規則,是每個在 Keepalived 中使用防火牆標記的每個通訊協定,都有相對應的
iptables 規則,以指定標記至網路封包上。
在建立網路封包篩選規則之前,請確定沒有其它既有規則。若要這麼做,請以 root 身份在終端機中輸入:
/usr/sbin/service iptables status
如果
iptables 不在執行中,終端機會立即出現提示符號。
如果
iptables 處於啟用狀態,那麼系統會顯示一連串的規則。如果出現規則的話,請輸入以下指令:
/sbin/service iptables stop
如果現有的規則很重要,請檢查
/etc/sysconfig/iptables 的內容,並在進行下一步之前,複製任何值得保存的規則到安全的地方。
第一項與 Load Balancer 相關的配置防火牆規則,就是允許 VRRP 流量,以讓 Keepalived 服務能運作。
/usr/sbin/iptables -I INPUT -p vrrp -j ACCEPT
以下是指定到同樣防火牆標記(80)到向內的流量、目的地為浮動 IP 位址 n.n.n.n(連接埠 80 與 443)的規則。
/usr/sbin/iptables -t mangle -A PREROUTING -p tcp -d n.n.n.n/32 -m multiport --dports 80,443 -j MARK --set-mark 80
請注意,您必須以 root 身份登入,並在第一次發出規則前載入
iptables 模組。
在上述
iptables 指令中,n.n.n.n 是您 HTTP 與 HTTPS 虛擬伺服器的浮動 IP 位址。這些指令能指定任何送往 VIP、特定連接埠、且擁有防火牆標記 80 的網路流量,接下來會由 IPVS 所辨識、轉送。
警告
以上指令會即刻生效,不過將無法在系統重新開機時維持永續性。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.