本文对Anycast单一站点进行部署,并不对Anycast相关技术做过多介绍,如有需要请自行搜索下其他文档。
在部署单一站点的时候可能需要涉及到LVS DR模式去实现业务的Anycast以及Unicast两种类型,其中Anycast作为提供业务服务用,unicast作为管理以及数据同步用。具体设计方案如下:
一、拓扑介绍:
客户端ip地址:192.168.100.100/24
lvs 物理地址: 192.168.100.3/24 Vip 10.0.0.1/24
RS1物理地址: 192.168.100.2/24 Vip 10.0.0.1/24
RS2物理地址: 192.168.100.4/24 Vip 10.0.0.1/24
因为以上图片是逻辑拓扑,测试环境中客户端还是一台centos6.5的服务器所以需要回指一条
route add -net 10.0.0.0/24 dev eth0
-----------------------------------------------------------------------------------------------------------------------------------------
二、LVS实施步骤:
1)LVS安装步骤:
#uname -r 查看centos系统内核
2.6.32-431.el6.x86_64
#ln -s 2.6.32-573.18.1.el6.x86_64 /usr/src/linux
如果没有内核的话,需要yum install -y kernel-devel 安装一下
#wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
#tar -zxvf ipvsadm-1.26.tar.gz
#cd ipvsadm-1.26
#make
安装时碰到以下报错:
libipvs.c:1072: error: too many arguments to function ‘ipvs_nl_send_message’
make[1]: *** [libipvs.o] Error 1
make[1]: Leaving directory `/home/hongfei/ipvsadm-1.26/libipvs‘
make: *** [libs] Error 2
解决办法:
#yum install -y libnl* libpopt*
#yum install -y popt-static
安装完成以上包后:
#make clean
#make
#make install
#lsmod |grep ip_vs
#modeprobe ip_vs 把ip_vs加入内核中
#lsmod |grep ip_vs
ip_vs 125220 0
libcrc32c 1246 2 ip_vs,dm_persistent_data
ipv6 317340 226 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
至此LVS已经安装完毕!
2)LVS配置
因为要实施Anycast对外提供服务的话,当然需要有anycast做提供服务,同样需要unicast做管理以及数据同步等等工作。
具体配置如下:
#ifconfig lo:0 10.0.0.1/24 up 配置anycast地址
#ipvsadm -C 清空所有lvs配置
#ipvsadm -A -t 10.0.0.1:80 -s wrr -p 20
#ipvsadm -t 10.0.0.1:80 -r 192.168.100.2 -g -w 1
#ipvsadm -t 10.0.0.1:80 -r 192.168.100.4 -g -w 1
至此LVS配置完毕。-----------------------------------------------------------------------------------------------------------------------------------------
三、RS配置
首选装一个apache的测试环境:
#yum install -y httpd
#service httpd start
#ps -ef|grep httpd
安装完成后:
# cat /etc/httpd/conf/httpd.conf|grep DocumentRoot 查找系统站点目录
# echo "RS1" >/var/www/html/index.html
#ifconfig lo:0 10.0.0.1 up
配置arp抑制:
# 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
至此步骤RS配置完成。
测试结果:
在client端配置10.0.0.0/24 静态路由之后,anycast地址可以ping通 ,unicast可以ping通,80服务也在20秒后切换到另外一台机器上。