LVS--DR工作模式原理及加权轮询使用

一、LVS--DR工作模式原理

(流程图后续补上……)

1、 Client向目标 VIP 发出请求,Director (负载均衡器)接收。
2 、Director 根据负载均衡算法选择 RealServer_1 ,不修改也不封装 IP 报文,而是将数据帧 的 MAC 地址改为 RealServer_1 的 的 MAC 地址,然后在局域网上发送。
3、 RealServer_1 收到这个帧,解封装后发现目标 IP 与本机匹配(RealServer 事先绑定了 VIP ,必须的!)于是处理这个报文,随后重新封装报文,发送到局域网。
4 、Client 将收到回复报文。Client 认为得到正常的服务,而不会知道是哪台服务器处理的
(注意,如果跨网段,那么报文通过路由器经由 Internet 返回给用户)

二、DR工作模式采用加权轮询方式部署

1.环境准备

名称 IP地址 VIP地址
负载均衡器          (LB) 192.168.1.128 192.168.2.128
Web Server 1    (WS1) 192.168.1.130  
Web Server 2    (WS2) 192.168.1.131   

2.安装LVS

下载地址:http://www.linuxvirtualserver.org/software/ipvs.html#kernel-2.6

或直接wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz

3.编译安装

tar -zxf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26 && make && make install
lsmod |grep ip_vs
ipvsadm #此时系统可能未加载ipvs模块,需要手动执行ipvsadm命令加载进去或者modprobe ip_vs。

4.配置LVS

4.1 负载均衡器配置VIP地址

ifconfig eth0:1 192.168.2.128 netmask 255.255.255.0
route add -host 192.168.2.128 dev eth0

4.2 ipvsadm添加LVS服务

参数 参数说明
-A

-A --add-service 添加一个带选项的虚拟服务。

-t 指定虚拟服务器的IP地址和端口
-s -s,--scheduler scheduling-method 调度算法
-p 会话保持按秒计算
-a

-a在对应的VIP下添加RS节点

-g 指定此LVS的工作模式为-g   -g为DR模式
-l

指定LVS的工作模式为-l  -l为tunnel模式

-m 指定LVS的工作模式为NAT模式
-w 指定RS节点的权重
-D

删除虚拟服务

格式:ipvsadm-D -t|u|f service-address

-C

-C, --clear  Clear the virtual server table清空lvs原有的配置。

-set 设置tcp  tcpfn udp  的连接超时时间
ipvsadm  -C                                                  #请用LVS原有的配置
ipvsadm -A -t 192.168.2.128:80 -s rr -p 30                   #添加虚拟服务指定VIP
ipvsadm -a -t 192.168.2.128:80 -r 192.168.1.130:80 -g -w 20  #针对虚拟服务添加RS节点
ipvsadm -a -t 192.168.2.128:80 -r 192.168.1.131:80 -g -w 20
ipvsadm -L -n                                                #查看VIP和RS是否已经配置成功。

4.3 LB上删除虚拟服务

ipvsadm -D -t 192.168.2.128:80  

5.配置RS(WS1-2)节点服务器

5.1 添加lo端口的VIP&路由

ifconfig lo 192.168.2.128 netmask 255.255.255.255  #RS的VIP不是用来通讯,并且这里一定要设置24位掩码
route add -host 192.168.2.128  dev lo

5.2 ARP抑制

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_announce
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

6.测试LVS是否生效

在LB上面输入命令ipvsadm -L -n就能够查看LB上面的会话分配。在前面加上watch可以动态的查看ipvsadm的会话分配。watch ipvsadm -L -n.

6.1 测试RS节点是否正常访问

6.2 测试从LB能否正常访问RS

6.3 测试客户端能否正常访问VIP

NAT模式:

客户端同样需要配置VIP,进行ARP抑制,并且要服务器端开启内核转发功能,配置LB的DIP(内网IP地址)作为默认网关。

开启内核转发功能:

vim /etc/sysctl 在文件最后差入: net.ipv4.ip_forword = 1
route add default gw 192.168.2.128

Tunnel模式:

客户端需要先开启Tunnel协议支持。

/sbin/modprobe ipip
/sbin/route add –host 192.168.2.128 devtun1
echo”1”>/proc/sys/net/ipv4/conf/tun1/arp-ignore
echo”2”>/proc/sys/net/ipv4/conf/tun1/arp_announce
echo”0” >/proc/sys/net/ipv4/conf/tun1/rp_filter
echo”1” >/proc/sys/net/ipv4/conf/tun1/forwarding
echo”1” >/proc/sys/net/ipv4/conf/all/arp_ignore
echo”2” >/proc/sys/net/ipv4/conf/all/ arp_announce
原文地址:https://www.cnblogs.com/Huang-Niu/p/11411005.html