部署LVS-DR群集

1.LVS-DR中的ARP问题

1.在LVS-DR负载均衡集群中,负载均衡器与节点服务器都要配置相同的VIP地址

当ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上,它们都会接收ARP广播
只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播

2.对节点服务器进行处理,使其不响应针对VIP的ARP请求

使用虚接口lo:0承载VIP地址
设置内核参数arp_ignore=1:系统只响应目的IP为ARP请求

3.RealServer返回报文(源IP是VIP)经路由转发,重新封装报文时,需要先获取路由器的MAC地址

发送ARP请求时,Linux默认使用IP包的源IP地址(即IPVIP)作为ARP请求包中的源IP地址,而不使用发送接口的IP地址

如:ens33接口

源IPVIP
源MACRealServer的MAC
目的IP路由器的IP
目的MAC?

4.路由器收到ARP请求后,将更新ARP表项

原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的MAC地址
5.问题

路由器根据ARP表项,会将新来的请求报文转发给RealServer,导致Director的VIP失效

解决方法

对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址

2.解决ARP的两个问题的设置方法

修改/etc/sysctl.conf文件

net.ipv4.conf.lo.arp_ignore=1

net.ipv4.conf.lo.arp_announce=2

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

3.LVS负载均衡群集(直连路由模式LVS-DR)

LVS:192.168.100.12
web1:192.168.100.13
web2:192.168.100.14
nfs:192.168.100.15

1.配置调度服务器

[root@server1 ~]# modprobe ip_vs		//加载ip_vs模块
[root@server1 ~]# cat /proc/net/ip_vs	//查看版本信息
IP Virtual Server version 1.2.1 (size=4096)
[root@server1 ~]# rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm		//安装ipvsadm
[root@server1 ~]# vi dr.sh
#!/bin/bash
#
ifconfig ens33:0 192.168.100.100 broadcast 192.168.100.100 netmask 255.255.255.255 up
route add -host 192.168.100.100 dev ens33:0
ipvsadm -C
ipvsadm -A -t 192.168.100.100:80 -s rr
ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.13:80 -g
ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.14:80 -g
ipvsadm -Ln
[root@server1 ~]# sh dr.sh

2.配置web服务器

web1
[root@server1 ~]# yum -y install httpd
[root@server1 ~]# vi /etc/httpd/conf/httpd.conf
ServerName aa
配置默认主页
[root@server1 ~]# cd /var/www/html/
[root@server1 html]# echo "<h1>serveraa</h1>" > index.html
或者
mount 192.168.100.15:/opt/web1 /var/www/html
vi /etc/fstab
192.168.100.15:/opt/web1/ /var/www/html/  nfs defaults,_netdev 0 0

systemctl restart httpd
windows验证http服务
http://192.168.100.13

vi web.sh
#!/bin/bash
#web1
ifconfig lo:0 192.168.100.100 broadcast 192.168.100.100 netmask 255.255.255.255 up
route add -host 192.168.100.100 dev 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 &>/dev/null
web2
[root@server1 ~]# yum -y install httpd
[root@server1 ~]# vi /etc/httpd/conf/httpd.conf
ServerName ab
配置默认主页
[root@server1 ~]# cd /var/www/html/
[root@server1 html]# echo "<h1>serverab</h1>" > index.html
或者
mount 192.168.100.15:/opt/web1 /var/www/html
vi /etc/fstab
192.168.100.15:/opt/web1/ /var/www/html/  nfs defaults,_netdev 0 0

systemctl restart httpd
windows验证http服务
http://192.168.100.14

vi web.sh
#!/bin/bash
#web1
ifconfig lo:0 192.168.100.100 broadcast 192.168.100.100 netmask 255.255.255.255 up
route add -host 192.168.100.100 dev 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 &>/dev/null

3.配置nfs

[root@server1 ~]# yum -y install nfs-utils rpcbind
[root@server1 ~]# systemctl start nfs-utils
[root@server1 ~]# systemctl start rpcbind
[root@server1 ~]# mkdir /opt/web1 /opt/web2
[root@server1 ~]# echo "this is server1" > /opt/web1/index.html
[root@server1 ~]# echo "this is server2" > /opt/web2/index.html
[root@server1 ~]# vi /etc/exports
/opt/web1 192.168.100.0/24 (rw,sync)
/opt/web2 192.168.100.0/24 (rw,sync)

验证测试:http://192.168.100.100 (多开几个任务)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值