当前位置:首页 » 《随便一记》 » 正文

【博客591】LVS的DR和NAT模式下要注意的缺陷

2 人参与  2023年02月03日 11:22  分类 : 《随便一记》  评论

点击全文阅读


LVS的DR和NAT模式下要注意的缺陷

1、DR模式和NAT模式的转发原理

在这里插入图片描述
在这里插入图片描述

2、LVS的DR和NAT模式下要注意的缺陷

缺陷1:DR模式下的realserver和 lvs的vip提供服务的端口必须一致。

例如vip的端口对外端口为 80,但后端服务的真实端口为8080,通过lvs的DR模式是实现不了的。

原因: 因为LVS的DR模式,改写的就是数据包的目的MAC地址,并不会对数据报文IP和端口地址层修改,所以就作不到端口改写了。

陷阱2:DR模式下,realserver和lvs不能在同一台机器上

原因: 假设lvs主服务器上的数据包发送给自己备份节点(也是realserver) eth0 接口。备lvs不能正常的被监听指定端口的程序所接收,因为数据包会首先先经过 ip_vs()来接受处理了.
不仅如此,备份节点还会将50%的机率将数据包转发给lvs主,这样一直主和备一直转发,就形成死循环了。所以客户端会发现,一次正常能请求,一次会出现超时的情况。

正确做法: realserver 和lvs需要在同一个vlan或者局域网下

陷阱3:DR模式下,Realserver 和LVS需要在同一个vlan或者局域网下?

原因: lvs改写的是mac地址的,基于mac地址的通讯方式是2层的,所以需要限制在一个vlan或者局域网下。

陷阱4:NAT模式下,NAT模式流量的入和出都需要通过lvs服务器

原因: NAT模式修改的目的端的IP地址,对公网的VIP,并不会下放到realserver上,所以后端的realserver的网关必须指向lvs地址。

陷阱5:NAT模式相比DR模式,性能和效率上会差一些

原因: NAT模式出入的数据包都需要通过lvs,必然导致数量大了后,成为性能瓶颈。

陷阱6:在DR模式下的ARP广播问题

在DR模式下时,会存在一个问题,所有的realserver和director都配置了VIP,从网络模型中,我们知道,最终传输的是mac地址,那么这个时候,到底谁的mac地址是准确的呢? 我们要保证请求的VIP必须是director,这样我们的负载均衡才是生效的,因此要在realserver上进行ARP抑制配置,禁止它处理外部的arp请求,也不允许自己向外部广播ARP数据

## 忽略收到的ARP请求## lo接口不对外广播ARP数据echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore            echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce          echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announcearp_ignore: 定义接收到ARP请求时的相应级别   0 -- 只要本地配置有相应地址,就给予响应   1 -- 仅回应目标IP地址为接收网卡本地地址的ARP请求   2 -- 只响应目标IP地址为接收网卡本地地址的ARP请求,并且arp请求的源IP必须和接收网卡同网段   4~7 -- 保留未使用   8 -- 不回应所有ARP请求arp_announce: 定义将自己的地址向外通告时的通告级别   0 -- 将本地任何接口上的任何地址向外通告   1 -- 试图仅向目标网络通告与其网络匹配的地址   2 -- 仅向与本地接口上地址匹配的网络进行通告

陷阱7:配置Keepalived使用lvs时,主备 director都包含rs,此时会出现循环转发

解决方法: 经过 director1 的包,如果 mac address 不是 director2 的,用 iptables 给包打 mark=i。经过 director2 的包,如果 mac address 不是 director1 的,用 iptables 给包打 mark=j 。同时配置 LVS,不用三元组(ip,port,protocol)来表示 virtual_server,而用 fwmark-service,keepalived 配置 lvs 使用 fwmark-service。 这样,如果是 director 转发过来的包,就不会进入 LVS 进行负载(防止两个 director 互相扔皮球,进入死循环),而是被 RS 服务处理。而客户端进来的包,就会进入 LVS 进行负载。

iptables  -t mangle -I PREROUTING -d $VIP -p tcp -m tcp --dport $VPORT -m mac ! --mac-source $MAC_Director2 -j MARK --set-mark 0x3 iptables  -t mangle -I PREROUTING -d $VIP -p tcp -m tcp --dport $VPORT -m mac ! --mac-source $MAC_Director1 -j MARK --set-mark 0x4#keealived configurationvirtual_server fwmark 3  {  # node2 配置 fwmark 4    delay_loop 10    lb_algo rr    lb_kind DR    protocol TCP      real_server RIP1 8080 {    weight 1    MISC_CHECK {        # some check configuration    }    }      real_server RIP2 8080 {    weight 1    MISC_CHECK {        # some check configuration        }    }

点击全文阅读


本文链接:http://m.zhangshiyu.com/post/52428.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 且向山水寻光景榜单(温北栀程野)
  • 当女配看见弹幕后,被病娇男主强制爱了高分佳作(江柠裴纪洲)全书浏览_当女配看见弹幕后,被病娇男主强制爱了高分佳作全书浏览
  • 「大事不好,我奶奶有厌女症」小说精彩节选推荐_[奶奶弟弟奥特曼]最新章节在线阅读
  • 当女配看见弹幕后,被病娇男主强制爱了江柠裴纪洲完本_当女配看见弹幕后,被病娇男主强制爱了(江柠裴纪洲)
  • 当女配看见弹幕后,被病娇男主强制爱了后续更新+番外(江柠裴纪洲),当女配看见弹幕后,被病娇男主强制爱了后续更新+番外
  • 且向山水寻光景现已上架(温北栀程野)_且向山水寻光景现已上架温北栀程野
  • 死后五年,我沉冤得雪潜心更新(李玲蓝李俊贤孟婷雅周铁龙)
  • 全书浏览如果不是因为爱免费+结局(夏希柠贺槐生)_如果不是因为爱免费+结局(夏希柠贺槐生)全书结局
  • [剥皮]小说后续在线免费阅读_「刘听明黄依月」全文在线阅读
  • 死后五年,我沉冤得雪现已上架(李玲蓝李俊贤周铁龙),死后五年,我沉冤得雪现已上架
  • 谁与你白头成眷/千缕月光碎于一地高分佳作(沈意欢陆沉舟林青绾)_谁与你白头成眷/千缕月光碎于一地高分佳作(沈意欢陆沉舟林青绾)
  • 情深不寿,旧恨蔓生免费+番外(赵澄音傅寒声)_情深不寿,旧恨蔓生免费+番外赵澄音傅寒声

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1