lvs 應(yīng)用

lvs:根據(jù)請求報(bào)文的目標(biāo) 地址端口協(xié)議,調(diào)度轉(zhuǎn)發(fā)到后端主機(jī)real server ,根據(jù)調(diào)度算法挑選rs。

ipvs是用戶空間命令行工具,用于管理集群服務(wù),及real server,? ? ? 在調(diào)度器上安裝ipvs? ? ?yum install? ?ipvs

vip:接收客戶端的請求。? ? ? ? ? ? ? ? ?dip:與rip通信的私網(wǎng)地址。? ? ? ? ? ? rip:后端真實(shí)的server。。

cip:客戶ip。。? ? ? ? ? ??

lvs集群類型:1.lvs-nat:修改請求報(bào)文的的目標(biāo)ip多目標(biāo)ip,的dnat。

? ?2,? lvs-dr:操作封裝請求新的mac地址。

3,lvs-tun:在請求ip報(bào)文之外新加一個(gè)新的IP首部,

4,lvsfullnat:修改請求源和目標(biāo)ip。。


lvs-nat:多目標(biāo)的DNAT,通過將請求的報(bào)文目標(biāo)地址和目標(biāo)端口修改為某天選的rip和port實(shí)現(xiàn)轉(zhuǎn)發(fā)。

rip和dip必須在同一網(wǎng)絡(luò),且應(yīng)該使用私網(wǎng)地址,rs網(wǎng)關(guān)指向dip

請求和響應(yīng)報(bào)文經(jīng)由directory轉(zhuǎn)發(fā),directory義形成系統(tǒng)瓶頸,

支持端口映射可修改請求報(bào)文的目標(biāo)port,vs是linux系統(tǒng),rs可是任意系統(tǒng)。。。


lvs-dr: 通過請求報(bào)文重新封裝mac首部,進(jìn)行轉(zhuǎn)發(fā),源mac是dip所在的接口mac,目標(biāo)mac是某挑選的rs的rip所在mac地址,? ? ? ? 源ip端口和目標(biāo)端口均保持不變,,

directory和各rs都得配置vip:

在內(nèi)核修改參數(shù)以限制arp通告和應(yīng)答,,arp_announce限制通報(bào)為2,,,aip_ignore限制應(yīng)答為1,,,

rip可使用公網(wǎng)地址和私網(wǎng)地址,單rip和dip要在同一網(wǎng)絡(luò),rip網(wǎng)關(guān)不能指向dip,以確保響應(yīng)報(bào)文不經(jīng)由directory。 請求報(bào)文經(jīng)由directory,? 不支持端口映射,,



lvs-tun:轉(zhuǎn)發(fā)方式;不修改請求報(bào)文的ip首部,而在ip報(bào)文之外在封裝一個(gè)ip首部,(源ip為dip,目標(biāo)ip為rip)

將報(bào)文發(fā)往挑選出的rs,? ? ? rs直接響應(yīng)給客戶端,,,

dip,vip,rip 都應(yīng)該是公網(wǎng)地址,,,

rs網(wǎng)關(guān)不能指向dip,? ? ? ? ? ?請求報(bào)文經(jīng)由directory,但響應(yīng)報(bào)文不能經(jīng)由directory

不支持端口映射,,,rs的os得支持隧道功能,,




lvs-fullnat:通過同時(shí)修改請求報(bào)文的源ip地址和目標(biāo)ip地址進(jìn)行轉(zhuǎn)發(fā),

vip是公網(wǎng)地址rip和dip是私網(wǎng)地址,且通常不在同一ip網(wǎng)絡(luò),rip網(wǎng)關(guān)通常不會指向dip

rs收到的請求報(bào)文源地址是dip,只響應(yīng)給dip但directory還就將其轉(zhuǎn)發(fā)給client,

請求報(bào)文和響應(yīng)報(bào)文都經(jīng)由directory


總結(jié):lvs-nat和lvs-fullnat請求報(bào)文和響應(yīng)報(bào)文都經(jīng)由directory,

lvs-nat網(wǎng)關(guān)要指向directory,

lvs-fullnat:rip和dip未必能在同一網(wǎng)絡(luò),但要能通信,

lvs-dr,lvs-tun;請求報(bào)文要經(jīng)由directory但響應(yīng)報(bào)文由rs直接發(fā)往client,

lvs-dr:通過封裝通過封裝新的mac首部實(shí)現(xiàn),通往mac網(wǎng)絡(luò)轉(zhuǎn)發(fā),

lvs-tun:通過源ip報(bào)文之外封裝新的ip首部實(shí)現(xiàn)轉(zhuǎn)發(fā)支持遠(yuǎn)距離通信,


lvs的調(diào)度算法:

靜態(tài)調(diào)度算法:rr輪詢:? wrr加權(quán)輪詢,,

sh:來自同一ip地址的請求,將其轉(zhuǎn)發(fā)調(diào)度第一次匹配到的rs

dh:發(fā)往同一地址的請求,將其調(diào)度轉(zhuǎn)發(fā)至第一次匹配的rs,

動態(tài)方法:

lc:最少鏈接;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?wlc:加權(quán)最少鏈接。

sed:最短期望延遲,,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? lblc:動態(tài)dh算法。? ? ? lblcr:帶復(fù)制功能的lblc算法。。


集群的定義:? ipvsadm? ? ? ? ? ? ? ? ? ? ?在directory安裝ipvsadm

ipvsadm? -A? ? ?-E? |? -t? ? -f? ?-s? ?-p? ? ? ? ? ? ? ? ? ? (定義集群類型)

-A 添加;;;? ? ? ? ? ? ? ?-E:編輯修改集群,,? ? ?-t;指定類型 t是tcp協(xié)議類型? ? ? -u:指定udp協(xié)議類型。

-s:指定調(diào)度算法? 默認(rèn)wlc 加權(quán)最少鏈接。? ? ? ? ?-p:啟動持久鏈接功能 默認(rèn)為65秒,,,

-f:指定防火墻標(biāo)記。。。

示列: ipvsadm -A? -t 192.168.0.99:80 -s rr


管理集群的rs:;;

ipvsadm? -a? ?|-e? ? -t? ? ?|-u? ?-f? ? -r? server-address? ? ?-g(dr類型)? ? ? -m(nat類型)? ? ?-i(tun類型)? ?-w(權(quán)重)

示列:? ?ipvsadm -a -t 192.168.0.99:80 -r 192.168.0.6 -m


查看:ipvsadm? ? ?-Ln

-n:地址和端口輸出? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--exact:展示數(shù)字顯示精確值。。。

-c:顯示鏈接狀態(tài)。。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--stats:統(tǒng)計(jì)數(shù)據(jù)

--rate:速率數(shù)據(jù)。。。

ipvsadm? -ln --stats:? ?查看統(tǒng)計(jì)數(shù)據(jù)? ? ? ? ? ? ? ? ? ?conns:鏈接數(shù)。? ? ? ? ? ? ? ? ? ? ? ? inpkts:入站報(bào)文數(shù)

outpkts:出站報(bào)文數(shù),? ? ? ? ? ? ? ? ? ? ?inbytes:入站字節(jié)數(shù),,,? ? ? ? ? outbytes:出站字節(jié)數(shù)。。

ipvsadm? ?-ln? ?-c :查看誰請求鏈接過。

ipvsadm -ln? ?--rate:查看速率:? ? ? ? ? ?cps是每秒建立的連接數(shù),? ? ? ? ? ? ? ? ?inpps:每秒入站的報(bào)文數(shù)

inbps:每秒入站的字節(jié)數(shù),,,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?outbps:每秒出站的字節(jié)數(shù)。。。

ipvsadm -S -n? >? /etc/sysconfig/ipvsadm? ? ? ?保存規(guī)則;

ipvsadm? -R? ?<? ?/etc/sysconfig/ipvsadm? ? ? ? 還原


lvs- nat類型:配置? ? ? ? ? ? ? ? sysctl? -w? ? net.ipv4.ip_forward=1? ? ?打開核心轉(zhuǎn)發(fā)。。。

rip和dip在同一網(wǎng)絡(luò)。 rs網(wǎng)關(guān)指向dip,vs主機(jī)打開核心轉(zhuǎn)發(fā)。。()

vs主機(jī)可來自外網(wǎng)的客戶端訪問,-t? tcp協(xié)議地址指向vs的外網(wǎng)地址。

ipvsadm -A -t 192.168.1.5:80? -s rr? ? ? 指定調(diào)度類型為輪詢。 -s? ?wrr 加權(quán)輪詢。。。。-t指定外網(wǎng)地址tcp協(xié)議。。

ipvsadm -a? -t? 192.168.1.5:80? -r 192.168.237.6 -m? ? ? 指定后端主機(jī)? -m 類型為nat類型。。

ipvsadm -a? -t? 192.168.0.5:80? -r? 192.168.237.9? -m? ? ? ??

如果rs都宕了指定本機(jī)接收請求:ipvsadm -a -t 192.168.0.5:80 -r 127.0.0.1 -g




dr類型配置:? ?dr模型每個(gè)主機(jī)需要配置vip, ,在各rs限制arp廣播通告,出站和入站經(jīng)過lo:0。。在lvs調(diào)度器上配置虛擬網(wǎng)卡接口為? ens33:0。(arp_ignore忽略應(yīng)答為1,, arp_announce忽略通告為2,)。各rs請求經(jīng)過vs主機(jī)。。。應(yīng)答不需要經(jīng)過vs主機(jī)。。? ?rs的rip可使用私網(wǎng)地址,也可使用公網(wǎng)地址。rip與dip在同一網(wǎng)絡(luò)。rip網(wǎng)關(guān)不能指向dip。

rs主機(jī)IP為:192.168.0.5? ? ? ? ? ? ? ? ? ?虛擬ip為:192.168.0.99

rs主機(jī)為:192.168.0.6 和 192.168.0.9

1.先在個(gè)主機(jī)配置虛擬ip,,

lvs主機(jī):;? ? ?ifconfig ens33:0 192.168.0.99 netmask 255.255.255.255 broadcast 192.168.0.99 up

rs主機(jī):ifconfig lo:0 192.168.0.99 netmask 255.255.255.255 broadcast 192.168.0.99 up

2. 在每個(gè)real server上配置禁止應(yīng)答和禁止通告。。/proc/sys/net/ipv4/conf/all/(arp_announce為1和arp_ignore為2)

3.? 在lvs主機(jī)配置集群調(diào)度:

ipvsadm -A? -t? 192.168.0.99:80? -s? rr? ? 配置-t指定tcp協(xié)議虛擬ip。 -s 指定調(diào)度算法輪詢。。

ipvsadm -a -t 192.168.0.99:80? -g? ? ?指定虛擬ip? ? -g類型為dr類型。

ipvsadm -a? ?-t? ?192.168.0.99:80? ?-g? ? ? ??



配置80和443端口綁定:

ipvs代理指定80端口和443一塊代理請求?;诜阑饓angle表打標(biāo)功能.。。

配制ssl加密,沒有ssl.conf 配置文件安裝mod_ssl模塊。。

在ca上配置創(chuàng)建公鑰,切換到1 、/etc/pki/CA目錄。。(umask 077; openssl genrsa -out? private/cakey.pem? 2048)

?openssl req -new? -x509? ?-key? private/cskey.pem -out? cacert.pem -days 365? ? ?配置公鑰

創(chuàng)建文件:touch? index.txt? ? ? ? ? ? ? ? ? echo 01 >? serial

2.在rs上配置私鑰,(umask 077; openssl genrsa -out httpd.key 2048)

openssl req -new -key httpd.key -out httpd.csr? ?

把配置的私鑰httpd.csr? 傳給 ca讓簽署:scp? ?httpd.csr? ?192.168.0.5:/tmp? ?

3,CA簽署:openssl ca -in htpd.csr? -out httpd.crt? -days? 365


配置完成后把ca的簽署的證書httpd.crt 發(fā)給rs:? ? ? ? 后端服務(wù)器httpd.crt和自己的httpd.key放置自己的網(wǎng)頁目錄,然后配置/etc/httpd/conf.d/ssl.conf 文件。。


配置ssl.conf文件。。


指定簽署的證書和私鑰位置。。


在vs配置防火墻標(biāo)記。

iptables -t mangle -A PREROUTING -d 192.168.0.99 -p tcp -m multiport --dport 80,443 -j MARK --set-mark 3

然后配置集群類型:? ?ipvsadm -A? -f? 3? ?-s? ?rr? ? 防火墻標(biāo)記指定三。調(diào)度類型為輪詢。。

ipvsadm -a? -f? 3? -r? 192.168.0.6? -g? ? ?添加真實(shí)的server,指定類型為dr? ? -g

ipvsadm -a? -f? 3? -r? 192.168.0.9? ?-g? ?



lvs? persistence:? 持久鏈接。。? 實(shí)現(xiàn)無論使用任何調(diào)度算法,在一段時(shí)間內(nèi)能夠?qū)崿F(xiàn)將,來自同一ip的主機(jī),始終發(fā)往同一個(gè)rs。。? ?-p? ? 就是啟用持久鏈接功能。。

ipvsadm -A |E? -t? |u? | -f? ?server-address | [-s? scheduler]? [-p? ]



基于防火墻的持久鏈接:? ?ipvsadm -A? -f? ?3? -s? ?rr? -p? ? ? ?持久鏈接默認(rèn)為360秒。

每個(gè)客戶端持久鏈接,0端口定義集群服務(wù),客戶端對所有的請求統(tǒng)統(tǒng)調(diào)度后端主機(jī),,

ipvsadm -A? -t? ?192.168.0.99:0? -s rr? -p? ? ?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容