羊坊店不眠夜(续)
有了上次的教训,这次我把我所有的操作系统都拿上了,所以心里比较踏实。我们从3环往羊坊店赶,胡子把车开到航天桥旁的一个九头鸟吃晚饭,人倒是很多,可服务质量确实太差,半天没人理,好不容易来了一个菜,等这个菜吃完,剩下的菜似乎遥遥无期,肚子那个饿呀!到最后弄得没胃口吃了个半饱。
很快就到羊坊店了,可是胡子居然忘记拿出入证了,联通的人不让进去,于是到处打电话找人,终于算是进去了。等到机柜边准备装系统的时候,却发现光盘包没带进来,可能是在外面等待进机房那会丢在外面了,赶快跑出去,乖乖!还在联通接待大厅的沙发上,悬着的心放了下来。现在,我就等胡子备份完数据,就可以开始安装系统。把光盘放进光驱,我晕—光驱托盘按不进去,锁不了托盘。关电源再开机,还是锁不了,这下麻烦了。怎么办呢?把机器从机柜里先搬出来吧!把机盖打开,看了一下这个机器的结构,胡子说拿他笔记本上的光驱代替(是可插拔的那种);但是没有成功,因为这个坏了的光驱居然没有连接线,不知道先前是谁把它弄掉了。不过幸运的是,主板上还预留了一个IDE接口,我们只要找一个IDE光驱即可克服这个困难。向机房的人借,没有;那就在运行着的服务器上下一个吧,大不了停机几分钟。说干就干,又把一个笨重的服务器拉下机架,费了好大的劲才把螺丝拧掉,终于得到一个可用的光驱。
接下来安装linux系统,这次用的是centos 5.大概10分钟就安装完毕,设置好网络参数,再关闭系统不必要的服务(命令:ntsysv),关闭 SElinux (修改文件/etc/sysconfig/ selinux,使SELINUX=disabled),然后重起系统看看系统的运行状态,一切皆正常,把它再放到机柜里去吧。
插上网线,插上电源,开机。在远端用笔记本ping这个刚装好的服务器的ip地址,通了,很好。用securecrt来连接这个服务器,也很顺利地连接成功了。先修改一些内核参数,我预先写了一个脚本(见下图),把它复制到服务器,直接运行这个脚本,然后用命令
#!/bin/bash
#kernel optimize ,create by
#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
看内核参数的值是否真的改变了。我们装这个系统的目的是用
它来做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进制,这4个255把他折腾够呛,怎么搞都不是 255.255.255.255。最后想出一招:用我的笔记本把注册表打开,再把键值以16进制显示,然后挨个敲进去,才解决了这个麻烦。
最后该做总体测试了,从外面访问LVS-DR控制器,看是否能正常把请求转发到真正的服务器,加了4个服务器(2个web,2个windows的MMS),测试正常。还有一步,加防火墙规则,测试通过,等我们把这些做完,凌晨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
|
本文转自sery51CTO博客,原文链接: http://blog.51cto.com/sery/37496,如需转载请自行联系原作者