LVS的DR模式搭建

系统:

    一台centos 6,两台centos 7虚拟机

LVS介绍:

参考:linux服务器集群系统

拓扑:

    

LVS集群至DR模式搭建:

1.在director服务器上建立脚本文件lvs_dr.sh:

    #vim  lvs_dr.sh

    在lvs文件中写入以下内容:

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=192.168.137.100
rs1=192.168.137.20
rs2=192.168.137.130
ifconfig ens33:0 down     
ifconfig ens33:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:0

    给予脚本文件执行权限:

        chmod +x lvs_dr.sh

    执行:

        bash lvs_dr.sh

2.在两个realServer服务器上建立脚本文件lvs_realserver.sh:

    #vim lvs_realserver.sh

    在文件lvs_realserver.sh中写入以下内容:

#! /bin/bash
vip=192.168.137.100
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up 
route add -host $vip 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

两个realserver的脚本相同,建立VIP并修改arp响应。

    给予脚本执行权限:

        chmod +x lvs_realserver.sh

    执行:

        bash lvs_realserver.sh

LVS相关注意事项:

关于时间同步:各节点间的时间偏差不大于1s,建议使用统一的ntp服务器进行更新时间;
DR模型中的VIP的MAC广播问题:
在DR模型中,由于每个节点均要配置VIP,因此存在VIP的MAC广播问题,在现在的linux内核中,都提供了相应kernel 参数对MAC广播进行管理,具体如下:
arp_ignore: 定义接收到ARP请求时的响应级别;
    0:只要本地配置的有相应地址,就给予响应; 
    1:仅在请求的目标地址配置在到达的接口上的时候,才给予响应;DR模型使用

arp_announce:定义将自己地址向外通告时的通告级别;
    0:将本地任何接口上的任何地址向外通告; 
    1:试图仅向目标网络通告与其网络匹配的地址; 
    2:仅向与本地接口上地址匹配的网络进行通告;DR模型使用

3.在两个realserver服务器上安装httpd服务:

    yum install httpd -y

4.分别编辑默认页面(方便识别请求的是哪一台服务器)

    vim /var/www/html/index.html

        分别写入<h1>192.168.137.130</h1>和<h1>192.168.137.20</h1>

    两台realserver启动httpd服务:

        service httpd start

5.在主服务器安装ipvsadm管理工具:

    yum install ipvsadm -y

    安装完成后使用ipvsadm  -L -n查看生成的规则:

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.137.100:80 wrr
  -> 192.168.137.20:80            Route   1      0          0         
  -> 192.168.137.130:80           Route   1      0          0  

如上即为正常生成了转发规则。

6.Director和realserver三台服务器均关闭selinux和防火墙:

setenforce 0
service firewalld stop
service iptables stop

使用VIP访问均衡器(director服务器)

    使用浏览器或者curl 192.168.137.100这种方式访问

均衡器会将请求调度到realserver,在director服务器上通过ipvsadm -L -n --stats命令查看统计信息

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  192.168.137.100:80                 54      448        0    97542        0
  -> 192.168.137.20:80                  27      342        0    88972        0
  -> 192.168.137.130:80                 27      106        0     8570        0

版权声明:本文为matengbing原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/matengbing/article/details/80018466