LVS-DR模型:基于直接路由的web服务

基本的原理:用户的ip为CIP,中间有个交换机,用户请求VIP,在Directory上有VIP和DIP,DIP是连接Realserver的ip地址,Directory只管进站的请求,不管出站的请求,在上面要做限定广播。每个Realserver都有自己的RIP,同时也有一个VIP以回应用户的请求,在此要配置广播隔离,即当用户请求时通过Directory到达某个Realserver时由Realserver直接回应给用户,不经过Directory。

由于RIP和VIP及DIP在同一个物理网段,在ARP广播是是每个Realserver都能收到,回应是都有,为了解决这个问题,设置Directory能接收到,而Realserver不能收到广播,再由Directory根据调度算法分给那个Realserver。

arp_ignore定义不同的模型,如何响应ARP请求的ip地址,默认0都响应,1仅在请求目的地址在本地主机通过该网卡则不响应。

arp_announce默认是0,都能通告,1避免使用响应,2使用本地接口响应

VIP:172.16.6.6

DIP:172.16.6.1
RIP:172.16.6.7 172.16.6.8

前提:

每个服务器装好MySQL,yum源要有集群的

注意:

1、每个服务器的网卡是桥接的
2、RIP和DIP必须在同一个物理网段
3、RIP的网关一定不能指向DIP
4、DIP不能做端口映射
5、若网页打不开,查看虚拟机的防火墙是否关闭

Directory服务器的配置:

1、同步时间
hwclock -s

2、安装ipvsadm

yum install ipvsadm

3、设置ip地址

DIP:172.16.6.1即eth0的ip
向外提供服务的ip即VIP:172.16.6.6,限定广播
ifconfig eth0:1 172.16.6.6 broadcast 172.16.6.6 netmask 255.255.255.255 up
ifconfig查看

4、添加路由

route add -host 172.16.6.6 dev eth0:1
route -n查看

5、配置集群服务,添加realserver

ipvsadm -A -t 172.16.6.6:80 -s wlc
ipvsadm -a -t 172.16.6.6:80 -r 172.16.6.7 -w 2
ipvsadm -a -t 172.16.6.6:80 -r 172.16.6.8 -w 1
ipvsadm -L -n查看

Realserver服务器的配置:
1、同步时间
hwclock -s

2、安装ipvsadm,httpd

yum install ipvsadm httpd

3、添加网页

vim /var/www/html/index.html
<h1>
web1
</h1>

4、重启httpd服务

service httpd restart

5、配置广播隔离

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

6、配置ip地址

RIP:172.16.6.7即eth0
ifconfig lo:0 172.16.6.6 broadcast 172.16.6.6 netmask 255.255.255.255 up

7、添加路由

route add -host 172.16.6.6 dev lo:0
ifconfig查看

8、为另一台Realserver配置相同的配置

9、在客户端验证,请求的ip地址为172.16.6.6

ipvsadm的其他用法:

ipvsadm -L -n以数字方式查看集群的信息
ipvsadm -L -n --rate显示速率
ipvsadm -L -n --stats统计数据包近来出去的个数和字节数