LVS-TUN模式下的负载均衡

LVS-TUN模式下的负载均衡

图解:
在这里插入图片描述
工作原理:
1)客户端请求数据,目标IP为VIP
2)请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址及对应端口(>此RIP地址是根据调度算法得出的)并在连接HASH表中记录下这个连接。
3)数据包从LB服务器到达RS服务器webserver,然后webserver进行响应。Webserver>的网关必须是LB,然后将数据返回给LB服务器。
4)收到RS的返回后的数据,根据连接HASH表修改源地址VIP&目标地址CIP,及对应端>口80.然后数据就从LB出发到达客户端。
5)客户端收到的就只能看到VIP\DIP信息。

server1配置
配置网络

modprobe ipip
ip link set up tunl0
ip addr add 172.25.254.100/32 dev tunl0   #添加虚拟IP
ip addr         #查看IP

配置yum仓库
vim /etc/yum.repos.d/rhel-source.repo
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.254.14/rhel6.5/LoadBalancer
gpgcheck=0
在这里插入图片描述

添加规则:

yum install ipvsadm -y
/etc/init.d/ipvsadm start   #开启服务
ipvsadm -C
ipvsadm -A -t 172.25.254.100:80 -s rr
ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.2:80 -i     #给vip添加rip,使用TUN模式
ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.3:80 -i
/etc/init.d/ipvsadm save   #保存策略
ipvsadm -ln    #查看策略
ipvsadm -lnc  #查看调度IP情况

在这里插入图片描述

server2配置
安装httpd服务
yum install httpd -y
vim /var/www/html/index.html

www.westos.org-server2


/etc/init.d/httpd start
配置网络

modprobe ipip    #加载模块
ip link set up tunl0
ip addr add 172.25.254.100/32 dev tunl0  #添加虚拟IP
ip addr   #查看ip

在这里插入图片描述


安装arptables_jf工具

yum install arptables_jf -y
arptables -F      #清空策略
arptables -A IN -d 172.25.254.100 -j DROP      ## 拒绝172.25.254.100的访问
arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.2     #由于tcp三次握手原因,所以出去的时候仍要以vip地址出去才会实现握手,而真正将数据传输给客户端的就是realserver,  mangle参数就是这个功能
/etc/init.d/arptables_jf save    #保存策略
arptables -L     #查看策略

在这里插入图片描述
关闭rp_filter
sysctl -a|grep .rp_filter #将过滤出的打开着的.rp_filter全部关闭

在这里插入图片描述
server3配置
安装httpd服务
yum install httpd -y
vim /var/www/html/index.html

server3


/etc/init.d/httpd start

配置网络
modprobe ipip #加载模块
ip link set up tunl0
ip addr add 172.25.254.100/32 dev tunl0 #添加虚拟IP,tun后面的是字母l不是1
ip addr #查看ip

在这里插入图片描述
安装arptables_jf工具
因为设置172.25.254.100/32作为vip,不可以和外部通信,所以设用arptables将其的访问全部DROP,出去的包全部转换为本机的ip

yum install arptables_jf -y
arptables -F
arptables -A IN -d 172.25.254.100 -j DROP
arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.3   #由于tcp三次握手原因,所以出去的时候仍要以vip地址出去才会实现握手,而真正将数据传输给客户端的就是realserver,  mangle参数就是这个功能
/etc/init.d/arptables_jf save
arptables -L

关闭rp_filter
sysctl -a|grep .rp_filter #将过滤出的打开着的.rp_filter全部关闭
在这里插入图片描述

物理机测试:
在物理机中执行curl 172.25.254.100,出现轮询即配置生效
在这里插入图片描述

RS处于不同网段下的TUN模式的负载平衡

继续使用之前的环境,将server3的ip更改为172.25.254.3
Server1添加ip 172.25.14.1
server3配置
配置网络
ip addr add 172.25.14.254/24 dev eth0
ip addr del 172.25.254.3/24 dev eth0
ip addr
配置arptables_jf
vim /etc/sysconfig/arptables
更改伪装策略,将172.25.4.3更改为172.25.254.3
/etc/init.d/arptables_jf restart
arptables -L
配置网关
route add default gw 172.25.254.14 #将RS网关指向物理机的ip地址
route -n
在这里插入图片描述
server1配置
添加网络

ip addr add 172.25.14.1/24 dev eth0

更改规则

ipvsadm -ln
ipvsadm -d -t 172.25.254.100:80 -r 172.25.254.3:80
ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.3:80 -i
ipvsadm -ln

在这里插入图片描述
物理机测试:
在物理机中执行 for i in {1…10};do curl 172.25.254.100;done ,出现轮询即配置生效
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq657886445/article/details/82988529