1、LVS--DR工做模式原理
(流程圖後續補上……)html
一、 Client向目標 VIP 發出請求,Director (負載均衡器)接收。
2 、Director 根據負載均衡算法選擇 RealServer_1 ,不修改也不封裝 IP 報文,而是將數據幀 的 MAC 地址改成 RealServer_1 的 的 MAC 地址,而後在局域網上發送。
三、 RealServer_1 收到這個幀,解封裝後發現目標 IP 與本機匹配(RealServer 事先綁定了 VIP ,必須的!)因而處理這個報文,隨後從新封裝報文,發送到局域網。
4 、Client 將收到回覆報文。Client 認爲獲得正常的服務,而不會知道是哪臺服務器處理的
(注意,若是跨網段,那麼報文經過路由器經由 Internet 返回給用戶)linux
2、DR工做模式採用加權輪詢方式部署
1.環境準備算法
名稱 | IP地址 | VIP地址 |
負載均衡器 (LB) | 192.168.1.128 | 192.168.2.128 |
Web Server 1 (WS1) | 192.168.1.130 | |
Web Server 2 (WS2) | 192.168.1.131 |
2.安裝LVSvim
下載地址:http://www.linuxvirtualserver.org/software/ipvs.html#kernel-2.6服務器
或直接wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz負載均衡
3.編譯安裝tcp
tar -zxf ipvsadm-1.26.tar.gz cd ipvsadm-1.26 && make && make install lsmod |grep ip_vs
ipvsadm #此時系統可能未加載ipvs模塊,須要手動執行ipvsadm命令加載進去或者modprobe ip_vs。
4.配置LVS測試
4.1 負載均衡器配置VIP地址url
ifconfig eth0:1 192.168.2.128 netmask 255.255.255.0 route add -host 192.168.2.128 dev eth0
4.2 ipvsadm添加LVS服務spa
參數 | 參數說明 |
-A | -A --add-service 添加一個帶選項的虛擬服務。 |
-t | 指定虛擬服務器的IP地址和端口 |
-s | -s,--scheduler scheduling-method 調度算法 |
-p | 會話保持按秒計算 |
-a | -a在對應的VIP下添加RS節點 |
-g | 指定此LVS的工做模式爲-g -g爲DR模式 |
-l | 指定LVS的工做模式爲-l -l爲tunnel模式 |
-m | 指定LVS的工做模式爲NAT模式 |
-w | 指定RS節點的權重 |
-D | 刪除虛擬服務 格式:ipvsadm-D -t|u|f service-address |
-C |
-C, --clear Clear the virtual server table清空lvs原有的配置。 |
-set | 設置tcp tcpfn udp 的鏈接超時時間 |
ipvsadm -C #請用LVS原有的配置 ipvsadm -A -t 192.168.2.128:80 -s rr -p 30 #添加虛擬服務指定VIP ipvsadm -a -t 192.168.2.128:80 -r 192.168.1.130:80 -g -w 20 #針對虛擬服務添加RS節點 ipvsadm -a -t 192.168.2.128:80 -r 192.168.1.131:80 -g -w 20 ipvsadm -L -n #查看VIP和RS是否已經配置成功。
4.3 LB上刪除虛擬服務
ipvsadm -D -t 192.168.2.128:80
5.配置RS(WS1-2)節點服務器
5.1 添加lo端口的VIP&路由
ifconfig lo 192.168.2.128 netmask 255.255.255.255 #RS的VIP不是用來通信,而且這裏必定要設置24位掩碼 route add -host 192.168.2.128 dev lo
5.2 ARP抑制
echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce echo "1">/proc/sys/net/ipv4/conf/all/arp_announce echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
6.測試LVS是否生效
在LB上面輸入命令ipvsadm -L -n就可以查看LB上面的會話分配。在前面加上watch能夠動態的查看ipvsadm的會話分配。watch ipvsadm -L -n.
6.1 測試RS節點是否正常訪問
6.2 測試從LB可否正常訪問RS
6.3 測試客戶端可否正常訪問VIP
NAT模式:
客戶端一樣須要配置VIP,進行ARP抑制,而且要服務器端開啓內核轉發功能,配置LB的DIP(內網IP地址)做爲默認網關。
開啓內核轉發功能:
vim /etc/sysctl 在文件最後差入: net.ipv4.ip_forword = 1 route add default gw 192.168.2.128
Tunnel模式:
客戶端須要先開啓Tunnel協議支持。
/sbin/modprobe ipip /sbin/route add –host 192.168.2.128 devtun1 echo」1」>/proc/sys/net/ipv4/conf/tun1/arp-ignore echo」2」>/proc/sys/net/ipv4/conf/tun1/arp_announce echo」0」 >/proc/sys/net/ipv4/conf/tun1/rp_filter echo」1」 >/proc/sys/net/ipv4/conf/tun1/forwarding echo」1」 >/proc/sys/net/ipv4/conf/all/arp_ignore echo」2」 >/proc/sys/net/ipv4/conf/all/ arp_announce