lvs-nat模型的实验和原理剖析

首先单词:masquerade  表示化妆 伪装的意思 ...nat的意思

实验机:

vm1 vm2 vm3 三台虚拟机

vm1 拥有双网卡,一个连接外网  一个host-only 连接内网,部署好LVS--NAT环境的网络结构图

vm2 和vm3 都是host-only在内网中

实验物理结构图:

实验图及地址分布说明:

clinet的IP为 CIP:此实验为  192.168.0.101

vm1 的VIP为192.168.0.10

vm1 的DIP为192.168.100.10

vm2的是一台RS1机器,IP地址为 192.168.100.7  网关一定要是  192.168.100.10,指向DIP

vm3的是一台RS2机器,IP地址为 192.168.100.7  网关一定要是  192.168.100.10,指向DIP

完成NAT模型集群的配置:

第一步配置DR

第一:配置Direcory机器作为一台可以调度RS1和RS2组成的集群服务机器:

第二:完成ipvsadm命令管理配置ipvs

查看内核支持ipvs功能

[[email protected] ~]# cat /boot/config-2.6.32-358.el6.x86_64 | grep -i "vs"

安装ipvsadm

yum install ipvsadm

第三:ipvsadm命令完成

1 实现管理集群服务:ipvsadm -A -t 192.168.0.10:80 -s rr

2 实现管理集群realserver:

 ipvsadm -a -t 192.168.0.10:80 -r 192.168.100.7 -m

ipvsadm -a -t 192.168.0.10:80 -r 192.168.100.9 -m

第二步

配置RS1 和RS2以RS1为例

第一:网络的正确性

route add default gw 192.168.100.10   如果不是请用此命令修改网关或者setup进行网络设置

第二: 准备一个web服务器:(如httpd)并准备一个测试页面

结果测试:

因为是调度器的实现方法是RR轮询的

改变调度方法为:wrr 进行测试(当然你也可以用clinet的浏览器进行测试,但注意关闭防火墙和360等)

# ipvsadm -E -t 192.168.0.10:80 -s wrr

# ipvsadm -e -t 192.168.0.10:80 -r 192.168.100.7 -m -w 3

查看配置是否正确:

[[email protected] ~]# ipvsadm -L 
IP Virtual Server version 1.2.1 (size=4096) 
Prot LocalAddress:Port Scheduler Flags 
-> RemoteAddress:Port Forward Weight ActiveConn InActConn 
TCP 192.168.0.10:http wrr 
-> 192.168.100.7:http Masq 3 0 0 
-> 192.168.100.9:http Masq 1 0 0

现在导致的结果是: RS1:RS2的值为3:1  由rww中weight设置的结果

测试结果:

测试完结果后对配置进行保存

vim /etc/sysconfig/ipvsadm-config

修改:默认重启不保存配置到 /etc/sysconfig/ipvsadm

# ipvsadm-save

# /etc/init.d/ipvsadm restart

查看以保存的配置

# cat /etc/sysconfig/ipvsadm

原理分析

分析原理:

NAT方式的LVS原理:是和nat方式原理一样,通过一对多的方式实现,修改三层地址源地址和目的地址的方式就行转发数据包正确的设备

从图中画的四个过程成可以分别对SIP  DIP进行图解,容易理解

我使用一个完整的IP数据包进行分析器过程如图:

过程1

client--->VIP

SIP=CIP 192.168.0.101  DIP=VIP  192.168.0.10

过程2:由于数据包经过Directory 调度器,在内核层次ipvs会控制数据包,由于符合定义的规则

且方式为nat方式,所以改变数据包的三层地址

Directory-->RS1

SIP=CIP 192.168.0.101     DIP=RIP  192.168.100.7

到达RS1服务器上面,发现是自己要接受的,所以返回数据

过程3:RS1-->Directory

SIP=RIP 192.168.100.7   DIP=CIP  192.168.0.101

经过  Directory

过程四  :Directory--> Clinet

SIP=DIP 192.168.0.10  DIP=CIP 192.168.0.101

附上捉包tcpdump结果:

过程1

ipvsadm命令的使用 附件:

附上ipvsadm的命令用法:

ipvsadm 的用法介绍

man ipvsadm

功能

1 管理集群服务

添加 -A   -t|u|f service-address [-s scheduler]

-t : TCP 协议的集群

service-address 表示的IP:port

-u : UDP 协议的集群

service-address 表示的IP:port

-f:FWM防火墙标记

service-address 表示的Mark Number

-s : 调度器的方法,默认是wlc

修改 -E

删除 -D -t|u|f service-address

# ipvsadm -A -t 172.16.100.1:80 -s rr

2 管理集群服务的realserver

添加realserver -a  -t|u|f service-address -r server-address [-g|i|m] [-w weight] [-x upper] [-y lower]

service-address: 前面已经定义的某集群服务

-r 指定realserver的RIP,在NAT模型中,可使用IP:PORT 实现端口映射

[-g|i|m] 表示LVS类型

-g :DR  (默认方式)

-i :TUN

-m: NAT

-w 指定无服务器的权重

修改 -e

删除 -d -t|u|f service-address -r server-address

# ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -m

# ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -m

3 查看

-L|-l|--list

-n 数字格式,不反解IP和port

--stats 显示统计信息

--rate: 速率

--timeout   显示当前ipvs当中tcp upd tcpfin协议的超时时间长度(这是默认的)

--daemon 显示进程状况和多播端口的

--sort 对列出进行排序

-c  显示ipvs连接状况的

-C: 清空ipvs规则,删除所有集群服务

4 保存规则

-s

# ipvsadm -S > /path/to/file

载入此前第一的规则

# ipvsadm -R < /path/to/file

时间: 2024-11-05 13:28:29

lvs-nat模型的实验和原理剖析的相关文章

LVS NAT 模型配置实例

LVS 负载均衡 一.系统环境: 系统:Centos 6.5_64位 二.Director和Real Server的配置部署: 1台director server:VIP/外网ip:192.168.121.141 内网ip:172.16.2.31 2台real server:172.16.2.21       172.16.2.24  并且需要设置内网网关为director的内网ip:172.16.2.31 director server 2块网卡配置: 一块172.16.2.31 网卡为桥接模

LVS NAT模型配置示例

1.LVS-NAT基于Cisco的LocalDirector.VS/NAT不需要在RealServer上做任何设置,其只要能提供一个tcp/ip的协议栈即可,甚至其无论基于什么OS. 2.基于VS/NAT,所有的入站数据包均由Director进行目标地址转换后转发至内部的RealServer,RealServer响应的数据包再由Director转换源地址后发回客户端. 3.VS/NAT模式不能与netfilter兼容,因此,不能将VS/NAT模式的Director运行在netfilter的保护范

LVS NAT模型实现

1.测试环境操作系统:CentOS6.5director:    eth0,VIP:172.16.100.1    eth1,DIP:192.168.220.110(hostonly)realserver1:192.168.220.111(hostonly)realserver2:192.168.220.112(hostonly)2.realserver配置1).安装需要配置成集群服务的服务2).配置realserver默认网关指向DIP3.director安装与配置1).安装ipvsadm y

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模型

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

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模型建立

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

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

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

lvs nat搭建

生产环境网站离不开负载均衡.高可用性这样的字眼,不用解释便知道其中的意义与重要性.高可用性可以用keepalived实现,负载均衡可以用lvs或者nginx实现,二者的区别是lvs基于网络层,nginx基于应用层或者基于浏览器.lvs有3中实现方式,分别是nat.dr.tunel(隧道),三者大体相似,这里介绍nat模式,本文也没用介绍keepalived,以后有时间再写. 实验环境:使用vmware虚拟出4台linux,有一台作为client(rhel4.6),其中两台作为realserver