如何为BFD开放安全策略
在一些场景中,如BFD联动接口状态、被检测的接口没有IP地址,则使用组播报文实现BFD探测。在这些场景中,不需要配置安全策略。
启用BFD之后,BFD链路两端的设备通过BFD控制消息建立会话。会话建立之后,两端按照协商好的时间间隔发送BFD控制消息,如果在检测时间内没有收到对端的控制消息,则认为会话中断。这就是BFD异步模式(Asynchronous mode)。BFD还有一种操作模式为查询模式(Demand mode),即只在必要的时候发送控制报文。多数厂商仅支持BFD异步模式。BFD控制消息以UDP封装。RFC规定,单跳检测时,目的端口为3784。多跳检测时,目的端口为4784。
华为防火墙产品默认使用UDP 3784作为多跳检测的端口。可使用命令multi-hop destination-port 4784修改为标准端口。
此外,BFD还有一个附加功能,BFD回声功能,即BFD Echo。本端发送BFD Echo报文,远端不对报文处理,而是将报文从反向通道上返回。BFD Echo报文以UDP封装,目的端口为3785。
BFD回声功能仅支持单跳检测,包括两个使用场景。
- 场景1,被动回声:链路两端都支持BFD功能,但检测能力不同。比如,A设备支持的BFD报文最小接收时间间隔为30ms,B设备为150ms,则协商之后只能按照B设备的检测能力运行。两端建立BFD会话之后,使用被动回声功能,A设备的检测能力得以发挥。BFD Echo报文的源和目的IP地址都是本端出接口的IP地址,目的物理地址是对端设备物理地址。
- 场景2,单臂回声:链路对端不支持BFD功能。本端会发送特殊的BFD报文(IP头中的目的IP地址是本端IP地址,源IP地址是本端IP地址或者手工指定),对端收到后直接环回到本端,以此判断链路是否正常。单臂回声功能对低端设备有很强的适应能力。
序号 |
名称 |
源安全区域 |
目的安全区域 |
源地址/地区 |
目的地址/地区 |
服务 |
动作 |
---|---|---|---|---|---|---|---|
101 |
Allow BFD single-hop out |
local |
untrust |
10.1.1.10/24 |
10.1.1.1/24 |
bfd-control (UDP: 3784) |
permit |
102 |
Allow BFD single-hop in |
untrust |
local |
10.1.1.1/24 |
10.1.1.10/24 |
bfd-control (UDP: 3784) |
permit |
103 |
Allow BFD multi-hop out |
local |
untrust |
10.1.1.10/24 |
10.1.2.1/24 |
UDP: 4784 |
permit |
104 |
Allow BFD multi-hop in |
untrust |
local |
10.1.1.1/24 |
10.1.1.10/24 |
UDP: 4784 |
permit |
105 |
Allow BFD echo out |
local |
untrust |
10.1.1.10/24 |
10.1.1.10/24 |
bfd-echo (UDP: 3785) |
permit |
106 |
Allow BFD echo in |
untrust |
local |
10.1.1.10/24 |
10.1.1.10/24 |
bfd-echo (UDP: 3785) |
permit |
如果BFD多跳检测的路径中间有防火墙,则需要在防火墙上开放双向安全策略,允许UDP报文访问4784端口。