ipvsadm简介
前端
Linux主机能够做为一个服务分发的设备。好比一群服务主机向外提供相同服务,为了让客户能够访问统一的服务入口,须要一个前端主机。拿一台Linux设备启动ipvsadm程序就能够向外提供统一服务接口。算法
ipvsadm部署方式服务器
ipvsadm的部署方式有两种:一、NAT模式 二、桥接模式ide
一、NAT模式工具
第一步:客户端发送请求报文性能
Source IP:CIP+CPORTspa
Destination IP: VIP+VPORTrest
第二步:虚拟主机(ipvsadm)接到请求报文后进行修改接口
Source IP:CIP+CPORT图片
Destination IP:RIP+RPORT
第三步:真实主机响应报文
Source IP:RIP+RPORT
Destination IP:CIP+CPORT
第四步:虚拟主机收到响应报文进行修改
Source IP:VIP+VPORT
Destination IP:CIP+CPORT
注意:Real Server的网关必须指向Virtual Server,由于必须保证Real Server的响应报文会被Virtual Server进行修改。
固然,因为Virtual Server是Client和Real Server的惟一通道,因此Virtal Servre是一个性能瓶颈和故障点。
Virtual Server 支持端口映射,可是Real Server提供服务的端口必须一致。
二、桥接模式(DR)
Direct Routing
这个模型中,Virtual Server的数据口与Real Server的数据口处于同一个网段内,不像NAT的方式,Virtual Server须要两种网口(1个用来接收请求,一个用来与Real Server通讯)。
第一步:客户端发送请求报文
Source IP:CIP+CPORT
Destination IP: VIP+VPORT
第二步:虚拟主机将请求进行分发
Source IP:CIP+CPORT
Destination IP: VIP+VPORT
第三步:真实主机响应请求
Source IP:VIP+RPORT
Destination IP:CIP+CPORT
注意:每一个Real Server都有相同的VIP。在Real Server中,回环接口上配置VIP
Linux有个默认规则,从哪一个网口发出去的报文,IP头部就是哪一个网卡的IP地址。因此为了可以让响应报文的IP头部是VIP,须要在Linux内部作一些处理,让响应报文即便从真实网卡发出,可是源IP仍是VIP
Real IP和VIP,不必定是同一网段,那么在组网的时候会有些困难,不易理解。推荐将Real IP 和 VIP划分到相同网段上。可是这就又引出了一个问题,同一个主机上如何有两个相同网段的IP地址。
请求报文必须先发给DR,虽然每一个服务器的VIP都同样,这就须要经过技术手段将VIP于VMAC进行绑定。
Real Server和DR的数据通讯网段必须是同一个网段。
ipvs功能说明
实质上就是在iptables中的input链上增长一个处理器,根据用户定义规则对数据包进行修改。ipvs功能与防火墙功能冲突,因此启动了ipvs功能的主机最好不要启用系统防火墙。ipvs在内核中的协议栈上实现。ipvs相似于一个程序,若是须要对程序规则进行改变的话就须要ipvsadmin这个管理工具。
一个ipvs主机能够同时定义多个Cluster Service
一个ipvs服务至少须要包含一个Real Server
ipvsadmin
查看当前系统是否支持ipvs
ipvs须要经过YUM进行安装
经过ipvsadm管理集群服务
-A 增
-E 改 只能修改属性,不能修改地址,若是要修改服务地址,须要删了重作
-t TCP协议
-u UDP协议
-f firewall mark 防火墙标记 FWM
service-add 是虚拟IP+PORT
-s 指定调度算法
-D删除
经过ipvsadm管理集群上的Real Server
-a 添加RS
-e 编辑RS
-r 指定RS
-g gateway 默认选项 数据包的转发方式
-i 隧道模式
-m NAT模式
-w 设置权重
经过ipvsadm查看管理的集群
-n 以数字方式显示
--exact 精确值显示
-c 显示当前IPVS的链接
--stats统计信息
--rate速率
经过ipvsadm清空规则
-C
经过ipvsadm保存规则
-S 调用ipvsadm-save
经过ipvsadm重载规则
-R调用 ipvsadm-restore
ipvsadm -R < /tmp/ipvsadm.policy
经过ipvsadm 清空计数器
-Z