当前位置: 首页 > news >正文

【博客625】keepalived开启garp refresh的重要性

keepalived开启garp refresh的重要性

1、场景

1-1、对keepavlied master机器热迁移后出现vip不通,过后恢复

原因:机器迁移后网关那边的arp表没有刷新,流量还是转发到老的端口,但是机器已经迁移到别的端口了,于是网络不通。因为keepalied默认情况下是发vrrp在实现主备切换,然后garp只在master选中的时候播出去或者收到低优先级的vrrp报文的时候播出去,然后不会再定时播了,网关那边arp表过期的时候会主动发grap来问,master回复,这样就能知道master是谁

1-2、由于交换机故障,keepalived 故障转移到备份实例,但是vip不通

原因:由于交换机故障,keepalived 故障转移到备份实例,备份实例发送了无偿 ARP,但因为交换机故障没有收到,当交换机恢复时(几分钟后)VIP 无法访问,因为交换机没有刷新 ARP 表(ARP 表到期时间设置为 4h)。由于交换机已经拥有此前vip对应的转移前的节点的MAC,因此它没有发送 ARP 请求,导致VIP 无法访问,也就是keepalived转移后,mac没有被交换机学到,直到我们重新启动了新 GARP 的 keepalived 实例才能重新宣告恢复

2、根因:garp没有及时刷新

默认情况下,不会定时刷新grap,grap是什么时候播的:

  • keepalied默认情况下是发vrrp在实现主备切换,然后garp只在master选中的时候播出去或者收到低优先级的vrrp报文的时候播出去,然后不会再定时播了
  • 网关那边arp表过期的时候会主动发grap来问,master回复,这样就能知道master是谁

网关arp老化机制:

  • 每台主机或设备上都维护着一个高速缓存,这是ARP高效运行的一个关键。在这个高速缓存中,存放主机或设备最近学习到的IP地址到MAC地址的映射关系,即动态ARP表项。

  • 主机或设备每次发送报文时,会先在本地高速缓存中查找目的IP地址所对应的MAC地址。如果高速缓存中有对应的MAC地址,主机或设备不会再发送ARP请求报文,而是直接将报文发至这个MAC地址;如果高速缓存中没有对应的MAC地址,主机或设备才会广播发送ARP请求报文,进行ARP地址解析。

  • 一方面由于高速缓存的容量限制,另一方面为了保证高速缓存中ARP表项的准确性,设备会对动态ARP表项进行老化和更新。

    动态ARP表项的老化参数有:老化超时时间、老化探测次数和老化探测模式。设备上动态ARP表项到达老化超时时间后,设备会发送老化探测报文(即ARP请求报文),如果能收到ARP应答报文,则更新该动态ARP表项,本次老化探测结束;如果超过设置的老化探测次数后仍没有收到ARP应答报文,则删除该动态ARP表项,本次老化探测结束。

  • 设备发送的老化探测报文可以是单播报文,也可以是广播报文。缺省情况下,设备只在最后一次发送ARP老化探测报文是广播模式,其余均为单播模式发送。当对端设备MAC地址不变时,可以配置接口以单播模式发送ARP老化探测报文。

  • 当接口Down时设备会立即删除相应的动态ARP表项。

3、解决办法:定时广播garp

推荐设置:

garp_master_delay 1
garp_master_refresh 5

其它garp设置:

# delay for second set of gratuitous ARPs after transition to MASTER
vrrp_garp_master_delay 10    # seconds, default 5, 0 for no second set# number of gratuitous ARP messages to send at a time after transition to MASTER
vrrp_garp_master_repeat 1    # default 5# delay for second set of gratuitous ARPs after lower priority advert received when MASTER
vrrp_garp_lower_prio_delay 10# number of gratuitous ARP messages to send at a time after lower priority advert received when MASTER
vrrp_garp_lower_prio_repeat 1# minimum time interval for refreshing gratuitous ARPs while MASTER
vrrp_garp_master_refresh 60  # secs, default 0 (no refreshing)# number of gratuitous ARP messages to send at a time while MASTER
vrrp_garp_master_refresh_repeat 2 # default 1# Delay in ms between gratuitous ARP messages sent on an interface
vrrp_garp_interval 0.001          # decimal, seconds (resolution usecs). Default 0.# Delay in ms between unsolicited NA messages sent on an interface
vrrp_gna_interval 0.000001        # decimal, seconds (resolution usecs). Default 0.
http://www.lryc.cn/news/11578.html

相关文章:

  • nginx防护规则,拦截非法字符,防止SQL注入、防XSS,nginx过滤url访问,屏蔽垃圾蜘蛛,WordPress安全代码篇
  • 【计算机网络】网络层
  • 产品经理知识体系:1.什么是互联网思维?
  • 【数据结构】单链表的接口实现(附图解和源码)
  • TikTok话题量超30亿,这款承载美好记忆的剪贴簿引发讨论
  • 了解Dubbo
  • 2023年前端面试知识点总结(JavaScript篇)
  • jQuery
  • 强化学习基础概念
  • Redis学习【9】之Redis RDB持久化
  • 分析 vant4 源码,学会用 vue3 + ts 开发毫秒级渲染的倒计时组件,真是妙啊
  • 事件驱动型架构
  • 20222023华为OD机试 - 不含 101 的数(Python)
  • 杭州电子科技大学2023年MBA招生考试成绩查询和复查申请的通知
  • 电子技术——CS和CE放大器的高频响应
  • 2023年数学建模美赛D题(Prioritizing the UN Sustainability Goals):SDGs 优先事项的选择
  • springboot实现项目启动前的一些操作
  • 详解JavaScript的形参,实参以及传参
  • Vue中的diff算法
  • 【面试题】前端春招第二面
  • Pytorch 基础之张量数据类型
  • Java 基础面试题——常见类
  • Windows 系统从零配置 Python 环境,安装CUDA、CUDNN、PyTorch 详细教程
  • [REDIS]redis的一些配置文件
  • Java反序列化漏洞——CommonsCollections4.0版本—CC2、CC4
  • 下载网上压缩包(包含多行json)并将其转换为字典的解决方案
  • 【郭东白架构课 模块一:生存法则】11|法则五:架构师为什么要关注技术体系的外部适应性?
  • Mindspore安装
  • C++010-C++嵌套循环
  • 设计模式之迭代器模式与命令模式详解和应用