VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP 的网络请求 VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP 的网络请求。
1.server2与server3安装apache,在默认发布目录/var/www/html下编写发布文件
[root@server2 html]# vim index.html
[root@server2 html]# cat index.html
www.westos.org server2
[root@server3 html]# vim index.html
[root@server3 html]# cat index.html
www.westos.org server3
2.selinux和iptables状态为disabled
3.Virtual IP:172.25.4.100
4.各主机信息如下:
主机名 | IP |
---|---|
server1(调度器) | 172.25.4.1 |
server2(真实服务器) | 172.25.4.2 |
server3(真实服务器) | 172.25.4.3 |
1).搭建高级yum源
[root@server1 html]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.4.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.4.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=0
2).安装ipvsadm
[root@server1 html]# yum clean all
[root@server1 html]# yum repolist
repo id repo name status
LoadBalancer LoadBalancer 4
rhel-source Red Hat Enterprise Linux 6Server - x86_64 - Source 3,690
[root@server1 html]# yum install ipvsadm -y
[root@server1 html]# ipvsadm -A -t 172.25.4.100:80 -s rr
[root@server1 html]# ipvsadm -a -t 172.25.4.100:80 -r 172.25.4.2:80 -g
[root@server1 html]# ipvsadm -a -t 172.25.4.100:80 -r 172.25.4.3:80 -g
[root@server1 html]# ipvsadm -l ##查看调度(-nl为不做解析)
[root@server1 html]# /etc/init.d/ipvsadm save ##保存策略(保存文件为/etc/sysconfig/ipvsadm)
-A:添加虚拟设备
-t:指定ip地址
-s:添加指定策略(rr为调度算法:轮询)
4).添加Virtual IP
[root@server1 html]# ip addr add 172.25.4.100/24 dev eth0
[root@server1 html]# ip addr show ##查看是否添加上
inet 172.25.4.100/24 scope global secondary eth0
[root@server2 html]# ip addr add 172.25.4.100/32 dev eth0
[root@server2 html]# /etc/init.d/httpd start ##开启http服务
[root@server3 html]# ip addr add 172.25.4.100/32 dev eth0
[root@server3 html]# /etc/init.d/httpd start
1).在客户端(真机)上curl 172.25.4.100
[root@foundation64 ~]# curl 172.25.4.100
www.westos.org server3
[root@foundation64 ~]# curl 172.25.4.100
www.westos.org server3
[root@foundation64 ~]# arp -an | grep 100 ##查看MAC绑定地址
? (172.25.4.100) at 52:54:00:11:dd:c1 [ether] on br0
注意:到此步骤功能都可以实现了,但是此时是随机访问的,server1,2,3都有可能被访问,我上面的情况是随机访问到server3(真实服务器),显然在企业中是不可能的,客户端不能访问到真实服务器,所以我们要让真实服务器屏蔽客户端,即客户端就访问不到server2和server3,只能访问到调度器(server1)
1).server2与server3下载arptables_jf,并添加指定策略
arptables:用于管理arp包过滤的软件,基本思路和iptables一样,处理有关arp协议的包
##server2:
[root@server2 ~]# yum install arptables_jf
[root@server2 ~]# arptables -A IN -d 172.25.4.100 -j DROP ##拒绝以100进来的请求
[root@server2 ~]# arptables -A OUT -s 172.25.4.100 -j mangle --mangle-ip-s 172.25.4.2 ##当自身需要通过100在网内发送数据包时,将ip伪装成172.25.4.2
[root@server2 ~]# /etc/init.d/arptables_jf save ##保存策略
##server3:
[root@server3 ~]# yum install arptables_jf
[root@server3 ~]# arptables -A IN -d 172.25.4.100 -j DROP
[root@server3 ~]# arptables -A OUT -s 172.25.4.100 -j mangle --mangle-ip-s 172.25.4.3
[root@server3 ~]# /etc/init.d/arptables_jf save
2).查看server2和server3策略是否添加成功:arptables -L
1).先删除之前实验绑定的MAC地址:arp -d 172.25.4.100
2).curl 172.25.4.100访问100时,数据经过调度器进行轮询
3).在调度器(server1)上ipvsadm -ln查看调度信息