LVS的DR模型实现

Posted 吕正元

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS的DR模型实现相关的知识,希望对你有一定的参考价值。

 

 

 

 

 

DR模型需要LVS服务器和RS服务器必须在一个网段,中间必须是交换机,不能是路由器

DR需要在所有的主机上都需要配置VIP

  解决地址冲突的方式有三种

(1) 在前端网关做静态绑定
(2) 在各RS使用arptables
(3) 在各RS修改内核参数,来限制arp响应和通告的级别
  限制响应级别:arp_ignore
0:默认值,表示可使用本地任意接口上配置的任意地址进行响应
1: 仅在请求的目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应

(通俗易懂就是别人发请求我不搭理你)


  限制通告级别:arp_announce
0:默认值,把本机所有接口的所有信息向每个接口的网络进行通告
1:尽量避免将接口信息向非直接连接网络进行通告
2:必须避免将接口信息向非本网络进行通告

(对外也不公告)

  一、配置路由 IP地址:192.168.1.3(无任何防火墙规则)

1、路由服务器开启路由转发

vi /etc/sysctl.conf 
net.ipv4.ip_forward=1

2、路由生效:

sysctl -p

3、返回如下,则表示生效成功

net.ipv4.ip_forward = 1

  二、配置RS服务器

 1、安装httpd包

yum install httpd -y

2、开启httpd服务,并设置为开机自启

systemctl start httpd
systemctl enable httpd

3、新建测试页面

echo 192.168.1.5 RS1 > /var/www/html/index.html 
echo 192.168.1.6 RS2 > /var/www/html/index.html 

4、在RS服务器和LVS服务器上都设置网关为路由服务器192.168.1.3

vi /etc/sysconfig/network-scripts/ifcfg-ens33 
GATEWAY=192.168.1.3

5、在LVS服务器上绑定VIP

 添加一个IP地址

ip a a 192.168.1.100/24 dev ens33

6、在后端服务器上绑定VIP脚本,也可以RS服务器之间执行这个脚本

#/bin/bash
#Date:2021-5-18
vip=192.168.1.100
mask=255.255.255.255
dev=lo:1
test=192.168.1.100
rpm q- http &> /dev/null || yum -y install httpd &>/dev/null
#service httpd start &> /dev/null && echo "The httpd Server is Ready!"
#echo "<h1>$test `hostname`</h1/>">  /var/www/html/index.html

case $1 in
start)
    echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    ifconfig $dev $vip netmask $mask #broadcast $vip up
    #route add -host $vip dev $dev
    echo "The RS Server is Ready!"
    ;;
stop)
    ifconfig $dev down
    echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
    echo 0 > /proc/sys/net/ipv4//conf/all/arp_announce
    echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
    echo "The RS Server is Caneled!"
    ;;
*)
    echo "Usage: $(basename $0) start|stop"
    exit 1
    ;;
esac

7、在LVS服务器上安装IPvsadm包

yum install ipvsadm -y

8、添加ipvsadm 规则 默认dr模型

ipvsadm -A -t 192.168.1.100:80 -s rr
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.5
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.6

9、测试

[05:21:03 root@cliean ~]#curl 192.168.1.100
192.168.1.6 RS2
[05:21:06 root@cliean ~]#curl 192.168.1.100
192.168.1.5 RS1

 DR模型,三次握手中的请求报文都需要经过LVS服务器,响应报文则不经过LV服务器,由此可以得出网关不起作用,但必须设置网关

 双网卡必须配置在两个不同的网段,否则路由会找不到

绑定在回环网卡上相对来说比较稳定,不会因为物理网络中断而影响配置

以上是关于LVS的DR模型实现的主要内容,如果未能解决你的问题,请参考以下文章

LVS的DR模型实现

基于lvs-dr模型的discuz负载均衡实现

LVS-DR模型实现调度

LVS简单实现NAT&DR模型

linux集群之LVS DR模型简单实现

集群Cluster中的LVS-DR模型实现