配置双向转发检测
双向转发检测 (BFD) 协议是一种用于快速检测转发路径故障的机制。BFD 以毫秒为单位检测路径故障。BFD 与动态路由协议一起使用。
在 BFD 操作中,路由对等体以协商的时间间隔交换 BFD 数据包。如果在协商间隔加上宽限间隔内未收到来自对等体的数据包,则认为对等方已失效,并将通知发送到一组注册的路由协议。反过来,路由协议会重新计算最佳路径并重新编程路由表。与路由协议提供的计时器相比,BFD 支持更短的时间间隔,因此可以更快地检测故障。
NetScaler 设备支持以下路由协议的 BFD:BGP(IPv4 和 IPv6)、OSPFv2(IPv4)和 OSPFv3(IPv6)。NetScaler 设备中的 BFD 支持符合 RFC 5880、5881 和 5883。
配置双向转发检测的注意事项
在开始配置 BFD 之前,请考虑以下几点:
- 确保您了解 RFC 5880、5881 和 5883 中描述的 BFD 的不同组成部分。
- 以下路由协议支持 NetScaler 设备上的 BFD:
- BGP(IPv4 和 IPv6)
- OSPFv2 (IPv4)
- OSPFv3 (IPv6)
- 以下路由协议不支持 NetScaler 设备上的 BFD:
- ISIS
- RIP (IPv4)
- RIPng (IPv6)
- NetScaler 设备不支持以下 BFD 功能:
- BFD Echo 模式
- BFD 身份验证
- BFD 需求异步模式
- BFD 间隔和 BFD Rx 计时器的最小值为 100 毫秒。
- 当在具有共享 IP 地址的拓扑中使用 BFD 时(例如,使用 SNIP 地址的第 2 层高可用性设置或具有条带 IP 地址的群集设置),BFD 会在故障转移期间关闭活动会话,因为 BFD 故障检测时间(大约毫秒)小于 HA 故障转移检测间隔(3-4 秒)。因此,Citrix 建议在第 2 层 HA 拓扑中使用优雅重启,因为在故障转移过程中会保留路由。
配置步骤
在 NetScaler 设备上配置 BFD 包括以下任务:
- 配置 BFD 参数
- 为动态路由协议配置 BFD 支持
配置 BFD 参数
NetScaler 设备为单跳会话、IPv4 多跳会话和 IPv6 多跳会话提供单独的 BFD 会话参数。如果您没有为某一类型的会话配置 BFD 参数,则默认值将应用于该会话。
对于单跳会话、IPv4 多跳会话和 IPv6 多跳会话,每个 BFD 参数的默认值都相同。下表显示了每个 BFD 参数的默认值。
BFD 参数名称 | 默认值 |
---|---|
Interval(时间间隔) | 750 毫秒 |
最低 Rx | 500 毫秒 |
乘数 | 3 |
重要:
NetScaler ADC 设备中的 Mellanox NIC 需要大约 1500 毫秒才能初始化。对于配备 Mellanox NIC 的 NetScaler 设备,必须将 BFD 计时器设置为超过 1500 毫秒。Citrix 建议将 BFD 计时器设置为 3000 毫秒:
- 间隔 Tx = 600 毫秒
- 最小 Rx = 600 毫秒
- 倍数 = 5
为单跳会话配置 BFD 参数
要使用命令行为单跳会话配置 BFD 参数, VTYSH
请在命令提示符处按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
interface vlan ID> |
进入接口配置模式。 |
bfd singlehop-peer interval <num> minrx <num> multiplier <num> |
在指定接口上配置 BFD 参数。 |
示例配置:
> vtysh
ns# configure terminal
ns(config)# interface vlan3
ns(config-if)# bfd singlehop-peer interval 200 minrx 200 multiplier 5
ns(config-if)# exit
<!--NeedCopy-->
为 IPv4 多跳会话配置 BFD 参数
要使用 VTYSH
命令行为 IPv4 多跳会话配置 BFD 参数,请在命令提示符处按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
bfd multihop-peer <ipv4addr> interval <num> minrx <num> multiplier <num> |
为 IPv4 多跳会话配置 BFD 参数。 |
示例配置:
> vtysh
ns# configure terminal
ns(config)# bfd multihop-peer 20.20.20.138 interval 300 minrx 300 multiplier 5
ns(config)# exit
<!--NeedCopy-->
为 IPv6 多跳会话配置 BFD 参数
要使用 VTYSH
命令行为 IPv6 多跳会话配置 BFD 参数,请在命令提示符处按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
bfd multihop-peer ipv6 <ipv6addr> interval <num> minrx <num> multiplier <num> |
为 IPv6 多跳会话配置 BFD 参数。 |
示例配置:
> vtysh
ns(config)# bfd multihop-peer ipv6 20fe:125::138 interval 500 minrx 500 multiplier 5
ns(config)# exit
<!--NeedCopy-->
为动态路由协议配置 BFD 支持
您可以为与对等方进行某种类型的会话启用动态路由协议的 BFD。例如,单跳和多跳。NetScaler 设备将相关的 BFD 参数设置应用于会话。
为 IPv4 BGP 单跳会话配置 BFD
要使用命令行为 IPv4 BGP 单跳会话配置 BFD, VTYSH
请在命令提示符处按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
router bgp <asnumber> |
BGP 自治系统。 asnumber 是必填参数。 |
neighbor <ipv4addr> remote-as <num> |
使用指定自治系统中邻居的 IPv4 地址更新 IPv4 BGP 表。 |
neighbor <ipv4addr> fall-over bfd |
为指定邻居启用 BFD。 |
示例配置:
> vtysh
ns# configure terminal
ns(config)#router bgp 1
ns(config-router)#neighbor 20.20.20.138 remote-as 1
ns(config-router)#neighbor 20.20.20.138 fall-over bfd
ns(config-router)#redistribute kernel
ns(config-router)#exit
<!--NeedCopy-->
为 IPv4 BGP 多跳会话配置 BFD
要使用命令行为 IPv4 BGP 多跳会话配置 BFD, VTYSH
请在命令提示符处按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
router bgp <asnumber> |
BGP 自治系统。 asnumber 是必填参数。 |
neighbor <ipv4addr> remote-as <num> |
使用指定自治系统中邻居的 IPv4 地址更新 IPv4 BGP 表。 |
neighbor <ipv4addr> fall-over bfd multihop |
为指定邻居启用 BFD。 |
示例配置:
> vtysh
ns# configure terminal
ns(config)#router bgp 1
ns(config-router)#neighbor 20.20.20.138 remote-as 1
ns(config-router)#neighbor 20.20.20.138 fall-over bfd multihop
ns(config-router)#redistribute kernel
ns(config-router)#exit
<!--NeedCopy-->
为 IPv6 BGP 单跳会话配置 BFD
要使用 VTYSH
命令行为 IPv6 BGP 单跳会话配置 BFD,请在命令提示符处按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
router bgp <asnumber> |
BGP 自治系统。 asnumber 是必填参数。 |
neighbor <ipv6addr> remote-as <num> |
使用指定自治系统中邻居的链路本地 IPv6 地址更新 IPv6 BGP 表。 |
neighbor <ipv6addr> fall-over bfd |
为指定邻居启用 BFD。 |
address-family ipv6 |
进入地址族配置模式。 |
neighbor <ipv6addr> activate |
使用链接本地地址在对等节点和本地节点之间交换 IPv6 路由器系列的前缀。 |
示例配置:
> vtysh
ns# configure terminal ns(config)#router bgp 1
ns(config-router)#neighbor 30fe:123::124 remote-as 1
ns(config-router)#neighbor 30fe:123::124 fall-over bfd
ns(config-router)#address-family ipv6
ns(config-router-af)#neighbor 30fe:123::124 activate
ns(config-router-af)#redistribute kernel
ns(config-router-af)#exit
<!--NeedCopy-->
为 IPv6 BGP 多跳会话配置 BFD
要使用 VTYSH
命令行为 IPv6 BGP 多跳会话配置 BFD,请在命令提示符处按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
router bgp <asnumber> |
BGP 自治系统。 asnumber 是必填参数。 |
neighbor <ipv6addr> remote-as <num> |
使用指定自治系统中邻居的链路本地 IPv6 地址更新 IPv6 BGP 表。 |
neighbor <ipv6addr> fall-over bfd multihop |
为指定邻居启用 BFD。 |
address-family ipv6 |
进入地址族配置模式。 |
neighbor <ipv6addr> activate |
使用链路本地地址在对等节点和本地节点之间交换 IPv6 路由器系列的前缀。 |
示例配置:
> vtysh
ns# configure terminal
ns(config)# bfd multihop-peer ipv6 20fe:125::138 interval 500 minrx 500 multiplier 5
ns(config)#router bgp 1
ns(config-router)#neighbor 20fe:125::138 remote-as 1
ns(config-router)#neighbor 20fe:125::138 fall-over bfd multihop
ns(config-router)#address-family ipv6
ns(config-router-af)#neighbor 20fe:125::138 activate
ns(config-router-af)#redistribute kernel
ns(config-router-af)#end
<!--NeedCopy-->
在接口上为 ospFv2 (IPv4) 配置 BFD
您可以在所有接口上启用 BFD,也可以在使用 OSPFv2 协议的特定接口上启用 BFD。
要使用 VTYSH
命令行在所有接口上为 ospFv2 配置 BFD,请执行以下操作:
在命令提示符下,按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
router ospf <process tag> |
进入 ospfv2 配置模式。 |
bfd all-interfaces |
在所有使用 OSPFv2 的接口上启用 BFD。 |
示例配置:
> vtysh
ns# configure terminal
ns(config)#router ospf 1
ns(config-router)#bfd all-interfaces
ns(config-router)#redistribute kernel
ns(config-router)#exit
<!--NeedCopy-->
要使用 VTYSH
命令行在特定接口上为 ospFv2 配置 BFD,请执行以下操作:
在命令提示符下,按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
interface <vlan ID> |
进入接口配置模式。 |
ip ospf bfd |
在使用 OSPFv2 的指定接口上启用 BFD。 |
示例配置:
> vtysh
ns# configure terminal
ns(config)# interface vlan5
ns(config-if)# ip ospf bfd
ns(config-if)# exit
<!--NeedCopy-->
在接口上为 OSPFv3 (IPv6) 配置 BFD
您可以在所有接口上启用 BFD,也可以在使用 OSPFv3 协议的特定接口上启用 BFD。
要使用 VTYSH
命令行在所有接口上为 OSPFv3 配置 BFD,请执行以下操作:
在命令提示符下,按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
router ipv6 ospf <process tag> |
进入 OSPFv3 配置模式。 |
bfd all-interfaces |
在所有使用 OSPFv3 的接口上启用 BFD。 |
示例配置:
> vtysh
ns# configure terminal
ns(config)#router ipv6 ospf 10
ns(config-router)#bfd all-interfaces
ns(config-router)#redistribute kernel
ns(config-router)#exit
<!--NeedCopy-->
要使用 VTYSH
命令行在特定接口上为 OSPFv3 配置 BFD,请执行以下操作:
在命令提示符下,按所示顺序键入以下命令:
命令 | 说明 |
---|---|
vtysh |
显示 VTYSH 命令提示符。 |
configure terminal |
进入全局配置模式。 |
interface <vlan ID> |
进入接口配置模式。 |
ipv6 ospf bfd |
在使用 OSPFv3 的指定接口上启用 BFD。 |
示例配置:
> vtysh
ns# configure terminal
ns(config)# interface vlan15
ns(config-if)# ipv6 ospf bfd
ns(config-if)# exit
<!--NeedCopy-->