LVS----DR直接路由模式

  • 通过在调度器LB上修改数据包的目的MAC地址实现转发。只修改目的mac地址。
  • 请求的报文经过调度器,而RS响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT模式比)
  • 因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LB只能在一个局域网里面
  • RS主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。
  • RS节点的默认网关不需要配置成LB,而是直接配置为上级路由的网关,能让RS直接出网就可以。
  • 由于DR模式的调度器仅做MAC地址的改写,所以调度器LB就不能改写目标端口,那么RS服务器就得使用和VIP相同的端口提供服务。

实验环境:

真实主机: 172.25.4.250
vip: 172.25.4.100
vs1: 172.25.4.1
vs2: 172.25.4.2
rs1: 172.25.4.3
rs2: 172.25.4.4

在server1上:
由于yum仓库的包不够,是因为6.5的版本默认一些包不允许被下载,需要往yum仓库里加东西


安装ipvsadm工具

给网卡添加ip

添加策略

[root@server1 ~]# yum install -y ipvsadm
[root@server1 ~]# ip addr add 172.25.15.100 dev eth0 添加虚拟ip vs
[root@server1 ~]# ipvsadm -A -t 172.25.15.100:80 -s rr 添加策略
[root@server1 ~]# ipvsadm -a -t 172.25.15.100:80 -r 172.25.15.2:80 -g
[root@server1 ~]# ipvsadm -a -t 172.25.15.100:80 -r 172.25.15.3:80 -g
[root@server1 ~]# ipvsadm -ln #查看策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.25.15.100:80 rr
-> 172.25.15.2:80 Route 1 0 0
-> 172.25.15.3:80 Route 1 0 0
[root@server1 ~] ipvsadm -lnc 查看访问记录


在server3和server4中,分别下载httpd并开启。配置默认发布文件为(server3)(server4)并启动httpd



测试:物理机
curl 172.25.4.100 访问失败。


但是你会发现随着,你访问次数的增多,ipvsadm -lnc查看连接状态,发现有连接信息,这样子就说明了调器配置成功


所以我们需要为后端服务器添加虚拟地址

server4同server3一样的操作

我们会发现此时在物理机上作测试就成功了




通过以上测试,我们会发现,当真机上的arp缓存清除掉后,调度器的策略就失效了,客户端会直接访问后端服务器


由于上个测试的原因,所以我们需要隐藏后端服务器的vip,这样客户端就无法直接访问后端服务器了。由于DR模式工作在数据链路层,没有经过路由器,所以vs后人rs必须在同一个网段,所以我们需要隐藏rs上的vip
所以我们需要通过arptables_jf工具更改策略


写策略并且保存

在真机上测试

在调度器上查看

健康检查

ldirectord是专门为LVS监控而编写的,用来监控lvs架构中服务器池(server pool)的服务器状态
ldirectord运行在IPVS节点上,ldirectord作为一个守护进程启动后会对服务器池中的每个真实服务器发送请求进行监控,如果服务器没有响应ldrectord的请求,那么ldrectord认为改服务器不可用,ldirectord会运行ipvsadm对IPVS表中该服务器进行删除,如果等下次在及检测有相应则通过ipvsadm进行添加。


安装ldirectord

安装完成后就需要修改配置文件了



开始测试,测试之前,需要在调度器上安装阿帕器,并打开,这样子为了让结果更加明显。(当后端服务器全部挂掉,调度器会作为最后一个服务器)

server3httpd关掉后

server4也关掉后的结果,左边是在server1上看,右边是在真机上访问

启动所有后端服务器的httpd,用真机访问


lvs+keepalived实现服务高可用

server1上关闭ldirectord


关闭ld

解压

接下来就要编译源码了,初次编译源码不成功,发现是缺少gcc编译器,于是安装gcc。

!编译成功
make && make install




这是一个手动安装的步骤
配置server2,
yum install ipvsadm mailx -y
把server1的yum仓库文件和编译好的文件拷贝过去。
创建如server1一般创建链接。
更改配置文件

启动。
在server1上关掉keep服务。

测试:


后端服务器全开时候

[图片上传失败...(image-e27165-1538141022954)]

测试的结果:当改变配置文件并且把模式改为backup时,server2会作为备用调度器,当server1停止,server2会自动配置虚拟ip并且作为调度器,并且具有负载均衡的功能。并借该软件还具备健康检查的功能。当所有后端服务器停止后,不会显示server2中httpd共享的内容。


lvs+keepalived的应用:不同服务互为主备。

当server1运行时,备用机一直处于空闲状态,比较浪费资源,我们可以开启两个服务,server1为第一个服务的主机和第二个服务的备机,server2为第一个服务的备机和第二个服务的主机.

首先,在后端服务器上,下载vsftpd并且开启。
然后,我们要把server2调度器变成ftp服务的主备调度器。这样就需要配置修改server2和server1的配置文件。

配置文件中分别添加如下内容

然后在server2中创建对于新的vip的arp策略

此时就完成了不同的服务互为主备的设置了。。。

你可能感兴趣的:(LVS----DR直接路由模式)