一、
5、各主機IP地址:
主機
IP
網關
Client
192.168.86.116
Router
F0/0:192.168.x.x
Fo/1:192.168.xx.xx
F0/1
Director
Eth0:192.168.86.111/24(DIP)
Eth0:1:192.168.86.254/32(VIP)
F0/1
Real 1
Eth0:192.168.86.112/24(DIP)
lo:1:192.168.86.254/32(VIP)
F0/1
Real 2
Eth0:192.168.86.113/24(DIP)
lo:1:192.168.86.254/32(VIP)
F0/1
二、配置LVS實現負載均衡
1 、在LVS_Director主機上安裝負載均衡軟件
# rpm -ivh
piranha*rpm ipvsadm*rpm
(配置測試時使用的ipvsadm-1.24-10.i386.rpm、piranha-0.8.4-16.el5.i386.rpm)
2、
修改內核參數
在lvs_DR修改內核參數
打開轉發功能
echo "1"
> /proc/sys/net/ipv4/ip_forward
3、
配置網絡腳本:
在節點1上執行setrealserver1_DR.sh
#!/bin/bash
/sbin/ifconfig eth0 192.168.86.112
netmask 255.255.255.0
/sbin/ifconfig lo:1 192.168.86.254
broadcast 192.168.86.254 netmask 255.255.255.255 up
/sbin/ ip route add default via
192.168.86.1
#echo "1" >
/proc/sys/net/ipv4/ip_forward
#關閉arp廣播
echo "1" >
/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo "2" >
/proc/sys/net/ipv4/conf/eth0/arp_announce
echo "1" >
/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >
/proc/sys/net/ipv4/conf/all/arp_announce
在節點2上執行setrealserver2_DR.sh
#!/bin/bash
/sbin/ifconfig eth0 192.168.86.113
netmask 255.255.255.0
/sbin/ifconfig lo:1 192.168.86.254
broadcast 192.168.86.254 netmask 255.255.255.255 up
/sbin/ ip route add default via
192.168.86.1
#echo "1" > /proc/sys/net/ipv4/ip_forward
#關閉arp廣播
echo "1" >
/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo "2" >
/proc/sys/net/ipv4/conf/eth0/arp_announce
echo "1" >
/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >
/proc/sys/net/ipv4/conf/all/arp_announce
4 、設置管理密碼在節點 LVS-Director上初始化 piranhan 的密碼
# piranha-passwd 設置密碼為 123456
啟動配置進程在 LVS-Director節點上啟動 piranha 的配置進程,
并設置為開機自動啟動
# chkconfig piranha-gui on
# /etc/init.d/piranha-gui start
5、完成之后進入圖形界面并在瀏覽器中輸入:http://localhost:3636,輸入用戶名:piranha和剛才定義的密碼,即可進入piranha
configuration tool的配置界面:
點擊login,用戶名:piranha,密碼:123456
在該界面中第一個要設置的地方是CONTROL/MONITORING,在該界面中將MONITOR中的選項:Auto
update勾選上,Update Interval將自動定義為10s,在服務沒有啟動之前LVS ROUTING TABLE和LVS PROCESS都不可見。完成之后選擇Update
information now。
在該界面的第二個要設置的地方是GLOBAL SETTINGS,在該界面中:
Primary server
public IP:192.168.86.111??????????????? ????(真實外部地址)
Primary server
private IP:0.0.0.0
Use network type:????????? direct????????????????????????? (LVS方式)
選擇接受配置
在該界面的第三個要設置的地方是REDUNDANCY,在該界面中:
由于沒有在這個結構中加入冗余配置,所以可以將其DISABLE掉或者將其設置為ENABLE但是保持配置為空。在該例子中我的配置為空:
Redundant server
public IP:??????????????? 0.0.0.0
Redundant server
private IP:
Heartbeat Interval
(seconds):????????? 6
Assume dead after (seconds):???????? 18
Heartbeat runs on
port:???????????????????? 539
Monitor NIC links
for failure:?????????????? 不勾選
選擇接受配置
在該界面的第四個要設置的地方是VIRTUAL SERVERS:
serial_no = 271
primary = 192.168.86.111
service = lvs
backup_active = 1
backup = 0.0.0.0
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = direct
nat_nmask = 255.255.255.0
debug_level = NONE
monitor_links = 0
syncdaemon = 0
virtual http {
active = 1
address =
192.168.86.254 eth0:1
vip_nmask =
255.255.255.255
port = 443
send =
"GET / HTTP/1.0\r\n\r\n"
expect =
"HTTP"
use_regex =
0
load_monitor = none
scheduler =
wlc
protocol =
tcp
timeout = 6
reentry =
15
quiesce_server = 0
server
realserver1 {
address
= 192.168.86.112
active
= 1
weight
= 1
}
server
realserver2 {
address
= 192.168.86.113
active
= 1
weight
= 1
}
}
三、配置服務節點的ikey服務
1 、在real 1 和real 2分別安裝ikey服務
如果linux開啟了iptables防火墻的話,需要做如下設置
在realserver 上增加如下iptables
腳本:
[root@real1 lvs]#
more real_iptable.sh
service iptables
stop
#!/bin/bash
/sbin/iptables -F
/sbin/iptables -t
nat -F
REDIRECT
/sbin/iptables -A
PREROUTING -t nat -p tcp -d 192.168.86.254 --dport 800 -j REDIRECT
/sbin/iptables -A
PREROUTING -t nat -p tcp -d 192.168.86.254 --dport 22 -j REDIRECT
/sbin/iptables -A
PREROUTING -t nat -p tcp -d 192.168.86.254 --dport 3676 -j REDIRECT
/sbin/iptables -A
PREROUTING -t nat -p tcp -d 192.168.86.254 --dport 3675 -j REDIRECT
/sbin/iptables -A
PREROUTING -t nat -p tcp -d 192.168.86.254 --dport 3880 -j REDIRECT
/sbin/iptables -A
PREROUTING -t nat -p tcp -d 192.168.86.254 --dport 1812 -j REDIRECT
/sbin/iptables -A
PREROUTING -t nat -p tcp -d 192.168.86.254 --dport 1389 -j REDIRECT
service iptables save
2、在LVS -Director上添加iptables規則
DR 模式下若多端口的集群配置,我們需要以下操作,使用防火墻標記
假如我這里需要將tcp 端口80、800、443、3676、3675、3880、3890、1812、1389端口作為一個防火墻標記,在active
router 上添加如下腳本:iptables.sh
開啟防火墻,把所需端口開啟轉發設置mark組為2
#!/bin/bash
/sbin/iptables -F
/sbin/modprobe
ip_tables
/sbin/iptables -t
mangle -A PREROUTING -p tcp -d 92.168.86.254/32 --dport 800 -j MARK --set-mark
2
/sbin/iptables -t
mangle -A PREROUTING -p tcp -d 92.168.86.254/32 --dport 443 -j MARK --set-mark
2
/sbin/iptables -t
mangle -A PREROUTING -p tcp -d 192.168.86.254/32 --dport 22 -j MARK --set-mark
2
/sbin/iptables -t
mangle -A PREROUTING -p tcp -d 192.168.86.254/32 --dport 3676 -j MARK
--set-mark 2
/sbin/iptables -t
mangle -A PREROUTING -p tcp -d 192.168.86.254/32 --dport 3675 -j MARK
--set-mark 2
/sbin/iptables -t
mangle -A PREROUTING -p tcp -d 192.168.86.254/32 --dport 3880 -j MARK
--set-mark 2
/sbin/iptables -t
mangle -A PREROUTING -p tcp -d 192.168.86.254/32 --dport 1812 -j MARK
--set-mark 2
/sbin/iptables -t
mangle -A PREROUTING -p tcp -d 192.168.86.254/32 --dport 1389 -j MARK
--set-mark 2
/sbin/iptables -t
mangle -A PREROUTING -p tcp -d 192.168.86.254/32 --dport 3890 -j MARK
--set-mark 2
service iptables
save
查看上述規則是否加入到mangle表的PREROUTING
iptables -t mangle
-L PREROUTING
3、查看ipvsadm配置
[root@localhost ~]# ipvsadm -L -n
IP Virtual Server
version 1.2.1 (size=4096)
Prot LocalAddress:Port
Scheduler Flags
-> RemoteAddress:Port?????????? Forward Weight ActiveConn InActConn
TCP? 192.168.86.254:443 wrr
-> 192.168.86.113:443?????????? ?Route
1????? 0????????? 0
-> 192.168.86.112:443??????????? Route?? 1
0????? ????0
若沒有上面顯示,在LVS_DR執行以下命令:
ipvsadm? -C清除ipvsadm規則。
然后重新添加ipvsadm規則
ipvsadm -A -f 2 -s
wrr
ipvsadm -a -f 2 -r
192.168.86.112 -g -w 5
ipvsadm -a -f 2 -r
192.168.86.113 -g -w 5
2為mark組,-g是直接路由方式,-w為權值,默認為1,權值大的優先訪問,小的反之。
查看ipvsadm配置
#ipvsadm -L -n
#ipvsadm -Ln --stats -t 192.168.86.254:3890
Prot LocalAddress:Port Conns InPkts OutPkts InBytes
OutBytes
-> RemoteAddress:Port
TCP 192.168.86.90:443 5771754 101697K 0 5338M 0
-> 192.168.86.95:443 454297 13736280 0 761572K 0
-> 192.168.86.96:443 5317457 87961304 0 4576M 0
保存ipvsadm規則
ipvsadm? -S
移除相關配置
ipvsadm? -C
ipvsadm -D -f 2
ipvsadm -d -f 2 -r 192.168.86.254
4 、啟動LVS進程
#
/etc/init.d/pulse start
# chkconfig pulse
on
# ipvsadm 可以看連接狀態
四、測試
3、可以使用load running測試2臺真機cpu是否都有負載。