本篇文档主要是记录NAT模式实现过程,以及各配置步骤的原理。“lvs三种模式工作原理”中描述了LVS的NAT、DR、TUN三种模式的工作原理。

NAT模式是通过director将报文目标IP地址修改,发送给RS,RS将响应报文返回给director,通过director将报文返回给客户端。

部署环境

  director需要两个网卡,一个配置VIP,接受客户端请求报文和发送real server的响应报文;一个配置DIP,用来转发VIP接受到的请求报文和接受real server的响应报文。

LVS服务器(DS) DIP:192.168.1.1 VIP:172.30.100.111
nginx1服务器(RS) RIP:192.168.1.2 网关:192.168.1.1
nginx2服务器(RS) RIP:192.168.1.3 网关:192.168.1.1

LVS服务器配置

  VIP地址正常配置为与客户端通信的公网地址;DIP可以使用私网IP

  

  DIP不需要指定网关,它只是用来作为RS的网关。

  

  NAT模式是把请求报文的目标VIP修改为RIP,然后转发给real server。所以整个director的功能有点像路由器。centos默认是不开启转发功能,所以需要激活ip转发功能。

echo 1 >> /proc/sys/net/ipv4/ip_forward
# 开启ip转发功能

后端服务器配置

  两台real server的RIP必须与DIP是同一网段,并且要把网关设置为DIP

  

ipvs规则配置

  NAT模式支持端口映射,即客户端请求web80端口,lvs可以映射到后端服务的8080端口。

ipvsadm -A -t 172.30.100.111:80 -s wrr
# 添加虚拟服务,指定IP、端口、算法
ipvsadm -a -t 172.30.100.111:80 -r 192.168.1.2:8080 -m -w 2
# 添加nginx1服务器,指定端口,指定NAT模式,指定权重为2
ipvsadm -a -t 172.30.100.111:80 -r 192.168.1.3:8080 -m -w 1
# 添加nginx2服务器,指定端口,指定NAT模式,指定权重为1

验证

   

Linux lvs-NAT模式配置详解的更多相关文章

  1. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

  2. Linux lvs-DR模式配置详解

    本篇文档主要是记录DR模式实现过程,以及各配置步骤的原理.“lvs三种模式工作原理”中描述了LVS的NAT.DR.TUN三种模式的工作原理. DR模式是通过director将报文源和目标MAC地址修改 ...

  3. lvs keepalived 安装配置详解

    前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较.F5相当的贵,真不是一般企业能负担的起的.负载均衡软件也用过不少,nginx,apache,hapro ...

  4. linux LVS DR模式配置

    拓扑图: 测试环境:CentOS 6.5 X86 64位 配置步骤: 1.  安装测试环境 [root@UCS-1 ~]# yum -y install httpd [root@UCS-1 ~]# c ...

  5. Linux安装vsftpd及配置详解

    1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件.[root@bogon ~]# yum -y install vsftpd 2.FT ...

  6. (总结)CentOS Linux搭建SVN Server配置详解

         PS:虽然在公司linux服务器上搭建过几次svn,但是时间长了,有些配置操作会忘掉,上网搜索的结果都不大满意,有幸在前几天看到一篇算是最满意的svn搭建文章,转载一下以备以后使用,原文地址 ...

  7. lvs dr 模型配置详解

    前期准备: 两台服务器 note01(lvs服务器) note02(real sever) 1 首先在note01配置子网卡: ifconfig eth0: :2意思是eth0的子接口,随便一个数字就 ...

  8. linux串口编程参数配置详解(转)

    1.linux串口编程需要的头文件 #include <stdio.h>         //标准输入输出定义#include <stdlib.h>        //标准函数 ...

  9. linux串口编程参数配置详解

    1.linux串口编程需要的头文件 #include <stdio.h>         //标准输入输出定义 #include <stdlib.h>        //标准函 ...

随机推荐

  1. js中关于两个变量的比较

    今天在匆忙的写代码过程中,测试突然跑过来跟我说,有一个小的bug,但是不能完全的复现,但确实存在.需要我们这边参与查找.首先来说一下我们这个的业务逻辑,其实非常的简单,就是一个开房间的后台,里面有一项 ...

  2. mysql7笔记----存储过程实例

    mysql创建存储过程 DROP PROCEDURE IF EXISTS getCreateTimes /*前面要写DELIMITER $$ 或DELIMITER // */ DELIMITER $$ ...

  3. JPA实现复杂条件分页查询

    相信熟悉Hibernate的人对于ORM给编程带来的便利于快捷一定不陌生,相对于MyBatis等需要编写复杂的SQL语句,ORM映射为我们带来的便利显而易见.但是,在获得便利的同时,失去的便是灵活性, ...

  4. Keepalibed监控nginx

    配置Keepalived监控nginx --wang 目的: 通过Keepalived实现对nginx的监控,每两秒扫描一次,如果nginx关闭,尝试重启nginx,两秒后检查nginx是否启动,如果 ...

  5. 总结JAVA----IO流中的字节流

    对于IO流中字节流的总结 字节流的概念 由于应用程序,经常需要和文件打交道,所以Inputstream专门提供了读写文件的子类:FileInputStream和FileOutputStream类,如果 ...

  6. zabbix-agent(zabbix-proxy)配置

    PidFile=/var/run/zabbix/zabbix_agentd.pidLogFile=/var/log/zabbix/zabbix_agentd.logLogFileSize=30Serv ...

  7. Django学习笔记(2)--视图函数

    用pycharm打开FDJ项目 URL分发器 视图: 视图一般都写在app的view,py中.并且视图的第一个参数永远都是request(一个HttpRequest)对象.这个对象存储了请求过来的所有 ...

  8. Swing 混合布局

    案例一:Border边境边界 package swing; /** * swing 混合布局 */ import java.awt.*; import javax.swing.*; public cl ...

  9. JSON获取地址

    JSON获取地址一: https://github.com/stleary/JSON-java JSON获取地址二: http://genson.io/ JSON获取地址一: https://code ...

  10. 滴滴 CTO 架构师 业务 技术 战役 时间 赛跑 超前 设计

    滴滴打车CTO张博:生死战役,技术和时间赛跑-CSDN.NEThttps://www.csdn.net/article/2015-06-25/2825058-didi 滴滴出行首席架构师李令辉:业务的 ...