LVS模式一:DR(Direct Routing)直接路由模式

条件
1.调度器与服务器必须在物理上有一个网卡通过部分段的局域网相连
2.VIP地址为调度器和服务器共享,调度器VIP地址是对外可见的,
3.所有服务器把VIP地址配置在各自的Non-ARP网络设备上,对外不可见

实验环境

主机

ip

server1(调度器)

172.25.5.1

server2(apache服务器)

172.25.5.2

server3(apache服务器)

172.25.5.3

foundation4(客户端)

172.25.5.250

在server1(调度器)上配置ipvsadm

1.在服务器上配置LoadBalancer yum源

lvs DR调试方法 lvs dr模式_apache


lvs DR调试方法 lvs dr模式_服务器_02


2.安装ipvsadm(调度器)

yum install ipvsadm -y


添加策略

(1)添加一台虚拟设备

-A   增加一台虚拟设备

-t   --tcp-service service-address

-s   scheduler one of rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq

rr  调度算法:轮询

-g dr模式

(2)添加后端实际服务器

lvs DR调试方法 lvs dr模式_网络设备_03


(3)保存策略

/etc/init.d/ipvsadm save

(4)策略保存地址

lvs DR调试方法 lvs dr模式_服务器_04


4.显示调度次数ipvsadm -L (-n解析)

lvs DR调试方法 lvs dr模式_服务器_05


5.添加vip

把VIP地址配置在各自的NonARP网络设备上

ip adr add 172.25.5.100/24 dev eth0

配置后端apache服务器(server2,server3)

1.在(server2,server3)打开apache服务

/etc/init.d/httpd start
cat /var/www/html/index.html

2.分别添加VIP
将VIP配置在各自NonARP网络设备上

(server1)ip adr add 172.25.5.100/32 dev eth0
(server2)ip adr add 172.25.5.100/32 dev eth0

在客户端测试

1.以上情况,server1,2,3都有可能被访问到

2.如果绑定的MAC地址是server1,则在server2,3轮询

arp -an | grep 100

3.如果绑定的MAC地址是sever2或sever3的,那么我们会发现,在测试端根本不会形成轮叫,而是直接去了MAC绑定的后端服务器 (企业中是不允许的)
arp -d 172.25.5.100
curl 172.25.5.100

问题解决方法:
要避免这种情况,要求只能绑定server1(调度器)的MAC地址

在服务器server2和server3中下载

yum install -y arptables_jf

为arptables网络的用户控制过滤的守护进程

防止在物理机中测试时直接访问server2和server3

添加策略:

当网内广播需要172.25.64.100这个ip时,服务器丢弃所有网内的请求

当服务器自身需要在网内发包时,伪装为自己原本的ip172.25.64.2

查看添加的策略:
arptables -L

保存添加的两条策略,以及策略的保存地址

lvs DR调试方法 lvs dr模式_网络设备_06


先删除现有绑定的MAC地址

arp -d 172.25.5.100

测试端测试curl 172.25.1.100(出现轮叫,且数据经过调度器)