描述LVS-DR工作原理,并配置实现

一 DR模式

DR模式意为Direct Routing(直接路由),是调度器与实际服务器都有一块网卡连在同一物理网段上的情况。
而LVS-DR的工作原理就是:通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址,源IP/PORT,以及目标IP/PORT均保持不变。

1.1 lvs-dr流程图

在这里插入图片描述

1.2 lvs-dr 工作原理

1) Director和各RS都配置有VIP
(2) 确保前端路由器将目标IP为VIP的请求报文发往Director
在前端网关做静态绑定VIP和Director的MAC地址
在RS上使用arptables工具
arptables -A IN -d $VIP -j DROP      
arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP
在RS上修改内核参数以限制arp通告及应答级别
/proc/sys/net/ipv4/conf/all/arp_ignore  
/proc/sys/net/ipv4/conf/all/arp_announce 
(3)RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络; RIP的网关不能指向DIP,
以确保响应报文不会经由Director
(4)RS和Director要在同一个物理网络
(5)请求报文要经由Director,但响应报文不经由Director,而由RS直接发往 Client
(6)不支持端口映射(端口不能修败)
(7)RS可使用大多数OS系统

二 LVS-DR部署

2.1 服务器清单

服务器 ip VIP
director-server 192.168.233.150 192.168.233.145
RS1 192.168.233.160 192.168.233.145
RS2 192.168.233.147 192.168.233.145

2.2 在RS服务器上配置

1)安装nginx,可以正常访问
访问

[root@localhost html]# curl 192.168.233.160
<html><body><h1>RS1 192.168.233.160</h1></body></html>

[root@localhost html]# curl 192.168.233.147
R2 192.168.233.147

确保director-server可以正常访问RS的页面。

2)修改内核参数
这两个RS配置的VIP不对局域网做ARP通报和ARP请求响应,
同时配置路由,目标IP为VIP的报文转发至VIP所在接口,并在各RS上配置好VIP

为了配置方便我们可以写脚本,然后在RS上执行脚本即可

#/bin/bash
#date 2020.3

vip='192.168.233.145'
mask='255.255.255.255'
interface='lo:0'

case $1 in
start)
        echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
        echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
        echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
        ifconfig $interface  $vip netmask $mask broadcast $vip up
        route add -host $vip dev $interface
        ;;
stop)
        ifconfig $interface down
        echo 0 >/proc/sys/net/ipv4/conf/all/arp_announce
        echo 0 >/proc/sys/net/ipv4/conf/lo/arp_announce
        echo 0 >/proc/sys/net/ipv4/conf/all/arp_ignore
        echo 0 >/proc/sys/net/ipv4/conf/lo/arp_ignore
        ;;
*)
        echo "Usage:bash $0 start|stop"
        exit 1
        ;;
esac

如图查看

备注 192.168.168.233.145,netmask为32位

在这里插入图片描述

可以看到执行脚本后VIP和相关路由也都添加成功;
同样RS2也只需要把上面的脚本运行一遍

#### 2.3 在LVS服务器上配置VIP,定义集群服务
 lvs-dr模式不需要开启地址转发,ip_forward功能,因为director发给rs的数据包是修改过的包,不是原包,不经过ip_forward转发,而是经过修改后的mac根据l路由决策直接路由到rip

1)首先给director绑定VIP
 先查看地址
   在这里插入图片描述
 添加VIP

扫描二维码关注公众号,回复: 10768822 查看本文章
   ifconfig ens33:0  192.168.233.145  netmask 255.255.255.255 broadcast 192.168.233.145 up
   route add -host 192.168.233.145 dev ens33:0

在这里插入图片描述

2)在Director安装ipvsadm,并添加ipvsadm规则

[root@dr ~]# yum install -y ipvsadm
[root@dr ~]# ipvsadm -A -t 192.168.233.145:80 -s rr
[root@dr ~]# ipvsadm -a -t 192.168.233.145:80 -r 192.168.233.147 -g
[root@dr ~]# ipvsadm -a -t 192.168.233.145:80 -r 192.168.233.160 -g 
[root@dr ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.233.145:80 rr
  -> 192.168.233.147:80           Route   1      0          0         
  -> 192.168.233.160:80           Route   1      0          0 

[root@dr ~]service ipvsadm save
[root@dr ~]service ipvsadm restart

ipvsadm参数含义:


-C:清除已有规则。
-A:添加VIP服务,后跟服务的访问地址。
-t:TCP协议,还是UDP协议(-u)-s:负载均衡算法,rr表示RoundRobin。
-a:添加RealServer到VIP,后跟虚地址。
-r:添加RealServer到VIP,后跟实地址。
-g:透传模式(-g表示Direct Routing即DR模式,-i表示ipip封装即Tunneling模式,-m表示Network Access Translation即NAT模式)
-p:Session粘连,同一客户端的请求在一段时间内都负载到同一RealServer。

上规则表示添加一个集群服务192.168.233.145:80,调度算法是rr(轮询),在集群服务下添加了2个real server 分别是192.168.233.147和192.168.233.160,并且添加为DR类型

同一个局域网客户机下面进行测试,可以看到显示成功。

2.4 测试

[root@lvs ~]# curl http://192.168.233.145
test1 
[root@lvs ~]# curl http://192.168.233.145
test2
注意:DR模型中各主机上均需要配置VIP,解决地址冲突的方式有三种
 (1) 在前端网关做静态绑定 
 (2) 在各RS使用arptables
 (3) 在各RS修改内核参数,来限制arp响应和通告的级别
     限制响应级别:arp_ignore 
      0:默认值,表示可使用本地任意接口上配置的任意地址进行响应 
      1: 仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应
     限制通告级别:arp_announce 
      0:默认值,把本机所有接口的所有信息向每个接口的网络进行通告    
      1:尽量避免将接口信息向非直接连接网络进行通告 
      2:必须避免将接口信息向非本网络进行通告 
发布了77 篇原创文章 · 获赞 0 · 访问量 3232

猜你喜欢

转载自blog.csdn.net/liaowunonghen/article/details/105064461