天天看點

lvs在nat dr tun 模型的實作

LVS的全稱Linux vitual system,是由目前阿裡巴巴的著名工程師章文嵩博士開發的一款開源軟體。LVS工作在一台server上提供Directory(負載均衡器)的功能,本身并不提供服務,隻是把特定的請求轉發給對應的realserver(真正提供服務的主機),進而實作叢集環境中的負載均衡。

ipvsadm是工作在使用者空間的一個讓使用者定義ipvs規則的工具,LVS的核心元件ipvs工作在kernel中,是真正的用于實作根據定義的叢集轉發規則把用戶端的請求轉發到特定的realserve.

基于nat模型的實作

工作原理:基于NAT機制實作。當使用者請求到達director之後,director将請求封包的目标位址(即VIP)改成標明的realserver位址,同時将封包的目标端口也改成標明的realserver的相應端口,最後将封包請求發送到指定的realserver。在伺服器端得到資料後,realserver将資料返給director,而director将封包的源位址和源端口改成VIP和相應端口,然後把資料發送給使用者,完成整個負載排程過程。

nat模型具有的特點

所有的reallserver和directory在同一個子網中 ip

通常RIP是私網位址,僅用于叢集節點之間通信

directory同時處理入站和出站連接配接

reallserver的網關要指向DIP

可以實作端口映射

reallserver可以是任意作業系統

directory很容易成為系統性能瓶頸

假設用2台web伺服器用來提供web服務,web1的ip為192.168.100.10,web2的ip為192.168.100.11. directory的第一塊網卡IP為172.16.26.1用來和用戶端通信,第二塊網卡ip為192.168.0.1用來和web伺服器通信

首先在web1上配置ip

可有多種方法這裡不再給出過程。

配置路由

route add default gw 192.168.0.1

在web2上配置IP

這裡也不再給出過程

directory上配置

首先打開路由轉發功能

echo 0 > /proc/sys/net/ipv4/ip_forward

使用ipvsadm對ipvs進行配置定義叢集服務

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 檢視定義的叢集服務

dr模型的實作

工作原理:基于直接路由來實作。當使用者請求到達director之後,director将請求封包的目标位址(即VIP)改成標明的realserver位址,還要改寫請求封包的mac位址,将請求發送到指定mac的realserver,而realserver将響應直接傳回給用戶端,不經過director。這個方式是三種排程中性能最好的,也是我們生産環境中使用最多的

dr模型的特點:

DR模型使用者的請求經過directory

realserve和directory必須在同一實體網絡

rIP可以使用公網位址

directory僅處理入站請求,reallserver直接響應出站

reallserver的網關不能指向dip

reallserver不支援端口映射

大多數lvs支援reallserver

DR模型directory的性能表現低于nat模型的

通常使用DR模型

配置dr模型

假設有2台web伺服器用來提供web服務,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

對于rs1進行配置

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

對于rs2進行配置

eth0ip為192.168.100.11

由于tun的模型用的不廣泛,如果網絡不好會有很多瓶頸,一般沒有企業使用。所有不再給出過程,隻需了解一下即可

工作原理:這種方法通過ip隧道技術實作虛拟伺服器。當使用者請求到達director之後,director将請求封包的目标位址(即VIP)改成標明的realserver位址.然後,排程器采用ip隧道技術将使用者請求發送到某個realserver,而這個realserver将直接相應使用者的請求,不再經過director。此外,對realserver的地域位置沒有要求。和director在不在同一網段都可以。

特點:

1,realserver和director可以不在一個實體網絡中,可以跨越網際網路

2,RIP一定不能是私有位址(因為要用到隧道傳輸)

3,director僅處理入站請求

4,realserver的網關不能指向DIP

繼續閱讀