一、NAT模式

    NAT(Network Address Translation,网络地址转换)。数据包传输过程就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的源IP地址改为自己的IP。期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。它的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat和端口多路复用OverLoad(用的较多)。实质上是ip地址的转换。

   优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址。   

   缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢

二、NAT工作原理图

  整个请求过程示意:

  client发送request到LVS的VIP上,VIP根据负载算法选择一个Real-server,并记录连接信息到hash表中,然后修改 client的request的目的IP地址为Real-server的地址,将请求发给Real-server; Real-server收到request包后,发现目的IP是自己的IP,于是处理请求,然后发送reply给LVS; LVS收到reply包后,修改reply包的的源地址为VIP,发送给client; 从client来的属于本次连接的包,查hash表,然后发给对应的Real-server; 当client发送完毕,此次连接结束或者连接超时,那么LVS自动从hash表中删除此条记录。

三、NAT负载均衡的配置

   1)在server1中添加一块物理网卡eht1.

   ---> ip  link set  up  eth1              # 激活网卡设备

   ---> ip  addr add 172.25.2.3/24  dev eth1    # 添加ip

   ---> ip  addr

   2)修改内部路由设置

   打开ip转换功能:当servre1收到请求后,得到一个公网的ip,和目的主机server2和server3不在一个网段。所以要想数据发送给服务器,就必须对这个数据包进行ip转换,然后再进行数据的转发。处于安全考虑,linux系统默认是禁止数据包的ip地址转换的,所以,要配置linux系统的设置,打开系统的转发功能。

   --->  vim  /etc/sysctl.conf          # 只修改一行,把以下参数的默认值改为1即可

         net.ipv4.ip_forward = 1

   --->  sysctl  -p                     # 保存修改

   3)添加ipvsadm策略

   --->  ipvsadm  -A  -t  172.25.254.3:80  -s  rr

   --->  ipvsadm  -a -t 172.25.254.3:80 -r 172.25.2.2:80  -m

   --->  ipvsadm  -a -t 172.25.254.3:80 -r 172.25.2.3:80  -m

   --->  ipvsadm  -Ln

   4)在server2和server3中打开httpd服务(添加默认发布文件),并添加网关。

   --->  route add default  gw  172.25.2.1          # 临时设置,开机取消

   5)在物理机中进行测试:轮询

   # 在server1中的显示结果

LVS-fullnat模式:
   1.客户端将访问vip报文发送给LVS服务器;
   2.LVS服务器将请求报文的目的地址修改为后端真实服务器(DNAT),源地址改为自己的ip地址(SNAT),发送给后端真实服务器;
   3.后端服务器在处理完之后要将响应的报文返回给lvs;
   4.LVS将返回的数据包源地址改为自己(SNAT),目的地址改为客户端(DNAT),发送给客户端。
   fullnat模式和nat模式相似,但是与nat不同的是nat模式只做了两次地址转换,fullnat模式却做了四次。

LVS模式三:NAT模式的更多相关文章

  1. LVS负载均衡NAT模式实现

    LVS负载均衡之NAT模式配置 NAT 模式架构图: 操作步骤 实验环境准备:(centos7平台) 所有服务器上配置 # systemctl stop firewalld //关闭防火墙 # sed ...

  2. [lvs]lvs的三种模式

    回顾了下lvs的三种模式的调度机制 1.lvs的dr模式中的arp的抑制,eth用自己口arp回应. 2.keepalive是否直接操作rs? 不直接操作, 只操作dr(配lvs) 3.tunnel模 ...

  3. LVS系列一、LVS集群-NAT模式

    一. 集群概述 1. 什么是集群? 一组各自相互独立且又相互依赖的,通过高速网络互联的计算机组成的一个计算机组, 以单一的系统模式加以管理, 为用户提供服务, 对用户来说, 用户只会认为对方是一个服务 ...

  4. 虚拟机的三种联网模式(桥接模式、NAT 模式、仅主机模式)

    虚拟机的网络连接方式分为三种,分别是桥接模式.NAT 模式.和仅主机模式,三种连接模式存在着一定的差异,那么我们该如何选择适合自己的连接模式呢? 1.桥接模式:在此模式下,虚拟机相当于一台独立的电脑, ...

  5. VMware网络连接模式——桥接模式、NAT模式以及仅主机模式的介绍和区别

    在使用VMware Workstation(以下简称:VMware)创建虚拟机的过程中,配置虚拟机的网络连接是非常重要的一环,当我们为虚拟机配置网络连接时,我们可以看到如下图所示的几种网络连接模式:桥 ...

  6. 桥接模式和NAT模式差别

    bridged networking(桥接模式)      在这样的模式下.VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它能够訪问网内不论什么一台机器. 在桥接模式下.你须要手工为虚 ...

  7. (转)VMware中桥接模式与NAT模式的区别

    bridged networking(桥接模式) 在这样的模式下.VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它能够訪问网内不论什么一台机器. 在桥接模式下.你须要手工为虚拟系统配置 ...

  8. 虚拟机中桥接模式和NAT模式以及仅主机模式的区别

    桥接模式和NAT模式 网络连接类型的选择,网络连接类型一共有桥接.NAT.仅主机和不联网四种. 桥接:选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上. NAT:NAT模 ...

  9. 高可用与负载均衡(6)之聊聊LVS的三种模式

    LVS的赘述 IPVS,ipvs ,ip_vs是负载均衡器中的内核代码 LVS是完整的负载均衡器+后端服务器.这些组件组成了虚拟服务器. LVS是一个4层负载均衡方案,标准的客户端-服务器网络语义也被 ...

  10. LVS负载均衡NAT模式原理介绍以及配置实战

    LVS基本原理 流程解释: 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 PREROUTING 链首先会接收到用户请求,判断目标 IP 确定是本机 IP ...

随机推荐

  1. 使用svn的过程中check out的文件路径中的文件图标全都加上了“蓝色问号”的解决方案

    (1)你在对同一层目录下创建一个记事本文件,然后把下面这句话复制进去 for /r . %%a in (.) do @if exist "%%a\.svn" rd /s /q &q ...

  2. 20145314郑凯杰 《Java程序设计》第8周学习总结

    20145314郑凯杰 <Java程序设计>第8周学习总结 教材学习内容总结 代码已托管 第十五章 通用API ①日志: 日志对信息安全意义重大,审计.取证.入侵检测等都会用到日志信息 使 ...

  3. php7不支持curl

    百度出来的东西没有一个有用的 终极解决方案: 1.将extension=curl前的分号去掉: 2.将php目录下的libssh2.dll放到apache安装目录的bin目录下 3.重启apache ...

  4. 学Git,用Git ③

    不知道我前面是否将git讲清楚了,这里再稍微总结一下git的一个重要功能用法,同时增加两个很实用的git使用技巧. 1.git"读档"与git"回退" 我发现我 ...

  5. linux字典生成工具crunch

    安装 tar zxvf crunch-3.6.tgz cd crunch-3.6 gcc -Wall -lm -pthread -std=c99 -m64 -D_LARGEFILE_SOURCE -D ...

  6. Spring boot 解决 hibernate no session异常

    启动类中加入 @Beanpublic OpenEntityManagerInViewFilter openEntityManagerInViewFilter(){ return new OpenEnt ...

  7. LeetCode——Coin Change

    Question You are given coins of different denominations and a total amount of money amount. Write a ...

  8. LeetCode——Arithmetic Slices

    Question A sequence of number is called arithmetic if it consists of at least three elements and if ...

  9. HDU 3594 Cactus(仙人掌问题)

    http://acm.hdu.edu.cn/showproblem.php?pid=3594 题意: 一个有向图,判断是否强连通和每条边只在一个环中. 思路: 仙人掌问题. 用Tarjan算法判断强连 ...

  10. vue2.0--vue-router路由

    一.vue-router如何进行参数传递 1.name  $route.name 通过在路由router/index.js中配置路由时定义的name属性来传递 ① 有一个页面components/he ...