LVS模式一:DR模式(ipvsadm)
LVS模式一:DR(Direct Routing)直接路由模式
- DR模式下调度器和服务器组都必须在物理上有一个网卡通过不分段的局域网相连,即通过交换机或者高速的HUB相连,中间没有隔有路由器。
- VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文
- 所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。
实验环境
主机 | ip |
---|---|
server1(调度器) | 172.25.5.1 |
server2(apache服务器) | 172.25.5.2 |
server3(apache服务器) | 172.25.5.3 |
foundation4(客户端) | 172.25.5.250 |
- 实验主机
- rhel6.5 selinux and iptables disabled(除了客户端外)
Load Balance:172.25.5.1
Virtual IP: 172.25.5.100
Realserver2: 172.25.5.2
Realserver3: 172.25.5.3
在server1(调度器)上配置ipvsadm
1.在服务器上配置更高级yum源
2.上安装ipvsadm(调度器)
3.
添加策略
(1)添加一台虚拟设备
-A 增加一台虚拟设备
-t --tcp-service service-address
-s scheduler one of rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq
rr 调度算法:轮询
(2)添加后端实际服务器
(3)保存策略
(4)策略保存地址
4.显示调度次数ipvsadm -L (-n解析)
5.添加vip
给服务器把 VIP 地址配置在各自的 NonARP 网络设备上
配置后端apache服务器(server2,server3)
1.打开apache服务
2.分别添加vip
给所有的服务器把 VIP 地址配置在各自的 NonARP 网络设备上
在客户端测试
-
以上情况,server1,2,3都有可能被访问到
-
如果绑定的MAC地址是server1,则在server2,3轮询
-
如果绑定的MAC地址是sever2或sever3的,那么我们会发现,在测试端根本不会形成轮叫,而是直接去了MAC绑定的后端服务器 (显然这样在企业中是不允许的)
绑定的MAC地址是server1的情况
如果清除100的缓存,再次连接时,会发现连接到server3的mac地址
如何避免这种情况实现?
-
要避免这种情况,要求只能绑定server1(调度器)的MAC地址
-
在server2和server3中下载yum install -y arptables_jf
-
为arptables网络的用户控制过滤的守护进程
-
防止在物理机中测试时直接访问server2和server3
-
添加策略
-
当网内广播需要172.25.64.100这个ip时,它丢弃所有网内的请求
-
当它自身需要在网内发包时,伪装为自己原本的ip172.25.64.2
-
查看添加的策略
-
保存添加的两条策略,以及策略的保存地址
-
先删除现有绑定MAC地址
arp -d 172.25.1.100
测试端测试curl 172.25.1.100(出现轮叫,且数据经过调度器)