六、LVS-DR集群

6.1 清理LVS-NAT的配置(如没有可跳过)
6.1.1 删除lvs规则
[root@LVS ~]# ipvsadm -D -t 201.1.1.4:80
6.1.2 删除eth2的地址
-方式1
[root@LVS ~]# nmtui 删除地址,将地址获取改为自动
-方式二
[root@LVS ~]# ifdown eth2
[root@LVS ~]# nmcli connection delete eth2
6.2 配置后端Web服务器
6.2.1 配置辅助VIP
[root@web1 ~]# ifconfig lo:0 192.168.4.100 netmask 255.255.255.255 broadcast 192.168.4.100 up
[root@web2 ~]# ifconfig lo:0 192.168.4.100 netmask 255.255.255.255 broadcast 192.168.4.100 up
6.2.2 在web服务器上修改内核参数
6.2.2.1 ARP广播的问题
•  当客户端发起访问VIP 对应的域名的请求时,根据网络通信原理会产生ARP 广播
•  因为负载均衡器和真实的服务器在同一网络并且VIP设置在集群中的每个节点上
•  此时集群内的真实服务器会尝试回答来自客户端的ARP广播,这就会产生问题,大家都说我是"VIP"
6.2.2.2 内核参数说明
•  arp_ignore(定义回复ARP广播的方式)
–  0(默认值)
回应所有的本地地址ARP广播,本地地址可以配置在任意网络接口
–  1
只回应配置在入站网卡接口上的任意IP地址的ARP广播
•  arp_announce
–  0 (默认)
使用配置在任意网卡接口上的本地IP地址
–  2
对查询目标使用最适当的本地地址。 在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址。 首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址。 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送
6.2.2.3 内核参数的设置
[root@web1 ~]# sysctl -a | grep arp_ig
[root@web1 ~]# sysctl -a | grep arp_ann
[root@web1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@web1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@web1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@web1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@web2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@web2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@web2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@web2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
6.3 ARP防火墙
•  使用ARP防火墙禁止对VIP的ARP请求
[root@client ~]# yum -y install arptables_jf
[root@client ~]# arptables -A IN -d <virtual_ip> -j DROP
[root@client ~]# arptables -A OUT -s <virtual_ip> -j mangle --mangle-ip-s <real_ip>
6.4 LVS-DR案例实施
6.4.1 配置LVS 调度器
6.4.1.1 配置辅助IP地址
[root@LVS ~]# ifconfig eth0:1 192.168.4.100 broadcast 192.168.4.100 netmask 255.255.255.255 up
6.4.1.2 创建虚拟服务器
[root@LVS ~]#ipvsadm -A -t 192.168.4.100:80 -s wlc
[root@LVS ~]# ipvsadm -A -t 192.168.4.100:80
6.4.1.3 向虚拟服务器中加入节点
[root@LVS ~]# ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.12 -g
[root@LVS ~]# ipvsadm -a -t 192.168.4.100:80 -r 192.168.4.13
6.5 验证
6.5.1 通过web浏览器访问
[root@client ~]# firefox 192.168.4.100
[root@client ~]# curl http://192.168.4.100
<html><h1><font color=red>我想和你一起吃火锅</font></h1></html>
[root@client ~]# curl http://192.168.4.100
<html><h1><font color=yellow>我想和你一起吃汤锅</font></h1></html>
[root@client ~]# curl http://192.168.4.100
<html><h1><font color=red>我想和你一起吃火锅</font></h1></html>
6.5.2 使用ab进行大并发测试
[root@client ~]# ab -c 10 -n 1000 hhp://192.168.4.100/index.html
6.5.3 在Director上查看连接数
[root@LVS ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.4.100:80 wlc
-> 192.168.4.12:80 Route 1 0 3
-> 192.168.4.13:80 Route 1 0 3

posted @ 2021-07-12 21:16  落樰兂痕  阅读(47)  评论(0编辑  收藏  举报