LVS负载均衡之NAT模式
LVS負(fù)載均衡之NAT模式
重點理解NAT方式的實現(xiàn)原理和數(shù)據(jù)包的改變。
(a). 當(dāng)用戶請求到達(dá)Director Server,此時請求的數(shù)據(jù)報文會先到內(nèi)核空間的PREROUTING鏈。 此時報文的源IP為CIP,目標(biāo)IP為VIP?
(b). PREROUTING檢查發(fā)現(xiàn)數(shù)據(jù)包的目標(biāo)IP是本機(jī),將數(shù)據(jù)包送至INPUT鏈
(c). IPVS比對數(shù)據(jù)包請求的服務(wù)是否為集群服務(wù),若是,修改數(shù)據(jù)包的目標(biāo)IP地址為后端服務(wù)器IP,然后將數(shù)據(jù)包發(fā)至POSTROUTING鏈。 此時報文的源IP為CIP,目標(biāo)IP為RIP?
(d). POSTROUTING鏈通過選路,將數(shù)據(jù)包發(fā)送給Real Server
(e). Real Server比對發(fā)現(xiàn)目標(biāo)為自己的IP,開始構(gòu)建響應(yīng)報文發(fā)回給Director Server。 此時報文的源IP為RIP,目標(biāo)IP為CIP?
(f). Director Server在響應(yīng)客戶端前,此時會將源IP地址修改為自己的VIP地址,然后響應(yīng)給客戶端。 此時報文的源IP為VIP,目標(biāo)IP為CIP
? RS應(yīng)該使用私有地址,RS的網(wǎng)關(guān)必須指向DIP
? DIP和RIP必須在同一個網(wǎng)段內(nèi)
? 請求和響應(yīng)報文都需要經(jīng)過Director Server,高負(fù)載場景中,Director Server易成為性能瓶頸
? 支持端口映射
? RS可以使用任意操作系統(tǒng)
? 缺陷:對Director Server壓力會比較大,請求和響應(yīng)都需經(jīng)過director server
1、實驗環(huán)境
三臺服務(wù)器,一臺作為 director,兩臺作為 real server,director 有一個外網(wǎng)網(wǎng)卡(172.16.254.200)?和一個內(nèi)網(wǎng)ip(192.168.0.8),兩個 real server 上只有內(nèi)網(wǎng) ip?(192.168.0.18)?和?(192.168.0.28),并且需要把兩個 real server 的內(nèi)網(wǎng)網(wǎng)關(guān)設(shè)置為 director 的內(nèi)網(wǎng) ip(192.168.0.8)
2、安裝和配置
兩個 real server 上都安裝 nginx 服務(wù)
# yum install -y nginx
Director 上安裝 ipvsadm# yum install -y ipvsadm
Director 上編輯 nat 實現(xiàn)腳本
# vim /usr/local/sbin/lvs_nat.sh
# 編輯寫入如下內(nèi)容:
#! /bin/bash
# director服務(wù)器上開啟路由轉(zhuǎn)發(fā)功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
# 關(guān)閉 icmp 的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
# director設(shè)置 nat 防火墻
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
# director設(shè)置 ipvsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 172.16.254.200:80 -s wrr
$IPVSADM -a -t 172.16.254.200:80 -r 192.168.0.18:80 -m -w 1
$IPVSADM -a -t 172.16.254.200:80 -r 192.168.0.28:80 -m -w 1
保存后,在 Director 上直接運行這個腳本就可以完成 lvs/nat 的配置
/bin/bash /usr/local/sbin/lvs_nat.sh
查看ipvsadm設(shè)置的規(guī)則
ipvsadm -ln
3、測試LVS的效果
通過瀏覽器測試2臺機(jī)器上的web內(nèi)容?http://172.16.254.200?。為了區(qū)分開,我們可以把 nginx 的默認(rèn)頁修改一下:
在 RS1 上執(zhí)行
# echo "rs1rs1" >/usr/share/nginx/html/index.html
# echo "rs2rs2" >/usr/share/nginx/html/index.html
注意,切記一定要在兩臺 RS 上設(shè)置網(wǎng)關(guān)的 IP 為 director 的內(nèi)網(wǎng) IP。
轉(zhuǎn)載于:https://blog.51cto.com/gdutcxh/2109229
總結(jié)
以上是生活随笔為你收集整理的LVS负载均衡之NAT模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 命运2蠕虫低语怎么获得 《命运2》中文官
- 下一篇: 2018第三届中国数字化零售创新国际峰会