CentOS7.x LVS DR模式详解

一、DR模式介绍

Director接收用户的请求,然后根据负载均衡算法选取一台realserver,将包转发过去,最后由realserver直接回复给用户。

运行模式如下:
– client向目标vip发出请求,Director接收。
– Director检查活跃的RS服务器,将报文进行对应修改
– 报文转发至RS(目标地址还是VIP的地址,LVS DR模式核心)
– RS服务器接收到请求后,检查到目标地址为自己(本地lo网卡绑定VIP地址),对报文进行处理后路由至client

二、安装ipvsadm

[[email protected] ~]# yum install ipvsadm -y 

三、配置LVS

  • 配置DR
  • 配置RS服务器arp抑制
  1. 配置DR
  • 开启ip_forward转发
     [[email protected] ~]# echo 1 >/proc/sys/net/ipv4/ip_forward
     [[email protected] ~]# sysctl -p
  • 配置超时时间
     [[email protected] ~]# ipvsadm --set 120 20 100
     120 表示tcp空闲等待时间为120 秒
     20 客户端关闭链接等待时间为20秒
     100 udp空闲等待为100秒
     [[email protected] ~]#  ipvsadm -Ln --timeout      //可以通过该命令
     Timeout (tcp tcpfin udp): 120 20 100
  • 指定VIP地址及端口
     [[email protected] ~]# ipvsadm -A -t 192.168.5.202:80 -s sh -p 360
     -A 添加地址
     -t 指定VIP的地址及端口
     -s 调度算法,这里采用hash散列
     -p LVS的超时时间,默认300秒,与hash表存储时间关联
  • 指定后端RS服务器
     [[email protected] ~]# 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
[[email protected] ~]# ifconfig ens33:0 192.168.5.202 netmask 255.255.255.0 up
  • 其他相关命令
[[email protected] ~]# ipvsadm -D -t 192.168.1.159:80   //删除VIP地址及端口
[[email protected] ~]# ipvsadm -d -t 192.168.5.202:80 -r 192.168.5.207:80   //删除指定RS地址
[[email protected] ~]# 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 
  1. 配置RS服务器arp抑制
  • arp抑制配置
[[email protected] ~]# echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
[[email protected] ~]# echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
[[email protected] ~]# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
[[email protected] ~]# echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
  • 绑定VIP地址
[[email protected] ~]# ifconfig lo:0 192.168.5.202 netmask 255.255.255.255
  • arp抑制脚本
     [[email protected] ~]# 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:0 $VIP netmask 255.255.255.255 broadcast $VIP  
            /sbin/route add -host $VIP 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
  1. 访问测试
   [[email protected] ~]# curl http://192.168.5.202

发表评论

您的电子邮箱地址不会被公开。