计算机应用 Computer Applications 《自动化技术与应用》201 4年第3 3卷第1 1期 #定义vip地址 print’’enter start’or‘stop’for rs\n”: ’echo 0 >/proc/sys/net/ipV4/conf/l0/ arp_armounce’; chomp(¥flag=<STDIN>); #启动/关闭负载均衡 print”enter worktype of lvs: —’echo 0 >/proc/sys/net/ipv4/conf/all/ arp_ignore’; ‘dr’ or ’echo 0 >/prOc/sys/net/ipv4/cOnf/a1l/ ‘tunnling’?\n”; a ̄announce’; chomp(Swork_type=<STDIN>); } #选择工作方式 else{ if(¥flag eq”start”&&¥work—type eq”dr”l】 print”you enter is wrony.please lrs.pl again”; ¥work—type eq”tunnling”){ } f(¥work type eq”dr”){ 4.清除预设表filter中的所有规则链的规则 /sbin/ffconfia lo:0 SVIP broadcast¥VIP netmask 【root@co1ive】iptables F 255.255.255.255 up; #清除预设表filter中的所有规则链的规则,否则 #创建虚拟的lo:0接口,ip地址为vip 通过rip不能访问rs /sbin/route add—hOst¥VIP dev lo:0 ; 5.启动ld和backup上的keepalived #增加一条路由信息,是rs可以和vip通信 【root@colive]service keepalived start print start ivs at‘dr’\n ; 6.启动ld和backup上的启动脚本 } 【root@colive]perl ld.pl start else{ my¥VIP:”192.168.0.20”: ’/sbin/ffconfig tunlO SVIP netmask 255.255.255. #定义rip地址 255 broadcast SVIP up’; my¥Rl=”192.168.0.11”; /sbin/route add-host¥VIP dev tunlO ; #定义2台rs的地址 print”start lvs at‘tumbling’\n”;a my¥R2=”192.169.0.13”t } print”enter start or’stop’for lvs\n”; ’echo 1 >/proc/sys/net/ipv4/conf/lo/ chomp(¥flag <STDIN>); arp_ignore’;  ̄flag作为启动和关闭的开关 elsif(¥flag eq”stop”&&¥work_type eq”dr”I lprint”choose’dr’or tunnling for lvsXn”t ¥work_type eq”tunnling”){ chomp(Swork type=<STDIN>); #关闭负载均衡 #选择lvs的工作方式dr/tunnnling if(¥work_type eq”dr”){ if(¥flag Be’ start”&&¥flag ne”stop”&& ’/sbin/ifconfig lo:0 down’; ¥work_tyge ne”dr”&&¥work_tyge Be”tunnling”) #关闭lo:0接口 { ’echo’ close LVS Directorserver’。。t print”your enter is wrong,please run this } script again\n”{ else{ } /sbin/ifconIig tunl0 down’; elsif(¥flag eq’ start”&&¥work_type eq’’dr echo"close LVS Tunnel server ¨; l[¥work_type eq”tunnling”){ } if(¥work_type eq”dr”){ ’echo 0 >/pr0c/sys/net/ipv4/conf/io/ print’’start lvs of drkn”; arp—ignore’; ’/sbin/ffconfig ethO:1¥VIP broadcast #取消rs的arp广播限制 ¥VIP netmask 255。255.255.255 up ;