LVS-DR群集部署

2 篇文章 0 订阅

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地址

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:20.0.0.128
web1:20.0.0.3
web2:20.0.0.6
nfs:20.0.0.8

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 20.0.0.128 broadcast 20.0.0.128 netmask 255.255.255.255 up
route add -host 20.0.0.128 dev ens33:0
ipvsadm -C
ipvsadm -A -t 20.0.0.128:80 -s rr
ipvsadm -a -t 20.0.0.128:80 -r 20.0.0.3:80 -g
ipvsadm -a -t 20.0.0.128:80 -r 20.0.0.6: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 test1

[root@server1 html]# echo "<h1>servertest1</h1>" > /var/www/html/index.html
或者
mount 20.0.0.8:/opt/web1 /var/www/html
vi /etc/fstab
20.0.0.8:/opt/web1/ /var/www/html/  nfs defaults,_netdev 0 0
systemctl restart httpd

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

[root@server1 html]# echo "<h1>servertest2</h1>" > /var/www/html/index.html
或者
mount 20.0.0.8:/opt/web1 /var/www/html
vi /etc/fstab
20.0.0.8:/opt/web1/ /var/www/html/  nfs defaults,_netdev 0 0
systemctl restart httpd


vi web.sh
#!/bin/bash
#web1
ifconfig lo:0 20.0.0.128 broadcast 20.0.0.128 netmask 255.255.255.255 up
route add -host 20.0.0.128 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 20.0.0.0/24 (rw,sync)
/opt/web2 20.0.0.0/24 (rw,sync)

验证测试:http://20.0.0.128

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值