引言
最近有个客户环境使用metallb l2 模式压力已经很大了,所以整理了下目前 metallb bgp 模式
metallb bgp 模式
bgp 官方文档
metallb.universe.tf/concepts/bg…
目前官方推荐了三种bgp模式:
native: native 是metallb 自己实现的bgp协议 BGP 部署,包括bgp协议报文的封装都是由自己实现。
frr:是使用第三方工具frr 实现bgp协议
k8s-frr: 是在最新版本 0.14.3 中 推出的。和FRR模式相比,在运行 FRR-K8s 模式时,MetalLB 生成 FRR-K8s 的配置,然后调用FRR的API去配置FRR, 而不是直接配置 FRR,目前是实验性质的。
native 和 frr 模式的选型
- native 模式不支持 BFD,故障切换肯定就没有frr 灵敏
- FRR 自带了cli面板,debug更加方便。
- 理论上FRR 性能应该更优
- 测试中发现个更神奇的事情,native 模式下删除bgpeer后, 对端bgp 的session竟然还在。不知道是bug还是什么。
- 社区的推广情况看起来是以frr为主,不然也不会出k8s-frr。
所以结论是,优先选择FRR模式,不过社区提出FRR有一些限制:
- BGPAdvertisement 不能有具有不同 RouterID。
- BGPAdvertisement 不能有不同的 myAsn)。
- 如果 eBGP peer 与节点相距多个跃点,则必须设置 ebgp-multihop 标志 为真。