架构图
架构说明:
Vmware上实现,一共需要3台虚拟机。物理机模拟客户端。配置RR轮询的调度方法以便显示效果
Director主机配置
(1)、检测系统内核是否支持ipvs
[root@bogon ~]# grep -i "ipvs" -A 5 /boot/config-2.6.32-573.el6.x86_64 # IPVS transport protocol load balancing support # CONFIG_IP_VS_PROTO_TCP=y CONFIG_IP_VS_PROTO_UDP=y CONFIG_IP_VS_PROTO_AH_ESP=y CONFIG_IP_VS_PROTO_ESP=y -- # IPVS scheduler # CONFIG_IP_VS_RR=m CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m CONFIG_IP_VS_WLC=m -- # IPVS application helper # CONFIG_IP_VS_FTP=m CONFIG_IP_VS_PE_SIP=m #
只要IPVS transport protocol load balancing support都是y,说明ipvs已经支持在这些协议工作
注意:2.4.26,2.6.4及以后的kernel版本内核已经默认支持IPVS
(2)、安装ipvsadm
yum -y install ipvsadm
(3)、Director地址配置:
VIP地址: 192.168.61.100
DIP地址: 192.168.93.133
ifconfig eth0:0 192.168.61.100 netmask 255.255.255.255 broadcast 192.168.61.100 up
route add -host 192.168.61.100 dev eth0:0
(4)、调度策略配置:
ipvsadm -A -t 192.168.61.100:80 -s rr
ipvsadm -a -t 192.168.61.100:80 -r192.168.61.130 -g
ipvsadm -a -t 192.168.61.100:80 -r192.168.61.132 -g
(5)、打开转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
或编辑配置文件修改,使它永久生效(dr模型中要改的几个参数也可以写在这个文件):
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p 让它立即生效
(6)、清空防火墙及关闭selinux以防干扰:
setenforce 0
iptables -F
RS1主机配置
(1)、配置内核参数
cd /proc/sys/net/ipv4/conf
这里每个接口都有相应的目录,一般修改all和lo,all表示所有接口都生效,为了万无一失,所以把all也定义了
如果只需要临时生效:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
如果需要永久生效,vim /etc/sysctl.conf添加:
net.ipv4.conf.all.arp_ignor=1
net.ipv4.conf.lo.arp_ignor=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
然后让它立即生效 sysctl -p
(2)、地址配置:
ifconfig eth0 192.168.61.130 up 临时设定,要永久生效就修改网卡配置文件
ifconfig lo:0 192.168.61.100 netmask 255.255.255.255 broadcast 192.168.61.100 up 作用是限定它返回客户端的源地址是VIP
route add -host 192.168.61.100 dev lo:0 如果目标地址是这个地址,必须通过lo:0这个接口进来,保证响应报文源地址是VIP
(3)、web服务配置:
yum -y install httpd
echo RS1 > /var/www/html/index.html
service httpd restart
(4)、清空防火墙及关闭selinux以防干扰:
setenforce 0
iptables -F
(5)、最后检查
物理机上ping vip地址,应该是通的,如果RS没配置内核参数就设置了vip地址,ping的话就会乱了,都会有响应,配好后Ping的
话只有Director的vip响应。可以在物理机上用arp -a 查看得到的172.168.100.7的mac地址,对应的是Directory上的mac地址
注意:按顺序,先在RS上配置内核参数,再配置vip地址,
RS2主机配置:
(1)、配置内核参数
cd /proc/sys/net/ipv4/conf
这里每个接口都有相应的目录,一般修改all和lo,all表示所有接口都生效,为了万无一失,所以把all也定义了
如果只需要临时生效:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
如果需要永久生效,vim /etc/sysctl.conf添加:
net.ipv4.conf.all.arp_ignor=1
net.ipv4.conf.lo.arp_ignor=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
然后让它立即生效 sysctl -p
(2)、地址配置:
ifconfig eth0 192.168.61.132 up 临时设定,要永久生效就修改网卡配置文件
ifconfig lo:0 192.168.61.100 netmask 255.255.255.255 broadcast 192.168.61.100 up 作用是限定它返回客户端的源地址是VIP
route add -host 192.168.61.100 dev lo:0 如果目标地址是这个地址,必须通过lo:0这个接口进来,保证响应报文源地址是VIP
(3)、web服务配置:
yum -y install httpd
echo RS1 > /var/www/html/index.html
service httpd restart
(4)、清空防火墙及关闭selinux以防干扰:
setenforce 0
iptables -F
(5)、最后检查
物理机上ping vip地址,应该是通的,如果RS没配置内核参数就设置了vip地址,ping的话就会乱了,都会有响应,配好后Ping的
话只有Director的vip响应。可以在物理机上用arp -a 查看得到的172.168.100.7的mac地址,对应的是Directory上的mac地址
在物理机上访问测试
http://192.168.61.100/index.html
不断刷新,RS1和RS2的index.html页面会轮流显示,因为用的rr调度算法