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源
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)添加后端实际服务器
(3)保存策略
/etc/init.d/ipvsadm save
(4)策略保存地址
4.显示调度次数ipvsadm -L (-n解析)
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
保存添加的两条策略,以及策略的保存地址
先删除现有绑定的MAC地址
arp -d 172.25.5.100
测试端测试curl 172.25.1.100(出现轮叫,且数据经过调度器)