码迷,mamicode.com
首页 > 其他好文 > 详细

LVS 部署

时间:2017-12-13 20:10:07      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:lvs   style   persist   one   开启路由转发   请求   route add   sed   tun   

LVS的组成

LVS 由2部分程序组成,包括 ipvs 和 ipvsadm。

1. ipvs(ip virtual server):一段代码工作在内核空间,叫ipvs,是真正生效实现调度的代码。
2. ipvsadm:另外一段是工作在用户空间,叫ipvsadm,负责为ipvs内核框架编写规则,
    定义谁是集群服务,而谁是后端真实的服务器(Real Server)


其实LVS的本身跟iptables很相似,而且连命令的使用格式都很相似,
其实LVS是根据iptables的框架开发的,那么LVS的本身分成了两个部分:
第一部分:是工作在内核空间的一个IPVS的模块,其实LVS的功能都是IPVS模块实现的,
第二部分:是工作在用户空间的一个用来定义集群服务的一个工具ipvsadm,
                    这个工具的主要作用是将管理员定义的集群服务列表传送给工作在内核空间中的IPVS模块

 

ipvsadm命令主要格式:

设置虚拟地址并指定调度算法
ipvsadm -A -t 10.0.0.1:80 -s rr

添加真实服务器,指定传输模式为NAT 和各个权重

ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.21:80 -m -w 10

 

ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.22:80 -m -w 5

 


三种工作模式、十种调度算法

--scheduler -s scheduler one of rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,
                  the default scheduler is wlc.
--persistent -p [timeout] persistent service
--netmask -M netmask persistent granularity mask
--real-server -r server-address server-address is host (and port)
--gatewaying -g gatewaying (direct routing) (default)
--ipip -i ipip encapsulation (tunneling)
--masquerading -m masquerading (NAT)
--weight -w weight capacity of real server
--u-threshold -x uthreshold upper threshold of connections

 

LVS相关术语

1. DS:Director Server。指的是前端负载均衡器节点。
2. RS:Real Server。后端真实的工作服务器。
3. VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
4. DIP:Director Server IP,主要用于和内部主机通讯的IP地址。
5. RIP:Real Server IP,后端服务器的IP地址。
6. CIP:Client IP,访问客户端的IP地址。

 

 

各角色服务器ip如下
虚拟ip地址   10.0.0.1
DS  Director Server调度服务器地址  10.0.0.11   10.0.0.12
RS  Real Server 真实服务器地址      10.0.0.21   10.0.0.22

 

 

一.LVS/NAT 部署配置

 重点理解NAT方式的实现原理和数据包的改变。

技术分享图片

1.在DR服务器上进行如下配置:
启动Linux的路由转发功能,在NAT模式下此操作是必须的
# cat /proc/sys/net/ipv4/ip_forward       #查看Linux是否开启路由转发功能
  0 
# echo 1 > /proc/sys/net/ipv4/ip_forward  #启动Linux的路由转发功能
# cat /proc/sys/net/ipv4/ip_forward 
  1 

添加地址为10.0.0.1:80的虚拟服务,指定调度算法为轮转。
ipvsadm -A -t 10.0.0.1:80 -s rr
添加真实服务器,指定传输模式为NAT
ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.21:80 -m
ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.21:80 -m

2.在 real server 上配置
设置RS的网关为 DSIP地址
 
 

 

2.LVS/DR 部署配置

 重将请求报文的目标MAC地址设定为挑选出的RS的MAC地址

技术分享图片

 

关键点

          1:Director 上需要配置DIP、VIP

          2:Real Server 需要关闭ARP协议 同时 要配置VIP 以及相应的LOOKBACK路由

 
1、设置RS真实服务器的接口对ARP的应答
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore                
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

设置这个选项可以使得各个接口只对本接口上的地址进行响应

arp_ignore参数的作用是控制系统在收到外部的arp请求时,是否要返回arp响应。
sysctl.conf中包含all和eth/lo(具体网卡)的arp_ignore参数,取其中较大的值生效。
     1 只响应目的IP地址为接收网卡上的本地地址的arp请求。

arp_announce的作用是控制系统在对外发送arp请求时,如何选择arp请求数据包的源IP地址。
sysctl.conf中包含all和eth/lo(具体网卡)的arp_ignore参数,取其中较大的值生效。
     2  忽略IP数据包的源IP地址,选择该发送网卡上最合适的本地地址作为arp请求的源IP地址。
 
 
2、在RS真实服务器上添加虚拟IP
在lvs的DR和TUn模式下,用户的访问请求到达真实服务器后,是直接返回给用户的,而不再经过前端的Director Server,
因此,就需要在每个Real server节点上增加虚拟的VIP地址,这样数据才能直接返回给用户

ifconfig lo:0 10.0.0.1 boradcast 10.0.0.1 netmask 255.255.255.255 up
route add -host 10.0.0.1 dev lo:0
 

3.在DS上设置
打开ip转发功能,增加一个虚拟网卡(ip地址为vip),增加一条路由信息
echo 1 > /proc/sys/net/ipv4/ip_forward
ifconfig eth0:0 down
ifconfig eth0:0 10.0.0.1 broadcast 10.0.0.1 netmask 255.255.255.255 up
route add -host 10.0.0.1 dev eth0:0

接着添加ipvs规则:
添加地址为10.0.0.1:80的虚拟服务,指定调度算法为轮转。
ipvsadm -A -t 10.0.0.1:80 -s rr
添加真实服务器,指定传输模式为DR
ipvsadm -a -t 10.0.0.11:80 -r 10.0.0.21:80 -g
ipvsadm -a -t 10.0.0.11:80 -r 10.0.0.22:80 -g
注意:此处的例子中客户、调度服务器、真实服务器都是位于同一网段的

 

 

3.LVS/Tun 部署配置

在原有的IP报文外再次封装多一层IP首部,内部IP首部(源地址为CIP,目标IIP为VIP),外层IP首部(源地址为DIP,目标IP为RIP)

技术分享图片

这种模式在生产环境中很少部署……

 

 

LVS 部署

标签:lvs   style   persist   one   开启路由转发   请求   route add   sed   tun   

原文地址:http://www.cnblogs.com/centos2017/p/8034045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!