一、DR模式介绍
Director接收用户的请求,然后根据负载均衡算法选取一台realserver,将包转发过去,最后由realserver直接回复给用户。
运行模式如下:
– client向目标vip发出请求,Director接收。
– Director检查活跃的RS服务器,将报文进行对应修改
– 报文转发至RS(目标地址还是VIP的地址,LVS DR模式核心)
– RS服务器接收到请求后,检查到目标地址为自己(本地lo网卡绑定VIP地址),对报文进行处理后路由至client
二、安装ipvsadm
[root@test ~]# yum install ipvsadm -y
三、配置LVS
- 配置DR
- 配置RS服务器arp抑制
- 配置DR
- 开启ip_forward转发
[root@test ~]# echo 1 >/proc/sys/net/ipv4/ip_forward
[root@test ~]# sysctl -p
- 配置超时时间
[root@test ~]# ipvsadm --set 120 20 100
120 表示tcp空闲等待时间为120 秒
20 客户端关闭链接等待时间为20秒
100 udp空闲等待为100秒
[root@test ~]# ipvsadm -Ln --timeout //可以通过该命令
Timeout (tcp tcpfin udp): 120 20 100
- 指定VIP地址及端口
[root@test ~]# ipvsadm -A -t 192.168.5.202:80 -s sh -p 360
-A 添加地址
-t 指定VIP的地址及端口
-s 调度算法,这里采用hash散列
-p LVS的超时时间,默认300秒,与hash表存储时间关联
- 指定后端RS服务器
[root@test ~]# ipvsadm -a -t 192.168.5.202:80 -r 192.168.5.201:80 -g -w 100
-a 指定真实服务器
-t VIP地址
-r 后端rs服务器ip地址及端口
-g 优先DR模式
-w 权重值
- 绑定高可用IP
[root@test ~]# ifconfig ens33:0 192.168.5.202 netmask 255.255.255.0 up
- 其他相关命令
[root@test ~]# ipvsadm -D -t 192.168.1.159:80 //删除VIP地址及端口
[root@test ~]# ipvsadm -d -t 192.168.5.202:80 -r 192.168.5.207:80 //删除指定RS地址
[root@test ~]# ipvsadm -Ln //查看LVS转发规则
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.5.202:80 sh persistent 360
-> 192.168.5.201:80 Route 100 0 0
- 配置RS服务器arp抑制
- arp抑制配置
[root@test ~]# echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
[root@test ~]# echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
[root@test ~]# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
[root@test ~]# echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
- 绑定VIP地址
[root@test1 ~]# ifconfig lo:0 192.168.5.202 netmask 255.255.255.255
- arp抑制脚本
[root@LVS1 ~]# cat realserver.sh
#!/bin/bash
#description: Config realserver
VIP=192.168.5.202
/etc/rc.d/init.d/functions
case "1" in start) /sbin/ifconfig lo:0VIP netmask 255.255.255.255 broadcast VIP /sbin/route add -hostVIP dev lo:0
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
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
/sbin/ifconfig lo:0 down
/sbin/route del VIP >/dev/null 2>&1 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce echo "RealServer Stoped" ;; *) echo "Usage:0 {start|stop}"
exit 1
esac
exit 0
- 访问测试
[root@test-web ~]# curl http://192.168.5.202
留言