关于免费arp的一般使用场景: https://baike.baidu.com/item/gratuitous%20ARP/5635432
image.png可以看到 ipvlan配置好cni后,需要基于广播来获取mac地址,获取的mac地址是pod ipvlan子接口所依赖的父网卡的mac地址
image.png那么这个广播其实是可以优化的,在cni配置前,可以直接触发daemon对所有node发送免费arp(广播),更新pod ip对应的mac
毕竟node cni daemon来做这件事更为方便.
关于免费arp的实现可以直接参考 metallb的应用代码:
image.png image.png以及kube-vip arp模式相关的代码
image.png其他的比如keepalived的切换vip时候,源码中也会触发免费arp
关注问题: 免费arp 是否会过期,是否需要周期性触发免费arp广播?
在matallb中看起来免费arp生成的记录并不会有过期问题,不需要周期性的触发arp广播,只需要在1100 ms内(多次)触发免费arp,自此之后只要vip没发生切换便不再需要继续触发arp,而且将该ip 从免费arp列表中移除。
在kubevip的逻辑中,每隔3s都会触发一次免费arp广播,也就是说arp应该是会过期的。
image.png最后再看下arp的状态机:
image.png
网友评论