搭建简单lvs-nat式集群

什么是集群?

集群,是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。集群的工作方式类似于人们之间的协同工作。
lvs-nat集群是一种最简单的集群。他的结构类似于linux透明代理服务器。

lvs-nat模式:

本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发
(1)RIP和DIP必须在同一个IP网络,且应该使用私网地址;RS的网关要指向DIP
(2)请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈
(3)支持端口映射,可修改请求报文的目标PORT
(4)VS必须是Linux系统,RS可以是任意OS系统


VS/NAT的体系结构

NAT模式IP包调度过程
实现vs-nat简单模式集群:

首先让我们了解下集群中或用到术语及命令:
lvs集群类型中的术语:

VS:Virtual Server, Director, Dispatcher(调度器),Load Balancer
RS:Real Server(lvs), upstream server(nginx),backend server(haproxy)
CIP:Client IP
VIP: Virtual serve IPVS外网的IP
DIP: Director IPVS内网的IP
RIP: Real server IP
访问流程:CIP <--> VIP == DIP <--> RIP

命令的介绍:

lvs: ipvsadm/ipvs
ipvsadm:用户空间的命令行工具,规则管理器
用于管理集群服务及RealServer
ipvs:工作于内核空间netfilter的INPUT钩子上的框架
程序包:ipvsadm
Unit File: ipvsadm.service
主程序:/usr/sbin/ipvsadm
规则保存工具:/usr/sbin/ipvsadm-save
规则重载工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config

ipvsadm命令:

核心功能:
集群服务管理:增、删、改
集群服务的RS管理:增、删、改
查看
ipvsadm-A|E -t|u|fservice-address [-s scheduler] [-p [timeout]] [-M netmask] [--pepersistence_engine] [-b sched-flags]
ipvsadm-D -t|u|fservice-address 删除
ipvsadm–C 清空
ipvsadm–R 重载
ipvsadm-S [-n] 保存
ipvsadm-a|e-t|u|fservice-address -r server-address [options]
ipvsadm-d -t|u|fservice-address -r server-address
ipvsadm-L|l[options]
ipvsadm-Z [-t|u|fservice-address]

管理集群服务:增、改、删

增、改:
ipvsadm  -A|E  -t|u|f  service-address  [-s scheduler]  [-p [timeout]]
删除:
ipvsadm -D  -t|u|f  service-address
service-address:
-t|u|f:
-t: TCP协议的端口,VIP:TCP_PORT
-u: TCP协议的端口,VIP:UDP_PORT
-f:firewall MARK,标记,一个数字
[-s scheduler]:指定集群的调度算法,默认为wlc

管理集群上的RS:增、改、删

增、改:ipvsadm-a|e-t|u|fservice-address -r server-address [-g|i|m] [-w weight]
删除:ipvsadm-d -t|u|fservice-address -r server-address
server-address:
rip[:port]如省略port,不作端口映射
选项:
lvs类型:
-g: gateway, dr类型,默认
-i: ipip, tun类型
-m: masquerade, nat类型
-w weight:权重

其他一些命令

清空定义的所有内容:ipvsadm–C
清空计数器:ipvsadm-Z [-t|u|fservice-address]
查看:ipvsadm-L|l[options]
--numeric, -n:以数字形式输出地址和端口号
--exact:扩展信息,精确值
--connection,-c:当前IPVS连接输出
--stats:统计信息
--rate :输出速率信息
ipvs规则:/proc/net/ip_vs
ipvs连接:/proc/net/ip_vs_conn
保存:建议保存至/etc/sysconfig/ipvsadm
ipvsadm-save > /PATH/TO/IPVSADM_FILE
ipvsadm-S > /PATH/TO/IPVSADM_FILE
systemctlstop ipvsadm.service
重载:
ipvsadm-restore < /PATH/FROM/IPVSADM_FILE
ipvsadm-R < /PATH/FROM/IPVSADM_FILE
systemctlrestart ipvsadm.service
一、实验环境:

规划:5台centos7 防火墙关闭或清空 iptables -F
client : ip:192.168.18.130
route ip :eth0 192.168.18.131 eth1 192.168.114.129
VS ip:(VIP)eth0 192.168.114.128 (DIP)eth1 192.168.179.131
RS1 ip: 192.168.179.130
RS2 ip:192.168.179.128
简单环境拓扑图:

二、实现网络的连通

在客户端上添加网关:
route add default gw 192.168.18.131 //网关指向路由
在路由器上添加路由:
route add -net 192.168.179.0/24 gw 192.168.114.128
在VS中添加路由:
route add -net 192.168.18.0/24 gw 192.168.114.129
在RS1中添加路由:
route add default gw 192.168.129.131
在RS2中添加路由:
route add default gw 192.168.129.131
其中RS1与RS2添加相同 网关是接收数据,处理数据后返回。
在route与VS中开启转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward 这只是临时生效永久修改配置文件
在/etc/sysctl.conf中添加 net.ipv4.ip_forword=1 ,运行sysctl -p 立即生效。

三、设置VS
ipvsadm  -A  -t 192.168.114.128 -ss rr //增加集群使用模式为roundrobin,轮询
ipvsadm  -a  -t 192.168.114.128 -r 192.168.179.130 -m  添加RS ,-m使用nat类型。
ipvsadm  -a  -t 192.168.114.128 -r 192.168.179.128 -m 
ipvsadm -Ln 查看
[root@cnetos7 ~]#ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP 192.168.114.128  rr
  -> 192.168.179.128:80           Route   1      0          0         
  -> 192.168.179.130:80           Route   1      0          0    
修改:
iptables -E   -t 192.168.114.128 -ss wrr //Weighted RR,加权轮询
 ipvsadm  -e  -t 192.168.114.128 -r 192.168.179.130 -m   -w 3  

到这里就简单的实现了vs-nat的简单集群!

LVS集群的特点可以归结如下:

功能
1.有实现三种IP负载均衡技术和八种连接调度算法的IPVS软件。在IPVS内部实现上,采用了高效的Hash函数和垃圾回收机制,能正确处理所调度报文相 关的ICMP消息(有些商品化的系统反而不能)。虚拟服务的设置数目没有限制,每个虚拟服务有自己的服务器集。它支持持久的虚拟服务(如HTTP Cookie和HTTPS等需要该功能的支持),并提供详尽的统计数据,如连接的处理速率和报文的流量等。针对大规模拒绝服务(Deny of Service)攻击,实现了三种防卫策略。
有基于内容请求分发的应用层交换软件KTCPVS,它也是在Linux内核中实现。有相关的集群管理软件对资源进行监测,能及时将故障屏蔽,实现系统的高可用性。主、从调度器能周期性地进行状态同步,从而实现更高的可用性。
2.适用性
后端服务器可运行任何支持TCP/IP的操作系统,包括Linux,各种Unix(如FreeBSD、Sun Solaris、HP Unix等),Mac/OS和Windows NT/2000等。
负载调度器能够支持绝大多数的TCP和UDP协议:
协议 内 容
TCP HTTP,FTP,PROXY,SMTP,POP3,IMAP4,DNS,LDAP,HTTPS,SSMTP等
UDP DNS,NTP,ICP,视频、音频流播放协议等
无需对客户机和服务器作任何修改,可适用大多数Internet服务。
3.性能
LVS服务器集群系统具有良好的伸缩性,可支持几百万个并发连接。配置100M网卡,采用VS/TUN或VS/DR调度技术,集群系统的吞吐量可高达1Gbits/s;如配置千兆网卡,则系统的最大吞吐量可接近10Gbits/s。
4.可靠性
LVS服务器集群软件已经在很多大型的、关键性的站点得到很好的应用,所以它的可靠性在真实应用得到很好的证实。有很多调度器运行一年多,未作一次重启动。
5.软件许可证
LVS集群软件是按GPL(GNU Public License)许可证发行的自由软件,这意味着你可以得到软件的源代码,有权对其进行修改,但必须保证你的修改也是以GPL方式发行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,427评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,551评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,747评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,939评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,955评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,737评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,448评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,352评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,834评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,992评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,133评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,815评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,477评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,022评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,147评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,398评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,077评论 2 355

推荐阅读更多精彩内容

  • 1 概述 负载均衡集群设计时要注意两点:一是否需要会话保持;二是否需要共享存储,共享存储分为NAS,SAN,DS(...
    ghbsunny阅读 1,540评论 0 0
  • why LVS 说到LVS,不得不说起F5。F5的LTM(本地流量管理器)在部署上、负载均衡原理上类似,但是也有十...
    朱晓飞阅读 4,813评论 1 12
  • 集群的概念LVS介绍ipvsadm的使用实现LVS-NAT实现LVS-DRLVS高可用 一、集群的概念 (一)系统...
    哈喽别样阅读 767评论 0 2
  • 1 基于LVS-NAT的设计:实现nat模式的lvs实验 搭建环境:先将各主机的防火墙策略和selinux关闭,打...
    楠人帮阅读 1,155评论 0 0
  • 因为考研,无意中加了一个考研老师的qq,他经常在说说里帮同学们发布求助帖,底下就是各种出谋献策的评论,平时无聊的时...
    樱花蜗牛阅读 822评论 0 7