目录
一.RS的ARP抑制
1.为什么要抑制
2.如何抑制
(1)修改/etc/sysctl.conf文件,增加以下内容
(2)命令行临时设置
二.LVS持久连接
1.客户端持久连接
2.端口持久连接
3.防火墙标记持久连接
三.ldirectord配置
1.下载ldirectord软件
2.将模板文件中的LVS-DR模式相关文件拷贝到/etc/ha.d主配置目录并按实际设备修改
3.配置两台RS匹配规则
4.停止RS1的http服务进行测试
一.RS的ARP抑制
1.为什么要抑制
避免RS在接受到客户端发来的ARP请求后,RS自己通过广播去回复带有VIP的MAC地址。
如果不进行ARP广播抑制,RS在被调度器分配到后,RS回复的ARP广播会导致局域网内的设备都将RS发出的ARP进行缓存,那么其他客户端发出的请求包将会绕过负载均衡器直接发送到RS,破坏了LVS-DR模式的机制。
进行RS的ARP广播抑制,让客户端的ARP请求都交给负载均衡器进行mac地址回复,RS不进行回复。
2.如何抑制
(1)修改/etc/sysctl.conf文件,增加以下内容
[root@localhost ~]# vim /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
[root@localhost ~]# sysctl -p
(2)命令行临时设置
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
[root@localhost ~]# sysctl -p
arp_ignore——定义对目标地址为本地IP的ARP询问不同的应答模式
0 (默认值):回应任何网络接口上对任何本地IP地址的arp查询请求。
1 只回答目标IP地址是来访网络接口本地地址的ARP查询请求。
2 只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内。
3 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应。
4-7 保留未使用。
8 不回应所有(本地地址)的arp查询
arp_announce——对网络接口上,本地IP地址发出的ARP回应,做出相应级别的限制
0 (默认)在任意网络接口(eth0,eth1,lo)上的任何本地地址
1 尽量避免不在该网络接口子网段的本地地址做出arp回应,当发起ARP请求的源IP地址是被设置应该经路由到达此网络接口的时候很有用,此时会检查来访IP是否为所有接口上的子网段内ip之一。如果该来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理。
2 对查询目标是要最适当的本地地址,在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通 信的本地地址。首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址。如果没有合适的地址被发现,将选择当前的网络发送接口或其他的有可能接受到该ARP回应的网络接口来进行发送。限制了使用本地的vip地址作为优先的网络接口。
二.LVS持久连接
未持久化的情况
[root@localhost ~]# 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.2.188:80 rr
-> 192.168.2.191:80 Route 1 0 7
-> 192.168.2.192:80 Route 1 0 7
[root@localhost ~]# for ((i=1;i<=10;i++));
> do
> curl 192.168.2.188
> done
share192
share191
share192
share191
share192
share191
share192
share191
share192
share191
1.客户端持久连接
[root@localhost ~]# ipvsadm -E -t 192.168.2.188 -s rr -p 20
[root@localhost ~]# for ((i=1;i<=10;i++)); do curl 192.168.2.188; done
share192
share192
share192
share192
share192
share192
share192
share192
share192
share192
2.端口持久连接
[root@localhost ~]# ipvsadm -E -t 192.168.2.188:80 -s rr -p 20
[root@localhost ~]# for ((i=1;i<=10;i++)); do curl 192.168.2.188; done
share192
share192
share192
share192
share192
share192
share192
share192
share192
share192
3.防火墙标记持久连接
[root@localhost ~]# yum install -y iptables*
[root@localhost ~]# systemctl start iptables.service
[root@localhost ~]# iptables -t mangle -A PREROUTING -d 192.168.2.188 -p tcp --dport 80 -j MARK --set-mark 10
[root@localhost ~]# service iptables save
[root@localhost ~]# ipvsadm -A -f 10 -s rr -p 20
三.ldirectord配置
基于前文的LVS-DR集群构建环境
1.下载ldirectord软件
链接:https://pan.baidu.com/s/10dU8ElXj9stP6iGiE8F_1Q
提取码:2htp
[root@localhost ~]# yum install -y ldirectord-4.1.1-3.40.el7.noarch.rpm
[root@localhost ~]# rpm -ql ldirectord
/etc/ha.d #主配置目录
/etc/ha.d/conf
/etc/ha.d/resource.d
/etc/ha.d/resource.d/ldirectord
/etc/logrotate.d/ldirectord
/etc/rc.d/init.d/ldirectord
/run/ldirectord
/usr/lib/systemd/system/ldirectord.service #服务管理
/usr/lib/tmpfiles.d/ldirectord.conf
/usr/sbin/ldirectord #主程序
/usr/share/doc/ldirectord-4.1.1
/usr/share/doc/ldirectord-4.1.1/ldirectord.cf #配置模板文件
/usr/share/man/man8/ldirectord.8.gz
2.将模板文件中的LVS-DR模式相关文件拷贝到/etc/ha.d主配置目录并按实际设备修改
文章来源:https://www.toymoban.com/news/detail-666537.html
[root@localhost ha.d]# pwd
/etc/ha.d
[root@localhost ha.d]# vim ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes #自动重载
logfile="/var/log/ldirectord.log" #日志存放路径
quiescent=no
virtual=192.168.2.188:80 #VIP地址1
servicename=Web Site
comment=Test load balanced web site
real=192.168.2.191:80 gate 2 #RS地址,gate表示权重1
real=192.168.2.192:80 gate 3
service=http
scheduler=wrr #调度算法
protocol=tcp
checktype=negotiate
checkport=80
request="index.html"
receive="Test Page"
virtualhost=www.x.y.z
3.配置两台RS匹配规则
[root@localhost ha.d]# 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.2.188:80 wrr
[root@localhost ha.d]# ipvsadm -a -t 192.168.2.188:80 -r 192.168.2.191 -g -w 2
[root@localhost ha.d]# ipvsadm -a -t 192.168.2.188:80 -r 192.168.2.192 -g -w 3
[root@localhost ha.d]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP localhost.localdomain:http wrr
-> 192.168.2.191:http Route 2 0 0
-> 192.168.2.192:http Route 3 0 0
4.停止RS1的http服务进行测试
RS1失去httpd服务,RS2接替RS1文章来源地址https://www.toymoban.com/news/detail-666537.html
[root@localhost ~]# systemctl stop httpd.service
[root@localhost ~]# for ((i=1;i<=10;i++)); do curl 192.168.2.188:80; done
share192
curl: (7) Failed connect to 192.168.2.188:80; Connection refused
share192
share192
curl: (7) Failed connect to 192.168.2.188:80; Connection refused
share192
curl: (7) Failed connect to 192.168.2.188:80; Connection refused
share192
share192
curl: (7) Failed connect to 192.168.2.188:80; Connection refused
[root@localhost ~]# for ((i=1;i<=10;i++)); do curl 192.168.2.188:80; done
share192
curl: (7) Failed connect to 192.168.2.188:80; Connection refused
share192
share192
curl: (7) Failed connect to 192.168.2.188:80; Connection refused
share192
curl: (7) Failed connect to 192.168.2.188:80; Connection refused
share192
share192
curl: (7) Failed connect to 192.168.2.188:80; Connection refused
到了这里,关于LVS-DR的RS进行ARP抑制的原因和LVS持久连接配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!