- A+
LVS:
lvs是一个负载调度器,由内核集成,性能强大,支持百万计并发。
LVS集群的相关概念:
-
VS:虚拟服务器,指LVS服务器自身
-
RS:提供服务的服务器
-
CIP:客户端ip地址
-
VIP:lvs服务器对外发布的ip地址,用户通过vip访问集群
-
DIP:LVS连内网的ip地址叫DIP,用于接收用户请求的ip叫做VIP
用户访问流程:
客户端通过 CIP--->VIP--->DIP---->RIP
LVS的四种工作模式:
-
lvs-nat:修改请求报文的目标IP,多目标IP的DNAT
-
lvs-dr:操纵封装新的MAC地址
-
lvs-tun:在原请求IP报文之外新加一个IP首部
-
lvs-fullnat:修改请求报文的源和目标IP
LVS的NAT工作模式:
NAT:
NAT:网络地址转发,NAT分为SNAT和DNAT
-
SNAT:内部网络的报文发送出去时,报文的源IP会被修改,也就是源地址转换
-
DNAT:外部网络的报文响应时,响应报文的目标IP会再次被修改,也就是目标地址转换
区别:外网向内网发起请求就是DNAT,内网向外网发送请求就是SNAT
LVS-NAT:
lvs-nat:本质是多目标IP的DNAT,转发的ip和端口可以映射到不同的机器上。
工作流程:
发送报文请求时:CIP发送请求报文到VIP,通过lvs的DIP发送请求出去的时候将目标ip和port更改为内部网络的某一个rs的RIP。
回应报文请求时:RIP发送响应报文的时候,源地址和端口是自身的信息,经过lvs的时候,lvs的VIP将源ip和端口替换为自己的,最后发送给CIP
说明:
-
RIP和DIP要位于同一网络
-
响应报文需要原路返回会造成lvs负载加大
-
VS必须是linux系统,RS可以是任意系统
LVS的DR工作模式
DR:Direct Routing,直接路由,LVS的默认模式,不更改报文的端口和ip信息,而是通过为请求报文重新封装一个MAC地址进行转发。
工作流程:
CIP通过VIP发送请求给lvs的时候,请求报文的源MAC改为lsv的DIP网卡的MAC地址,目标MAC是局域网中选择的一RS的RIP地址,因为每个RS上都有一个VIP,所有VIP都一样,所以RS就可以直接通过VIP将响应报文发送给CIP
说明:
-
RS都有一个和lvs相同的VIP
-
需要确保CIP向VIP发送请求的时候是发送给lvs(因为每个rs都有和lvs一样的vip)
-
RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director
-
lvs和rs需要处于同一个物理网络
确保CIP向VIP发送请求报文的时候发送给lvs的方法:
方法一:在路由器上配置arp绑定。设置ip和mac得静态绑定,查询到对应得mac,就把对应得mac解析为ip。
方法二:关闭RS得arp应答功能,请求报文要经由Director(lvs服务器),但响应报文不经由Director,而由RS直接发往Client
arp特殊报文:免费arp,用来探测网络中是否存在地址冲突。 arp响应和主动讯问: 响应:当接收到arp报文的时候,主机会进行回应,通过ip地址得到mac地址 主动讯问:主机会主动向外告诉别人自己的ip对应的mac地址
通过更改RS的内核参数实现:
#将VIP绑定在回环网卡上,通过设置内核的参数实现不响应arp报文和静默模式。 #不响应arp的免费报文 [root@data_server ~]# cat /proc/sys/net/ipv4/conf/lo/arp_ignore 0 #是否开启静默 [root@data_server ~]# cat /proc/sys/net/ipv4/conf/lo/arp_announce 0
LVS的TUN模式
相当于可以不处于同一物理网络的DR模式
工作流程:
不修改报文的原ip信息,而是在加一个IP首部(源:DIP,目标:RIP),RS处理完请求以后直接发送给CIP。因为TUN的RS上也是有VIP。
特点:
-
RIP和DIP可以不处于同一物理网络中,RS的网关一般不能指向DIP,且RIP可以和公网通信。也就是说集群节点可以跨互联网实现。DIP, VIP, RIP可以是公网地址
-
RS的操作系统需要支持隧道功能
LVS的FULLNAT模式:
工作流程:
通过同时修改请求报文的源IP地址和目标IP地址进行转发,请求报文通过CIP访问lvs的时候,将源地址由CIP替换为DIP,目标地址替换为RIP,RS的响应报文园路返回。
NAT模式只会修改目标地址
特点:
-
VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;因此,RIP的网关一般不会指向DIP
-
RS收到的请求报文源地址是DIP,因此,只需响应给DIP;但Director(lvs服务器)还要将其发往Client
-
请求和响应报文都经由Director(lvs服务器),支持端口映射
注意:此类型kernel默认不支持,需要修改内核代码才可以实现。
LVS四种工作模式的比较:
-
NAT:DIP与RIP在同一IP网络;RIP的网关要指向DIP,以确保响应报文经Director(lvs服务器)
-
DR:DIP与RIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经Director(速度最快、效率最高。)
-
TUN:RIP和DIP可以不处于同一物理网络中,RS的网关一般不能指向DIP,且RIP可以和公网通信。
-
FULLNAT:RIP和DIP未必在同一IP网络,但要能通信