LVS的简介和配置

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

2:LVS-DR模式
LVS-DR:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变
Director和各RS都配置有VIP
(1) 确保前端路由器将目标IP为VIP的请求报文发往Director
在前端网关做静态绑定VIP和Director的MAC地址
在RS上使用arptables工具
arptables-A IN -d $VIP -j DROP
arptables-A OUT -s $VIP -j mangle –mangle-ip-s $RIP
在RS上修改内核参数以限制arp通告及应答级别
arp_announce
arp_ignore
(2) RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向 DIP,以确保响应报文不会经由Director
(3) RS和Director要在同一个物理网络
(4) 请求报文要经由Director,但响应报文不经由Director,而由RS直接发往Client
(5) 不支持端口映射(端口不能修败)
(6) RS可使用大多数OS系统

3
lvs-tun:
转发方式:不修改请求报文的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须支持隧道功能

4

种lvs负载 均衡技术优缺点下表:

clipboard2

命令 :
ipvsadm命令
管理集群服务:增、改、删
增、改:
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
删除:
ipvsadm-D -t|u|fservice-address
service-address:
-t|u|f:
-t: TCP协议的端口,VIP:TCP_PORT
-u: UCP协议的端口,VIP:UDP_PORT
-f:firewall MARK,标记,一个数字
[-s scheduler]:指定集群的调度算法,默认为wlc
有两种命令选项格式,长的和短的,具有相同的意思。在实际使用时,两种都可
以。
-A –add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也
就是增加一台新的虚拟服务器。
-E –edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D –delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
-C –clear 清除内核虚拟服务器表中的所有记录。
-R –restore 恢复虚拟服务器规则
-S –save 保存虚拟服务器规则,输出为-R 选项可读的格式
-a –add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器
记录。也就是在一个虚拟服务器中增加一台新的真实服务器
-e –edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录
-d –delete-server 删除一条虚拟服务器记录中的某条真实服务器记录
-L|-l –list 显示内核虚拟服务器表
-Z –zero 虚拟服务表计数器清零(清空当前的连接数量等)
–set tcp tcpfin udp 设置连接超时值
–start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说
明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的
VRRP 功能。
–stop-daemon 停止同步守护进程
-h –help 显示帮助信息
其他的选项:
-t –tcp-service service-address 说明虚拟服务器提供的是tcp 的服务
[vip:port] or [real-server-ip:port]
-u –udp-service service-address 说明虚拟服务器提供的是udp 的服务
[vip:port] or [real-server-ip:port]
-f –fwmark-service fwmark 说明是经过iptables 标记过的服务类型。
-s –scheduler scheduler 使用的调度算法,有这样几个选项
rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,
默认的调度算法是: wlc.
-p –persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客
户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。
-M –netmask netmask persistent granularity mask
-r –real-server server-address 真实的服务器[Real-Server:port]
-g –gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)
-i –ipip 指定LVS 的工作模式为隧道模式
-m –masquerading 指定LVS 的工作模式为NAT 模式
-w –weight weight 真实服务器的权值
–mcast-interface interface 指定组播的同步接口
-c –connection 显示LVS 目前的连接 如:ipvsadm -L -c
–timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L –timeout
–daemon 显示同步守护进程状态
–stats 显示统计信息
–rate 显示速率信息
–sort 对虚拟服务器和真实服务器排序输出
–numeric -n 输出IP 地址和端口的数字形式

5、配置ipvsadm服务
      备注:以下步骤分别按照LVS的三种包转发方式进行配置
     实验环境如下:
     lvsserver            192.168.1.49(eht0)     vip: 192.168.1.40 8.8.8.8(nat模式下)
     serverA             192.168.1.46(eth0)
     serverB             192.168.1.47(eth0)
      
1、vs/nat模式下各服务器的配置
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0 
ifconfig eht1 8.8.8.8 netmask 255.255.255.0
(注:由于nat模式需要两块真实网卡,所以又额外加了一块网卡  ,此网卡的IP地址同时也是VIP的地址)
vi ipvsadm.sh (创建脚本文件)
————————————————————————————————————————————————————-
#!/bin/bash
echo 1 > /porc/sys/net/ipv4/ip_forward   (开启路由功能)
ipvsadm -C      (清除之前的转换表)
ipvsadm -At 8.8.8.8:80 -s rr   (指定带有调度算法转换的服务器)
ipvsadm -at 8.8.8.8:80 -r 192.168.1.46:80 -m  (增加一台真实服务器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 8.8.8.8:80 -r 192.168.1.47:80 -m

#chmod u+x ipvsadm.sh  (增加可执行权限)

——————————————————————————————————————————————————————
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
route add default gw 192.168.1.49
(注:此网关是lvsserver的eth0的IP地址)
service httpd start    (开启测试用的web服务)
echo ‘192.168.1.46’ > /var/www/html/index.html     (制作测试用的html网页)
——————————————————————————————————————————————————————-
serverB配置如下:
ifconfig eth0 192.168.1.47 netmask 255.255.255.0
route add default gw 192.168.1.49
(注:此网关是lvsserver的eth0的IP地址)
service httpd start    (开启测试用的web服务器
echo ‘192.168.1.47’ > /var/www/html/index.html     (制作测试用的html网页)

——————————————————————————————————————————————————————–
2、vs/tun模式下各服务器的配置 
lvsserver配置如下:
ifconfig eht0 192.168.1.49 netmsk 255.255.255.0
(注:tun 模式下只需要一块物理网卡,可将eth1网卡禁用)
ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up
(注:tunlo接口配置的地址为vip地址)     
route add -host 192.168.1.40 dev tunlo    
vi ipvsadm.sh (创建脚本文件)
——————————————————————————————————————————————————————-         
#!/bin/bash
ipvsadm -C      (清除之前的转换表)
ipvsadm -At 192.168.1.40:80 -s rr   (指定带有调度算法转换的服务器)
ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -i  (增加一台真实服务器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 192.168.1.40:80 -r 192.168.1.47:80 -i

#chmod u+x ipvsadm.sh  (增加可执行权限)    
#./ipvsadm.sh
———————————————————————————————————————————————————————–                  
serverA配置如下:
ifconfig eth0 192.168.1.46 netmask 255.255.255.0
ifconfig tunl0 192.168.1.40 netmask 255.255.255.255 up  
route add -host 192.168.1.40 dev tunlo     
vi arp.sh (创建脚本文件)   

#!/bin/bash
echo “1” > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo “2” > /proc/sys/net/ipv4/conf/tunl0/arp_announce
echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore
echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce
———————————————————————————————————————————————————————–
serverB配置同severA一样
———————————————————————————————————————————————————————–
3、vs/dr模式下各服务器的配置 
lvsserver配置如下:
ifconfig eth0 192.168.1.49 netmsk 255.255.255.0
(注:dr 模式下只需要一块物理网卡,可将eth1网卡禁用)
ifconfig eth0:0 192.168.1.40 netmask 255.255.255.255 up
(注:eth0:0接口配置的地址为vip地址)     
route add -host 192.168.1.40 dev eth0:0
vi ipvsadm.sh (创建脚本文件)
———————————————————————————————————————————————————————-
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward   (开启路由功能)
ipvsadm -C      (清除之前的转换表)
ipvsadm -At 192.168.1.40:80 -s rr   (指定带有调度算法转换的服务器)
ipvsadm -at 192.168.1.40:80 -r 192.168.1.46:80 -g (增加一台真实服务器,-m是nat模式,-g是直接路由(dr )模式,-i是tun模式)
ipvaadm -at 192.168.1.40:80 -r 192.168.1.47:80 -g

#chmod u+x ipvsadm.sh  (增加可执行权限) 
./ipvsadm.sh
———————————————————————————————————————————————————————–  
serverA配置如下:
 ifconfig eth0 192.168.1.46 netmask 255.255.255.0
ifconfig lo:0 192.168.1.40 netmask 255.255.255.255 up  (在lo接口上增加vip地址)
 route add -host 192.168.1.40 dev lo:0 (增加到环回接口的路由)
 vi arp.sh (创建脚本文件)   

#!/bin/bash
echo “1” > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo “2” > /proc/sys/net/ipv4/conf/lo/arp_announce
echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore
echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce     
#chmod u+x arp.sh  (增加可执行权限) 
#./arp.sh 
———————————————————————————————————————————————————————–    
serverB配置和serverA一样
———————————————————————————————————————————————————————–
  测试:1、显示LVS 目前的连接 
             如:ipvsadm -L -c    ipvsadm -L –stats

2、将46和47的WEB服务启用。直接输入vip的地址不停的刷新你将会看到不同页面的切换

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88031

(1)
oranixoranix
上一篇 2017-10-23 12:52
下一篇 2017-10-23 16:23

相关推荐

  • 全面解析文件文件系统

    前言: 文件系统作为linux总最基础的但愿。理解并深入了解文件系统对linux的学习有重要意义。我们从文件系统创建,构成以及工作流程几个方面全方位的介绍文件系统的相关概念。 简述: 一块完整的磁盘经过分区后我们就可以通过格式化,根据我们的需求构建文件系统能使用的文件系统格式。传统的文档系统中,一个分区就只能够被格式化为一个文件系统。所以我们可以说一个文件系…

    Linux干货 2016-11-14
  • M22 使用NFS实现web共享发布

    实验目的: 搭建两个LAMP web发布系统搭建WordPress博客网站,并使用NFS作为共享的网络文件系统使这两个web服务器发布的内容一致。 实验工具: webServer1 Centos6.8 172.18.55.6 webServer2 Centos7.3 172.18.55.7 nfsServer Centos7.3 172.18.55.71 w…

    2017-04-26
  • 网络接口bonding的设置、网卡别名的设置

    网络接口bonding的设置、网卡别名的设置 网络接口bonding的设置 1.bonding的原理 Bonding就是将多块网卡绑定同一IP 地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP 地址是不可能的。通过bonding ,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC 地址。 2.Bonding 的工作模式 …

    Linux干货 2016-09-05
  • 5.程序包管理与内核命令的使用

    1、  显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ~]#  grep -E “^[[:space:]]+” //boot/grub/grub.conf root (hd0,0) kernel /vmlinuz-2.6.32-279.el…

    Linux干货 2017-07-30
  • Linux 常用命令之cp,一个可以煮饭的工具;

    cp 复制目录和文件 对于系统管理员来说,在文件系统中将文件和目录从一个位置复制到另外一个位置是家常便饭,而cp就是可以煮饭的工具之一。cp需要源对象和目标对象,源对象在前,目标对象在后面。 1. 常用选项 基本用法 [root@local tmp]# ll total 0 -rw-rw-r–. 1 gen…

    Linux干货 2016-08-02
  • 机器学习排序

     从使用的数据类型,以及相关的机器学习技术的观点来看,互联网搜索经历了三代的发展历程。        第一代技术,将互联网网页看作文本,主要采用传统信息检索的方法。        第二代技术,利用互联网的超文本结构,有效…

    Linux干货 2015-12-15