欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > Cilium + ebpf 系列文章- (七)Cilium-BGP-自定义定时器-ebgp多跳-优雅重启-MD5加密-传播团体字

Cilium + ebpf 系列文章- (七)Cilium-BGP-自定义定时器-ebgp多跳-优雅重启-MD5加密-传播团体字

2024/10/25 10:32:10 来源:https://blog.csdn.net/weixin_46510209/article/details/142611227  浏览:    关键词:Cilium + ebpf 系列文章- (七)Cilium-BGP-自定义定时器-ebgp多跳-优雅重启-MD5加密-传播团体字

一、自定义定时器

        这里指的是自定义:

Keepalive Interval:   缺省值为30秒。Keepalive用于维护邻居关系,如果在协商的保持时间内没有收到Keepalive消息,则BGP将断开邻居连接。

Hold Time:缺省值是Keepalive时间的3倍,即90秒。这是BGP在关闭连接之前从对等体发来的连续消息之间等待的时间。换句话说,如果连续3条keepalive消息丢失,我们将假定远程对等端不可达。

Connect Retry:缺省值为120秒。在BGP对等过程中,如果初次尝试TCP连接失败,则使用连接重试定时器。它决定了BGP路由器与BGP对等体建立TCP连接的后续尝试时间间隔。

        

---
apiVersion: "cilium.io/v2alpha1"
kind: CiliumBGPPeerConfig
metadata:name: peer-config-generic
spec:families:- afi: ipv4safi: unicastadvertisements:matchLabels:advertise: "pod-cidr"timers:connectRetryTimeSeconds: 12holdTimeSeconds: 9keepAliveTimeSeconds: 3

        通过CRD:CiliumBGPPeerConfig中的timers字段来修改。

二、ebpf多跳

        *默认只有1跳,即端到端

---
apiVersion: "cilium.io/v2alpha1"
kind: CiliumBGPPeerConfig
metadata:name: peer-config-generic
spec:families:- afi: ipv4safi: unicastadvertisements:matchLabels:advertise: "pod-cidr"timers:connectRetryTimeSeconds: 12holdTimeSeconds: 9keepAliveTimeSeconds: 3ebgpMultihop: 10

         *修改CiliumBGPPeerConfig.ebgpMultihop: 10

 

*修改后生效。

三、 优雅重启

        默认是没有开启优雅重启功能的,BGP控制层面断了,工作节点上的路由也没有了。

        按道理,BGP的控制器重启不应该影响工作节点的路由信息。

        所以需要开启BGP控制层面的优雅重启。

---
apiVersion: "cilium.io/v2alpha1"
kind: CiliumBGPPeerConfig
metadata:name: peer-config-generic
spec:families:- afi: ipv4safi: unicastadvertisements:matchLabels:advertise: "pod-cidr"timers:connectRetryTimeSeconds: 12holdTimeSeconds: 9keepAliveTimeSeconds: 3ebgpMultihop: 10gracefulRestart:enabled: truerestartTimeSeconds: 20

*CiliumBGPPeerConfig:

        gracefulRestart:
    enabled: true
    restartTimeSeconds: 20

通过配置 gracefulRestart,您可以确保在 BGP 对等体重启过程中,数据平面的流量不中断,并且在指定的重启时间窗口(restartTimeSeconds)内,BGP 会话能够自动恢复并保持活动状态。这有助于提高网络的稳定性和可用性,特别是在计划内的维护或软件升级期间。

四、MD5加密

创建secret:

kubectl -n kube-system create secret generic \--type=string secretname \--from-literal=password=my-secret-password

应用:

*是BGP建立邻居的两端都要应用。

---
apiVersion: "cilium.io/v2alpha1"
kind: CiliumBGPPeerConfig
metadata:name: peer-config-generic
spec:families:- afi: ipv4safi: unicastadvertisements:matchLabels:advertise: "pod-cidr"timers:connectRetryTimeSeconds: 12holdTimeSeconds: 9keepAliveTimeSeconds: 3ebgpMultihop: 10gracefulRestart:enabled: truerestartTimeSeconds: 20authSecretRef: secretname

抓包:

 

*在准备建立邻居的时候会包含MD5的信息。 

五、传播路由带团体属性

---
apiVersion: "cilium.io/v2alpha1"
kind: CiliumBGPAdvertisement
metadata:name: pod-cidrlabels:advertise: pod-cidr
spec:advertisements:- advertisementType: "PodCIDR"attributes:communities:standard:- 65001:100

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com