图解lvs的nat设置

简介:

一.LB集群的介绍

二.LB集群之lvs的三种模式

三. LVS的NAT模式实例,测试nginx



一.LB集群的介绍

集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。集群系统的主要优点:高可扩展性、高可用性、高性能、高性价比。

计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。

集群就是一组独立的计算机,通过网络连接组合成一个组合来共同完一个任务

用户-->LVS负载均衡服务器--->apahce服务器--->mysql服务器&memcache服务器&共享存储服务器。并且我们的mysql、共享存储也能够使用LVS再进行负载均衡。

LB=load balance

常用开源集群软件有:lvs,keepalived,haproxy,nginx,apache,heartbeat

常用商业集群硬件有:F5,Netscaler,Radware,A10等



二.LB集群之lvs的三种模式

lvs(Linux Virtual Serverlinux虚拟服务器):提供更高的吞吐率、提供冗余、更灵活的实用性

lvs 有三种模式

NAT   TUN  DR

1.NAT 模式

原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器

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

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

2.TUN(IP隧道)模式

原理:首先要知道,互联网上的大多Internet服务的请求包很短小,而应答包通常很大。那么隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议所以,在RS的内核中,必须编译支持IPTUNNEL这个选项

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

3.DR模式(直接路由)

原理:负载均衡器和RS都使用同一个IP对外服务但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上

优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

官方三种负载均衡技术比较总结表:


工作模式


VS/NAT


VS/TUN


VS/DR


Real server(节点服务器)


Config dr gw


Tunneling


Non-arp device/tie vip


Server Network


Private


LAN/WAN


LAN


Server number(节点数量)


Low 10-20


High 100


High 100


Real server gateway


Load balance


Own router


Own router


优点


地址和端口转换


Wan环境加密数据


性能最高


缺点


效率低


需要隧道支持


不能跨域LAN

Lvs的调度算法决定了如何在集群节点之间分布工作负荷。当director调度器收到来自客户端访问VIP的上的集群服务的入站请求时,director调度器必须决定哪个集群节点应该处理请求。Director调度器用的调度方法基本分为两类:

固定调度算法:rr,wrr,dh,sh

动态调度算法:wlc,lc,lblc,lblcr


算法


说明


rr


轮询算法,它将请求依次分配给不同的rs节点,也就是RS节点中均摊分配。这种算法简单,但只适合于RS节点处理性能差不多的情况


wrr


加权轮训调度,它将依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。


Wlc


加权最小连接数调度,假设各台RS的全职依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS


Dh


目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得需要的RS


SH


源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS


Lc


最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS.


Lblc


基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

LVS调度算法的生产环境选型:

1、一般的网络服务,如http,mail,mysql等常用的LVS调度算法为:

a.基本轮询调度rr

b.加权最小连接调度wlc

c.加权轮询调度wrc

2、基于局部性的最小连接lblc和带复制的给予局部性最小连接lblcr主要适用于web cache和DB cache

3、源地址散列调度SH和目标地址散列调度DH可以结合使用在防火墙集群中,可以保证整个系统的出入口唯一。

实际适用中这些算法的适用范围很多,工作中最好参考内核中的连接调度算法的实现原理,然后根据具体的业务需求合理的选型。

LVS-- ipvsadm命令详解

1,virtual-service-address:是指虚拟服务器的ip地址

2,real-service-address:是指真实服务器的ip地址

3,scheduler:调度方法

ipvsadm的用法和格式如下:


ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p [timeout]] [-M netmask]
ipvsadm -D -t|u|f virtual-service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port [-g|i|m] [-w weight]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]
ipvsadm --set tcp tcpfin udp
ipvsadm --start-daemon state [--mcast-interface interface]
ipvsadm --stop-daemon
ipvsadm -h

命令选项解释:
有两种命令选项格式,长的和短的,具有相同的意思。在实际使用时,两种都可以。

-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。

-E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。

-D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。

-C --clear 清除内核虚拟服务器表中的所有记录。

-R --restore 恢复虚拟服务器规则

-S --save 保存虚拟服务器规则,输出为-R选项可读的格式

-a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器

-e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录

-d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录

-L|-l --list 显示内核虚拟服务器表

-Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)

--set tcp tcpfin udp 设置连接超时值

--start-daemon 启动同步守护进程。他后面可以是master或backup,用来说明LVS Router是master或是backup。在这个功能上也可以采用keepalived的VRRP功能。

--stop-daemon 停止同步守护进程

-h --help 显示帮助信息

其他的选项:
     -t --tcp-service service-address 说明虚拟服务器提供的是tcp的服务[vip:port] or [real-server-ip:port]

-u --udp-service service-address 说明虚拟服务器提供的是udp的服务[vip:port] or [real-server-ip:port]

-f --fwmark-service fwmark 说明是经过iptables标记过的服务类型。

-s --scheduler scheduler 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,
默认的调度算法是: wlc.

-p --persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout的默认值为300秒。

-M --netmask netmask persistent granularity mask

-r --real-server server-address 真实的服务器[Real-Server:port]

-g --gatewaying 指定LVS的工作模式为直接路由模式(也是LVS默认的模式)

-i --ipip 指定LVS的工作模式为隧道模式

-m --masquerading 指定LVS的工作模式为NAT模式

-w --weight weight 真实服务器的权值

--mcast-interface interface 指定组%B



三. LVS的NAT模式实例

centos 6.5 64位

1.环境:需要三台电脑

客户端

ha:需要二个网卡一个内网一个外网

内网 eth0:192.168.170.129  Nat模式

外网 eth0:192.168.0.10        桥接模式



服务端

host1:内网网卡

eth0:192.168.170.130  255.255.255.0 192.168.170.129 Nat模式

host2:内网网卡

eth0:192.168.170.128   255.255.255.0 192.168.170.129 Nat模式



服务端操作

1.服务端安装ipvsadm

yum install -y ipvsadm

2.编写一个路由转发的脚本

vim /usr/local/sbin/lvs_nat.sh

写入内容

#! /bin/bash

#ha服务器上开启路由转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

#关闭icmp的重定向

echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects

echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects

echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects

echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects

#ha设置nat防火墙

iptables -t nat -F

iptables -t nat -X

iptables -t nat -A POSTROUTING -s 192.168.170.0/24 -j MASQUERADE  #从内网网段过来的,nat转发规则

#ha设置ipvsadm

IPVSADM=‘/sbin/ipvsadm‘

$IPVSADM -C

$IPVSADM -A -t 192.168.0.10:80 -s rr

# rr算法 -p表示超链接 ip用外网 -m表示 nat -a增加一个主机

# -A 增加一个directory  -r增加real主机的内网

$IPVSADM -a-t 192.168.0.10:80  -r 192.168.170.128:80 -m

$IPVSADM -a -t 192.168.0.10:80 -r 192.168.170.130:80 -m

3.配置完后执行脚本

sh /usr/local/sbin/lvs_nat.sh

4.查看端口

ipvsadm -ln



客户端的操作

1.2台host主机网关改成ha的内网ip

2.2台rs 上都安装nginx,然后启动



yum install -y pcre*  openssl*  gcc gcc-c++  zlib zlib-devel

下载源码包

wget http://nginx.org/download/nginx-1.6.3.tar.gz

解压压缩包

tar zxvf nginx-1.6.3.tar.gz

进入nginx目录下

cd nginx-1.6.3

编译安装

./configure --prefix=/usr/local/nginx

make

make install

启动nginx

/usr/local/nginx/sbin/nginx



3.2台host服务器用curl 来查看

ha 查看方法

curl 192.168.0.10 查看

时间: 2024-10-14 09:06:31

图解lvs的nat设置的相关文章

LVS的NAT设置

 LVS/NAT 配置 三台服务器一台作为director, 两台作为real serverDirector 有一个外网ip (192.168.31.166) 和一个内网ip(192.168.21.166), 两个real server上只有内网ip(192.168.21.100)和(192.168.21.101) 并且需要把两个real server的内网网关设置为director的内网ip(192.168.21.166)vmware网络设置: http://www.apelearn.com/

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(一)——LVS介绍和LVS的NAT工作模式

LVS介绍 集群按照类型划分可以分为:LB负载均衡型:HA高可用型:HP高性能型.LVS(linux virtual machine)是一款国人编写用于LB负载均衡型被收录进Linux内核的工具.LVS由ipvs和ipvsadmin组成,ipvs工作在netfilter框架上,而ipvsadm则是使用者在用户空间的命令行工具,通过调用ipvs的API管理集群服务.LVS支持TCP.UDP.AH, EST, AH_EST, SCTP等诸多协议,与haproxy(haproxy也可以以mod tcp

请描述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 的 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

lvs的NAT模式

1.什么是LVS? linux virtual service,linux虚拟服务,使用多台服务器一起工作来提高服务的访问和处理性能 通过LVS提供的负载均衡技术和linux系统实现一个高性能.高可用的服务器集群,它具有良好的可靠性.可扩展性和可操作性,成本低廉的特性 负载均衡:软件实现.硬件实现 负载均衡设备: 2.lvs的工作模式 (1)nat模式 :通过网络 地址转换访问服务(最多同时支持20台服务器)    (2)tun模式:通过IP隧道访问服务 (3)dr模式:(direct )直接调

LVS负载均衡器NAT和DR工作模式详解

在试验之前为了更好理解设置的参数,所以先讲解一下命令. 一.lvs配置文件和命令: 程序包:ipvsadm(LVS管理工具) 配置文件:/etc/sysconfig/ipvsadm-config [rpm -ql ipvsadm  查询包的具体列表] -A  在服务器列表中新添加一条新的虚拟服务器记录 -t 表示为tcp服务 -u 表示为udp服务 -s 使用的调度算法  (rr|wrr|wlc|lc|dh|sh|lblb|lblcr -a 在服务器里添加一条新的真是主机记录 -m 说明lvs提

负载均衡集群介绍,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.磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用.最大化吞吐率.最小化响应时间.同时避免过载的目的.这是来自维基百科的介绍.负载均衡的目的,就在于平衡计算机