負載均衡| VS/TUN模式

VS/TUN
它的連接調度和管理與 VS/NAT 中的一樣,只是它的報文轉發方法不同。調度器根據各個服務器的負
載情況,動態地選擇一臺服務器,將請求報文封裝在另一個 IP 報文中,再將封裝後的 IP 報文轉發給
選出的服務器;服務器收到報文後,先將報文解封獲得原來目標地址爲 VIP 的報文,服務器發現 VIP
地址被配置在本 地的 IP 隧道設備上,所以就處理這個請求,然後根據路由表將響應報文直接返回給
客戶。
在 VS/TUN 的集羣系統中,負載調度器只將請求調度到不同的後端服務器,後端服務器將應
答的數據直接返回給用戶。這樣,負載調度器就可以處理大量的請求,它甚至可以調 度百臺
以上的服務器(同等規模的服務器),而它不會成爲系統的瓶頸。即使負載調度器只有
100Mbps 的全雙工網卡,整個系統的最大吞吐量可超過 1Gbps。所以,VS/TUN 可以極大地增加負載調度器調度的服務器數量。VS/TUN 調度器可以調度上百臺服務器,而它本身不會成
爲系統的瓶頸,可以 用來構建高性能的超級服務器。

 

1,調度器設置

如果是雙網卡,刪除一個

把之前eth1上的ip刪除,然後ip link set down eth1 或者直接在虛擬機管理器上面刪除網卡

Load Balance:172.25.28.1

Virtual IP: 172.25.28.100

2,vm2,vm3

如果有網關刪除網關,臨時添加的網關重啓網絡網關就消失了

或者route del default gw 172.25.28.1

Realserver1: 172.25.28.2

Realserver1: 172.25.28.3

2,先在vm2,vm3上啓動抑制

vm2,vm3安裝arptables_jf  

添加策略(arptables -nL查看策略)

arptables -A IN -d 172.25.28.100 -j DROP    ##不緩存ip的MAC地址

arptables -A OUT -s 172.25.28.100 -j mangle --mangle-ip-s 172.25.28.2 ##mangle是轉換

vm3同vm2

保存策略(否則是一次性的)

/etc/init.d/arptables_jf save

3,rp_filter設置

vm2,vm3

永久修改在vim /etc/sysctl.conf

2,所有服務器都加載模塊,**隧道ip

vm1.vm2,vm3

modprobe ipip 加載隧道模塊,ip addr出現tunl0網卡

Linux系統內核實現的IP隧道技術主要有三種(PPP、PPTP和L2TP等協議或軟件不是基於內核模塊的):ipip、gre、sit 。這三種隧道技術都需要內核模塊 tunnel4.ko 的支持。ipip 需要內核模塊 ipip.ko ,該方式最爲簡單!但是你不能通過IP-in-IP隧道轉發廣播或者IPv6數據包。你只是連接了兩個一般情況下無法直接通訊的IPv4網絡而已。至於兼容性,這部分代碼已經有很長一段歷史了,它的兼容性可以上溯到1.3版的內核。據網上查到信息,Linux的IP-in-IP隧道不能與其他操作系統或路由器互相通訊。它很簡單,也很有效。

ip link set up tunl0 #啓用網卡

ip addr add 172.25.28.100/24 dev tunl0 #給網卡添加ip

4,vm1寫入策略

ipvsadm -A -t 172.25.28.100:80 -s rr

ipvsadm -a -t 172.25.28.100:80 -r 172.25.28.2:80 -i  #-m表示tun模型

ipvsadm -a -t 172.25.28.100:80 -r 172.25.28.3:80 -i

 

5,客戶端訪問測試

curl 172.25.28.100