LVS的NAT模型建立

LVS的NAT模型建立
一、 LVS的NAT模型拓扑图
客户端请求时,请求报文时通过director来改变目标ip实现转发。(经过director时目标ip由VIP改为RIP,但是请求报文从director出来时,还是由DIP所在的网卡接口出去的。)
报文流向:1->2->3
1的源地址是CIP,目标地址是director的VIP。
2的源地址是CIP,目标地址是director的RIP。

图一

服务器端回应时,响应报文时通过director改变源ip实现转发。(经过director时,源ip由RIP改为VIP)
报文流向:1->2->3
1的源地址是RIP,目标地址是director的CIP。
2的源地址是VIP,目标地址是director的CIP。

图二

二、 LVS-NAT模型内容解析
1、 请求报文时,报文必须经过director,才能达到负载均衡的效果。同时在director上修改目标ip实现转发。响应报文时,在director上修改源ip实现转发。
2、 Director的DIP和各real server的RIP必须在同一个物理网段中,并且RIP的网关要指向DIP。
3、 支持端口映射。
4、 NAT模型中一般VIP是公网地址,DIP和RIP一般是私网地址。使用NAT模型主要的目的是隐藏服务器ip。

三、 演示环境规划(系统red hat 6.8)
Director(bridge,eth0,eth1):
VIP,eth0 :172.16.100.9
DIP,eth1 :192.168.20.1
Real server 1(vmnet2,eth0)
RIP,eth0 :192.168.20.7
Real server 2(vmnet2,eth0)
RIP,eth0 :192.168.20.8

四、 设置lvs-nat模型的演示步骤。(NAT模型支持端口映射。
1 配置director的vip和dip,配置完后重启网络。
配置director服务器eth0(或eno16777736)网卡的VIP为172.16.100.9(下面是centos7,centos7网卡名为eno16777736即为centos6.8的eth0)。


查看系统的网卡名ifconfig –a(centos7的两个网卡名为eno16777736和eno33554992)。

配置director的eth1(或eno33554992)网卡DIP为192.168.20.1,DIP为私网地址,不需要网关,我们不打算用这个做路由。 VIP配置完后配置DIP,可以直接用cp复制vip的配置文件到DIP配置文件再进行修改(变化的有IPADDR,NETMASK,NAME,DEVICE,去掉GATEWAY和UUID)。


配置完之后重启网络:
Centos7

Centos6.8

配置完重启网络后查看VIP和DIP配置。

2 检查yum源并安装(安装yum的目的是为了安装ipvsadm套件)。
先利用yum grouplist查看yum的安装情况,再安装yum源。在封闭式网络或是OS是Red hat的话,有可能会没办法载入yum套件(Red Hat要钱的),在Linux的command mode下yum grouplist检查,若没有的话会显示不了套件列表,无法安装必要套件。(蓝色是新能厂商步骤)

先把ISO镜像放到director的/tmp目录下再挂载,之后安装yum源。

设定挂载位置
mkdir –p /media/cdrom
挂载到指定位置

【此为马哥挂载】

mount -t iso9660 -o loop rhel-server-6.8-x86_64-dvd.iso /media/cdrom 【此为新能厂商挂载】

设定开机即挂载
vim /etc/fstab
/tmp/rhel-server-6.8-x86_64-dvd.iso /media/cdrom iso9660 defaults,ro,loop 0 0

进入yum文件夹
cd /etc/yum.repos.d/

新增读取的yum源
vim dvd.repo

dvd.repo内容:
[dvd-source]
name=RHEL 6.8 dvd repo
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0

清掉系统yum暂存以及重新建立
yum clean all
yum makecache
yum install –y "subscription-manager-gui"

检查是否成功,成功的话会显示列表
yum grouplist

从yum安装,所以务必将yum安装完毕

  1. 中文语言包
    yum groupinstall "Chinese Support"
  2. 开发者工具
    yum groupinstall "development tools"
  3. vim(好用的Linux档案编辑工具)
    yum install vim

3 安装ipvsadm套件。
直接yum install ipvsadm

或者利用rpm –ivh安装ipvsadm

4 配置real server的RIP(eth0)分别为192.168.20.7,192.168.20.8(RIP的网关指向DIP192.168.20.1),之后重启网络。

进入real server(两个都要配)网卡配置(配置RIP)文件中进行编辑:

IPADDR=192.168.20.7
GATEWAY=192.168.20.1
NETMASK=255.255.255.0

重启real server网络
~] service network restart

在real server上ping DIP192.168.20.1检查是否通。

5 测试lvs功能,先让两个real server的web界面不同。编辑两个real server的/var/www/html/index.html文件,内容如下。
<h1>Test Page on real server 1</h1>

启动两个real server的httpd服务。
~] service httpd start

先自己手动直接请求real server的web界面,看内容。

6 确保director的iptables关闭。因为ipvsadm和iptables很难共存(iptables包括iptables –Ln ,iptables –L –n –t nat,iptables –L –n –t mangle都要清理掉),如果要共存,需要精心设计应用机制才能实现。

在director上,centos6直接
~] service iptables stop
或者
~] iptables –F
~] iptables –S > /etc/sysconfig/ipvsadm
7 开启director的IP_FORWARD。
打开 /etc/sysctl.conf
~] vim /etc/sysctl.conf
设定net.ipv4.ip_forward =1,存档

8 在director上定义ipvsadm规则(ipvsadm中-A是定义规则,-t是定义tcp,因为演练的http服务是基于tcp服务的,-s指明调度器调度算法,集群类型在添加real server中指定)。【nat集群在添加real server时可以利用端口映射实现集群服务。】实现集群只需要定义一个集群和添加real server即可完成。即下面的one two两步骤就可以。
One:先定义一个集群。

Two:添加两个real sever。

上面内容解释:
Forward时转发,Masq是基于nat模型。
Weight:权重,rr不用指定权重,默认是1.
ActiveConn:当前服务器上的活动连接数。
InActConn:当前服务器上的非活动连接数。

五、ipvsadm用法介绍。Ipvsadm的编辑,增加修改删除等操作。
1 Ipvsadm的保存。
先查看安装ipvsadm生成的有哪些文件(director是centos7)。我们保存的ipvsadm规则在/usr/lib/systemd/system/ipvsadm.service文件中。

查看ipvsadm保存文件。

上面的ipvsadm规则定义和添加完real server后,保存ipvsadm规则到ipvsadm规则保存文件中(规则保存文件为/etc/sysconfig/ipvsadm)。
ipvsadm –S > /etc/sysconfig/ipvsadm

2 ipvsadm释放如果恢复规则可以使用(ipvsadm –R < /etc/sysconfig/ipvsadm)来让ipvsadm保存文件的规则恢复至ipvsadm规则中。

3清除ipvsadm规则。如果不需要规则可以清规则(ipvsadm -C)。

4 修改ipvsadm规则(ipvsadm –E、ipvsadm -e)。-E是修改director,-e是修改real server部分。但是-E和-e都是在director上操作。
示例(ipvsadm -E),把ipvsadm规则中的rr算法改为sh算法,如下。

示例(ipvsadm -e),把ipvsadm后端的real server的http服务的端口由80改为8080,如下。
One:先改real server的端口由80改为8080(在real server上执行)。

Two:重启real server的http服务(real server上执行)。

Three:在director上修改ipvsadm的real server的端口映射,后端的real server的端口由80改为8080(在director上执行)(ipvsadm -e)。(可以直接用ipvsadm –e修改,也可以通过保存文件修改再重载保存文件两种方式去修改real server的信息。)

上面的正常操作如果有误(上面的就有问题,Menory allocation problem内存分配有问题),可以使用(先修改保存文件,再ipvsadm –C清除规则,最后ipvsadm-R /etc/sysconfig/ipvsadm)
I:修改保存文件(由一改为二)。

II:清空现有ipvsadm规则。

III:重读ipvsadm保存文件。

5 ipvsadm删除操作(ipvsadm –d删除real server,ipvsadm –D删除集群服务)。

6 ipvsadm用法介绍。

1 ~] ipvsadm –L –c (显示当前的活动状态)如下

2 ~] ipvsadm – L –n --stats (--stats显示统计数据)

Conns:处理的链接数
InPkts:统计入栈包个数
OutPkts:统计出栈包个数
InBytes:统计入栈字节数
OutBytes:统计出栈字节数

3 ~] ipvsadm – L –n --rate(--rate显示统计速率)

CPS:
InPPS:入栈每秒包个数
OutPPS:出栈每秒包个数
InBPS:入栈每秒的字节数
OutBPS:出栈每秒的字节数

4 --exact显示精确值,不做单位换算。

原文地址:http://blog.51cto.com/14044882/2309790

时间: 2024-08-09 10:31:32

LVS的NAT模型建立的相关文章

LVS之NAT模型架构

LVS-NAT 一.架构平台环境 系统平台:CentOS 6.5 64bit  vmw10.0 lvs01(RS),lvs02(RS),lvs03(Director) 相关服务和专用名词定义 Director:负责调度集群的主机:也简称为调度器.分发器 VIP:Virtual IP 向外提供服务的IP:通常此IP绑定域名 DIP:与内部主机RIP通信的IP,在Director主机上 RIP:RealServer IP:内部真正提供服务的主机 CIP:客户端IP 二.LVS-NAT架构 三.LVS

基于LVS的NAT模式实现PHP应用

LVS-NAT模式: 客户端访问web网页时,通过发送请求报文到LVS调度器上,报文流入到调度器上时,在input链上把报文截取,并查看请求报文首部的目标IP和端口,然后根据IPVS上定义的规则,随机挑选出一台Real Server服务器并把目标IP和端口修改为Real Server的IP和端口,并把报文发送给Real Server服务器,Real Server服务器接收报文并处理请求,然后构建响应报文并发送给调度器,调度器在把源IP和端口改成自己的并响应给客户端. 优点:  Real Serv

LVS调度方法及NAT模型

LVS: 类型: NAT:地址转换 DR:直接路由 TUN:隧道 NAT: 集群节点跟director必须在同一个IP网络中 RIP通常是私有地址,仅用于各集群节点间的通信 director位于client和real server之间,并负责处理进出的所有通信 支持端口映射 realserver可以使用任意OS 较大规模应用场景中,director易成为系统瓶颈 DR: 集群节点跟director必须在同一个物理网络中 RIP可以使用公网地址,实现便捷的远程管理和监控 director仅负责处理

LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建

首先我们有三台主机:其中172.16.192.168作为前台主机:另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图. 一.LVS NAT模型集群配置实验 1.首先在后端Real Server上设置默认网关,执行前端Virtual Server 2.在前端Virtual Server上开启路由转发功能 3.配置前端LVS集群 4.测试 总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同

LVS下的NAT模型与DR模型实战

LVS是工作在四层的高性能负载均衡服务器,由于工作在TCP/IP层并不涉及到用户态,摆脱了套接字65535数量的限制,所以性能十分强悍,当然优秀的背后少不了我们国人章文嵩的付出,感谢开源如此优秀的作品. LVS 是工作在内核netfilter的INPUT链路上的一组ipvs框架,他的使用有点类似于配置netfilter实现防火墙过滤需要借助iptables这组工具,当然LVS也是如此,只提供了接口,如果想要配置ipvs需要首先安装ipvsadm这组工具,ipvsadm在base源中就有提供 在开

lvs定义nat,dr高可用

Lvs 术语: director/real server IP: VIP:虚拟ip DIP:转发ip RIP:各个real serverIP CIP:客户端ip Ipvs:ip vertual server Lvs类型: Lvs-nat:地址转换:natwork address  translayion lvs-dr:直接路由:Direct routing Lvs-tun:隧道:Tunning Nat类型: 我们的各个rS应该使用私有地址,RS的网关必须指向DIP 请求和相应都要经过Direct

LVS包转发模型和调度算法(转)

LVS简介 Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来 讲, CPU.I/O处理能力很快会成为瓶颈.由于单台服务器的性能总是有限的,简单的提高硬件性能并不能真正解决这个问题.为此,必须采用多服务器和负载均衡 技术才能满足大量并发访问的需要.Linux 虚拟服务器(Linux Virtual Servers,LVS) 使用负载均衡技术将多台服务器组成一个虚拟服务器.它为适应快速增长的网络访问需求提供了一个负

请描述LVS的nat模式的原理

LVS-NAT:地址转换===收费站模式 virtual servervia network address translation(VS/NAT) LVS的nat模式类似于DNAT,但支持多目标转发.通过修改请求报文的目标地址为根据调度算法所挑选出的某RS的RIP来进行转发: 架构特性: (1)RS应该使用私有地址,即RIP应该为私有地址:各RS的网关必须指向DIP: (2)请求和响应报文都经由director转发:高负载场景中,dircetor可能成为瓶颈: (3)支持端口映射: (4)RS

Lvs之NAT、DR、TUN三种模式的应用配置案例

LVS 一.LVS简介     LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件之一. 二.LVS的分类 LVS-NAT:地址转换 LVS-DR: 直接路由 LVS-TUN:隧道 三.ipvsadm用法 其实LVS的本身跟iptables很相似,而且连命令的使用格式都很相似,其实LVS是根据iptables的框架开发的,那么LVS的本身分成了两个部分,第一部分是工作在内