码迷,mamicode.com
首页 > 其他好文 > 详细

LVM配置(DR模式)

时间:2018-09-09 22:10:27      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:work   active   log   均衡器   请求报文   color   ipvsadm   永久   均衡   

**LVS-DR模式工作原理:
原理:负载均衡器和RS都使用同一个IP对外服务但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上

优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

1), DR模式, 全程目标地址, 原地址不变, 因为DR模式工作于2层
2), 请求报文从客户端发出:
    原地址: CIP   源MAC  CMAC    目标地址: VIP   目标mac: xxx
3), 请求报文到达机房防火墙之后, 会在防火墙的内网口进行广播, 找到VIP在哪儿 然后把包丢出去
    原地址: CIP   目标地址: VIP
    源MAC: FMAC    目标MAC: VMAC
4), 报文到达director之后, 解包, 发现目标mac是自己, 开始解析这个报文 
    处理完成, 通过自定义的一个调度算法, 转发报文到达其中一台RS上
    原地址: CIP   目标地址: VIP
    源mac: DMAC    目标MAC: RMAC
5), 数据报文到达RS之后, 进行节封装, 发现目标mac是自己, 开始解析, 发现VIP也有,开始处理
6), 处理完成之后, 数据直接通过RS流向客户端**

拓扑:VIP=192.168.2.133 DIP=192.168.2.130
RIP1=192.168.2.131 RIP2=192.168.2.132
1.分发器添加生成ens33:1配置文件

[root@Qj01 network-scripts]# cp ifcfg-ens33 ifcfg-ens33:1
[root@Qj01 network-scripts]# vim ifcfg-ens33:1

技术分享图片
[root@Qj01 network-scripts]# ifconfig
技术分享图片

2.分发器配置LVS规则:

[root@Qj01 network-scripts]# ipvsadm -A -t 192.168.2.133:80 -s rr 
[root@Qj01 network-scripts]# ipvsadm -a -t 192.168.2.133:80 -r 192.168.2.131 -g  
[root@Qj01 network-scripts]# ipvsadm -a -t 192.168.2.133:80 -r 192.168.2.132 -g  

[root@Qj01 network-scripts]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.133:80 rr
-> 192.168.2.131:80 Route 1 0 0
-> 192.168.2.132:80 Route 1 0 0
[root@Qj01 network-scripts]# ipvsadm -S > /etc/sysconfig/ipvsadm

3.两台RS服务器上添加回环接口

[root@Qj02 ~]# ifconfig lo:1 192.168.2.133 netmask 255.255.255.255 
[root@Qj03 ~]# ifconfig lo:1 192.168.2.133 netmask 255.255.255.255

4.两台RS服务器上关闭ARP转发
同一个广播域: 配置了多个相同的VIP 是不允许的, 要想实现,就必须让外面的网络, 无法发现这个VIP的存在
因此 在Linux里面, 可以修改内核参数, 实现接口IP的广播不响应、不广播
arp_ignore = 1 表示只回答目标IP是访问本地网络对应接口的arp请求
arp_announce = 2 只宣告本机网卡直连网络所在的ip的arp广播
(1)临时生效

[root@Qj02 ~]#  echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore 
[root@Qj02 ~]# echo 2 >  /proc/sys/net/ipv4/conf/ens33/arp_announce
[root@Qj03 ~]#  echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore 
[root@Qj03 ~]# echo 2 >  /proc/sys/net/ipv4/conf/ens33/arp_announce

(2)永久生效:(注意realserver的实际link ok的网卡是不是ens33)

[root@Qj02 ~]# vim /etc/sysctl.conf #最后添加
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2
[root@Qj03 ~]# vim /etc/sysctl.conf #最后添加
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2

或:
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

安装web页面测试

**注意:
网络转发:
基于2层的数据报文的转发, 要比基于3层的网络转发效率要高

lvs-DR 是基于2层的转发, 所以在LVS中所有的模式, 效率是最好的

1):基于mac的数据报文转发, 是效率最好的, 但是是根据交换机的MAC地址表来实现的
    MAC表主要告诉你, 到xxxx地方该走那个端口
    如果交换不知道对方在哪儿, 这个时候, 他就要进行广播, 就问xxxx在哪儿, 如果对应的设备给了回应, 那么交换机也就更新了自己的MAC地址表 记录到xxxx需要走这个端口     
2):2层设备不具有路由功能, 那么广播也就不具有跨路由的功能, 所有要实现mac地址广播, 必须在同一物理网段
3):vlan具有隔离广播的功能, 所有要能处理mac地址广播, 就应该在同一个VLAN中

因此: 如果要实现LVS-DR模式
    1): 所有的设备应该在同一个物理网段
    2): 所有的设备都应该在同一个广播域中**

LVM配置(DR模式)

标签:work   active   log   均衡器   请求报文   color   ipvsadm   永久   均衡   

原文地址:http://blog.51cto.com/13719714/2172972

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!