1. 程式人生 > 實用技巧 >LVS解析及NAT、DR模型配置詳解

LVS解析及NAT、DR模型配置詳解

一、lvs簡介

Lvslinux virtual serverlinux虛擬伺服器)是一個虛擬的伺服器負載均衡系統。

目前有四種IP負載均衡技術:

NATDRTUNFNATFullNAT

十種排程演算法:

靜態四種:rrwrrSHDH

動態六種:lcwlcsednqlblclblcr

二、四種模型&&十種排程演算法

1、四種模型拓撲及特點

<1>NAT模型

172624581.png

解析:客戶端向Director(排程器)發出請求,排程器接到客戶端請求,由排程器選擇後端real_server回覆客戶端請求,回覆報文經排程器返回給客戶端。

特點及配置要點:

1>real_server應該使用私有

IP地址

2>real_server的閘道器應該指向DIP

3>RIPDIP應該在同一個網段內

4>進出的報文都要經過Director,在高負載下Director會成為系統性能的瓶頸

5>支援埠對映

6>real_server可以是任意OS

<2>DR模型DirectorRouting:直接路由

172900701.png

解析:客戶端向Director(排程器)發出請求,排程器接到客戶端請求,由排程器選擇後端real_server回覆客戶端請求,回覆報文不經過經排程器直接返回給客戶端,由於回覆報文不經過排程器,因此大大降低了排程器的壓力,系統系能得到了大大的提升。

特點及配置要點:

1>real_server可以使用私有

IP地址

2>real_server的閘道器一定不能指向DIP

3>RIPDIP應該在同一個網段內

4>進站的報文經過Director,出站則有real_server直接回應client

5>不支援埠對映

6>real_server可以為大多數常見的OS

<3>TUN模型Tuneling:和DR模型相近,但必須支援IP隧道

解析:客戶端向Director(排程器)發出請求,排程器接到客戶端請求,由排程器選擇後端real_server回覆客戶端請求,回覆報文不經過經排程器直接返回給客戶端,由於回覆報文不經過排程器,因此大大降低了排程器的壓力,系統系能得到了大大的提升。

特點及配置要點:

1>real_server不能是私有IP地址

2>real_server的閘道器一定不能指向DIP

3>RIPDIP應該在同一個網段內

4>進站的報文經過Director,出站則有real_server直接回應client

5>不支援埠對映

6>real_server必須支援IP隧道

2、十種排程演算法及應用場景

靜態四種:

rrround-robin輪調;對待每一臺伺服器是均等的,而不管伺服器上實際的連線數和系統負載

wrrweight加權輪調;根據真實伺服器的不同處理能力來排程訪問請求可以保證處理能力強的伺服器能處理更多的訪問流量。

shsource hashing源地址雜湊演算法;根據請求的IP地址,作為雜湊鍵(Hash Key)從靜態分配的散列表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空

dh:目標地址雜湊演算法;根據請求的目標IP地址,作為雜湊鍵(Hash Key)從靜態分配的散列表找出對應的伺服器,若該伺服器是可用的且未超載,將請求傳送到該伺服器,否則返回空。(主要用於快取伺服器)

動態六種:

lc:最少連線;Active(活動)+Inactive(非活動)=overload(負載);排程器動態地將網路請求排程到已建立的連結數最少的伺服器上(用於系統性能相似的伺服器)

wlc:加權最少連線;overload/weight具有較高權值的伺服器將承受較大比例的活動連線負載。排程器可以自動問詢真實伺服器的負載情況,並動態地調整其權值用於系統性能相差較大的伺服器

sed:最短期望延遲;(Active+1)*256/weight

nq:永不排隊;

lblc:基於本地的最少連線;dh+lc

lblcr:帶複製的基於本地的最少連線;

三、LVS/NAT實戰

1.環境規劃

Director(前端排程器)

eth0192.168.1.15DIP

eth1172.16.15.15

eth1:0172.16.15.119(VIP)

#sysctl-wnet.ipv4.ip_forward=1#開啟IP轉發

Server1:(後端服務1

IP:192.168.1.5

GW:192.168.1.15(DIP)

Server2:(後端服務2

IP:192.168.1.6

GW:192.168.1.15(DIP)

2.安裝ipvsadm新增規則

#yum-yinstallipvsadm
#規則:排程演算法rr
#ifconfigeth1:0172.16.15.119
[[email protected]_yxm15~]#ipvsadm-A-t172.16.15.119:80-srr
[[email protected]_yxm15~]#ipvsadm-a-t172.16.15.119:80-r192.168.1.5-m
[[email protected]_yxm15~]#ipvsadm-a-t172.16.15.119:80-r192.168.1.6-m

檢視狀態

[[email protected]_yxm15~]#ipvsadm-Ln--stats
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:PortConnsInPktsOutPktsInBytesOutBytes
->RemoteAddress:Port
TCP172.16.15.119:80281291281334112547
->192.168.1.5:8014575750534779
->192.168.1.6:8014727182887768

排程演算法wrr

[[email protected]_yxm15~]#ipvsadm-A-t172.16.15.119:80-swrr
[[email protected]_yxm15~]#ipvsadm-a-t172.16.15.119:80-r192.168.1.5-m-w2
[[email protected]_yxm15~]#ipvsadm-a-t172.16.15.119:80-r192.168.1.6-m-w3

檢視狀態

[[email protected]_yxm15~]#ipvsadm-Ln--stats
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:PortConnsInPktsOutPktsInBytesOutBytes
->RemoteAddress:Port
TCP172.16.15.119:80209694108669800
->192.168.1.5:8012585765686154
->192.168.1.6:808383742983646

183509779.png

四、LVS/DR實戰

1.環境規劃

Director(前端排程器)

eth1172.16.15.15DIP

eth1:0172.16.15.108(VIP)

#sysctl-wnet.ipv4.ip_forward=1#開啟IP轉發

Server1:(後端服務1

IP:172.16.15.5

lo:0172.16.15.108VIP

Server2:(後端服務2

IP:192.168.1.6

lo:0172.16.15.108VIP

2.配置

<1>後端Real_server

修改核心引數禁止Real_servers上的VIP和前端路由直接通訊

#echo1>/proc/sys/net/ipv4/conf/lo/arp_ignore
#echo2>/proc/sys/net/ipv4/conf/lo/arp_announce
#echo1>/proc/sys/net/ipv4/conf/all/arp_ignore
#echo2>/proc/sys/net/ipv4/conf/all/arp_announce
####配置VIP
#ifconfiglo:0172.16.15.108broadcast172.16.15.108netmask255.255.255.255up
####新增路由
#routeadd-host172.16.15.108devlo:0

<2>Director(前端排程器)

#####配置VIP
#ifconfigeth1:0172.16.15.108broadcast172.16.15.108netmask255.255.255.255up
#####新增路由
routeadd-host172.16.15.108deveth1:0
####開啟路由轉發
echo1>/proc/sys/net/ipv4/ip_forward
#### 新增規則:(排程演算法wlc)
[[email protected]_yxm15~]#ipvsadm-A-t172.16.15.108:80-swlc
[[email protected]_yxm15~]#ipvsadm-a-t172.16.15.108:80-r172.16.15.5-g-w2
[[email protected]_yxm15~]#ipvsadm-a-t172.16.15.108:80-r172.16.15.6-g-w4


檢視狀態


[[email protected]_yxm15~]#ipvsadm-Ln--stats
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:PortConnsInPktsOutPktsInBytesOutBytes
->RemoteAddress:Port
TCP172.16.15.108:80258127201438240
->172.16.15.5:80904350449270
->172.16.15.6:801688370988970

183601712.png


轉載於:https://blog.51cto.com/dreamwolf/1304163