VIP=192.168.8.11' w. g2 p) O7 t$ d: K
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up- t1 b+ v3 N6 g# E) N
/sbin/route add -host $VIP dev lo:01 `" D# K/ { s7 H4 H% `
echo "1" /proc/sys/net/ipv4/conf/lo/arp_ignore8 r) P9 t% _% h {3 _/ u _
echo "2" /proc/sys/net/ipv4/conf/lo/arp_announce
5 d6 I% }! t5 [; D echo "1" /proc/sys/net/ipv4/conf/all/arp_ignore4 p) v+ J2 A7 [( U( C2 u9 h! g
echo "2" /proc/sys/net/ipv4/conf/all/arp_announce3 b4 y- W% K9 l* x# _/ L/ N# r
sysctl –p& w6 n* w. B$ D
假如有多个realserver直接添加就可以了,之后启动此脚本就可以了。) v# M' |+ p- Z
测试:分别启动realserver上的httpd服务, e! z: d; ^# W9 f- U, N& C
在realserver1 执行 echo "This is realserver1" /var/www/html/index.html
# }+ h( t: B0 {8 `" v1 F 在realserver2 执行 echo "This is realserver2" /var/www/html/index.html
9 X/ w* i7 n7 ]" ? 打开IE浏览器输入http://192.168.8.11 应该可以分别看到:This is realserver1 和 This is realserver2.$ q# P: q: c. H" v! I8 t3 p8 z- ~4 z
二、配置基于隧道模式Lvs集群1 C+ C& `1 m3 C4 |2 n. }+ b) B3 x
1.配置LVS directorserver 脚本
& L. l9 x1 t) f' M4 s# f$ t [root@test7 chang]#vi TunLVS) V; O, Z+ \% ?: _( ~- {% @
#!/bin/sh2 z8 v- W9 D' e6 B9 Q/ W$ B
VIP=192.168.8.11
1 k/ I j2 {0 f RIP1=192.168.8.57 y& c- Z8 _# s8 t
RIP2=192.168.8.6% F7 H7 N+ M; O( L, F# C9 |% U. @
/etc/rc.d/init.d/functions$ I% f t! e8 L4 D O v
case "$1" in
% p# ^ w! w, w4 ` start)
0 Y. U! [' F% `% i, s echo "Start Lvs of DirectorServer"
! ~! y( {. d# O6 { #set vip server
: |( f4 w l+ d, ~! e; Z7 d /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
' ]! r1 q9 x2 ~! Y" G4 f /sbin/route add -host $VIP dev tunl0 n2 j( U* [ h
#clear IPVS table
4 r0 o3 `7 }* ]* h% l1 f: i /sbin/ipvsadm -C
- Q8 ^. g# R y, q/ t, ^7 Z& R #set lvs
! @3 W3 B. l1 q" Q /sbin/ipvsadm -A -t $VIP:80 -s rr
@+ j% F: y: _/ ~* e9 T& _& \ /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i
9 G5 j) F# J# r: r7 d5 R /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -i
& S! y4 a5 A Y! a/ |! Y; e5 e #Run Lvs. @4 o; Q* Z& K3 ~+ o6 |' H, O3 v
/sbin/ipvsadm6 J1 L$ h y6 B; Q; `; ~5 M. h
;;
, E, ^# w+ s) t' j stop)
+ R! S. [" q8 A echo "Close Lvs DirectorServer "
- Z6 v! G5 W, O! y( l. [8 f$ @6 z ifconfig tunl0 down
% I2 R9 t1 ]/ W8 _. R x /sbin/ipvsadm -C$ m) R/ t' |* I) g* d
;;
( q, W; @) z( `7 p1 S9 G )
3 W% ?3 u# R" Q+ N echo "Usage: $0 "
) ]" s6 r/ B. l: r* I8 N: w3 X exit 1
" B) J* N6 K- J% N7 u* O, i0 W. t esac5 N/ {, L, Z2 O2 s8 P# b2 [
2. 配置realserver$ {! e. }6 f' p, R8 ]0 P$ S
[root@test5 chang]#
, m6 I o d4 {( ^2 }9 m' D #!/bin/sh# X) F E: j5 ?; H; b* Q r
VIP=192.168.8.11/ \9 @5 S* G7 i" C6 t
/etc/rc.d/init.d/functions
/ L& @9 d; p- j# B( i+ U4 W case "$1" in# X( k- ~( o' ^% E3 F
start)
" H$ |3 p, b- t$ v1 ]9 J0 d$ d echo "tunl port starting"
@; I+ h' d) G$ X7 f# t3 m /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.255 up
3 L, |3 T, H" a' y7 B+ t; k /sbin/route add -host $VIP dev tunl0
7 v* I$ o) X) _6 P" m% c echo "1" /proc/sys/net/ipv4/ip_forward
/ `; X" l3 k, |" X1 ` echo "1" /proc/sys/net/ipv4/conf/tunl0/arp_ignore
7 A$ l: K9 F7 G2 Q+ O1 x! q: l echo "2" /proc/sys/net/ipv4/conf/tunl0/arp_announce
& d0 ~4 {) C; S5 M1 I7 y& \0 n echo "1" /proc/sys/net/ipv4/conf/all/arp_ignore
, ?5 ~ ~- [+ P: z* u3 r9 \3 v% Q echo "2" /proc/sys/net/ipv4/conf/all/arp_announce! W* k% p O6 o+ Y, k
sysctl -p
9 l% W6 m/ y U. f ;;
* P: M0 _$ t' k% C# W- u; t6 J( t" D2 ~ stop)
7 g- M$ |7 T( s6 i1 Q; w5 U1 {2 | echo "tunl port closing"
: x) e z, I& \ ifconfig tunl0 down; ]- S% V0 N' N* u/ Q$ R
echo "1" /proc/sys/net/ipv4/ip_forward$ M3 e! T+ c5 N
echo "0" /proc/sys/net/ipv4/conf/all/arp_announce8 S1 {$ f* @2 ~2 h1 x
;;- l+ }% P) U/ b: Q d4 x8 R: S
)2 u. d; [$ k5 `$ t; r. w
echo "Usege: $0 "
) f7 p7 G) Z) p- q6 V6 L exit 1
7 C ?& d% n# r: P) ?7 h esac
3 G- [8 B: x+ V9 O- H 此脚本分别在realserver上执行,目的使realserver忽略arp响应,并设定vip." o3 v: Q9 `, w0 E! L7 q: a7 Z) U
三、配置基于高可用Lvs+heartbeat
?( P! F4 F: M: f9 v$ z, q 确定LVS使用DR或/tun模式,请对照上面的配置,本例使用DR模式
& e5 r% i, J" C( l$ y6 o, } 1.配置LVS directorserver 脚本8 ` {; R0 B2 n N* X- Z
#!/bin/sh+ p5 H6 e4 k& a6 X
VIP=192.168.8.113 o- v* ^( H" Z; t4 _8 k
RIP1=192.168.8.6
& \% V2 j0 X3 I% j- V& i4 F7 A RIP2=192.168.8.5
6 {) q, t& c3 Z* l. F. e! i4 `4 X+ v /etc/rc.d/init.d/functions$ o D. s, e8 @
case "$1" in
5 z! Q! M0 ]2 L' K start)$ ]- ?$ n# y* |3 z* C8 f
echo "start LVS of DirectorServer"
/ M7 K: Z5 L* j, p! O #Set the Virtual IP Address" J+ z& Q2 ]: X' [: Q) q
/sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up) G0 \- Y! ^& \+ R0 _ s
/sbin/route add -host $VIP dev eth0:1
9 a) D* f6 N: h* l5 {1 V #Clear IPVS Table
3 d/ d5 L- ^, s* a/ e /sbin/ipvsadm -C, H7 U/ e; T7 r6 a7 K, M3 F
#Set Lvs3 L) M1 Y$ w, ^# @9 [6 Z- h% A
/sbin/ipvsadm -A -t $VIP:80 -s rr |