热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LVS四种集群模式:NAT、DR、TUN、FULLNAT介绍

LVS四种集群模式:NAT、DR、TUN、FULLNAT介绍Cluster:集群,为解决某个特定问题将多台计算机组合起来形成的单个系统L
LVS四种集群模式:NAT、DR、TUN、FULLNAT介绍

Cluster:集群,为解决某个特定问题将多台计算机组合起来形成的单个系统
LB:Load Balancing,负载均衡,多个主机组成,每个主机只承担一部分访问请求

LVS负载均衡核心概念

LVS:Linux Virtual Server,负载调度器,内核集成,工作在传输层,四层负载均衡开源软件,可以实现Linux平台下的负载均衡, 由章文嵩博士(当前阿里云产品技术负责人)在1998年5月创立,阿里的四层SLB(ServerLoad Balance)是基于LVS+keepalived实现。

LVS集群类型中的术语:
VS:Virtual Server,Director Server(DS),Dispatcher(调度器),Load Balancer
RS:Real Server(lvs),upstream server(nginx),backend server(haproxy)
CIP:Client IP
VIP:Virtual serve IP,VS外网的IP
DIP:Director IP,VS内网的IP
RIP:Real server IP
访问流程&#xff1a;CIP <–> VIP &#61;&#61; DIP <–> RIP

LVS集群的四种工作模式

LVS-NAT&#xff1a;修改请求报文的目标IP&#xff0c;多目标IP的DNAT
LVS-DR&#xff1a;操纵封装新的MAC地址
LVS-TUN&#xff1a;在原请求IP报文之外新加一个IP首部
LVS-FULLNAT&#xff1a;修改请求报文的源和目标IP

1、LVS的NAT模式

LVS-NAT&#xff1a;本质是多目标IP的DNAT&#xff0c;通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发

NAT模式的特点&#xff1a;
&#xff08;1&#xff09;RIP和DIP应在同一个IP网络&#xff0c;且应使用私网地址&#xff1b;RS的网关要指向DIP
&#xff08;2&#xff09;请求报文和响应报文都必须经由Director转发&#xff0c;Director易于成为系统瓶颈
&#xff08;3&#xff09;支持端口映射&#xff0c;可修改请求报文的目标PORT
&#xff08;4&#xff09;VS必须是Linux系统&#xff0c;RS可以是任意OS系统

在这里插入图片描述

2、LVS的DR模式

LVS-DR&#xff1a;Direct Routing&#xff0c;直接路由&#xff0c;LVS默认模式&#xff0c;应用最广泛&#xff0c;通过为请求报文重新封装一个MAC首部进行转发&#xff0c;源MAC是DIP所在的接口的MAC&#xff0c;目标MAC是某挑选出的RS的RIP所在接口的MAC地址&#xff1b;源IP/PORT&#xff0c;以及目标IP/PORT均保持不变

DR模式的特点&#xff1a;

&#xff08;1&#xff09;Director和各RS都配置有VIP

&#xff08;2&#xff09;确保前端路由器将目标IP为VIP的请求报文发往Director

  • 在前端网关做静态绑定VIP和Director的MAC地址
  • 在RS上使用arptables工具

arptables -A IN -d $VIP -j DROP
arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP

  • 在RS上修改内核参数以限制arp通告及应答级别

/proc/sys/net/ipv4/conf/all/arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce

&#xff08;3&#xff09;RS的RIP可以使用私网地址&#xff0c;也可以是公网地址&#xff1b;RIP与DIP在同一IP网络&#xff1b;RIP的网关不能指向DIP&#xff0c;以确保响应报文不会经由Director

&#xff08;4&#xff09;RS和Director要在同一个物理网络

&#xff08;5&#xff09;请求报文要经由Director&#xff0c;但响应报文不经由Director&#xff0c;而由RS直接发往Client

&#xff08;6&#xff09;不支持端口映射&#xff08;端口不能修改&#xff09;

&#xff08;7&#xff09;无需开启 ip_forward

&#xff08;8&#xff09;RS可使用大多数OS系统

在这里插入图片描述

3、LVS的TUN模式

转发方式&#xff1a;不修改请求报文的IP首部&#xff08;源IP为CIP&#xff0c;目标IP为VIP&#xff09;&#xff0c;而在原IP报文之外再封装一个IP首部&#xff08;源IP是DIP&#xff0c;目标IP是RIP&#xff09;&#xff0c;将报文发往挑选出的目标RS&#xff1b;RS直接响应给客户端&#xff08;源IP是VIP&#xff0c;目标IP是CIP&#xff09;

TUN模式的特点&#xff1a;

&#xff08;1&#xff09;RIP和DIP可以不处于同一物理网络中&#xff0c;RS的网关一般不能指向DIP&#xff0c;且RIP可以和公网通信。也就是说集群节点可以跨互联网实现。DIP,&#xff0c;VIP&#xff0c;RIP可以是公网地址

&#xff08;2&#xff09;RealServer的tun接口上需要配置VIP地址&#xff0c;以便接收director转发过来的数据包&#xff0c;以及作为响应的报文源IP

&#xff08;3&#xff09;Director转发给RealServer时需要借助隧道&#xff0c;隧道外层的IP头部的源IP是DIP&#xff0c;目标IP是RIP&#xff0c;而RealServer响应给客户端的IP头部是根据隧道内层的IP头分析得到的&#xff0c;源IP是VIP&#xff0c;目标IP是CIP

&#xff08;4&#xff09;请求报文要经由Director&#xff0c;但响应不经由Director&#xff0c;响应由RealServer自己完成

&#xff08;5&#xff09;不支持端口映射

&#xff08;6&#xff09;RS的OS须支持隧道功能

应用场景:

一般来说&#xff0c;TUN模式常会用来负载调度缓存服务器组&#xff0c;这些缓存服务器一般放置在不同的网络环境&#xff0c;可以就近折返给客户端。在请求对象不在Cache服务器本地命中的情况下&#xff0c;Cache服务器要向源服务器发送请求&#xff0c;将结果取回&#xff0c;最后将结果返回给用户。

LAN环境一般多采用DR模式&#xff0c;WAN环境虽然可以用TUN模式&#xff0c;但是一般在WAN环境下&#xff0c;请求转发更多的被haproxy/nginx/DNS等实现。因此&#xff0c;TUN模式实际应用的很少&#xff0c;跨机房的应用一般专线光纤连接或DNS调度

4、LVS的FULLNAT模式

通过同时修改请求报文的源IP地址和目标IP地址进行转发

CIP --> DIP
VIP --> RIP

FULLNAT模式的特点&#xff1a;

&#xff08;1&#xff09;VIP是公网地址&#xff0c;RIP和DIP是私网地址&#xff0c;且通常不在同一IP网络&#xff1b;因此&#xff0c;RIP的网关一般不会指向DIP

&#xff08;2&#xff09;RS收到的请求报文源地址是DIP&#xff0c;因此&#xff0c;只需响应给DIP&#xff1b;但Director还要将其发往Client

&#xff08;3&#xff09;请求和响应报文都经由Director

&#xff08;4&#xff09;相对NAT模式&#xff0c;可以更好的实现LVS-RealServer间跨VLAN通讯

&#xff08;5&#xff09;支持端口映射

注意&#xff1a;此类型kernel默认不支持

5、LVS工作模式总结和比较


NATTUNDR
Real ServeranyTunnelingNon-arp device
Real server networkprivateLAN/WANLAN
Real server numberlow (10~20)High (100)High (100)
Real server gatewayload balancerown routerown router
优点端口转换WAN性能最好
缺点性能瓶颈要求支持隧道&#xff0c;不支持端口转换不支持跨网段和端口转换

LVS-NAT与LVS-FULLNAT&#xff1a;

  • 请求和响应报文都经由Director
  • LVS-NAT&#xff1a;RIP的网关要指向DIP
  • LVS-FULLNAT&#xff1a;RIP和DIP未必在同一IP网络&#xff0c;但要能通信

LVS-DR与LVS-TUN&#xff1a;

  • 请求报文要经由Director&#xff0c;但响应报文由RS直接发往Client
  • LVS-DR&#xff1a;通过封装新的MAC首部实现&#xff0c;通过MAC网络转发
  • LVS-TUN&#xff1a;通过在原IP报文外封装新IP头实现转发&#xff0c;支持远距离通信

推荐阅读
  • NSD cisco高级路由与交换技术2014.8.12
    实验01:DHCP服务的应用实验目标:通过建立DHCP服务,给计算机自动分配地址实验环境:实验步骤:一、配置计算机pc8pc ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • IP经常分为内网和外网的,内网IP一般是有路由器分配的,尤其是想公司可能都有各自的内网IP,公用的公网IP。查询内网IP的通用方法是通过doc指令来查询,如ipconfig或者ipconfigall ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • 1、etcnginxconf.ddefault.conf,添加如下信息:location{try_files$uri$urirouter;rootho ... [详细]
  • pc电脑如何投屏到电视?DLNA主要步骤通过DLNA连接,使用WindowsMediaPlayer的流媒体播放举例:电脑和电视机都是连接的 ... [详细]
  • 动态多点××× 单云双HUB
    动态多点是一个高扩展的IPSEC解决方案传统的ipsecS2S有如下劣势1.中心站点配置量大,无论是采用经典ipsec***还是采用greoveripsec多一个分支 ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了在Cpp中将字符串形式的数值转换为int或float等数值类型的方法,主要使用了strtol、strtod和strtoul函数。这些函数可以将以null结尾的字符串转换为long int、double或unsigned long类型的数值,且支持任意进制的字符串转换。相比之下,atoi函数只能转换十进制数值且没有错误返回。 ... [详细]
author-avatar
天凉好个秋骄阳_213
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有