设为首页 收藏本站
查看: 718|回复: 0

[经验分享] LVS的DR工作模式

[复制链接]
发表于 2019-1-4 09:45:20 | 显示全部楼层 |阅读模式
LVS的DR模型

  或许你可以先看看最下面的关于ipvsadm命令介绍   (0 。0)~
  关于LVS:LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器。这就要说起一个技术大牛章文嵩博士了,章博士从98年发起到现在已经是一个很成熟了的项目了。使用LVS的目的是想实现一个高可用的linux集群,让它具有可扩展性和可操作性,让廉价的成本发挥最优的性能。IPVS实现负载均衡机制有三种,分别是NAT、TUN和DR,下面来试一试DR模型的负载均衡。
  LVS的NAT,DR和TNU模型简介:Virtual Server via Direct Routing
   要求:DR这种方式是三种负载调度机制中性能最高最好的,但是必须要求Director ServerReal Server都有一块网卡连在同一物理网段上。
  用直接路由技术实现虚拟服务器。LVS的模型还有一种是NAT工作模式,NAT大意为地址转换的意思,一般用来把公网IP转换为私网IP,但是DR模型不涉及转换地址的问题。
  在DR模型中VS(虚拟服务器)和RS(real server真实的服务器)使用同一个IP来对外服务,但RS对IP的ARP保持静默,而VS接收所有的请求且全部分发给RS,在DR模型中VS只负责接收请求RS处理请求,且回应报文不经过VS这也是大大减轻了VS的负担。

  1.用户请求先到达VS的时候先进入PREROUTING链,此时报文源IP为客户端IP,目标为自己的IP。
  2.PREROUTING链检查发现目标为自己的IP之后发给INPUT链。
  3.IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址。
  4.由亍DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那举此时数据包将会发至Real Server。
  5.RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成后,将响应报文通过lo接口传送给eth0网卡然后吐外发出。 此时的源IP地址为VIP,目标IP为CIP
  6.响应报文到达客户端。
  DR的特点:
  1、保证前端路由将目标地址为VIP报文统统发给Director Server,而不是RS
  2、RS可以使用私有地址;也可以是公网地址,如果使用公网地址,此时可以通过亏联网对RIP迕行直接访问
  3、RS跟Director Server必项在同一个物理网络中
  4、所有的请求报文经由Director Server,但响应报文必须不能进过Director Server
  5、不支持地址转换,也不支持端口映射
  6、RS可以是大多数常见的操作系统
  7、RS的网关绝丌允许指吐DIP(因为我们丌允许他经过director)
  8、RS上的lo接口配置VIP的IP地址
  

  下面准备了三台机器实验,两个为RS一个为VS。
  在VS的上的配置:
  ifconfig  eth0:0 192.168.200.100 broadcast 192.168.200.100 netmask 255.255.255.255 up   #本身192.168.200.100这个地址是不存在的,绑定到了eth0上
  route add -host 192.168.200.100 dev eth0:0
  ipvsadm -A -t 192.168.200.100:80 -s rr   #添加一条虚拟主机的记录
  ipvsadm -a -t 192.168.200.100:80 -r 192.168.200.78:80 -g -w 1
  ipvsadm -a -t 192.168.200.100:80 -r 192.168.200.79:80 -g -w 1    #添加两条真实主机的的记录(IP78和79为真实主机的IP)
  好了现在该添加RS的命令了:
  ifconfig lo:0 192.168.200.100 broadcast 192.168.200.100  netmask 255.255.255.255 up #设置lo网卡IP
  route add -host 192.168.200.100  lo:0    #接收IP
  echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  #1 只回答目标IP地址是来访网络接口本地地址的ARP查询请求
  echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
  #关闭arp应答
  1: 仅在请求的目标IP 配置在本地主机的接收到请求报文的接口上时,才给予响应
  2 :必须避免将接口信息向非本网络进行通告
  两台RS都是同样的配置,配置完我在两台RS的nginx服务下写了个index.html的简单文件内容为echo centos78 > index.html 和echo centos78 > index.html来区别。
  




  访问相同的IP出现了不同的页面(专门让内容不一样好区分),说明实验成功了。
  

  

  关于ipvsadm命令:
  这个命令需要另外安装!!!!
  -A --add-service在服务器列表中新添加一条新的虚拟服务器记录
  -t 表示为tcp服务
  -u 表示为udp服务
  -s --scheduler 使用的调度算法, rr | wrr | lc | wlc | lblb | lblcr | dh | sh |
  sed | nq 默认调度算法是 wlc
  ipvsadm -A -t 192.168.1.2:80 -s wlc
  -a --add-server #在服务器表中添加一条新的真实主机记录
  -t --tcp-service 说明虚拟服务器提供tcp服务
-u --udp-service 说明虚拟服务器提供udp服务
-r --real-server 真实服务器地址
-m --masquerading 指定LVS工作模式为NAT模式
-w --weight 真实服务器的权值
-g --gatewaying 指定LVS工作模式为直接路由器模式(也是LVS默认的模式)
-i --ip 指定LVS的工作模式为隧道模式
-p 会话保持时间,定义流量呗转到同一个realserver的会话存留时间
-E –edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D –delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
-C –clear 清除内核虚拟服务器表中的所有记录。
-R –restore 恢复虚拟服务器规则
-S –save 保存虚拟服务器规则,输出为-R 选项可读的格式
-e –edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录
-d –delete-server 删除一条虚拟服务器记录中的某条真实服务器记录
-L|-l –list 显示内核虚拟服务器表
-Z –zero 虚拟服务表计数器清零(清空当前的连接数量等)
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659191-1-1.html 上篇帖子: LVS DR模式搭建 下篇帖子: LVS负载均衡之IPVSADM命令说明与轮询解释
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表