配置和部署 Linux Virtual Server (LVS) 作為您的負載平衡器,以支援使用多個網路存取內部閘道作為單一登入的驗證 Proxy。
Linux 支援網路位址轉換 (NAT) 和完整網路位址轉換,包括來源和目的地 (完整 NAT) 模式,用於驗證 Proxy。
注意
|
步驟
- 要設定您的LVS以NAT模式運作:
重要
當在 NAT 模式下運行時,LVS 僅在將數據包發送到上游伺服器時執行目標網路位址轉換 (DNAT),因此 LVS 必須是所有連接的內部閘道的閘道。- 安裝 Keepalived 以為您的 LVS 提供負載平衡功能。
- 在
/etc/keepalived/keepalived.conf
編輯 Keepalived 配置檔案,並為virtual_server
建立一個封鎖。virtual_server <IP> <port> { delay_loop <loop> lb_algo <lb_algo> lb_kind NAT persistent_timeout <persistent_timeout> protocol TCP real_server <IP 1> <port 1> { weight <weight 1> } real_server <IP 2> <port 2> { weight <weight 2> } ... }
- 請在佔位符欄位中指定下表中的值以完成配置。欄位值IP供用戶端存取的負載平衡器 IP 位址。它可以是負載平衡器的 IP 位址或虛擬 IP。通訊埠
負載平衡器上用作驗證Proxy的監聽端口 lb_algo選擇:-
rr
:輪詢 -
wrr
:加權輪詢 -
lc
:最少連線 -
wlc
:加權最少連接 -
sh
:來源雜湊值 -
dh
:目標雜湊值 -
lblc
:基於區域的最少連接
重要
如果不使用sh
或dh
,您必須為persistence_timeout欄位設置一個值,以使連接保持持久。lb_kindNAT持續性逾時(可選)如果 lb_algo 的值不是sh
或dh
,則為必填項指定持久連線的超時值(以秒為單位)。通訊協定TCPIP(1、2、3、…)服務閘道的 IP 位址與安裝在內部網路的網路存取閘道埠 (1, 2, 3, … )服務閘道上用於驗證 Proxy 的監聽埠口重量用於負載平衡決策的權重以下是一個範例配置,其中一個虛擬伺服器在埠 10000 上監聽。負載平衡算法是以 NAT 模式運行的輪詢。持續性超時為 10 秒。連接了兩個上游服務閘道:一個在 192.168.1.100 上監聽 8089,另一個在 192.168.1.101 上監聽 18089。virtual_server 10.64.1.2 10000 { delay_loop 20 lb_algo rr lb_kind NAT persistent_timeout 10 protocol TCP real_server 192.168.1.100 8089 { weight 1 } real_server 192.168.1.101 18089 { weight 1 } }
-
- (可選)要將您的 LVS 設置為全 NAT 模式,請執行以下附加配置步驟:
重要
在全 NAT 模式下運行時,LVS 在將數據包發送到上游伺服器時會執行 DNAT 和 SNAT,因此不需要作為所有連接的內部閘道的閘道。- 在 iptables 中配置以下規則以用於 NAT,其中 IP 欄位是客戶端要存取的 IP 位址,port 欄位是負載平衡器上用作驗證 Proxy 的監聽埠。
iptables -t nat -I PREROUTING -d <IP> <port> -j MARK --set-xmark 0x4000/0x4000 iptables -t nat -I POSTROUTING -m mark --mark 0x4000/0x4000 -j MASQUERADE
- 使用以下命令啟用 IPVS 的 conntrack。
sysctl net.ipv4.vs.conntrack=1
- 使用以下命令啟用 IP 轉發。
sysctl net.ipv4.ip_forward=1
- 在 iptables 中配置以下規則以用於 NAT,其中 IP 欄位是客戶端要存取的 IP 位址,port 欄位是負載平衡器上用作驗證 Proxy 的監聽埠。