LVS 负载均衡(四)tun模式
一、规划
这里以三台RS主机为例,其中两台和DR主机在同一网段,另外一台主机需要需要通过tun进行连通 。具体网络部分的配置可以参看 Linux ipip隧道及实现 。
1RIP1=192.168.1.131
2RIP2=192.168.1.132
3RIP3=192.168.0.100
二、lvs-tun配置
1、director主机上的配置
1#!/bin/sh
2# description: start LVS of Directorserver
3VIP=192.168.1.140(注意,lvs server那台机器2个ip,一个是vip,一个是本身ip例如192.168.25.42)
4RIP1=192.168.1.131
5RIP2=192.168.1.132
6RIP3=192.168.0.100
7. /etc/rc.d/init.d/functions
8case "$1" in
9 start)
10 echo " start LVS of DirectorServer"
11 # set the Virtual IP Address
12 /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.0 up
13 /sbin/route add -host $VIP dev tunl0
14 #Clear IPVS table
15 /sbin/ipvsadm -C
16 #set LVS
17 /sbin/ipvsadm -A -t $VIP:80 -s rr
18 /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i
19 /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -i
20 #/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -i
21 #Run LVS
22 /sbin/ipvsadm
23 #end
24 ;;
25 stop)
26 echo "close LVS Directorserver"
27 ifconfig tunl0 down
28 /sbin/ipvsadm -C
29 ;;
30 *)
31 echo "Usage: $0 {start|stop}"
32 exit 1
33esac
2、realserver主机的配置
1#!/bin/sh
2# description: Config realserver tunl port and apply arp patch
3VIP=192.168.1.140
4. /etc/rc.d/init.d/functions
5case "$1" in
6 start)
7 echo "Tunl port starting"
8 ifconfig tunl0 $VIP netmask 255.255.255.0 broadcast $VIP up
9 /sbin/route add -host $VIP dev tunl0
10 echo "1" >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
11 echo "2" >/proc/sys/net/ipv4/conf/tunl0/arp_announce
12 echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
13 echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
14 sysctl -p
15 ;;
16 stop)
17 echo "Tunl port closing"
18 ifconfig tunl0 down
19 echo 1 > /proc/sys/net/ipv4/ip_forward
20 echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
21 ;;
22 *)
23 echo "Usage: $0 {start|stop}"
24 exit 1
25esac
本质上来说,lvs tun模式和lvs dr模式在配置方法上没有区别,都需要将浮动地址在每台主机上进行配置 。需要在realserver服务器上配置arp的相关参数 。无非在操作之间,需要将不同网段的主机先打通进同一个网络。
三、总结
单director下三种模式的LVS配置到此已经告一段落。三种模式来说,各自有各自的特色,具体可以参看如下列表。
LVS本身由于活动在四层,内部实现起来较nginx和haproxy要简单,因为简单,所以高效(毕竟只专注于做一件事)。但本身也有一些局限性,比如,不支持基本的防护、director节点本身存在单节点问题,对后端服务器的状态没有健康检测机制等。后面的部分,会针对以下问题,结合keepalive、结合heartbeat解决LVS本身的一些不足。也会介绍下基于ipvs封装的商业软件如redhat的Piranha 。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/lvs-tun/5202.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.