lvs在nat dr tun 模型的实现
LVS的全稱Linux vitual system,是由目前阿里巴巴的著名工程師章文嵩博士開發(fā)的一款開源軟件。LVS工作在一臺(tái)server上提供Directory(負(fù)載均衡器)的功能,本身并不提供服務(wù),只是把特定的請(qǐng)求轉(zhuǎn)發(fā)給對(duì)應(yīng)的realserver(真正提供服務(wù)的主機(jī)),從而實(shí)現(xiàn)集群環(huán)境中的負(fù)載均衡。
ipvsadm是工作在用戶空間的一個(gè)讓用戶定義ipvs規(guī)則的工具,LVS的核心組件ipvs工作在kernel中,是真正的用于實(shí)現(xiàn)根據(jù)定義的集群轉(zhuǎn)發(fā)規(guī)則把客戶端的請(qǐng)求轉(zhuǎn)發(fā)到特定的realserve.
基于nat模型的實(shí)現(xiàn)
工作原理:基于NAT機(jī)制實(shí)現(xiàn)。當(dāng)用戶請(qǐng)求到達(dá)director之后,director將請(qǐng)求報(bào)文的目標(biāo)地址(即VIP)改成選定的realserver地址,同時(shí)將報(bào)文的目標(biāo)端口也改成選定的realserver的相應(yīng)端口,最后將報(bào)文請(qǐng)求發(fā)送到指定的realserver。在服務(wù)器端得到數(shù)據(jù)后,realserver將數(shù)據(jù)返給director,而director將報(bào)文的源地址和源端口改成VIP和相應(yīng)端口,然后把數(shù)據(jù)發(fā)送給用戶,完成整個(gè)負(fù)載調(diào)度過(guò)程。
nat模型具有的特點(diǎn)
所有的reallserver和directory在同一個(gè)子網(wǎng)中 ip
通常RIP是私網(wǎng)地址,僅用于集群節(jié)點(diǎn)之間通信
directory同時(shí)處理入站和出站連接
reallserver的網(wǎng)關(guān)要指向DIP
可以實(shí)現(xiàn)端口映射
reallserver可以是任意操作系統(tǒng)
directory很容易成為系統(tǒng)性能瓶頸
假設(shè)用2臺(tái)web服務(wù)器用來(lái)提供web服務(wù),web1的ip為192.168.100.10,web2的ip為192.168.100.11. directory的第一塊網(wǎng)卡IP為172.16.26.1用來(lái)和客戶端通信,第二塊網(wǎng)卡ip為192.168.0.1用來(lái)和web服務(wù)器通信
首先在web1上配置ip
可有多種方法這里不再給出過(guò)程。
配置路由
route add default gw 192.168.0.1
在web2上配置IP
這里也不再給出過(guò)程
配置路由
route add default gw 192.168.0.1
directory上配置
首先打開路由轉(zhuǎn)發(fā)功能
echo 0 > /proc/sys/net/ipv4/ip_forward
使用ipvsadm對(duì)ipvs進(jìn)行配置定義集群服務(wù)
ipvsadm -A -t 172.16.26.1:80 -s wlc
ipvsadm -a -t 172.16.26.1:80 -r 192.168.100.10 -m -w 3
ipvsadm -a -t 172.16.26.1:80 -r 192.168.100.11 -m -w 1
ipvsadm -L -n 查看定義的集群服務(wù)
dr模型的實(shí)現(xiàn)
工作原理:基于直接路由來(lái)實(shí)現(xiàn)。當(dāng)用戶請(qǐng)求到達(dá)director之后,director將請(qǐng)求報(bào)文的目標(biāo)地址(即VIP)改成選定的realserver地址,還要改寫請(qǐng)求報(bào)文的mac地址,將請(qǐng)求發(fā)送到指定mac的realserver,而realserver將響應(yīng)直接返回給客戶端,不經(jīng)過(guò)director。這個(gè)方式是三種調(diào)度中性能最好的,也是我們生產(chǎn)環(huán)境中使用最多的
dr模型的特點(diǎn):
DR模型用戶的請(qǐng)求經(jīng)過(guò)directory
realserve和directory必須在同一物理網(wǎng)絡(luò)
rIP可以使用公網(wǎng)地址
directory僅處理入站請(qǐng)求,reallserver直接響應(yīng)出站
reallserver的網(wǎng)關(guān)不能指向dip
reallserver不支持端口映射
大多數(shù)lvs支持reallserver
DR模型directory的性能表現(xiàn)低于nat模型的
通常使用DR模型
配置dr模型
假設(shè)有2臺(tái)web服務(wù)器用來(lái)提供web服務(wù),web1的eth0ip為192.168.100.10 lo:0的ip為192.168.0.1 web2的eth0的ip為192.168.100.11 lo:0的ip為192.168.0.1? directory的eth0ip為172.16.26.1 eth0:0的ip地址為192.168.0.1
對(duì)于rs1進(jìn)行配置
eth0ip為192.168.100.10
ifconfig lo down
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo up
ifconfig lo:0 192.168.0.1 broadcast 192.168.0.1 netmask 255.255.255.255 up
route add -host 192.168.0.1 dev lo:0
對(duì)于rs2進(jìn)行配置
eth0ip為192.168.100.11
ifconfig lo down
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo up
ifconfig lo:0 192.168.0.1 broadcast 192.168.0.1 netmask 255.255.255.255 up
route add -host 192.168.0.1 dev lo:0
由于tun的模型用的不廣泛,如果網(wǎng)絡(luò)不好會(huì)有很多瓶頸,一般沒(méi)有企業(yè)使用。所有不再給出過(guò)程,只需了解一下即可
工作原理:這種方法通過(guò)ip隧道技術(shù)實(shí)現(xiàn)虛擬服務(wù)器。當(dāng)用戶請(qǐng)求到達(dá)director之后,director將請(qǐng)求報(bào)文的目標(biāo)地址(即VIP)改成選定的realserver地址.然后,調(diào)度器采用ip隧道技術(shù)將用戶請(qǐng)求發(fā)送到某個(gè)realserver,而這個(gè)realserver將直接相應(yīng)用戶的請(qǐng)求,不再經(jīng)過(guò)director。此外,對(duì)realserver的地域位置沒(méi)有要求。和director在不在同一網(wǎng)段都可以。
特點(diǎn):
1,realserver和director可以不在一個(gè)物理網(wǎng)絡(luò)中,可以跨越互聯(lián)網(wǎng)
2,RIP一定不能是私有地址(因?yàn)橐玫剿淼纻鬏?#xff09;
3,director僅處理入站請(qǐng)求
4,realserver的網(wǎng)關(guān)不能指向DIP
轉(zhuǎn)載于:https://blog.51cto.com/5379198/915635
總結(jié)
以上是生活随笔為你收集整理的lvs在nat dr tun 模型的实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 重要头文件: cc430x613x.h
- 下一篇: POJ 图算法(3)