天天看點

建構直接路由模式(DR)的LVS

LVS主要有位址轉換(NAT)、IP隧道(IP Tunneling)和直接路由(DR)這幾種負載均衡模型,本文主要建構基于DR模式的LVS。DR模式下負載排程器與實際伺服器須有一塊網卡連在同一實體網段上。此類型LVS工作原理是:負載均衡器接收到用戶端的請求資料包後,選擇合适的伺服器節點,将請求包的MAC位址改寫為目的伺服器節點的MAC位址,再将此包廣播到伺服器節點所在網段。每個伺服器節點都設定一個虛拟的網絡裝置(lo:0),這個裝置綁定了和均衡器一樣的VIP(Virtual IP,虛拟IP),隻是該裝置并不響應對VIP的ARP解析,不會和均衡器的VIP産生位址沖突。負載均衡器收到符合自身MAC的IP後,經過處理後直接應答資料包傳回給用戶端。

系統平台:RedHat 5.4

軟體包:ipvsadm-1.24-10.i386.rpm

網絡結構如下:

各伺服器IP規劃如下:

實作目标:用戶端通過VIP通路真實伺服器,Load Balancer将來自用戶端的通路按一定的負載均衡機制分發到Webserver1和Webserver2.

一.Load Balancer的配置

1.IP配置(略)

2.安裝ipvsadm管理程式:

[root@localhost~] # mount /dev/cdrom /media

[root@localhost~] # cd /media/Cluster

[root@localhost~] # rpm –ivh ipvsadm-1.24-10.i386.rpm

3.配置VIP設定腳本:

#!/bin/bash

VIP=200.10.1.10

/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up

/sbin/route add -host $VIP dev eth0:0

4.給vip腳本設定可執行權限:

[root@localhost~] # chmod a+x vip.sh

5.運作vip腳本并設定為開機啟動:

[root@localhost~] # ./vip.sh

[root@localhost~] # echo “/root/vip.sh”>> /etc/rc.local

6.檢視腳本中的eth0:0的IP是否設定成功:

7.利用ipvsadm進行配置(重點):

[root@localhost~] # ipvsadm –A –t 200.10.1.10:80 –s rr –p 600

[root@localhost~] # ipvsadm –a –t 200.10.1.10:80 –r 200.10.1.2:80 –g

[root@localhost~] # ipvsadm –a –t 200.10.1.10:80 –r 200.10.1.3:80 –g

以上指令選項含義:

-A 增加一個virtual service

-t tcp協定

-s 算法 rr表示使用的是輪叫算法

-p 設定連接配接保持時間(預設300秒)

-a 增加一個virtual service

-r 指定真實實服務的IP及端口

-g 指定LVS使用DR直接路由模式

[root@localhost~] # ipvsadm-save > /etc/sysconfig/ipvsadm //将以上ipvsadm的配置儲存到/etc/sysconfig/ipvsadm,以後可以直接使”service ipvsadm start”啟動ipvsadm.

8.檢視ipvsadm清單:

二.Webserver1的配置:

這台伺服器上隻需要給虛拟網絡設定lo:0配置VIP,添加一條路由,然後設定不響應ARP請求即可,可以通過以下腳本來實作:

[root@localhost~] # vi lvs.sh

VIP="200.10.1.10"

/sbin/ifconfig eth0 200.10.1.2/24

/sbin/ifconfig lo:0 $VIP broadcast netmask 255.255.255.255 up

/sbin/route add -host $VIP dev lo:0

//以下配置是使這台伺服器不響應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_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

給腳本增加可執行權限,然後啟動并設定為開機啟動:

[root@localhost~] # chmod a+x lvs.sh

[root@localhost~] # ./lvs.sh

[root@localhost~] # echo “/root/lvs.sh”>> /etc/rc.local

三.Webserver2的配置:

此伺服器上的配置同Webserver1基本一緻,隻需要将lvs.sh腳本中的IP設定為200.10.1.3即可。

四.建立測試頁面:

1.Webserver1:

[root@localhost~] # echo “This is Webserver1”> /var/www/html/index.html

1.Webserver2:

[root@localhost~] # echo “This is Webserver2”> /var/www/html/index.html

五.測試及驗證:

分别在兩台PC上打開浏覽器,輸入“http://200.10.1.10”,如果看到的是不同的頁面,說明LVS配置成功!

LVS配置成功!

本文轉自 kk5234 51CTO部落格,原文連結:http://blog.51cto.com/kk5234/531765,如需轉載請自行聯系原作者