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
這里也不再給出過程
配置路由
route add default gw 192.168.0.1
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
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的模型用的不廣泛,如果網絡不好會有很多瓶頸,一般沒有企業使用。所有不再給出過程,只需了解一下即可
工作原理:這種方法通過ip隧道技術實現虛擬服務器。當用戶請求到達director之后,director將請求報文的目標地址(即VIP)改成選定的realserver地址.然后,調度器采用ip隧道技術將用戶請求發送到某個realserver,而這個realserver將直接相應用戶的請求,不再經過director。此外,對realserver的地域位置沒有要求。和director在不在同一網段都可以。
特點:
1,realserver和director可以不在一個物理網絡中,可以跨越互聯網
2,RIP一定不能是私有地址(因為要用到隧道傳輸)
3,director僅處理入站請求
4,realserver的網關不能指向DIP
轉載于:https://blog.51cto.com/5379198/915635
總結
以上是生活随笔為你收集整理的lvs在nat dr tun 模型的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重要头文件: cc430x613x.h
- 下一篇: POJ 图算法(3)