一、自定义定时器
这里指的是自定义:
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: ipv4 safi: unicast advertisements: matchLabels: advertise: "pod-cidr" timers: connectRetryTimeSeconds: 12 holdTimeSeconds: 9 keepAliveTimeSeconds: 3
通过CRD:CiliumBGPPeerConfig中的timers字段来修改。
二、ebpf多跳
*默认只有1跳,即端到端
--- apiVersion: "cilium.io/v2alpha1" kind: CiliumBGPPeerConfig metadata: name: peer-config-generic spec: families: - afi: ipv4 safi: unicast advertisements: matchLabels: advertise: "pod-cidr" timers: connectRetryTimeSeconds: 12 holdTimeSeconds: 9 keepAliveTimeSeconds: 3 ebgpMultihop: 10
*修改CiliumBGPPeerConfig.ebgpMultihop: 10
*修改后生效。
三、 优雅重启
默认是没有开启优雅重启功能的,BGP控制层面断了,工作节点上的路由也没有了。
按道理,BGP的控制器重启不应该影响工作节点的路由信息。
所以需要开启BGP控制层面的优雅重启。
--- apiVersion: "cilium.io/v2alpha1" kind: CiliumBGPPeerConfig metadata: name: peer-config-generic spec: families: - afi: ipv4 safi: unicast advertisements: matchLabels: advertise: "pod-cidr" timers: connectRetryTimeSeconds: 12 holdTimeSeconds: 9 keepAliveTimeSeconds: 3 ebgpMultihop: 10 gracefulRestart: enabled: true restartTimeSeconds: 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: ipv4
safi: unicast
advertisements:
matchLabels:
advertise: "pod-cidr"
timers:
connectRetryTimeSeconds: 12
holdTimeSeconds: 9
keepAliveTimeSeconds: 3
ebgpMultihop: 10
gracefulRestart:
enabled: true
restartTimeSeconds: 20
authSecretRef: secretname
抓包:
*在准备建立邻居的时候会包含MD5的信息。
五、传播路由带团体属性
--- apiVersion: "cilium.io/v2alpha1" kind: CiliumBGPAdvertisement metadata: name: pod-cidr labels: advertise: pod-cidr spec: advertisements: - advertisementType: "PodCIDR" attributes: communities: standard: - 65001:100