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