羊坊店不眠夜(续集)

羊坊店不眠夜(续) <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

作者:田逸( [email]sery@163.com[/email]

 

有了上次的教训,这次我把我所有的操作系统都拿上了,所以心里比较踏实。我们从3环往羊坊店赶,胡子把车开到航天桥旁的一个九头鸟吃晚饭,人倒是很多,可服务质量确实太差,半天没人理,好不容易来了一个菜,等这个菜吃完,剩下的菜似乎遥遥无期,肚子那个饿呀!到最后弄得没胃口吃了个半饱。

 

很快就到羊坊店了,可是胡子居然忘记拿出入证了,联通的人不让进去,于是到处打电话找人,终于算是进去了。等到机柜边准备装系统的时候,却发现光盘包没带进来,可能是在外面等待进机房那会丢在外面了,赶快跑出去,乖乖!还在联通接待大厅的沙发上,悬着的心放了下来。现在,我就等胡子备份完数据,就可以开始安装系统。把光盘放进光驱,我晕光驱托盘按不进去,锁不了托盘。关电源再开机,还是锁不了,这下麻烦了。怎么办呢?把机器从机柜里先搬出来吧!把机盖打开,看了一下这个机器的结构,胡子说拿他笔记本上的光驱代替(是可插拔的那种);但是没有成功,因为这个坏了的光驱居然没有连接线,不知道先前是谁把它弄掉了。不过幸运的是,主板上还预留了一个IDE接口,我们只要找一个IDE光驱即可克服这个困难。向机房的人借,没有;那就在运行着的服务器上下一个吧,大不了停机几分钟。说干就干,又把一个笨重的服务器拉下机架,费了好大的劲才把螺丝拧掉,终于得到一个可用的光驱。

 

接下来安装linux系统,这次用的是centos 5.大概10分钟就安装完毕,设置好网络参数,再关闭系统不必要的服务(命令:ntsysv,关闭 SElinux (修改文件/etc/sysconfig/ selinux,使SELINUX=disabled),然后重起系统看看系统的运行状态,一切皆正常,把它再放到机柜里去吧。

 

插上网线,插上电源,开机。在远端用笔记本ping这个刚装好的服务器的ip地址,通了,很好。用securecrt来连接这个服务器,也很顺利地连接成功了。先修改一些内核参数,我预先写了一个脚本(见下图),把它复制到服务器,直接运行这个脚本,然后用命令

#!/bin/bash

#kernel optimize ,create by <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2007-7-29

 

#enable broadcast echo protection

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

 

#disble source routed packets

for f in /proc/sys/net/ipv4/conf/*/accept_source_rout; do

    echo 0 > $f

done

 

#enable tcp syn cookie protection

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

 

#disable icmp redirect acceptance

for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do

    echo 0 > $f

done

 

#don't send redirect messages

for f in /proc/sys/net/ipv4/conf/*/send_redirects; do

    echo 0 > $f

done

 

#drop spoofed packets

for f in /proc/sys/net/ipv4/conf/*/rp_filter; do

    echo 1 > $f

done

 

#log packets with impossible addresses

for f in /proc/sys/net/ipv4/conf/*/log_martians; do

    echo 1 > $f

done

 

Sysctl –a | grep tcp_syncookies 看内核参数的值是否真的改变了。我们装这个系统的目的是用

     <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

它来做LVS-DR的控制器,接着我就来干这个事情。预先已经做好了脚本,把它上传到服务器,安装包ipvs后,运行该脚本即可。我把脚本放在下面供大家参考,至于具体的情况将另外行文阐述。

#!/bin/bash

# description: start LVS of Directorserver

VIP=61.135.155.100

RIP1=61.135.155.101

RIP2=61.135.155.102

 

./etc/rc.d/init.d/functions

 

case "$1" in

start)

echo " start LVS of DirectorServer"

# set the Virtual IP Address and sysctl parameter

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

echo "1" >/proc/sys/net/ipv4/ip_forward

#Clear IPVS table

/sbin/ipvsadm -C

 

#set LVS

/sbin/ipvsadm -A -t $VIP:80 -s rr

/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g

/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g

 

#Run LVS

/sbin/ipvsadm

;;

stop)

echo "close LVS Directorserver"

echo "0" >/proc/sys/net/ipv4/ip_forward

/sbin/ipvsadm -C

/sbin/ifconfig eth0:0 down

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

 

在这里不妨运行命令 ipvsadm l 检查一下 LVS-DR的状态。状态正常的话,开始下一步:设置LVS-DR客户端。

 

Linux 的客户机很好办的,也是用一个预先准备的一个脚本,上传到目标服务器(真实服务器)后,直接运行就可以了。有一个特殊的地方是ip地址的子网掩码是255.255.255.255,linux来说没什么问题,但对windows就不那么容易了。这个工作留给胡子体验,他先在网上邻居属性修改本地连接的tcp/ip属性,输子网掩码为255.255.255.255,他当然不会成功,然后我告诉他进注册表改,并告诉他修要更改的位置。我自己做实验的时候,很容易在测试机把注册表改好了,但胡子的注册表键值是16进制,这4255把他折腾够呛,怎么搞都不是 255.255.255.255。最后想出一招:用我的笔记本把注册表打开,再把键值以16进制显示,然后挨个敲进去,才解决了这个麻烦。

 

最后该做总体测试了,从外面访问LVS-DR控制器,看是否能正常把请求转发到真正的服务器,加了4个服务器(2web,2windowsMMS,测试正常。还有一步,加防火墙规则,测试通过,等我们把这些做完,凌晨2点了,比上次早一个小时,又一个不眠之夜。

#!/bin/bash

#LVS-DR 客户端脚本

#description : start realserver

VIP=172.16.62.106

./etc/rc.d/init.d/functions

case "$1" in

start)

echo " start LVS of REALServer"

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

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

;;

stop)

/sbin/ifconfig lo:0 down

echo "close LVS Directorserver"

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

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

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

chomd 755 /etc/init.d/lvsrs

service lvsrs start

 

                                                                       

                                                          2007-8-8

                                                                      于清华科技园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值