【博客679】LVS NAT模式与FULLNAT模式原理与配置差别

news/2025/3/10 21:04:57/

LVS NAT模式与FULLNAT模式原理与配置差别

注意:

LVS NAT模式是LVS原生的一种工作方式,而FULLNAT是在NAT模式下通过配置SNAT来
实现FULLNAT的,而且配合SNAT这部分是靠我们自己来实现的

1、LVS NAT模式原理与特点

在这里插入图片描述

在这里插入图片描述
NAT模式的数据包请求流程:

  • 1、当用户请求到达 Director Server,此时请求的数据报文会先到内核空间的 PREROUTING 链。 此时报文的源 IP 为 CIP,目标 IP 为 VIP
  • 2、PREROUTING 检查发现数据包的目标 IP 是本机,将数据包送至 INPUT 链
  • 3、IPVS 比对数据包请求的服务是否为集群服务,若是,修改数据包的目标 IP 地址为后端服务器 IP,然后将数据包发至 POSTROUTING 链。 此时报文的源 IP 为 CIP,目标 IP 为 RIP
  • 4、POSTROUTING 链通过选路,将数据包发送给 Real Server
  • 5、Real Server 比对发现目标为自己的 IP,开始构建响应报文发回给 Director Server。 此时报文的源 IP 为 RIP,目标 IP 为 CIP
  • 6、Director Server 在响应客户端前,此时会将源 IP 地址修改为自己的 VIP 地址,然后响应给客户端。 此时报文的源 IP 为 VIP,目标 IP 为 CIP

NAT模式特点:

  • RS 应该使用私有地址,RS 的网关必须指向 DIP
  • DIP 和 RIP 必须在同一个网段内
  • 请求和响应报文都需要经过 Director Server,高负载场景中,Director Server 易成为性能瓶颈
  • 支持端口映射
  • RS 可以使用任意操作系统

2、为什么需要LVS FULLNAT模式

LVS NAT模式下,一般需要设置RS 的网关必须指向 DS:
因为RS收到的包的源ip是client ip,如果不设置RS 的网关必须指向 DS,默认将包送回DS,再由DS回复给client的话,那么RS直接回给client就会有问题,因为client发出的时候目的ip是vip,不是RS的ip,那么此时client对RS直接回过来的包会回复RST来终止这个连接,因为在client看来,不认为这个包是自己发出去的请求包的回包

如果采用LVS NAT + MASQUERADE实现FULLNAT的话,则不会有这个问题,因为RS看到的ip是DS的ip,也就是DS对client和对RS实现了双边连接,从而达到FULLNAT目的。虽然NAT模式也是RS流量都回给DS的,但是得将RS的默认网关设置为DS,这样有两个问题:

  • 需要操作RS(有时候RS你没有权限操作,有可能是别人是server,你是LB提供方)
  • 如果一个RS同时是多个DS的后端,这时候你无法配置一个RS有多个默认网关,而且你无法区分流量要给哪个DS

因此如果你是LB的提供方,你提供vip和负载均衡能力的时候只能使用FULLNAT,从而实现对于client和RS都无感知!

3、LVS NAT配合MASQUERADE实现FULLNAT要注意的地方

1、需要开启两个内核特性:

  • net.ipv4.ip_forward
  • net.ipv4.vs.conntrack

2、需要添加MASQUERADE

iptables -t nat -A POSTROUTING -m ipvs --vaddr xxxx --vport xxxxx -j MASQUERADE

3、参数的作用参考之前的博文:

  • 【博客514】k8s中net.ipv4.ip_forward=1的意义
  • 【博客607】linux路由过程分析与net.ipv4.ip_forward参数
  • 【博客578】LVS NAT配合MASQUERADE实现FULLNAT的场景,及此场景下net.ipv4.vs.conntrack参数的重要作用

4、LVS NAT模式下为什么不需要开启net.ipv4.ip_forward和net.ipv4.vs.conntrack

原因是LVS NAT模式自己实现了一套连接跟踪机制,原理如下:

  • 【博客588】ipvs nat模式下独立于iptables与conntrack的连接跟踪表和NAT机制

http://www.ppmy.cn/news/629573.html

相关文章

【Navicat Premium 16 汉化包】

解压复制 汉化文件夹 放到 /Applications/Navicat Premium.app/Contents/Resources汉化完成 PS:这个 zh-Hans.lproj 汉化文件是从 Navicat Premium 官方中文版提取 无毒无害 Navicat 16汉化包 提取码: 36tf

AD18安装教程 附软件安装包和汉化包

附软件安装包:https://pan.baidu.com/s/1l9Eo9Bc05A3_os99YdYJoQ 1、解压打开AD18文件夹 2、点击运行AD18Setup 3、进入安装界面,点击NEXT 4、点击 I accept,然后点击NEXT 5、进入功能界面设置全选,点击NEXT 6、选择安装位置…

青翼自研--4通道DAC播放子卡产品数据手册

FMC131是一款4通道3GSPS采样率或者2通道6GSPS采样率16位DA播放FMC子卡模块,该板卡为FMC标准,符合VITA57.4规范,可以作为一个理想的IO模块耦合至FPGA前端,16通道的JESD204B接口通过FMC连接器连接至FPGA的高速串行端口GTH。插值模式…

【centos】centos安装Git

1、安装编译和依赖所需的软件包 # 安装git依赖的软件包 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel # 安装编译用到的软件包 yum install gcc perl-ExtUtils-MakeMaker2、下载 安装 下载、解压 # 下载 wget https://www.kernel.org/pub/so…

戴尔SupportAssistLauncher3.4.1

链接:https://pan.baidu.com/s/1rX12-ahfe8n6UfVb8Q_LJA 提取码:8sia

维修Dell R920服务器黄灯VLT0304梭哈

到深圳梭哈一台DELL PowerEdge R920服务器液晶屏报错黄灯代码VLT0304 CPU2 CSA PG供电异常问题; 客户信息:中国,广东省,深圳市,福田区,万科富春东方大厦xxxx 大概故障情况:DELL R920服务器液晶屏…

Dell U2518D显示器拆解

5月份数码港拿的,7月突然黑屏。 当时没找售后,随便找了科技市场的维修,垃圾老板不会拆,把屏弄烂了,还说拿去屏就烂了。 索性拿回来拆了,看看几千块买的都是什么东西。

算法模板互链整理

一,爬虫V1 利用搜索多个字符串的程序,搜索所有接口。再手动整理一下得到: (1)OJ aijiMulti 剑指 Offer 16 IsSameTree InvertTree CopyTree 剑指 Offer 28 MergeDelist 剑指 Offer 36 IntToStr 剑指 Offer 45 …