前言:
DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,
而真实服务器响应后的处理直接将结果返回给客户端的用户,同TUN模式
形同,DR模式可以即大提高及群系统的伸缩性,而且DR模式没有IP隧道
的开销,对集群中的真实服务器也没有必要支持IP隧道协议的要求。但是要
求调度机iLB与真实服务器都有一块网卡连接到统一物理网段,必须在同一个
局域网环境。
DR模式的原理图如下:
正文:
客户端IP:172.25.68.250
LB服务器IP:172.25.68.1
虚拟主机IP:172.25.68.100
服务器1 IP:172.25.68.2
服务器2 IP :172.25.68.3
一、进行软件ipvsadm的安装
yum install ldirectord-3.9.5-3.1.x86_64.rpm -y ###进行软件的下载
二、进行后端服务器的开启和默认发布文件的编辑
在server2中
/etc/init.d/httpd start ###进行后端服务器的开启
vim /var/www/html/index.html ###进行默认发布文件的编辑
在server3中
/etc/init.d/httpd start ###进行后端服务器的开启
vim /var/www/html/index.html ###进行默认发布文件的编辑
三、在真机上进行测试,测试是否可以对服务端进行直接访问
curl 172.25.68.2 ###查看客户端是否和服务器之间数据是通路
curl 172.25.68.3
四、在调度器上进行策略的添加
1、进行策略的查看
ipvsadm -ln ###进行策略的查看
2、进行策略的添加
ipvsadm -A -t 172.25.68.100:80 -s rr
###其中-A表示添加虚拟主机,-t表示tcp连接,rr表示轮询模式, -s表示负载均衡模式
ipvsadm -a -t 172.25.68.100:80 -r 172.25.68.2:80 -g ###其中-r表示添加的服务器,
-g表示直连模式
ipvsadm -a -t 172.25.68.100:80 -r 172.25.68.3:80 -g
3、进行策略的查看
ipvsadm -ln ###进行策略的查看
4、进行策略的保存
/etc/init.d/ipvsadm save ###进行策略的保存
5、进行虚拟网卡的添加
ip addr add 172.25.68.100/24 dev eth0 ###进行虚拟网卡的添加
ip addr show ###进行网络的查看
五、在服务器上进行虚拟网卡的添加
在server2上
ip addr add 172.25.68.100/32 dev eth0 ###进行虚拟网络的添加,不接受外部请求
在server3上
ip addr add 172.25.68.100/32 dev eth0 ###进行虚拟网络的添加,不接受外部请求
六、在真机上进行测试(进行虚拟主机的访问)
curl 172.25.68.100
注意的问题:
由于网络接口都会进行ARP广播效应,当集群的其他机器都有这个VIP的
lo接口,和响应就会冲突,所以我们需要把真实服务器的LO接口的ARP响应关掉
然后真实服务器作出响应之后,根据自己的路由将响应数据发送给客户端。
临时解决办法,进行缓存的清除(arp -d 172.25.68.100)
进行永久解决:
在server2和server3中进行响应的配置
在server2中
1、进行软件的安装
yum install arptables_jf -y
2、进行策略的添加
arptables -A IN -d 172.25.68.100 -j DROP ##-A添加策略 在IN -d 目的地址IP -j
处理方式 DROP 拒绝访问不回应
arptables -A OUT -s 172.25.68.100 -j mangle --mangle-ip-s 172.25.68.2 ##管理输出
来自68.100的请求 以68.2输出
arptables -nL ###查看策略是否写入
在server3中
1、进行软件的下载
yum install arptables_jf -y
2、进行策略的添加
arptables -A IN -d 172.25.68.100 -j DROP ##-A添加策略 在IN -d 目的地址IP -j
处理方式 DROP 拒绝访问不回应
arptables -A OUT -s 172.25.68.100 -j mangle --mangle-ip-s 172.25.68.2 ##管理输出
来自68.100的请求 以68.2输出
arptables -nL ###查看策略是否写入
在真机上进行相关的测试:
curl 172.25.68.100