LVS DR模式搭建(不包含健康检查机制keepalived)

DR模式与NAT模式不同在与,请求报文时经过调度器进行调度,响应报文不会经过调度器,可以直接返回给用户。
准备:
DS与RS均只需一张网卡,DS上绑定的是DIP与VIP,而RS上绑定的是RIP与VIP。且在同一网段。
DIP:192.168.0.121
VIP:192.168.0.100
RS1: 192.168.0.122
RS2: 192.168.0.124

1、切记不管什么模式,搭建之前一定要清除防火墙规则
2、DS上IP设置:

DIP已经配置好,绑定VIP,因为这个VIP为一个私有地址,所以子网掩码应该是255.255.255.255.。广播地址只给自己广播。

[root@dr ~]# ifconfig ens33:10 192.168.0.100 netmask 255.255.255.255 broadcast 192.168.0.100 up

配置好后ip address即可看到ens33下面出现VIP。
再加一条路由:表示有请求过来时,通过ens33网卡响应。

[root@dr ~]# route add -host 192.168.0.100 dev ens33
[root@dr ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.254   0.0.0.0         UG    100    0        0 ens33
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.0.100   0.0.0.0         255.255.255.255 UH    0      0        0 ens33

RS上配置:
这里有个问题,当RS上绑定了VIP之后,那么当用户有请求时,按道理,每个RS包括DS都会给响应,这不是乱套了吗?我们要的是请求先经过DS调度再分发给RS。所以这里就需要设置RS上的VIP不会对外界响应。
一般由三种办法可以实现,linux下最简单常用的就是设置/proc/sys/net/ipv4/conf/下面的所有网卡里面的两个参数。为什么是所有网卡?哈哈,就是保证万无一失嘛!

RS1配置:

[root@minion-122 conf]# echo 1 > all/arp_ignore
[root@minion-122 conf]# echo 1 > ens33/arp_ignore
[root@minion-122 conf]# echo 1 > lo/arp_ignore
[root@minion-122 conf]# echo 2 > lo/arp_announce
[root@minion-122 conf]# echo 2 > all/arp_announce
[root@minion-122 conf]# echo 2 > ens33/arp_announce

arp_announce :是否广播自己。
arp_ignore:是否响应别人的请求。
arp_announce :

  • 0-(默认)使用任何本地地址,将本地所有网卡地址全通告出去。

  • 1-尽量避免向本网络中通告别的地址

  • 2-只会通告该网卡的地址

arp_ignore:

  • 0-(默认)不管哪个接口的地址,都会响应
  • 1-只会响应本接口上的地址的请求报文。
    这两个参数配合使用即可保证配置的VIP即不会广播也不会响应。
    记住:一定要先配置参数,再绑定VIP,否则会怎样可想而知!
[root@minion-122 conf]# ifconfig lo:10 192.168.0.100 netmask 255.255.255.255 broadcast 192.168.0.100 up
[root@minion-122 conf]# route add -host 192.168.0.100 dev lo:10

RS2配置同样。

2、配置RS上不同的网页来区分调度

echo "This is RS1 web page" >> /var/www/html/index.html
echo "This is RS2 web page" >> /var/www/html/index.html

3、启动httpd服务。
4、配置DS上集群。

[root@dr ~]# ipvsadm -A -t 192.168.0.100:80 -s rr
[root@dr ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.122 -g
[root@dr ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.124 -g
[root@dr ~]# 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.0.100:80 rr
  -> 192.168.0.122:80             Route   1      0          0         
  -> 192.168.0.124:80             Route   1      0          0     

5、测试:

[root@ga ~]# for ((i=1;i<=11;i++)); do  elinks -dump http://192.168.0.100; done
                               rs2 web test page
                               rs1 web test page
                               rs2 web test page
                               rs1 web test page
                               rs2 web test page
                               rs1 web test page
                               rs2 web test page
                               rs1 web test page
                               rs2 web test page
                               rs1 web test page
                               rs2 web test page

6、具体算法的改变请参考NAT模式搭建后面。LVS NAT模式搭建(不包含健康健康机制keepalived)

发布了36 篇原创文章 · 获赞 3 · 访问量 8021

猜你喜欢

转载自blog.csdn.net/qq_41547105/article/details/104241211