准备环境

Director Server

  • VIP:192.168.123.123
  • DIP: 192.168.123.10

Real Server-1

  • RIP1: 192.168.123.20
  • VIP: 192.168.123.123

Real Server-2

  • RIP2: 192.168.123.30
  • VIP: 192.168.123.123

都是桥接模式
<center>拓扑图如下</center>

LVS-DR.jpg
DR模型是修改目标mac地址实现调度的。

地址配置

DS地址配置

配置DIP


~]# nmtui 

地址配置如下:将DIP配置到网卡

配置VIP


~]# ip addr add 192.168.123.123/32 dev ens33:0

掩码为32位,表示本网络只有一个主机。另外这里演示地址之前都有提到,请根据自己的实际情况做修改

RS地址配置

由于每个机器都需配置VIP,但是同一个网络里不允许出现同一个地址。这里的解决方法:第一,当网络中有主机广播的时候,本主机不做回应。第二,本机也不不做广播。

Real Server-12


~]# nmtui
修改网卡地址为:192.168.123.20 (RS1)
修改网卡地址为:192.168.123.30 (RS2)

这里配置VIP要先设置内核参数:


~]# 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

arp_ignore 值为1的时候,不响应其他主机的广播;arp_announce 值为2的时候,本机不发出广播


~]# ip addr add 192.168.123.123/32 dev lo:0

RS的VIP配置脚本


#!/bin/bash
#
VIP=192.168.123.123

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
        ip addr add ${VIP}/32 dev lo:0
    ;;
    stop)
        ip addr del ${VIP}/32 dev lo:0
        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
    ;;
esac

在RS 1/2上启动httpd测试服务

启动httpd服务,分别为其提供index.html,参考下文#打开测试httpd服务

添加调度规则

Director Server:

~]# ipvsadm -A -t 192.168.123.123:80 -s wrr     #添加集群,算法为加权轮询
~]# ipvsadm -a -t 192.168.123.123:80 -r 192.168.123.20 -g -w 1 #权重为1
~]# ipvsadm -a -t 192.168.123.123:80 -r 192.168.123.20 -g -w 3 #添加RS服务,-g为Dr模式,(权重为3)

测试后调度正常,三次192.168.123.30,一次192.168.123.20


<center>END</center>

Last modification:October 7th, 2019 at 10:54 pm
If you think my article is useful to you, please feel free to appreciate