DR模式
lvs的三种模式:nat 地址转换
DR 直接路由模式
tun 隧道模式
DR模式的特点:
调度器在整个lvs集群当中是最重要的,在nat模式下,即负责接收请求,同时根据负责负载均衡的算法转发流量,响应发送给客户端。
DR模式:调度器依然负责接收请求,同时也根据负载均衡算法转发流量到RS,响应直接由RS响应给客户端。
直接路由 Direct Routing 是一种二层转发模式。二层转发的是数据帧。根据源mac地址和目的mac地址转发。
不会修改数据包源ip和目的ip.根据数据包mac地址进行转发。DR模式下,Ivs也是维护一个虚拟的ip地址,所有
的请求都是发送到这个vip,既然是走二层转发,当客户端的请求到达调度之后,根据负载均衡的算法选择一个
RS,修改vip服务器的目的mac变成RS的mac地址,RS处理完请求之后,根据报文当中客户端的源mac地址直
接把响应发送到客户端即可,不需要走调度器了。
1、调度器配置了vip,RS上也配置了vip地址。
vip地址冲突,调度器和RS都在同一网段,ARP通信的素乱,因为是整个局域广播,所有的设备都收到了。
怎么把lo这个回环的响应把它屏蔽掉,只有本机的物理ip地址响应。
修改内核参数:
arp_ignore=1
系统的物理ip地址才会响应ARP。lo不会响应ARP请求。
2、返回报文时,vip地址还在,怎么样能让客户端来接收到响应。
arp_announce=2
系统不使用ip数据包的源地址来响应ARP地址,直接发送物理接口的ip地址
节点都武器的配置:
DR模式的实现:
nginx1 RS1 192.168.65.10
nginx2 RS2 192.168.65.20
vip 19.168.65.100
test41 调度器 192.168.65.41
test42 客户端 192.168.65.42
route add -host 192.168.65.100 dev lo:0
设置ip地址为192.168.65.100的添加到回环接口,作为lvs的vip。通过路由的模式转发到RS
能让vip识别到真实的服务器。
net.ipv4.conf.lo.arp ignore =1
#设置回环接口忽略来自任何接口的ARP请求
net.ipv4.conf.lo.arp announce =2
#设置回环地址仅仅公告本地的ip地址,但是不响应ARP请求
net.ipv4.conf.all.arp iqnore =1
#设置所有接口忽略来自任何接口的ARP请求
net.ipv4.conf.all.arp announce =2
#设置所有接口仅仅公告本地的ip地址,但是不响应ARP请求
lvs的三种工作模式 | NAT | DR | TUN |
---|---|---|---|
优化 | 地址转换,配置简单 | 性能好 | WAN可以实现较远距离的数据包转发 |
缺点 | 性能瓶颈 | 不支持跨网段 | 专用通道,需要开通vpn(花钱 |
RS的要求 | 无限制 | 必须要禁止非物理接口的ARP响应 | 要支持隧道模式 |
RS的数量 | 10-20台 | 100台 | 100台 |
面试题
简述lvs的三种模式和区别?
lvs的三种工作模式 | NAT | DR | TUN |
---|---|---|---|
优化 | 地址转换,配置简单 | 性能好 | WAN可以实现较远距离的数据包转发 |
缺点 | 性能瓶颈 | 不支持跨网段 | 专用通道,需要开通vpn(花钱 |
RS的要求 | 无限制 | 必须要禁止非物理接口的ARP响应 | 要支持隧道模式 |
RS的数量 | 10-20台 | 100台 | 100台 |
LVS的工作模式及其工作过程:
LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)。
1、NAT模式(VS-NAT)
原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。 然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。
真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后, 把包的源地址改成虚拟地址(VIP)然后发送回给客户端。
优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。
缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,
因此负载均衡器将成为整个系统的瓶颈。
2、直接路由模式(VS-DR)
原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。 然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。
真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。
优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。
所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。
3、IP隧道模式(VS-TUN)
原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。 然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。
真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。
优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。
所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持"IP Tunneling"。
面试题
keepalive的脑裂怎么解决?
lvs集群当中的高可用架构,只是针对调度器的高可用。
基于vrrp来实现调度器的主和备。
高可用的HA架构
主调度器和备调度器(也可以多台)
在主调度器正常工作的时候,备完全处于冗余状态(待命)。不参与集群的运转,只有当主调度器出现故障时,备才会承担主调度器的作用。主调度器恢复功能后,主继续做为集群中的入口,备继续处于冗余状态。
取决于优先级决定
keepalive基于vrrp协议来实现lvs高可用的方案。
1、组播地址:224.0.0.18根据组播地址来进行通信,主和备之间发送报文。确定对方是否存活。
2、根据优先级的大小来确定主和备的位置
3、故障切换,主挂了,备来继续工作;主恢复了,备继续等待。
4、主和备之间的切换是vip地址的切换。keepalive是专门为了lvs而出现,但是不是lvs的专用。
test1 192.168.65.41主
test2 192.168.65.42备
vip 192.168.65.100
nginx1:192.168.65.10
nginx2:192.168.65.20
客户端:192.168.65.43
lvs和nginx做负载均衡的区别:
lvs是四层转发 内核态 ip+端口 四层代理
nginx 四层代理也可以七层代理
lvs(DR模式)+nginx+tomcat
lvs实现四层转发+nginx实现七层代理(动态)
访问lvs的ip地址可以实现动静分离