lvs nat搭建

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

实验环境:使用vmware虚拟出4台linux,有一台作为client(rhel4.6),其中两台作为realserver(rhel5.6),另外一台作为lvs-nat(rhel5.6),各机器模拟信息如下图:

vmware里的各虚机网卡均采用桥接模式,lvs主机另添加了一块网卡eth1,共用两块网卡。

实验过程:在实验前,统一把各主机selinux和iptables关掉,lvs软件也就是这里安装的ipvsadm软件。

1.lvs配置:

先静态配置两个ip:eth0、eth1:

LVS# cat /etc/sysconfig/network-scripts/ifcfg-eth0

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.65.200

NETWORK=192.168.65.0

NETMASK=255.255.255.0

BROADCAST=192.168.65.255

HWADDR=00:0C:29:03:54:66

ONBOOT=yes

LVS# cat /etc/sysconfig/network-scripts/ifcfg-eth1

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]

DEVICE=eth1

BOOTPROTO=static

IPADDR=192.168.200.200

NETWORK=192.168.200.0

NETMASK=255.255.255.0

BROADCAST=192.168.200.255

ONBOOT=yes

HWADDR=00:0c:29:03:54:70

LVS#mount /dev/cdrom /media

LVS#cd /media/Cluster

LVS# rpm -ivh ipvsadm-1.24-12.el5.i386.rpm

到这里,ipvsadm功能可以使用了,下面指明lvs主机与realserver主机:

LVS# ipvsadm -A -t 192.168.200.200:80 -s rr   ///增加一台新的虚拟服务器,tcp地址为192.168.200.200,指明端口是web,使用调度算法是rr

LVS# ipvsadm -a -t 192.168.200.200:80 -r 192.168.200.210 -m   ///增加一个realserver:192.168.200.210,lvs的模式为nat

LVS# ipvsadm -a -t 192.168.200.200:80 -r 192.168.200.220 -m   ///如果有很多台realserver,可以一次往下添加

......

LVS# ipvsadm -ln     ///检验刚刚添加的配置是否正确

LVS# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1   ///将0改为1,开启ip转发功能,因为这里的lvs相当于分离器,将收到的请求转发给realserver

LVS# /sbin/sysctl -p   ///打印上一步的修改,检查有无错误

到这里,lvs机器基本信息配置完成,lvs不需要配置web(apache)。

2.配置realserver RS1:

首先将ip地址eth0写成静态:

RS1# cat /etc/sysconfig/network-scripts/ifcfg-eth0

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.200.210

NETWORK=192.168.200.0

NETMASK=255.255.255.0

BROADCAST=192.168.200.255

GATEWAY=192.168.200.200

HWADDR=00:0C:29:F8:73:52

ONBOOT=yes

RS1# yum install httpd

RS1# vi /var/www/html/index.html

RS1-----IP:192.168.200.210

RS1#service httpd restart

3.配置realserver RS2:

RS2# cat /etc/sysconfig/network-scripts/ifcfg-eth0

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.200.220

NETWORK=192.168.200.0

NETMASK=255.255.255.0

BROADCAST=192.168.200.255

GATEWAY=192.168.200.200

HWADDR=00:0C:29:05:BB:BE

ONBOOT=yes

RS2# yum install httpd

RS2# vi /var/www/html/index.html

RS2---------ip:192.168.200.220

RS2# service httpd restart

4.客户端的配置:

client# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.65.100

NETWORK=192.168.65.0

NETMASK=255.255.255.0

BROADCASTL=192.168.65.255

GATEWAY=192.168.65.200

HWADDR=00:0C:29:76:ED:97

ONBOOT=yes

TYPE=Ethernet

接下来再客户机上面执行测试操作:

在命令符终端上面验证:

在浏览器上面验证:

在客户机上面验证表明lvs功能发挥成功。

下面在lvs机器上面查看实验过程:

到这里,种种迹象表明lvs的nat模式搭建成功。下面介绍相关原理:

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

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

3,scheduler:调度方法

([email protected] 翻译 ipvsadm v1.21 2004 年4 月)

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 指定组播的同步接口

-c --connection 显示LVS 目前的连接 如:ipvsadm -L -c

--timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout

--daemon 显示同步守护进程状态

--stats 显示统计信息

--rate 显示速率信息

--sort 对虚拟服务器和真实服务器排序输出

--numeric -n 输出IP 地址和端口的数字形式

算法:

rr一人一个,缺点是当群中有的机器性能好,有的性能坏,坏的扛不住

wrr基于权重的rr算法,缺点是新加的RS不会分担旧RS的负载。

如RS1   负载100

RS2   负载100

RS3(new) 1    RS3永远比旧RS少负担100

lc 最少链接  新加入的RS会主动承担负载,lvs会将新的请求全部分给新RS,直到新RS的负载和旧的大致相等的时候在分发

wlc基于权重的lc

lblc 尽可能让同一个访问分到同一个RS上,CDN常用,可以提高命中

sh 基于源IP的hash算法,保证同一个源IP的请求分到同一台RS上。主要用在会话连接中,如输入账号密码,如果用rr,两次请求就会切换到不同的RS上,就会需要重新输入账号密码,除非用cookice。

dh基于目标IP的hash算法

lvs nat搭建,布布扣,bubuko.com

时间: 2024-10-20 03:55:29

lvs nat搭建的相关文章

使用LVS+NAT搭建集群实现负载均衡

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

IPVSADM NAT搭建总结

LVS NAT搭建总结: 在构建高性能LVS NAT服务器集群时,共分为三层结构,分别为分发成,realserver和存储池等三种. 首先对于分发层的应用需要两块网卡其中一块网卡地址为公网ip起名为VIP:另一块网卡地址为DIP起到分发的作用. 并以此IP地址作为realserver的网关地址和其中一个DNS地址.对于realserver应该保证其地址与分发器的DIP地址位于同一网段. 其中:对于分发器操作: 首先安装ipvsadmrpm包,本系统使用的是rhel6.7,具体操作过程如下: 网络

lVS(nat模式)+keepalived搭建

关于网上lvs+keepalived的文章很多,但是多数都是DR模式的方案,对于 nat模式的并不多见,因此,在此写一份nat模式的文章,仅供分享也当笔记保存. 网络拓扑结构: 现在的Linux系统内核都是支持lvs的,所以我们直接可以用yum安装ipvsadm yum 源的替换,将系统的yum源替换成163的yum源 [[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# ls centos-16

LVS NAT模式搭建

准备工作 1.设备分配 192.168.137.100          LB Server(另一块公网网卡:192.168.138.100) 192.168.137.150          Server01(网关:192.168.137.100) 192.168.137.200          Server02(网关:192.168.137.100) 注:完成所有准备工作后调整设备网关. 2.关闭所有设备防火墙 systemctl stop firewalld systemctl disa

18.6 负载均衡集群介绍;18.7 LVS介绍;18.9 LVS NAT模式搭建(上);18.10 LVS NAT模式搭建(下)

扩展: lvs 三种模式详解 http://www.it165.net/admin/html/201401/2248.html lvs几种算法 http://www.aminglinux.com/bbs/thread-7407-1-1.html 关于arp_ignore和 arp_announce http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html lvs原理相关的   http://blog.csdn.net/pi9nc/

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

负载均衡集群介绍 实现负载均衡集群的软件有:LVS.keepalived.Nginx.haproxy等.其中LVS属于四层(网络OSI模型):Nginx 属于七层:haproxy既可以认为是四层,也可以当作是七层使用. keepalived 的负载均衡功能其实就是lvs LVS.haproxy这种四层负载均衡可以分发除80端口以外的通信,如mysql-3306:而nginx 仅仅支持http,https,mail. 相对来说,LVS 这种四层的更加稳定,能承受更多的请求,而nginx 这种七层的

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

18.6 负载均衡集群介绍 主流开源软件LVS.keepalived.haproxy.Nginx等 其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy既可以认为是4层,可以当做7层使用 keepalived的负载均衡功能其实就是lvs lvs这种4层的负载均衡是可以分发除80外的其他端口通信的,比如MySQL的,而Nginx仅仅支持HTTP,HTTPS,mail,haproxy也支持MySQL这种 相比较来说,LVS这种4层的更稳定,能承受更多的请求,而Nginx这种

18.6 负载均衡集群介绍;18.7 LVS介绍;18.9-18.10 LVS NAT模式搭建(上下

扩展 lvs 三种模式详解 : http://www.it165.net/admin/html/201401/2248.html lvs几种算法 : http://www.aminglinux.com/bbs/thread-7407-1-1.html 关于arp_ignore和 arp_announce : http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html lvs原理相关的 : http://blog.csdn.net/p

18.6 负载均衡集群介绍 18.7 LVS NAT模式搭建

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 LVS NAT模式搭建 三台机器分发器,也叫调度器(简写为dir)内网:15.132,外网:220.198(vmware仅主机模式)rs1内网:15.135rs2内网:15.139 [[email protected] network-scripts]# yum install -y ipvsdam[[email protected] yum.repos.d]# vim /usr/local/sbi