lvs的NAT模式

1、什么是LVS?

linux virtual service,linux虚拟服务,使用多台服务器一起工作来提高服务的访问和处理性能

通过LVS提供的负载均衡技术和linux系统实现一个高性能、高可用的服务器集群,它具有良好的可靠性、可扩展性和可操作性,成本低廉的特性

负载均衡:软件实现、硬件实现
负载均衡设备:

2、lvs的工作模式

(1)nat模式 :通过网络 地址转换访问服务(最多同时支持20台服务器)
   (2)tun模式:通过IP隧道访问服务

(3)dr模式:(direct )直接调度访问服务, 直接路由,

即调度服务器与真实服务器都有一块网卡连在同一个物理网段上。

LVS 是 Linux  Virtual Server ,Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。LVS 集群分为三层结构:

  • 负载调度器(load balancer):它是整个LVS 集群对外的前端机器,负责将client请求发送到一组服务器[多台LB IP]上执行,而client端认为是返回来一个同一个IP【通常把这个IP 称为虚拟IP/VIP】
  • 服务器池(server pool):一组真正执行client 请求的服务器,一般是我们的web服务器;除了web,还有FTP,MAIL,DNS
  • 共享存储(shared stored):它为 server pool 提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务[不是很理解]

4、LVS的NAT 模式:

图中eth0 和 eth1 不要桥接,用交换机sw1连接

图中eth0 和 eth1 不要桥接,用交换机sw2连接

server1/2 是后端服务器/真实服务器 用来提供服务

Director Server:调度服务器
RIP:实际是指真实服务器的IP地址
DIP:调度服务器地址,与外面连接的地址是调度地址:172.16.10.10
VIP:虚拟IP
CIP:客户端IP地址

进入防火墙之后 进行地址转换

iptables命令详解:

1.filter 定义数据包中允许或者不允许的策略

2.nat 定义地址转换的

3.mangle功能:修改报文原数据 即:修改TTL

在做NAT和DNAT的时候,目标地址转换必须在路由之前转换 。所以 我们必须在外网而后内网的接口处进行设置关卡 。

这五个位置也被称为五个钩子函数(hook functions),也叫五个规则链。

1.PREROUTING (路由前)

2.INPUT (数据包流入口)

3.FORWARD (转发管卡)

4.OUTPUT(数据包出口)

5.POSTROUTING(路由后)

这是NetFilter规定的五个规则链,任何一个数据包,只要经过本机,必将经过这五个链中的其中一个链。

iptables定义规则的方式:

格式:iptables [-t table] COMMAND chain CRETIRIA -j ACTION

-t table :3个filter nat mangle

COMMAND:定义如何对规则进行管理

chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的

CRETIRIA:指定匹配标准

-j ACTION :指定如何进行处理

比如:不允许172.16.0.0/24的进行访问。

iptables -t filter -A INPUT -s 172.16.0.0/16 -p udp --dport 53 -j DROP

当然你如果想拒绝的更彻底:

iptables -t filter -R INPUT 1 -s 172.16.0.0/16 -p udp --dport 53 -j REJECT

iptables -L -n -v #查看定义规则的详细信息

Director Method:(调度方法)

RR:轮循调度

WRR:加权轮循调度。根据硬件配置的好坏来设置权值

LC:最小连接数调度。连接数量最少,就将用户的访问分配到那台服务器,让其为用户提高服务。
WLC:加权最小连接调度
LBLC:基于地址的最小连接数调度。若后端服务器负荷已满,则就会将用户请求分配给另一台连接数最小的那台服务器
DH:目标地址散列算法,以目标地址为关键字来查找一个静态hash表来选择RS

SH:源地址散列算法,以源地址为关键字来查找一个静态的hash表来选择RS

用到 LVS服务最多的前三种 : WEB服务,数据库, 邮件。

LVS的NAT模式配置

(1) 防火墙服务器配置:

两个网卡 eth0:10.0.2.201  netmask:255.255.0.0

eth1:192.168.10.5  netmask:255.255.0.0

添加网卡要poweroff再添加

启用路由转发(net.ipve.ip_forward=1 )

# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

# sysctl -p

配置 NAT(目的地址转换)

# iptables -t nat -A PREROUTING -d 10.0.2.201 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.6

# iptables -F

# service iptables save

(2) Director服务器配置:(调度服务器)

两块网卡 eth0: 192.168.10.6   netmask:255.255.0.0

eth1:172.16.10.3     netmask:255.255.0.0

eth1的配置文件:

# cp /etc/sysconfig/network-scripts/ifcfg-eth0   /eth1 然后将DEVICE=eth1注释掉UUID 修改MAC地址

配置网关 eth0的gateway:192.168.10.5  eth1不用配置网关

配置调度表

# yum install ipvsadm

如果无法install,就进入挂载点下的Packages下 # ls |grep ipvsadm

# ipvsadm -A -t  192.168.10.6:80 -s rr    # -A 添加调度服务器 添加调度地址

# ipvsadm -a -t 192.168.10.6:80 -r 172.16.10.1:80 -m   # 真实服务器 -a 添加  -m 指net模式

# ipvsadm -a -t 192.168.10.6:80 -r 172.16.10.2:80  -m  # 真实服务器

# service ipvsadm save  #

# service ipvsadm start

# ipvsadm -L -n    # -L -n 查看调度表 Masq 表示NAT模式 Activeconn 活动的连接数量

# ipvsadm -L -n --stats  # Conns连接数量 INPkts 进来的数据包 OUTPkts出去的数据包

# watch -n 1 ipvsadm -L -n --stats  # watch 每隔一秒钟显示一次。动态观察

调度服务器由于进行了配置,

就会将收到的数据包的目标IP地址转换为真实服务器的IP地址。(server1 ,server2,server3...)

(3 ) 真实服务器/后端服务器 (RS - real server)

配置IP地址 server1:172.16.10.1  netmask : 255.255.0.0

server2:172.16.10.2  netmask : 255.255.0.0

这两台RS服务器都要进行下列配置

配置网关 gateway:172.16.10.3 (调度服务器eth1的IP)

目前配两台真实服务器,为client 提供web服务:

#yum install http*

# vim /etc/httpd/conf/httpd.conf

  -->将#去掉。可以自己定义如:www.zll.com 也可以不修改只把#去掉就可以了。

# cd /var/www/html

# vim index.html ---> hello!ZLL

启动相应服务 service httpd start

清空防火墙  iptables -F
       测试:# curl  172.16.10.1

(4) 客户端:
     IP地址:10.0.2.200 (防火墙的eth0 ip必须要和客户端IP在同一个网段)

测试: # curl  10.0.2.201 (防火墙eth0的ip )

或:在浏览器输入:10.0.2.201

若看到在RS服务器配置的index.html的内容,则成功

(5 ) lvs的持久性连接

1、socket:

2、cookie:保存用户的相关信息.cookie数据保存在客户端。

cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session

3、session:保存用户提交的表单,选择之类的。session数据保存在服务器端

session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面            应当使用COOKIE

(1)PCC(persistent client connecttions)方式:将来自于同一个客户端对所有端口的请求,
     始终定向到上次选择的RS,缺点是不能实现不同的服务请求访问不同的RS。
     # ipvsadm -A -t 10.0.5.150:0 -s rr -p 600
     # ipvsadm -a -t 10.0.5.150:0 -r 10.0.5.151 -m
     # ipvsadm -a -t 10.0.5.150:0 -r 10.0.5.152 -m
     
    (2)PPC(persistent port connecttions)方式:将来自于同一个客户端对同一个集群服务的请求
     ,始终定向到上次选定的RS
     # ipvsadm -A -t 10.0.5.150:80 -s rr -p 600
     # ipvsadm -a -t 10.0.5.150:80 -r 10.0.5.151:80 -m
     # ipvsadm -a -t 10.0.5.150:80 -r 10.0.5.152:80 -m
     
     (3)PNMPP(persistent Netfilter Marked Packet Persistence):持久防火墙标记连接,
     根据iptables的标记规则,将相关的服务标记为同一类别的请求
     # iptables -t mangle -A PREROUTING -d 10.0.5.150 -p tcp --dport 80
       -j MARK --set-mark 10 (0-->99)
     # iptables -t mangle -A PREROUTING -d 10.0.5.150 -p tcp --dport 443
       -j MARK --set-mark 10 (0-->99)
       
     # iptables -t mangle -A PREROUTING -d 10.0.5.150 -p tcp --dport 21
       -j MARK --set-mark 20 (0-->99)
     # iptables -t mangle -A PREROUTING -d 10.0.5.150 -p tcp --dport 20
       -j MARK --set-mark 20 (0-->99)
 
     # ipvsadm -A -f 10 -s wrr -p 600     10标记的 使用wrr算法 600秒
     # ipvsadm -A -f 20 -s wrr -p 600
     # ipvsadm -a -f 10 -r 10.0.5.151 -m -w 2  -m表示nat模式 -w 权重为2
     # ipvsadm -a -f 10 -r 10.0.5.152 -m -w 3
     # ipvsadm -a -f 20 -r 10.0.5.153 -m -w 2
     # ipvsadm -a -f 20 -r 10.0.5.154 -m -w 3

时间: 2024-11-10 08:14:27

lvs的NAT模式的相关文章

LVS之NAT模式下的负载均衡

LVS集群之NAT模式 基本概念: 集群:cluster就是一组计算机,他们作为一个整体向用户提供一组网络资源,这些单个的计算机系统就是集群的节点 集群的种类: LB 负载均衡集群   HA 高可用性集群  HPC  高性能计算集群 LB的实现方法: 1 软件 -F5 负载均衡器 2 硬件 LVS(4层)  nginx(7层) LVS(Linux Virtual Server) 官网:http://www.linuxvirtualserver.org(英文) http://zh.linuxvir

请描述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模式

一.lvs的nat模式: web端:192.168.3.124      通过访问nginx的反向代理192.168.8.123:80,传送到后端realserver上. lvs端eth0: dip 192.168.3.123      eth0:0  vip 192.168.8.123 realserver1端eth0:192.168.3.128  echo "hello,192.168.3.128" > 1.html realserver2端eth0:192.168.3.12

负载均衡集群介绍,LVS介绍,LVS的调度算法,LVS的NAT模式搭建

笔记内容: 18.6负载均衡集群介绍 18.7 LVS介绍 18.8 LVS的调度算法 18.9/18.10 LVS NAT模式搭建 笔记日期:2017-11-11 18.6负载均衡集群介绍 首先我们先介绍一下什么是负载均衡: 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群).网络连接.CPU.磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用.最大化吞吐率.最小化响应时间.同时避免过载的目的.这是来自维基百科的介绍.负载均衡的目的,就在于平衡计算机

LVS:Linux虚拟服务器,LVS-NAT模式+LVS-DR模式

LVS:Linux虚拟服务器什么是集群:一组通过高速网络互联的计算组,并以单一系统的模式加以管理? 将很多服务器集中起来一起,提供同一种服务,在客户端看来就象是只有一个服务器? 可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益? 任务调度是集群系统中的核心技术一.工作模式1.NAT2.TUN:隧道模式(很少使用)3.DR:应用广泛4.Full nat:大规模部署二.LVS的调度算法1.轮询rr2.加权轮询wrr3.最少连接lc4.加权最少连接wlc5.基于局部的最少连接l

负载均衡LVS之NAT模式实现的详细步骤

负载均衡LVS之NAT模式实现的详细步骤 1.数据流程图 2.环境说明 1) 四台主机,时间同步,关闭防火墙和selinux 2) 各主机角色 1] 客户端:192.168.110.27 仅主机(vmnet1) 网关:无 2] RS服务器: 192.168.136.36 仅主机(vmnet6) 网关:192.168.136.35 192.168.136.37 仅主机(vmnet6) 网关:192.168.136.35 3] VS服务器:192.168.110.35 仅主机(vmnet1) 192

LVS的NAT模式配置

注意: C5.X安装lvs,使用1.24版本,不要用1.26. C6.X安装lvs,使用1.26版本,并且需要先安装libnl*,popt-static依赖包安装lvs后,要执行modprobe ip_vs把ip_vs 模块加载到内核. Nat模式: 安装ipvs 1.检查Load Balancer服务器是否已支持ipvs.modprobe -l|grep ipvs 若有类似以下输出,则表示服务器已支持ipvs: [[email protected] ~]# modprobe -l|grep i

LB负载均衡中LVS搭建NAT模式

LVS架构从逻辑上可分为调度层(Director).server集群层(Real server)和共享存储层 LVS可分为三种工作模式: NAT(调度器将请求的目标ip即vip地址改为Real server的ip, 返回的数据包也经过调度器,调度器再把源地址修改为vip)依赖防火墙 TUN(调度器将请求来的数据包封装加密通过ip隧道转发到后端的real server上,而real server会直接把数据返回给客户端,而不再经过调度器) DR(调度器将请求来的数据包的目标mac地址改为real 

LVS 的 NAT模式和DR模式介绍及搭建

LVS简介: LVS全称 Linux Vritual Server,linux虚拟服务器,主要用于多服务器的负载均衡,工作于网络层.LVS工作相似iptables,很多原理相通. LVS调度方法: # grep -i 'VS'/boot/config-2.6.32-431.el6.x86_64 |grep -A 10 'IPVS scheduler' # IPVS scheduler CONFIG_IP_VS_RR=m CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m C