lvs工作方式——DR模式

1、特点

调度器在整个lvs集群当中是最重要的,在nat模式下,既负责接收请求,同时根据负载均衡的算法转发流量,响应发送给客户端。

DR模式下:调度器依然负责接收请求,同时页根据负载均衡算法转发流量到RS,响应直接由RS响应给客户端。

直接路由:Direct Routing,是一种二层转发模式,二层转发的是数据帧,根据源mac地址和目的mac地址进行转发。不会修改数据包的源ip和目的ip,根据数据包的mac地址进行转发。

在DR模式下,lvs也是维护一个虚拟的ip地址,所有的请求都是发送到vip。既然是走二层转发,当客户端的请求达到调度器之后,根据负载均衡的算法选择一个RS,修改vip服务器的目的mac变成RS的mac地址,RS处理完请求之后,根据报文当中客户端的源mac地址直接把响应发送到客户端即可,不需要走调度器了。

2、问题

1、调度器配置了vip,RS上也配置了vip

vip地址冲突,调度器和RS都在同一网段,造成ARP通信的紊乱。因为是整个局域网广播,所有的设备都收到了,怎么把lo'这个回环的响应屏蔽掉,只有本机的物理ip地址响应

修改内核参数:arp_ignore=1

系统的物理ip地址才会响应请求,lo不会响应ARP请求

2、返回报文时,vip地址还在,怎么样能让客户端来接收到响应

设置arp_announce=2,系统不使用ip数据包的源地址来响应ARP请求,直接发送物理接口的ip地址

3、DR模式的实现

nginx1 RS1 192.168.230.60

nginx2 RS2 192.168.230.70

vip:192.168.230.100

test1 调度器 192.168.230.20

test2 客户端 192.168.230.30

实验步骤:

关闭防火墙和安全机制

加载调度器的内核

 modprobe ip_vs

 安装ipvsadm

yum -y install ipvsadm*

 

 创建vip地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33

 

开启虚拟网卡

 vim /etc/sysconfig/network-scripts/ifcfg-ens33

ifconfig查看

 修改调度器的响应参数

[root@localhost network-scripts]# vim /etc/sysctl.conf

 

立即生效

 [root@localhost network-scripts]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost network-scripts]# 

 分配策略,先清空

[root@localhost opt]# ipvsadm -C

 先将空的ipvs保存

[root@localhost opt]# ipvsadm-save /etc/sysconfig/ipvsadm

 指定vip地址,算法为rr

[root@localhost opt]# ipvsadm -A -t 192.168.230.100:80 -s rr

 添加真实服务器,使用DR模式

[root@localhost opt]# ipvsadm -a -t 192.168.230.100:80 -r 192.168.230.60:80 -g
[root@localhost opt]# ipvsadm -a -t 192.168.230.100:80 -r 192.168.230.70:80 -g

保存并重启

[root@localhost opt]# ipvsadm-save /etc/sysconfig/ipvsadm
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 192.168.230.60:http -g -w 1
-a -t localhost.localdomain:http -r 192.168.230.70:http -g -w 1

[root@localhost opt]# systemctl restart ipvsadm

查看

 编辑nginx1/2的index.html,重启nginx

 

 访问正常

 

4、lvs的三种工作模式

NATDRTUN
优点地址转换,配置简单性能最好WAN,可以实现较远距离的数据包转送
缺点性能瓶颈不支持跨网段专用通道,需要开通vpn(花钱
RS的要求无限制必须要禁止非物理接口的ARP响应要支持隧道模式
RS的数量10-20台100台100台

修改vip的轮询算法:

ipvsadm -E -t 192.168.230.100:80 -s wrr

修改权重:

ipvsadm -e  -t 192.168.230.100:80 -r 192.168.230.60:80 -w 3

### LVS NAT模式DR模式的区别及使用场景 #### 工作原理区别 LVS-NAT模式下,数据包的源IP和目标IP在转发过程中会发生变化。所有进出Real Server的数据包都必须经过负载调度器,这意味着所有的流量都需要通过Director设备完成地址转换[^2]。相比之下,在LVS-DR(Direct Routing)模式中,客户端请求到达Director后,仅修改数据包的目的MAC地址为选定Real Server的MAC地址,而IP头保持不变。因此,Real Server可以直接响应客户端而不必再经过Director。 #### 性能表现差异 由于NAT模式下的所有通信都要经由Director进行SNAT/DNAT操作,这会增加Director本身的CPU负担以及网络带宽消耗,尤其当业务量增大时可能成为瓶颈[^1]。而在DR模式里,除了初始连接建立阶段外,后续交互无需再次穿越Director,极大地减轻了其压力并提升了整体吞吐能力[^4]。 #### 配置复杂度分析 实现NAT模式较为简单直白,只需确保各节点能够正常访问即可满足基本需求;然而对于DR模式而言,则需要额外考虑诸如ARP抑制等问题——因为多个真实服务器共享同一VIP地址可能会引发广播风暴现象,所以通常还需要配置静态路由或者借助工具如`arptables`来进行管理控制[^3]。 #### IP规划灵活性对比 采用NAT架构时,Real Servers不必拥有公网IP地址,它们可以通过私有网段接入内部局域网并与外界隔离开来,增强了安全性同时也简化了IP资源分配过程[^5]。而对于DR方案来说,虽然同样支持跨子网部署但要求每台RS至少具备一个可被外部直接寻址的有效接口以便独立回应客户查询请求。 #### 安全性和隔离性考量 鉴于NAT结构天然形成了两层防护屏障(即前端代理加后端隐藏),故此更有利于抵御某些特定类型的攻击行为比如DDoS等威胁因素的影响程度降低不少; 而DR则暴露得更多一些因为它允许绕过中间件直达最终目的地从而存在潜在风险隐患如果缺乏妥善的安全策略的话. ```bash # 示例命令展示如何设置iptables规则以标记特定流量供进一步处理 [root@lvs ~]# iptables -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 66 ``` 以上脚本片段展示了在一个典型的基于Linux平台实施高级功能定制化实例之一 —— 使用防火墙标签配合多端口匹配机制精确区分不同类型的工作负荷进而优化资源配置效率的同时也提高了运维自动化水平[^4]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值