标签:cti ip配置 会话 高可用 support 配置 test replica 访问
LVS特性介绍:1 属于四层调度[物理层|数据链路层|网络层|传输层]
不需要解封装,但不能识别报文数据,速度快,性能好!
2 高可用性实现方式--keepalived
3 工作原理:
LVS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度 算法来挑选RS
4 工作位置:INPUT链之前
5 专用术语简介:
VS:Virtual Server,Director Server(DS) --调度器
Dispatcher(调度器),Load Balancer
RS:Real Server(lvs), upstream server(nginx)
backend server(haproxy) --后端服务器
CIP:Client IP --客户端拥有的IP地址
VIP: Virtual serve IP VS外网的IP
DIP: Director IP VS内网的IP
RIP: Real server IP 后端服务器IP
6 访问流程简述:
CIP <--> VIP == DIP <--> RIP
7 命令行管理工具:ipvsadm
8 工作于内核级别,支持并发访问量大
验证内核支持LVS
[root@KEEP208:56:43~]#cat /boot/config-3.10.0-862.el7.x86_64 | grep -i "ipvs"
CONFIG_NETFILTER_XT_MATCH_IPVS=m
# IPVS transport protocol load balancing support
# IPVS scheduler
# IPVS SH scheduler
# IPVS application helper
LVS四种模型简介:NAT
lvs-nat:修改请求报文的目标IP,多目标IP的DNAT
解析:
本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发
(1) RIP和DIP应在同一个IP网络[也可以跨网段],且应使用私网地址;RS的网关要指向DIP
(2)请求报文和响应报文都必须经由LVS转发,LVS易于成为系统瓶颈
(3)支持端口映射,可修改请求报文的目标PORT
(4)VS必须是Linux系统,RS可以是任意OS系统
LVS四种模型简介:DR
lvs-dr:操纵封装新的MAC地址 默认模式
解析:
LVS-DR:Direct Routing,直接路由,LVS默认模式,应用最广泛
通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC
目标 MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标 IP/PORT均保持不变
1 LVS和各RS都配置有VIP
2 确保前端路由器将目标IP为VIP的请求报文发往LVS
方式1:
在前端网关做静态绑定VIP和LVS的MAC地址
方式2:
在RS上使用arptables工具
arptables -A IN -d $VIP -j DROP
arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP
方式3:
在RS上修改内核参数以限制arp通告及应答级别
忽略apr广播:
/proc/sys/net/ipv4/conf/all/arp_ignore --1
不宣称自己有这段IP:
/proc/sys/net/ipv4/conf/all/arp_announce --2
后端服务器也设置vip一样的IP地址
配置解析:
限制响应级别:arp_ignore
0:默认值,表示可使用本地任意接口上配置的任意地址进行响应
1: 仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应
限制通告级别:arp_announce
0:默认值,把本机所有接口的所有信息向每个接口的网络进行通告
1:尽量避免将接口信息向非直接连接网络进行通告
2:必须避免将接口信息向非本网络进行通告
参数其它配置:
[root@KEEP211:01:29~]#find /proc -name *arp_ign*
/proc/sys/net/ipv4/conf/all/arp_ignore
/proc/sys/net/ipv4/conf/default/arp_ignore
/proc/sys/net/ipv4/conf/eth0/arp_ignore
/proc/sys/net/ipv4/conf/eth1/arp_ignore
/proc/sys/net/ipv4/conf/lo/arp_ignore
........................................................
[root@KEEP211:47:29~]#find /proc -name *arp_announce*
/proc/sys/net/ipv4/conf/all/arp_announce
/proc/sys/net/ipv4/conf/default/arp_announce
/proc/sys/net/ipv4/conf/eth0/arp_announce
/proc/sys/net/ipv4/conf/eth1/arp_announce
/proc/sys/net/ipv4/conf/lo/arp_announce
vip配置在lo接口上!
举例:
ip a a 1.1.1.1/32 dev lo --要配置32的子网掩码
---加默认路由 route add default dev eth0
ping -I 1.1.1.1 1.1.1.2 --指定从本机那个IP -ping对方
DR模型特点:
1 RS的RIP可以使用私网地址,也可以是公网地址;
2 RIP与DIP在同一IP网络; RIP的网关不能指向DIP,以确保响应报文不会经由Director
3 RS和LVS一个物理网络
4 请求报文要经由LVS,相应报文不经过LVS
而由RS直接发往 Client
5 不支持端口映射-端口不能修改
6 RS可使用大多数OS系统
DR模型不用启用ip_forward功能
NAT模型必须要启用此功能
LVS四种模型简介:tun
lvs-tun: 在原请求IP报文之外新加一个IP首部
转发方式:不修改请求报文的IP首部(源IP为CIP,目标IP为VIP)
而在原IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP)
将报文发往挑选出的目标 RS;RS直接响应给客户端(源IP是VIP,目标IP是CIP)
(1) DIP, VIP, RIP都应该是公网地址
(2) RS的网关一般不能指向DIP
(3) 请求报文要经由Director,但响应不能经由Director
(4) 不支持端口映射
(5) RS的OS须支持隧道功能
LVS四种模型简介:lvs-fullnat
lvs-fullnat:
通过同时修改请求报文的源IP地址和目标IP地址进行转发
CIP --> DIP
VIP --> RIP
(1) VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;
因此RIP的网关一般不会指向DIP
(2) RS收到的请求报文源地址是DIP,因此只需响应给DIP;
但Director还 要将其发往Client
(3) 请求和响应报文都经由LVS
(4) 支持端口映射
注意:此类型kernel默认不支持
模式之间差异总结:
差异总结:
lvs-nat与lvs-fullnat:请求和响应报文都经由Director
lvs-nat:RIP的网关要指向DIP
lvs-fullnat:RIP和DIP未必在同一IP网络,但要能通信
lvs-dr与lvs-tun:请求报文要经由Director,但响应报文由RS直接发往Client
lvs-dr:通过封装新的MAC首部实现,通过MAC网络转发
lvs-tun:通过在原IP报文外封装新IP头实现转发,支持远距离通信
对比项 NAT TUN DR
后端服务器 任何服务器 必须支持隧道 关闭apr广播
服务器网络 私网/公网 私网/公网 局域网
后端服务器数量 10--20 最大100 最大100
服务器网关: 指向LVS 其它路由 其它路由
LVS十种算法:静态算法
1、RR:roundrobin,轮询
2、WRR:Weighted RR,加权轮询
自己的权重/总权重
3、SH:Source Hashing,实现session sticky,源IP地址hash;
将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定
4、DH:Destination Hashing;目标地址哈希,将发往同一个目标地址的请求始终转发至第一次挑中的RS,
典型使用场景是正向代理缓存场景中的负载均衡, 如:宽带运营商
LVS十种算法:动态算法
1、LC:least connections 适用于长连接应用[最小连接算法]
Overhead=activeconns*256+inactiveconns
活动连接*256+非活动连接
值越小优先级越高!
2、WLC:Weighted LC,默认调度方法
Overhead=(activeconns*256+inactiveconns)/weight
(活动连接*256+非活动连接)/权重
值越小优先级越高!
权重越大,值越小,优先级越高
第一个请求过来时,为0
3、SED:Shortest Expection Delay,初始连接高权重优先
Overhead=(activeconns+1)*256/weight
(活动连接+1)*256/权重
4、NQ:Never Queue,第一轮均匀分配,后续SED
5、LBLC:Locality-Based LC,动态的DH算法,
使用场景:根据负载状态实现 正向代理
6、LBLCR:LBLC with Replication,带复制功能的LBLC,
解决LBLC负载不均衡 问题,从负载重的复制到负载轻的RS
标签:cti ip配置 会话 高可用 support 配置 test replica 访问
原文地址:http://blog.51cto.com/13878078/2317652