一、LVS介紹
簡介
通用體系結構
LVS集群采用IP負載均衡技術和基於內容請求分發技術。調度器具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服 務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。整個服務器集群的結構對客戶是透明的,而且無需修改客戶端和服務器端的程序,以下是體系結構圖(來源http://www.linuxvirtualserver.org/architecture.html):
- 負載調度器(load balancer),它是整個集群對外面的前端機,負責將客戶的請求發送到一組服務器上執行。
- 服務器池(server pool),是一組真正執行客戶請求的服務器,可以是WEB、MAIL、FTP和DNS服務器等。
- 共享存儲(shared storage),它為服務器池提供一個共享的存儲區,這樣很容易使得服務器池擁有相同的內容,提供相同的服務,例如數據庫、分布式文件系統、網絡存儲等。
優缺點
- 高並發連接:LVS基於內核網絡層面工作,有超強的承載能力和並發處理能力。單台LVS負載均衡器,可支持上萬並發連接。穩定性強:是工作在網絡4層之上僅作分發之用,這個特點也決定了它在負載均衡軟件里的性能最強,穩定性最好,對內存和cpu資源消耗極低。
- 成本低廉:硬件負載均衡器少則十幾萬,多則幾十萬上百萬,LVS只需一台服務器和就能免費部署使用,性價比極高。
- 配置簡單:LVS配置非常簡單,僅需幾行命令即可完成配置,也可寫成腳本進行管理。
- 支持多種算法:支持8種負載均衡算法,可根據業務場景靈活調配進行使用。
- 支持多種工作模型:可根據業務場景,使用不同的工作模式來解決生產環境請求處理問題。
- 應用范圍廣:因為LVS工作在4層,所以它幾乎可以對所有應用做負載均衡,包括http、數據庫、DNS、ftp服務等等。
- 缺點:工作在4層,不支持7層規則修改,機制過於龐大,不適合小規模應用。
組件和專業術語
- ipvsadm:用戶空間的客戶端工具,用於管理集群服務及集群服務上的RS等;
- ipvs:工作於內核上的netfilter INPUT鈎子之上的程序,可根據用戶定義的集群實現請求轉發;
- VS:Virtual Server ,虛擬服務
- Director: Balancer ,也叫DS(Director Server)負載均衡器、分發器
- RS:Real Server ,后端請求處理服務器,真實服務器
- CIP: Client IP ,客戶端IP
- VIP:Director Virtual IP ,負載均衡器虛擬IP
- DIP:Director IP ,負載均衡器IP
- RIP:Real Server IP ,后端請求處理的服務器IP
工作模型
- 當客戶端的請求到達負載均衡器的內核空間時,首先會到達PREROUTING鏈。
- 當內核發現請求數據包的目的地址是本機時,將數據包送往INPUT鏈。
- LVS由用戶空間的ipvsadm和內核空間的IPVS組成,ipvsadm用來定義規則,IPVS利用ipvsadm定義的規則工作,IPVS工作在INPUT鏈上,當數據包到達INPUT鏈時,首先會被IPVS檢查,如果數據包里面的目的地址及端口沒有在規則里面,那么這條數據包將被放行至用戶空間。
- 如果數據包里面的目的地址及端口在規則里面,那么這條數據報文將被修改目的地址為事先定義好的后端服務器,並送往POSTROUTING鏈。
- 最后經由POSTROUTING鏈發往后端服務器。
二、負載均衡模式
LVS-NAT模式
簡介
NAT模式稱為全稱Virtualserver via Network address translation(VS/NAT),是通過網絡地址轉換的方法來實現調度的。首先調度器(Director)接收到客戶的請求數據包時(請求的目的IP為VIP),根據調度算法決定將請求發送給哪個后端的真實服務器(RS)。然后調度就把客戶端發送的請求數據包的目標IP地址及端口改成后端真實服務器的IP地址(RIP),這樣真實服務器(RS)就能夠接收到客戶的請求數據包了。真實服務器響應完請求后,查看默認路由(NAT模式下我們需要把RS的默認路由設置為DS服務器。)把響應后的數據包發送給DS,DS再接收到響應包后,把包的源地址改成虛擬地址(VIP)然后發送回給客戶端。
具體工作流程:
說明:
- NAT技術將請求的報文和響應的報文都需要通過DS進行地址改寫,因此網站訪問量比較大的時候DS負載均衡調度器有比較大的瓶頸,一般要求最多之能10-20台節點。
- 節省IP,只需要在DS上配置一個公網IP地址就可以了。
- 每台內部的節點服務器的網關地址必須是調度器LB的內網地址。
- NAT模式支持對IP地址和端口進行轉換。即用戶請求的端口和真實服務器的端口可以不一致。

LVS-DR模式
簡介
全稱:Virtual Server via Direct Routing(VS-DR),也叫直接路由模式,用直接路由技術實現虛擬服務器。當參與集群的計算機和作為控制管理的計算機在同一個網段時可以用此方法,控制管理的計算機接收到請求包時直接送到參與集群的節點。直接路由模式比較特別,很難說和什么方面相似,前種模式基本上都是工作在網絡層上(三層),而直接路由模式則應該是工作在數據鏈路層上(二層)。

說明:
- 當用戶請求到達Director Server,此時請求的數據報文會先到內核空間的PREROUTING鏈。 此時報文的源IP為CIP,目標IP為VIP;
- PREROUTING檢查發現數據包的目標IP是本機,將數據包送至INPUT鏈;
- IPVS比對數據包請求的服務是否為集群服務,若是,將請求報文中的源MAC地址修改為DIP的MAC地址,將目標MAC地址修改RIP的MAC地址,然后將數據包發至POSTROUTING鏈。 此時的源IP和目的IP均未修改,僅修改了源MAC地址為DIP的MAC地址,目標MAC地址為RIP的MAC地址;
- 由於DS和RS在同一個網絡中,所以是通過二層,數據鏈路層來傳輸。POSTROUTING鏈檢查目標MAC地址為RIP的MAC地址,那么此時數據包將會發至Real Server;
- RS發現請求報文的MAC地址是自己的MAC地址,就接收此報文。處理完成之后,將響應報文通過lo接口傳送給eth0網卡然后向外發出。 此時的源IP地址為VIP,目標IP為CIP;
- 響應報文最終送達至客戶端。
地址變化過程
DR模式特點以及注意事項:
- 在前端路由器做靜態地址路由綁定,將對於VIP的地址僅路由到Director Server
- 在arp的層次上實現在ARP解析時做防火牆規則,過濾RS響應ARP請求。修改RS上內核參數(arp_ignore和arp_announce)將RS上的VIP配置在網卡接口的別名上,並限制其不能響應對VIP地址解析請求。
- RS可以使用私有地址;但也可以使用公網地址,此時可以直接通過互聯網連入RS以實現配置、監控等;
- RS的網關一定不能指向DIP;
- 因為DR模式是通過MAC地址改寫機制實現轉發,RS跟Dirctory要在同一物理網絡內(不能由路由器分隔);
- 請求報文經過Directory,但響應報文一定不經過Director
- 不支持端口映射;
- RS可以使用大多數的操作系統;
- RS上的lo接口配置VIP的IP地址;
LVS- UN模式
介紹
- 客戶端將請求發往前端的負載均衡器,請求報文源地址是CIP,目標地址為VIP。
- 負載均衡器收到報文后,發現請求的是在規則里面存在的地址,那么它將在客戶端請求報文的首部再封裝一層IP報文,將源地址改為DIP,目標地址改為RIP,並將此包發送給RS。
- RS收到請求報文后,會首先拆開第一層封裝,然后發現里面還有一層IP首部的目標地址是自己lo接口上的VIP,所以會處理次請求報文,並將響應報文通過lo接口送給eth0網卡直接發送給客戶端。注意:需要設置lo接口的VIP不能在共網上出現
地址變化過程
FULL-NAT模式

- 首先client 發送請求package給VIP;
- VIP 收到package后,會根據LVS設置的LB算法選擇一個合適的RS,然后把package 的目地址修改為RS的ip地址,把源地址改成DS的ip地址;
- RS收到這個package后發現目標地址是自己,就處理這個package ,處理完后把這個包發送給DS;
- DS收到這個package 后把源地址改成VIP的IP,目的地址改成CIP(客戶端ip),然后發送給客戶端;
- RIP,DIP可以使用私有地址;
- RIP和DIP可以不再同一個網絡中,且RIP的網關未必需要指向DIP;
- 支持端口映射;
- RS的OS可以使用任意類型;
- 請求報文經由Director,響應報文也經由Director;
- FULL-NAT因為要經過4次NAT,所以性能比NAT還要低;
- 由於做了源地址轉換,RS無法獲取到客戶端的真實IP;
各個模式的區別
三、調度算法
- 輪叫調度rr(Round-Robin Scheduling)
- 加權輪叫調度wrr(Weighted Round-Robin Scheduling)
- 最小連接調度lc(Least-Connection Scheduling)
- 加權最小連接調度wlc(Weighted Least-Connection Scheduling)
- 基於局部性的最少鏈接LBLC(Locality-Based Least Connections Scheduling)
- 帶復制的基於局部性最少鏈接LBLCR(Locality-Based Least Connections with Replication Scheduling)
- 目標地址散列調度DH(Destination Hashing Scheduling)
- 源地址散列調度SH(Source Hashing Scheduling)
rr(輪詢)
wrr(權重, 即加權輪詢)
sh(源地址哈希)
dh(目的地址哈希)
lc(最少鏈接)
wlc(加權最少鏈接)LVS的理想算法
LBLC(基於局部性的最少連接)
LBLCR(帶復制的基於局部性的最少鏈接)
四、管理工具ipvsadm使用
ipvsadm是LVS的管理工具,ipvsadm工作在用戶空間,用戶通過ipvsadm命令編寫負載均衡規則。
安裝
yum install ipvsadm -y ###文件說明 Unit 文件: ipvsadm.service 主程序:/usr/sbin/ipvsadm 規則保存工具:/usr/sbin/ipvsadm-save 規則重載工具:/usr/sbin/ipvsadm-restore 配置文件:/etc/sysconfig/ipvsadm-config
用法以及參數
ipvsadm --help #查看使用方法及參數 命令: -A, --add-service: #添加一個集群服務. 即為ipvs虛擬服務器添加一個虛擬服務,也就是添加一個需要被負載均衡的虛擬地址。虛擬地址需要是ip地址,端口號,協議的形式。 -E, --edit-service: #修改一個虛擬服務。 -D, --delete-service: #刪除一個虛擬服務。即刪除指定的集群服務; -C, --clear: #清除所有虛擬服務。 -R, --restore: #從標准輸入獲取ipvsadm命令。一般結合下邊的-S使用。 -S, --save: #從標准輸出輸出虛擬服務器的規則。可以將虛擬服務器的規則保存,在以后通過-R直接讀入,以實現自動化配置。 -a, --add-server: #為虛擬服務添加一個real server(RS) -e, --edit-server: #修改RS -d, --delete-server: #刪除 -L, -l, --list: #列出虛擬服務表中的所有虛擬服務。可以指定地址。添加-c顯示連接表。 -Z, --zero: #將所有數據相關的記錄清零。這些記錄一般用於調度策略。 --set tcp tcpfin udp: #修改協議的超時時間。 --start-daemon state: #設置虛擬服務器的備服務器,用來實現主備服務器冗余。(注:該功能只支持ipv4) --stop-daemon: #停止備服務器。 參數: 以下參數可以接在上邊的命令后邊。 -t, --tcp-service service-address: #指定虛擬服務為tcp服務。service-address要是host[:port]的形式。端口是0表示任意端口。如果需要將端口設置為0,還需要加上-p選項(持久連接)。 -u, --udp-service service-address: #使用udp服務,其他同上。 -f, --fwmark-service integer: #用firewall mark取代虛擬地址來指定要被負載均衡的數據包,可以通過這個命令實現把不同地址、端口的虛擬地址整合成一個虛擬服務,可以讓虛擬服務器同時截獲處理去往多個不同地址的數據包。fwmark可以通過iptables命令指定。如果用在ipv6需要加上-6。 -s, --scheduler scheduling-method: #指定調度算法,默認是wlc。調度算法可以指定以下8種:rr(輪詢),wrr(權重),lc(最后連接),wlc(權重),lblc(本地最后連接),lblcr(帶復制的本地最后連接),dh(目的地址哈希),sh(源地址哈希),sed(最小期望延遲),nq(永不排隊) -p, --persistent [timeout]: #設置持久連接,這個模式可以使來自客戶的多個請求被送到同一個真實服務器,通常用於ftp或者ssl中。 -M, --netmask netmask: #指定客戶地址的子網掩碼。用於將同屬一個子網的客戶的請求轉發到相同服務器。 -r, --real-server server-address: #為虛擬服務指定數據可以轉發到的真實服務器的地址。可以添加端口號。如果沒有指定端口號,則等效於使用虛擬地址的端口號。 [packet-forwarding-method]: #此選項指定某個真實服務器所使用的數據轉發模式。需要對每個真實服務器分別指定模式。 -g, --gatewaying: #使用網關(即直接路由),此模式是默認模式。 -i, --ipip: #使用ipip隧道模式。 -m, --masquerading: #使用NAT模式。 -w, --weight weight: #設置權重。權重是0~65535的整數。如果將某個真實服務器的權重設置為0,那么它不會收到新的連接,但是已有連接還會繼續維持(這點和直接把某個真實服務器刪除時不同的)。 -x, --u-threshold uthreshold: #設置一個服務器可以維持的連接上限。0~65535。設置為0表示沒有上限。 -y, --l-threshold lthreshold: #設置一個服務器的連接下限。當服務器的連接數低於此值的時候服務器才可以重新接收連接。如果此值未設置,則當服務器的連接數連續三次低於uthreshold時服務器才可以接收到新的連接。 --mcast-interface interface: #指定使用備服務器時候的廣播接口。 --syncid syncid:#指定syncid, 同樣用於主備服務器的同步。 #以下選項用於list(-l)命令: -c, --connection: #列出當前的IPVS連接。 --timeout: #列出超時 --stats: #狀態信息 --rate: #傳輸速率 --thresholds: #列出閾值 --persistent-conn: #持久連接 --sor: #把列表排序 --nosort: #不排序 -n, --numeric: #不對ip地址進行dns查詢 --exact: #單位 -6: 如#果fwmark用的是ipv6地址需要指定此選項。 #如果使用IPv6地址,需要在地址兩端加上"[]"。例如:ipvsadm -A -t [2001:db8::80]:80 -s rr
LVS集群管理示例
####管理LVS集群中的RealServer舉例 1) 添加RS : -a # ipvsadm -a -t|u|f service-address -r server-address [-g|i|m] [-w weight] #舉例1: 往VIP資源為10.1.210.58的集群服務里添加1個realserver ipvsadm -a -t 10.1.210.58 -r 10.1.210.52 –g -w 5 2) 修改RS : -e # ipvsadm -e -t|u|f service-address -r server-address [-g|i|m] [-w weight] #舉例2: 修改10.1.210.58集群服務里10.1.210.52這個realserver的權重為3 ipvsadm -e -t 10.1.210.58:80 -r 10.1.210.52 –g -w 3 3) 刪除RS : -d # ipvsadm -d -t|u|f service-address -r server-address #舉例3: 刪除10.1.210.58集群服務里10.1.210.52這個realserver ipvsadm -d -t 10.1.210.58:80 -r 10.1.210.52 4) 清除規則 (刪除所有集群服務), 該命令與iptables的-F功能類似,執行后會清除所有規則: # ipvsadm -C 5) 保存及讀取規則: # ipvsadm -S > /path/to/somefile # ipvsadm-save > /path/to/somefile # ipvsadm-restore < /path/to/somefile ####管理LVS集群服務的查看 # ipvsadm -L|l [options] options可以為: -n:數字格式顯示 --stats 統計信息 --rate:統計速率 --timeout:顯示tcp、tcpinfo、udp的會話超時時長 -c:連接客戶端數量 #查看lvs集群轉發情況 # ipvsadm -Ln #查看lvs集群的連接狀態 # ipvsadm -l --stats 說明: Conns (connections scheduled) 已經轉發過的連接數 InPkts (incoming packets) 入包個數 OutPkts (outgoing packets) 出包個數 InBytes (incoming bytes) 入流量(字節) OutBytes (outgoing bytes) 出流量(字節) #查看lvs集群的速率 ipvsadm -l --rate 說明: CPS (current connection rate) 每秒連接數 InPPS (current in packet rate) 每秒的入包個數 OutPPS (current out packet rate) 每秒的出包個數 InBPS (current in byte rate) 每秒入流量(字節) OutBPS (current out byte rate) 每秒入流量(字節)
五、案例篇
環境
LVS-DR模式案例
centos7默認已經將ipvs編譯進內核模塊,名稱為ip_vs,使用時候需要先加載該內核模塊。
以下步驟需要在DS上進行:
1.加載ip_vs模塊
modprobe ip_vs #加載ip_vs模塊 cat /proc/net/ip_vs #查看是否加載成功 lsmod | grep ip_vs #查看加載的模塊 yum install ipvsadm # 安裝管理工具
2.配置調度腳本dr.sh
#!/bin/bash VIP=10.1.210.58 #虛擬IP RIP1=10.1.210.52 #真實服務器IP1 RIP2=10.1.210.53 #真實服務器IP2 PORT=80 #端口 ifconfig ens192:1 $VIP broadcast $VIP netmask 255.255.255.255 up #添加VIP,注意網卡名稱 echo 1 > /proc/sys/net/ipv4/ip_forward #開啟轉發 route add -host $VIP dev ens192:1 #添加VIP路由 /sbin/ipvsadm -C #清空ipvs中的規則 /sbin/ipvsadm -A -t $VIP:80 -s wrr #添加調度器 /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g -w 1 #添加RS /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g -w 1 #添加RS /sbin/ipvsadm -ln #查看規則
3.執行腳本
[root@app51 ~]# sh dr.sh IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 10.1.210.58:80 wrr -> 10.1.210.52:80 Route 1 0 0 -> 10.1.210.53:80 Route 1 0 0
以下步驟需要在RS上執行:
1.真實服務RS配置腳本rs.sh
#!/bin/bash VIP=10.1.210.58 #RS上VIP地址 #關閉內核arp響應,永久修改配置參數到/etc/sysctl.conf,目的是為了讓rs順利發送mac地址給客戶端 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up #綁定VIP到RS服務器上 /sbin/route add -host $VIP dev lo:0 #添加VIP路由
2.執行腳本
sh rs.sh
3.配置測試web服務(以一台為示例)
systemctl stop firewalld #關閉防火牆 systemctl disable firewalld #禁止開機啟動 yum install httpd #安裝httpd ###RS1虛擬主機配置 vi /etc/httpd/conf/httpd.conf ServerName 10.1.210.52:80 echo "RS 10.1.210.52" > /var/www/html/index.html ###RS2虛擬主機配置 vi /etc/httpd/conf/httpd.conf ServerName 10.1.210.53:80 echo "RS 10.1.210.53" > /var/www/html/index.html #啟動httpd服務 systemctl start httpd
[root@node1 ~]# for i in {1..10} ;do curl http://10.1.210.58 ;done RS 10.1.210.53 RS 10.1.210.52 RS 10.1.210.53 RS 10.1.210.52 RS 10.1.210.53 RS 10.1.210.52 RS 10.1.210.53 RS 10.1.210.52 RS 10.1.210.53 RS 10.1.210.52
LVS-NAT案例
LVS-NAT模式和DR區別要做nat,並且請求和響應都要經過DS,所有需要將RS網關指向DS,由於之前測試過DR模式,在測試NAT模式時候需要將RS環境恢復,RS恢復步驟如下:
echo 0 >/proc/sys/net/ipv4/conf/lo/arp_ignore echo 0 >/proc/sys/net/ipv4/conf/lo/arp_announce echo 0 >/proc/sys/net/ipv4/conf/all/arp_ignore echo 0 >/proc/sys/net/ipv4/conf/all/arp_announce ifconfig lo:0 down
調度服務DS配置
#!/bin/bash VIP=10.1.210.58 #虛擬IP RIP1=10.1.210.52 #真實服務器IP1 RIP2=10.1.210.53 #真實服務器IP2 PORT=80 #端口 ifconfig ens192:1 $VIP broadcast $VIP netmask 255.255.255.255 up #添加VIP echo 1 > /proc/sys/net/ipv4/ip_forward #開啟轉發 route add -host $VIP dev ens192:1 #添加VIP路由 /sbin/ipvsadm -C #清空ipvs中的規則 /sbin/ipvsadm -A -t $VIP:80 -s wlc #添加調度器 /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -m -w 1 #添加RS /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -m -w 1 #添加RS /sbin/ipvsadm -ln #查看規則
RS配置
nat模式RS配置很簡單,只需要將RS路由指向DS
vi /etc/sysconfig/network-scripts/ifcfg-ens192 GATEWAY=10.1.210.58 #修改網關至RS地址 systemctl restart network #重啟網絡
測試
由於這里的環境DS和RS在同一個網段下,NAT模式下如果客戶端是同網段情況下,RS響應的時候直接響應給同網段的服務器了並不經過DS,這樣就導致客戶端會丟棄該請求。如果想要同網段的想要訪問到DS則需要添加路由,這里需要RS在響應同網段服務器時候網關指向DS,這樣同網段就能訪問到DS了,示例:
route add -net 10.1.210.0/24 gw 10.1.210.58
測試結果:
[root@app36 ~]# for i in {1..10} ; do curl http://10.1.210.58 ;done RS 10.1.210.53 RS 10.1.210.52 RS 10.1.210.53 RS 10.1.210.52 RS 10.1.210.53 RS 10.1.210.52 RS 10.1.210.53 RS 10.1.210.52 RS 10.1.210.53 RS 10.1.210.52
六、持久連接
什么是持久連接
在LVS中,持久連接是為了用來保證當來自同一個用戶的請求時能夠定位到同一台服務器,目的是為了會話保持,而通常使用的會話保持技術手段就是cookie與session。
cookie與session簡述
在Web服務通信中,HTTP本身是無狀態協議,不能標識用戶來源,當用戶在訪問A網頁,再從A網頁訪問其他資源跳轉到了B網頁,這對於服務器來說又是一個新的請求,之前的登陸信息都沒有了,怎么辦?為了記錄用戶的身份信息,開發者在瀏覽器和服務器之間提供了cookie和session技術,簡單說來在你瀏覽網頁時候,服務器建立session用於保存你的身份信息,並將與之對應的cookie信息發送給瀏覽器,瀏覽器保存cookie,當你再次瀏覽該網頁時候,服務器檢查你的瀏覽器中的cookie並獲取與之對應的session數據,這樣一來你上次瀏覽網頁的數據依然存在。
4層均衡負載導致的問題
- 將來自於同一個用戶的請求發往同一個服務器(例如nginx的ip_hash算法);
- 將session信息在服務器集群內共享,每個服務器都保存整個集群的session信息;
- 建立一個session存,所有session信息都保存到存儲池中 ;
LVS會話保持實現方式就是通過將來自於同一個用戶的請求發往同一個服務器,具體實現分為sh算法和持久連接:
LVS的三種持久連接方式
示例
LVS的持久連接功能需要定義在集群服務上面,使用-p timeout選項。
PPC:
[root@localhost ~]# ipvsadm -At 10.1.210.58:80 -s rr -p 300 #上面命令的意思是:添加一個集群服務為10.1.210.58:80,使用的調度算法為rr,持久連接的保持時間是300秒。當超過300秒都沒有請求時,則清空LVS的持久連接模板。
PCC:
# ipvsadm -A -t 10.1.210.58:0 -s rr -p 600 # ipvsadm -a -t 10.1.210.58:0 -r 10.1.210.52 -g -w 2 # ipvsadm -a -t 10.1.210.58:0 -r 0.1.210.53 -g -w 1
PFMC:
######PNMPP是通過路由前給數據包打標記來實現的 # iptables -t mangle -A PREROUTING -d 10.1.210.58 -ens192 -p tcp --dport 80 -j MARK --set-mark 3 # iptables -t mangle -A PREROUTING -d 10.1.210.58 -ens192 -p tcp --dport 443 -j MARK --set-mark 3 # ipvsadm -A -f 3 -s rr -p 600 # ipvsadm -a -f 3 -r 10.1.210.52 -g -w 2 # ipvsadm -a -f 3 -r 10.1.210.52 -g -w 2