09-BFD配置
本章節下載: 09-BFD配置 (486.09 KB)
1.4.3 通過bfd static命令手工創建靜態BFD會話
1.5.5 通過bfd static命令手工創建靜態BFD會話
1.5.9 配置BFD會話無法建立時,通知上層協議BFD會話down的超時時間
2.3.3 配置Initiator(檢測SRv6 TE Policy)
BFD(Bidirectional Forwarding Detection,雙向轉發檢測)是一個通用的、標準化的、介質無關和協議無關的快速故障檢測機製,用於檢測轉發路徑的連通狀況,保證設備之間能夠快速檢測到通信故障,以便能夠及時采取措施,保證業務持續運行。BFD可以為各種上層協議(如路由協議)快速檢測兩台設備間雙向轉發路徑的故障。上層協議通常采用Hello報文機製檢測故障,所需時間為秒級,而BFD可以提供毫秒級檢測。
BFD在兩台網絡設備上建立會話,用來檢測網絡設備間的雙向轉發路徑,為上層應用服務。BFD本身並沒有發現機製,而是靠被服務的上層協議通知來建立會話。上層協議在建立新的鄰居關係後,將鄰居的參數及檢測參數(包括目的地址和源地址等)通告給BFD;BFD根據收到的參數建立BFD會話。會話建立後會周期性地快速發送BFD報文,如果在檢測時間內沒有收到BFD報文,則認為該雙向轉發路徑發生了故障,並將故障信息通知給該會話所服務的上層應用,由上層應用采取相應的措施。下麵以OSPF與BFD聯動為例,簡單介紹BFD的工作流程。
如圖1-1所示,OSPF與BFD聯動觸發建立會話的流程為:
(1) OSPF通過自己的Hello機製發現鄰居並建立連接。
(2) OSPF在建立了新的鄰居關係後,將鄰居信息(包括目的地址和源地址等)通告給BFD。
(3) BFD根據收到的鄰居信息建立會話。
圖1-1 BFD會話建立流程圖
BFD檢測到鏈路故障通知OSPF的流程為:
(1) BFD檢測到鏈路故障,BFD會話狀態變為Down。
(2) BFD通知本地OSPF進程BFD鄰居不可達。
(3) 本地OSPF進程中斷OSPF鄰居關係。
圖1-2 BFD故障發現處理流程圖
BFD可以用來進行單跳和多跳檢測:
· 單跳檢測:是指對兩個直連設備進行IP連通性檢測,這裏所說的“單跳”是IP的一跳。例如,如圖1-3所示,使用BFD檢測Device A和Device B之間的IP單跳路徑。
圖1-3 單跳檢測
· 多跳檢測:BFD可以檢測兩個設備間任意路徑的鏈路情況,這些路徑可能跨越很多跳。例如,如圖1-4所示,使用BFD檢測Device A和Device B之間的IP多跳路徑。
圖1-4 多跳檢測
BFD會話通過echo報文和控製報文實現。
echo報文封裝在UDP報文中傳送,該報文IP頭中的源IP和目的IP均為本端設備的IP地址,其UDP目的端口號為3785。
本端發送echo報文建立BFD會話,對鏈路進行檢測。對端不建立BFD會話,隻需把收到的echo報文轉發回本端。如果在檢測時間內沒有收到對端轉發回的echo報文,則認為會話down。
echo報文方式的BFD會話不需要雙方均支持BFD功能,不支持BFD功能的設備接收到echo報文後,直接將該報文環回,從而達到快速檢測的目的。
當BFD會話工作於echo報文方式時,僅在MPLS TE隧道和VXLAN隧道的場景中支持多跳檢測,其他應用的BFD會話僅支持單跳檢測,兩種應用均不受檢測模式的控製。
控製報文封裝在UDP報文中傳送,對於單跳檢測其UDP目的端口號為3784,對於多跳檢測其UDP目的端口號為4784。鏈路兩端的設備通過控製報文中攜帶的參數(會話標識符、期望的收發報文最小時間間隔、本端BFD會話狀態等)協商建立BFD會話。
軟件BFD是指BFD檢測過程中的報文收發、BFD會話狀態機的維護完全依賴CPU來處理。軟件BFD會極大的消耗CPU能力。同時,受CPU性能影響,能夠支持的BFD會話規格較小,無法用於大規格BFD會話需求的應用場景。
硬件BFD把過度消耗CPU資源的會話處理轉移到芯片,這樣CPU可以及時處理其他重要任務。硬件BFD會話處理的性能不受限於CPU的性能。相較於軟件BFD,硬件BFD能夠支持大規格的BFD會話。
用戶通過display bfd session verbose命令顯示信息中的Hardware mode字段能夠判斷會話由軟件維護還是由硬件維護:Hardware mode字段取值為Disabled,說明會話由軟件維護;Hardware mode字段取值為Enabled,說明會話由硬件維護。
對於由硬件維護的BFD會話,觸發會話切換為軟件維護的常見操作包括:
· 拔出支持硬件BFD的單板
由硬件維護的BFD會話切換為軟件維護時,可能會導致會話震蕩,請謹慎配置。
本特性的支持情況與設備的型號有關,請以設備的實際情況為準。
型號 |
說明 |
MPU-60 |
不支持 |
MPU-100 |
不支持 |
MPU-100-X1 |
支持 |
MPU-100-G |
不支持 |
BFD可以和路由協議、MPLS等聯合使用,具體如表1-1所示。
表1-1 BFD支持的應用
應用 |
參見信息 |
鏈路聚合與BFD聯動 |
“二層技術-以太網交換配置指導”中的“以太網鏈路聚合” |
IPv4靜態路由與BFD聯動 |
“三層技術-IP路由配置指導”中的“靜態路由” |
IPv6靜態路由與BFD聯動 |
“三層技術-IP路由配置指導”中的“IPv6靜態路由” |
RIP與BFD聯動 |
“三層技術-IP路由配置指導”中的“RIP” |
OSPF與BFD聯動 |
“三層技術-IP路由配置指導”中的“OSPF” |
OSPFv3與BFD聯動 |
“三層技術-IP路由配置指導”中的“OSPFv3” |
IS-IS與BFD聯動 |
“三層技術-IP路由配置指導”中的“IS-IS” |
BGP與BFD聯動 |
“三層技術-IP路由配置指導”中的“BGP” |
PIM與BFD聯動 |
“IP組播配置指導”中的“PIM” |
IPv6 PIM與BFD聯動 |
“IP組播配置指導”中的“IPv6 PIM” |
MPLS與BFD聯動 |
“MPLS配置指導”中的“MPLS OAM” |
RSVP與BFD聯動 |
“MPLS配置指導”中的“RSVP” |
Track與BFD聯動 |
“可靠性配置指導”中的“Track” |
SDWAN使用BFD檢測隧道連通性 |
“SDWAN配置指導”中的“SDWAN” |
與BFD相關的協議規範有:
· RFC 5880:Bidirectional Forwarding Detection (BFD)
· RFC 5881:Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)
· RFC 5882:Generic Application of Bidirectional Forwarding Detection (BFD)
· RFC 5883:Bidirectional Forwarding Detection (BFD) for Multihop Paths
· RFC 5884:Bidirectional Forwarding Detection (BFD) for MPLS Label Switched Paths (LSPs)
· RFC 5885:Bidirectional Forwarding Detection (BFD) for the Pseudowire Virtual Circuit Connectivity Verification (VCCV)
· RFC 7130:Bidirectional Forwarding Detection (BFD) on Link Aggregation Group (LAG) Interfaces
缺省BFD運行版本1,同時兼容版本0。不能通過命令行配置修改為版本0,當對端設備運行版本0會話時,本端自動會切換到版本0。
BFD會話建立後,可以動態協商BFD的相關參數(例如最小發送間隔、最小接收間隔、初始模式、報文認證等),兩端協議通過發送相應的協商報文後采用新的參數,不影響會話的當前狀態。
對於建立在跨板聚合接口上的BFD會話,當負責收發BFD報文的單板被拔出或異常重啟時,備用單板接替收發BFD報文的工作需要一定的時間,如果BFD會話檢測時間較短或者會話數量較多,可能會出現BFD會話震蕩的情況。(IRF模式)
(1) 配置echo報文方式的BFD會話
(2) 配置控製報文方式的BFD會話
¡ 配置BFD會話無法建立時,通知上層協議BFD會話down的超時時間
(3) 配置BFD模板
建立echo報文方式的BFD會話的方式有兩種:
· 通過bfd static命令手工創建。
· 應用程序與BFD聯動時動態創建。
在已配置uRPF功能的設備上,需要注意:
· 配置應用程序與echo方式的BFD聯動時,設備會將對端轉發回來的echo報文丟棄。可以配置ACL允許echo報文源地址通過,並將此ACL應用於uRPF,從而抑製報文丟棄。
· 配置echo報文方式的靜態BFD會話時,為了避免設備將對端轉發回來的echo報文丟棄,需要保證靜態BFD會話中指定的源IPv4/IPv6地址能夠通過uRPF檢查。
關於uRPF功能的詳細介紹請參見“安全配置指導”中的“uRPF”。
建議配置echo報文的源IPv4/IPv6地址不屬於該設備任何一個接口所在網段,原因如下:
· 避免對端發送大量的ICMP重定向報文造成網絡擁塞。
· 本端開啟畸形報文檢測與防範功能的情況下,從對端返回的echo報文會被當做畸形報文過濾掉,導致本端無法建立BFD會話。關於畸形報文檢測與防範功能的詳細介紹,請參見“安全配置指導”中的“攻擊檢測與防範”。
不支持使用echo報文方式的BFD會話跨NAT設備進行路徑檢測。
創建的靜態BFD會話可以用來進行echo報文方式的BFD單跳檢測和多跳檢測。
使用echo報文方式的靜態BFD會話進行檢測時,僅需在本端創建靜態BFD會話。
首次創建靜態BFD會話時,必須指定靜態BFD會話的對端IPv4或IPv6地址。係統僅檢查IP地址的形式,不檢查其正確性。指定錯誤的對端IP地址或源IP地址均會導致靜態BFD會話無法建立。
不同的靜態BFD會話的本地標識符不能相同。
echo報文方式的靜態BFD會話選取報文源地址的規則如下:
(1) 如果創建靜態BFD會話時未指定source-ip/source-ipv6參數,將使用bfd echo-source-ip/bfd echo-source-ipv6命令指定的IPv4/IPv6地址作為echo報文的源IPv4/IPv6地址。
(2) 如果創建靜態BFD會話時指定了source-ip/source-ipv6參數,將使用該參數的地址作為echo報文的源IPv4/IPv6地址。建議用戶創建echo報文方式的靜態BFD會話時指定source-ip/source-ipv6參數。
(3) 如果未通過(1)或(2)指定報文的源地址,echo報文方式的靜態BFD會話將使用destination-ip/destination-ipv6參數指定的IPv4/IPv6地址作為報文的源IPv4/IPv6地址。
(1) 進入係統視圖。
system-view
(2) (可選)配置echo報文源IP地址。
¡ 配置echo報文源IPv4地址。
bfd echo-source-ip ip-address
缺省情況下,未配置echo報文的源IPv4地址。
¡ 配置echo報文源IPv6地址。
bfd echo-source-ipv6 ipv6-address
缺省情況下,未配置echo報文的源IPv6地址。
echo報文源IPv6地址僅支持全球單播地址。
(3) 創建靜態BFD會話,並進入靜態BFD會話視圖。
(IPv4網絡)
bfd static session-name [ peer-ip ipv4-address interface interface-type interface-number destination-ip ipv4-address [ source-ip ipv4-addres ] one-arm-echo discriminator { local local-value | auto } ]
(IPv6網絡)
bfd static session-name [ peer-ipv6 ipv6-address interface interface-type interface-number destination-ipv6 ipv6-address [ source-ipv6 ipv6-address ] one-arm-echo discriminator { local local-value | auto } ]
(1) 進入係統視圖。
system-view
(2) (可選)配置echo報文源IP地址。
¡ 配置echo報文源IPv4地址。
bfd echo-source-ip ip-address
缺省情況下,未配置echo報文的源IPv4地址。
¡ 配置echo報文源IPv6地址。
bfd echo-source-ipv6 ipv6-address
缺省情況下,未配置echo報文的源IPv6地址。
echo報文源IPv6地址僅支持全球單播地址。
(3) 創建靜態BFD會話,並進入靜態BFD會話視圖。
(IPv4網絡)
bfd static session-name [ peer-ip ipv4-address [ vpn-instance vpn-instance-name ] destination-ip ipv4-address [ source-ip ipv4-addres ] one-arm-echo discriminator { local local-value | auto } ]
(IPv6網絡)
bfd static session-name [ peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] destination-ipv6 ipv6-address [ source-ipv6 ipv6-addres ] one-arm-echo discriminator { local local-value | auto } ]
在建立echo報文方式的BFD會話時,用戶可以根據網絡狀況和性能需求,調整設備接收echo報文的時間間隔、檢測時間倍數。
多個上層應用關聯同一個BFD會話,即會話的“源IP地址+目的IP地址+會話所在的接口+VPN+目的端口號”信息完全相同,檢測時間參數的優選順序如下:
(1) 靜態BFD會話視圖下設置的檢測時間參數、上層應用引用的BFD模板設置的檢測時間參數、上層應用單獨設置的檢測時間參數中的最小值。
(2) 接口視圖或係統視圖下設置的檢測時間參數。
(3) 缺省值。
一個BFD會話僅被一個上層應用關聯,檢測時間參數的優選順序如下:
(1) 上層應用是否支持引用BFD模板、是否支持單獨設置檢測時間參數會影響檢測時間參數的優選順序,具體如下:
¡ 如果上層應用既支持引用BFD模板,也支持單獨設置檢測時間參數,則上層應用既引用了BFD模板、又單獨設置了檢測時間參數時,上層協議優先使用引用的BFD模板中的檢測時間參數。
¡ 如果上層應用支持引用BFD模板、不支持單獨設置檢測時間參數,則上層應用引用BFD模板後,使用該BFD模板中的檢測時間參數。
¡ 如果上層協議支持單獨設置檢測時間參數、不支持引用BFD模板,則上層應用單獨設置檢測時間參數後,使用這些單獨設置的檢測時間參數。
(2) 接口視圖或係統視圖下設置的檢測時間參數。
(3) 缺省值。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置接收單跳echo報文的最小時間間隔。
bfd min-echo-receive-interval interval
缺省情況下,接收單跳echo報文的最小時間間隔為1000毫秒。
(4) 配置單跳檢測的BFD檢測時間倍數。
bfd detect-multiplier interval
本命令的缺省情況與設備的型號有關,具體請參見命令參考。
(1) 進入係統視圖。
system-view
(2) 配置接收多跳echo報文的最小時間間隔。
bfd multi-hop min-echo-receive-interval interval
缺省情況下,接收多跳echo報文的最小時間間隔為1000毫秒。
(3) 配置多跳檢測的BFD檢測時間倍數。
bfd multi-hop detect-multiplier value
本命令的缺省情況與設備的型號有關,具體請參見命令參考。
使用echo報文方式的靜態BFD會話檢測直連設備間的IP轉發路徑時,缺省情況下,BFD會檢查發送echo報文的出接口與接收echo報文的入接口是否一致:
· 如果一致,設備會接收echo報文。
· 如果不一致,設備會丟棄收到的echo報文。
如果設備間存在多條報文通路,則建議配置本功能,以免設備發送echo報文的出接口與接收echo報文的入接口不一致,導致BFD會話無法UP。
本功能僅對未達到UP狀態的BFD會話生效,其工作機製如下:
· 配置bfd ignore-receive-interface命令後,BFD會判斷會話的狀態,隻有BFD會話未達到UP狀態時,從該BFD會話接收到echo報文後,才不會檢查echo報文入接口與發送該echo報文的出接口是否一致。
· 配置bfd ignore-receive-interface命令,且BFD會話達到UP狀態後,如果執行undo bfd ignore-receive-interface命令,則echo報文出入接口不一致的BFD會話不會變為DOWN。隻有其他原因導致BFD會話DOWN並嚐試重新建立BFD會話時,BFD才會對echo報文出入接口的一致性進行檢查。
僅IPv4或IPv6 echo報文方式的靜態BFD會話視圖下支持配置bfd ignore-receive-interface命令。
(1) 進入係統視圖。
system-view
(2) 進入靜態BFD會話視圖。
bfd static session-name
靜態BFD會話必須已經存在。
(3) 配置BFD忽略echo報文的出入接口一致性檢查。
bfd ignore-receive-interface
缺省情況下,BFD會檢查發送echo報文的出接口與接收echo報文的入接口是否一致。如果一致,設備會接收echo報文;如果不一致,設備會丟棄收到的echo報文。
建立控製報文方式的BFD會話有兩種方式:靜態創建BFD會話和動態建立BFD會話。
BFD通過控製報文中的本地標識符和遠端標識符來區分不同的會話。靜態創建BFD會話和動態建立BFD會話的主要區別在於本地標識符和遠端標識符的獲取方式不同:
· 靜態BFD會話的本地標識符和遠端標識符由用戶手工配置。手工指定會話的本地標識符和遠端標識符的方法包括:
¡ 通過bfd static命令手工創建。
¡ 應用程序與BFD聯動時,由用戶手工指定會話的本地標識符和遠端標識符。
· 動態BFD會話的本端標識符由本端設備分配,遠端標識符在BFD會話協商建立過程中獲取。應用程序與BFD聯動時,如果用戶未指定會話的本地標識符和遠端標識符,則建立的會話為動態BFD會話。
BFD版本0不支持以下命令,配置不生效。
· bfd session init-mode
· bfd authentication-mode
· bfd demand enable
· bfd echo enable
BFD會話建立前有兩種模式:主動模式和被動模式。
· 主動模式:在建立會話前不管是否收到對端發來的BFD控製報文,都會主動發送BFD控製報文。
· 被動模式:在建立會話前不會主動發送BFD控製報文,直到收到對端發送來的控製報文。
通信雙方至少要有一方運行在主動模式才能成功建立起BFD會話。
(1) 進入係統視圖。
system-view
(2) 配置BFD會話建立前的運行模式。
bfd session init-mode { active | passive }
缺省情況下,BFD會話建立前的運行模式為主動模式。
BFD會話建立後有兩種模式:異步模式和查詢模式。
· 異步模式:設備周期性發送BFD控製報文,如果在檢測時間內沒有收到對端發送的BFD控製報文,則認為會話DOWN。缺省情況下,BFD會話為異步模式。
· 查詢模式:當係統中的BFD會話數量較多時,采用查詢模式可防止周期性發送BFD控製報文的開銷對係統的正常運行造成影響。
¡ 本端的BFD會話工作在查詢模式時,本端設備會向對端發送D比特位置1的BFD控製報文,對端(缺省為異步模式)收到該報文後將停止周期性發送BFD控製報文。這種情況下,僅對本端到對端的鏈路進行檢測,即當對端設備在檢測時間內未收到BFD控製報文時,則認為鏈路故障,將BFD會話狀態置為DOWN。
¡ 如果通信雙方的BFD會話均工作在查詢模式,則雙方都停止周期性發送BFD控製報文。這種情況下,係統將通過其他與BFD無關的機製對鏈路進行檢測(比如Hello報文機製、硬件檢測機製等)。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置BFD會話為查詢模式。
bfd demand enable
缺省情況下,BFD會話為異步模式。
創建的靜態BFD會話可以用來進行控製報文方式的BFD單跳檢測和多跳檢測。
如果對端創建了靜態BFD會話,那麼本端必須創建靜態BFD會話。
首次創建靜態BFD會話時,必須指定靜態BFD會話的對端IPv4或IPv6地址。係統僅檢查IP地址的形式,不檢查其正確性。指定錯誤的對端IP地址或源IP地址均會導致靜態BFD會話無法建立。
不同的靜態BFD會話的本地標識符不能相同。
(1) 進入係統視圖。
system-view
(2) 創建靜態BFD會話,並進入靜態BFD會話視圖。
(IPv4網絡)
bfd static session-name peer-ip ipv4-address interface interface-type interface-number source-ip ipv4-address discriminator local local-value remote remote-value
需要保證指定的peer-ip為對端靜態BFD會話所在的接口的IP地址,source-ip為本端靜態BFD會話所在的接口的IP地址,否則無法建立靜態BFD會話。
(IPv6網絡)
bfd static session-name peer-ipv6 ipv6-address interface interface-type interface-number source-ipv6 ipv6-address discriminator local local-value remote remote-value
需要保證指定的peer-ipv6為對端靜態BFD會話所在的接口的IPv6地址,source-ipv6為本端靜態BFD會話所在的接口的IPv6地址,否則無法建立靜態BFD會話。
(1) 進入係統視圖。
system-view
(2) 創建靜態BFD會話,並進入靜態BFD會話視圖。
bfd static session-name peer-ip default-ip interface interface-type interface-number source-ip ip-address discriminator local discr-value remote discr-value
需要保證指定的source-ip為本端靜態BFD會話所在的接口的IP地址,否則無法建立靜態BFD會話。
(3) (可選)配置接口狀態與靜態BFD會話聯動。
process-interface-status
缺省情況下,接口狀態不與靜態會話聯動,即靜態BFD會話狀態的改變不會影響接口數據鏈路層協議狀態。
(4) (可選)配置首次建立檢測數據鏈路層連通性的靜態BFD會話失敗時,通知數據鏈路層BFD會話down的超時時間。
first-fail-timer seconds
缺省情況下,首次建立檢測數據鏈路層連通性的靜態BFD會話失敗時,不會通知數據鏈路層BFD會話down。
配置process-interface-status命令後,本命令才會生效。
(5) (可選)開啟對檢測數據鏈路層連通性的靜態BFD會話進行特殊處理的功能。
special-processing [ admin-down | authentication-change | session-up ] *
缺省情況下,對檢測數據鏈路層連通性的靜態BFD會話進行特殊處理的功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 創建靜態BFD會話,並進入靜態BFD會話視圖。
(IPv4網絡)
bfd static session-name peer-ip ipv4-address [ vpn-instance vpn-instance-name ] source-ip ipv4-address discriminator local local-value remote remote-value
需要保證指定的peer-ip為對端靜態BFD會話所在的接口的IP地址,source-ip為本端靜態BFD會話所在的接口的IP地址,否則無法建立靜態BFD會話。
(IPv6網絡)
bfd static session-name peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] source-ipv6 ipv6-address discriminator local local-value remote remote-value
需要保證指定的peer-ipv6為對端靜態BFD會話所在的接口的IPv6地址,source-ipv6為本端靜態BFD會話所在的接口的IPv6地址,否則無法建立靜態BFD會話。
在建立控製報文方式的BFD會話時,用戶可以根據網絡狀況和性能需求,調整設備接收控製報文的時間間隔、發送控製報文的時間間隔以及檢測時間倍數。
多個上層應用關聯同一個BFD會話,即會話的“源IP地址+目的IP地址+會話所在的接口+VPN+目的端口號”信息完全相同,檢測時間參數的優選順序如下:
(1) 靜態BFD會話視圖下設置的檢測時間參數、上層應用引用的BFD模板設置的檢測時間參數、上層應用單獨設置的檢測時間參數中的最小值。
(2) 接口視圖或係統視圖下設置的檢測時間參數。
(3) 缺省值。
一個BFD會話僅被一個上層應用關聯,檢測時間參數的優選順序如下:
(1) 上層應用是否支持引用BFD模板、是否支持單獨設置檢測時間參數會影響檢測時間參數的優選順序,具體如下:
¡ 如果上層應用既支持引用BFD模板,也支持單獨設置檢測時間參數,則上層應用既引用了BFD模板、又單獨設置了檢測時間參數時,上層協議優先使用引用的BFD模板中的檢測時間參數。
¡ 如果上層應用支持引用BFD模板、不支持單獨設置檢測時間參數,則上層應用引用BFD模板後,使用該BFD模板中的檢測時間參數。
¡ 如果上層協議支持單獨設置檢測時間參數、不支持引用BFD模板,則上層應用單獨設置檢測時間參數後,使用這些單獨設置的檢測時間參數。
(2) 接口視圖或係統視圖下設置的檢測時間參數。
(3) 缺省值。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖或靜態BFD會話視圖。
¡ 進入接口視圖。
interface interface-type interface-number
¡ 進入靜態BFD會話視圖。
bfd static session-name
靜態BFD會話必須已經存在。
(3) 配置發送單跳BFD控製報文的最小時間間隔。
bfd min-transmit-interval interval
缺省情況下,發送單跳BFD控製報文的最小時間間隔為1000毫秒。
(4) 配置接收單跳BFD控製報文的最小時間間隔。
bfd min-receive-interval interval
缺省情況下,接收單跳BFD控製報文的最小時間間隔為1000毫秒。
(5) 配置單跳檢測的BFD檢測時間倍數。
bfd detect-multiplier interval
本命令的缺省情況與設備的型號有關,具體請參見命令參考。
(1) 進入係統視圖。
system-view
(2) 配置多跳檢測的BFD檢測時間倍數。
bfd multi-hop detect-multiplier value
本命令的缺省情況與設備的型號有關,具體請參見命令參考。
(3) 配置接收多跳BFD控製報文的最小時間間隔。
bfd multi-hop min-receive-interval interval
缺省情況下,接收多跳BFD控製報文的最小時間間隔為1000毫秒。
(4) 配置發送多跳BFD控製報文的最小時間間隔。
bfd multi-hop min-transmit-interval interval
缺省情況下,發送多跳BFD控製報文的最小時間間隔為1000毫秒。
通過配置BFD會話認證信息,包括認證算法、認證密鑰,提高BFD會話的安全性。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖或靜態BFD會話視圖。
¡ 進入接口視圖。
interface interface-type interface-number
¡ 進入靜態BFD會話視圖。
bfd static session-name
靜態BFD會話必須已經存在。
配置靜態BFD會話的參數時,需要進入靜態BFD會話視圖。
(3) 配置單跳BFD控製報文進行認證的方式。
bfd authentication-mode { hmac-md5 | hmac-mmd5 | hmac-msha1 | hmac-sha1 | m-md5 | m-sha1 | md5 | sha1 | simple } key-id { cipher cipher-string | plain plain-string }
缺省情況下,單跳BFD控製報文不進行認證。
(1) 進入係統視圖。
system-view
(2) (可選)進入靜態BFD會話視圖。
bfd static session-name
靜態BFD會話必須已經存在。
配置靜態BFD會話的參數時,需要進入靜態BFD會話視圖。
(3) 配置多跳BFD控製報文進行認證的方式。
bfd multi-hop authentication-mode { hmac-md5 | hmac-mmd5 | hmac-msha1 | hmac-sha1 | m-md5 | m-sha1 | md5 | sha1 | simple } key-id { cipher cipher-string | plain plain-string }
缺省情況下,多跳BFD控製報文不進行認證。
IANA(Internet Assigned Numbers Authority,互聯網編號分配委員會)將端口號4784分配給BFD,用於BFD控製報文多跳檢測。缺省情況下,H3C設備多跳BFD控製報文的目的端口號為4784。與多跳BFD控製報文目的端口號為3784的其他廠商設備互通時,建議兩端使用相同的多跳BFD控製報文端口號,否則可能會導致BFD會話協商失敗。
配置本功能後,隻有此後新創建的控製報文方式的多跳BFD會話,才會使用本功能設置的端口塊作為發送報文的目的端口號。對於配置本功能前已經Up的控製報文方式的多跳BFD會話,不會使用本功能設置的端口號作為發送報文的目的端口號。
(1) 進入係統視圖。
system-view
(2) 配置多跳BFD控製報文的目的端口號。
bfd multi-hop destination-port port-number
缺省情況下,多跳BFD控製報文的目的端口號為4784。
缺省情況下,控製報文工作方式的BFD會話無法建立時,不會通知上層協議BFD會話down。某些情況下,需要將BFD會話無法建立的消息通知給上層協議,以使上層協議作出正確的處理。比如在聚合鏈路中,由於鏈路故障等原因,BFD會話無法進入up狀態,從而導致聚合模塊無法及時將成員端口的選中狀態修改為非選中狀態,配置本命令可避免上述情況的發生。
本功能對echo報文方式的BFD會話無效。
(1) 進入係統視圖。
system-view
(2) (可選)配置BFD會話無法建立時,通知上層協議BFD會話down的超時時間。
bfd init-fail-timer seconds
缺省情況下,BFD會話無法建立時,不會通知上層協議BFD會話down。
配置本命令後,對於由於配置原因(比如對端設備沒有使能BFD,或者兩端的BFD認證配置不一致等)造成BFD會話無法進入up狀態的情況,如果配置了本定時器,會導致上層協議作出錯誤的處理,所以,請謹慎使用本命令。
使用異步模式的BFD會話檢測直連網段的連通性時,可以使用BFD回聲功能輔助進行故障檢測。使能BFD回聲功能後,會話的一端周期性地發送echo報文,同時自動降低控製報文的接收速率,減少對帶寬資源的消耗。對端不對echo報文進行處理,隻將此報文轉發回發送端。如果發送端連續幾個echo報文都沒有接收到,會話狀態將變為DOWN。
僅單跳檢測支持回聲功能。
回聲功能對接口狀態與BFD聯動的會話無效。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖或靜態BFD會話視圖。
¡ 進入接口視圖。
interface interface-type interface-number
¡ 進入靜態BFD會話視圖。
bfd static session-name
靜態BFD會話必須已經存在,且必須是檢測設備間數據鏈路層連通性的靜態BFD會話。
(3) 使能回聲功能。
bfd echo [ receive | send ] enable
缺省情況下,回聲功能處於關閉狀態。
配置接口狀態與BFD聯動後,係統將通過發送BFD控製報文來協商建立單跳檢測的BFD會話,實現對鏈路的快速檢測。當檢測到鏈路故障時,將接口鏈路層協議狀態置為“DOWN(BFD)”,從而幫助依賴接口鏈路層協議狀態的應用快速收斂。係統發送的BFD控製報文中的源地址為用戶手工指定的IP地址,目的地址固定為224.0.0.184。對於有IP地址的接口,建議將源地址指定為該接口的IP地址;如果接口沒有IP地址,建議將源地址指定為0.0.0.0以外的單播地址。
支持與BFD聯動的接口類型為:
· 三層以太網接口及其子接口。請不要在三層以太網接口和該三層以太接口創建的子接口上同時使用該功能,否則,將導致主接口或子接口的BFD檢測功能失效。
· 三層聚合接口、三層聚合接口的子接口以及三層聚合口的成員端口,其中三層聚合口的成員端口全部為三層以太網接口。請不要在三層聚合接口、該三層聚合接口的子接口以及該三層聚合口的成員端口上同時使用此功能,否則可能導致BFD檢測功能失效。
· VLAN接口
回聲功能對接口狀態與BFD聯動的會話無效。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置接口狀態與BFD聯動。
bfd detect-interface source-ip ip-addres [ discriminator local local-value remote remote-value ] [ template template-name ]
缺省情況下,接口狀態不與BFD聯動,即BFD檢測到鏈路故障時,不會將接口鏈路層協議狀態置為“DOWN(BFD)。
(4) (可選)配置接口與BFD聯動的會話首次建立失敗時,通知數據鏈路層BFD會話down的超時時間。
bfd detect-interface first-fail-timer seconds
缺省情況下,接口與BFD聯動的會話首次建立失敗時,不會通知數據鏈路層BFD會話down。
(5) (可選)開啟接口與BFD聯動的會話進行特殊處理的功能。
bfd detect-interface special-processing [ admin-down | authentication-change | session-up ] *
缺省情況下,對接口與BFD聯動的會話進行特殊處理的功能處於關閉狀態。
對於未指定出接口的會話,無法通過會話出接口配置BFD會話參數。使用BFD全局多跳可以配置,但是缺乏靈活性。通過BFD模板可以對參數進行靈活配置,LSP以及PW的BFD檢測關聯到BFD模板即可指定會話參數。
(1) 進入係統視圖。
system-view
(2) 創建BFD模板,並進入BFD模板視圖。
bfd template template-name
(3) (可選)配置BFD控製報文進行認證的方式。
bfd authentication-mode { hmac-md5 | hmac-mmd5 | hmac-msha1 | hmac-sha1 | m-md5 | m-sha1 | md5 | sha1 | simple } key-id { cipher cipher-string | plain plain-string }
缺省情況下,BFD控製報文不進行認證。
BFD版本0不支持本命令,配置不生效。
(4) 配置BFD檢測時間倍數。
bfd detect-multiplier value
本命令的缺省情況與設備的型號有關,具體請參見命令參考。
(5) 配置接收echo報文的最小時間間隔。
bfd min-echo-receive-interval interval
缺省情況下,接收echo報文的最小時間間隔為1000毫秒。
(6) 配置接收BFD控製報文的最小時間間隔。
bfd min-receive-interval interval
缺省情況下,接收BFD控製報文的最小時間間隔為1000毫秒。
(7) 配置發送BFD控製報文的最小時間間隔。
bfd min-transmit-interval interval
缺省情況下,發送BFD控製報文的最小時間間隔為1000毫秒。
上層應用使用BFD檢測主用路徑的場景中,主用路徑DOWN後,觸發上層協議進行主備路徑切換。如果主路徑故障恢複前,檢測主用路徑的BFD會話重新UP,將會觸發備份路徑切換到處於故障狀態的主路徑,會導致流量丟失。本功能用於解決上述問題。
開啟本功能後,工作機製如下:
· 設備將對每一個從UP狀態切換為DOWN狀態的BFD會話啟動一個定時器,在定時器超時前,對應的會話不會進行重協商。
· 任何新建立的BFD會話,設備都會啟動定時器。在定時器超時前,不會重新進行會話協商。
(1) 進入係統視圖。
system-view
(2) 開啟延遲DOWN狀態的BFD會話進行協商的功能,並設置延遲會話協商的時間。
bfd session-negotiation delay-upon-down interval
缺省情況下,延遲DOWN狀態的BFD會話進行協商的功能處於關閉狀態。
開啟BFD模塊的告警功能後,該模塊會生成告警信息,用於報告該模塊的重要事件。生成的告警信息將發送到設備的SNMP模塊,通過設置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。(有關告警信息的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。)
(1) 進入係統視圖。
system-view
(2) 開啟BFD的告警功能。
snmp-agent trap enable bfd
缺省情況下,BFD的告警功能處於開啟狀態。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後BFD的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除BFD會話的統計信息。
表1-2 BFD顯示和維護
操作 |
命令 |
顯示BFD會話信息 |
display bfd session [ discriminator local local-value | static name session-name | verbose ] display bfd session [ [ dynamic ] [ control | echo ] [ ip ] [ state { down | admin-down | init | up } ] [ discriminator remote remote-value ] [ peer-ip ipv4-address [ vpn-instance vpn-instance-name ] ] [ verbose ] ] display bfd session [ [ dynamic ] [ control | echo ] [ ipv6 ] [ state { down | admin-down | init | up } ] [ discriminator remote remote-value ] [ peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] ] [ verbose ] ] display bfd session [ [ dynamic ] [ control | echo ] [ lsp | te | pw ] [ state { down | admin-down | init | up } ] [ discriminator remote remote-value ] [ [ peer-ip ipv4-address [ vpn-instance vpn-instance-name ] ] | [ peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] ] ] [ verbose ] ] display bfd session [ [ static ] [ ip ] [ state { down | admin-down | init | up } ] [ discriminator remote remote-value ] [ peer-ip ipv4-address [ vpn-instance vpn-instance-name ] ] [ verbose ] display bfd session [ [ static ] [ ipv6 ] [ state { down | admin-down | init | up } ] [ discriminator remote remote-value ] [ peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] ] [ verbose ] |
清除BFD會話統計信息 |
reset bfd session statistics |
SBFD(Seamless BFD,無縫BFD)是一種單向的故障檢測機製,簡化了BFD的狀態機(SBFD僅支持UP、DOWN兩個狀態),縮短了會話協商時間,其檢測速度比BFD更快速。SBFD適用於僅一端需要進行鏈路狀態檢測的情況。
SBFD會話中,節點的角色分為發起端(Initiator)和響應端(Reflector):
· Initiator:SBFD會話的發起者,負責維護SBFD會話的狀態。Initiator周期性發送SBFD控製報文。
· Reflector:監聽到達本地節點的SBFD控製報文,並判斷是否需要生成SBFD響應報文。Reflector無需維護SBFD會話狀態。
SBFD的檢測機製如下:
(1) Initiator周期性向Reflector發送SBFD控製報文。
(2) Reflector收到Initiator發送的SBFD報文後,檢查報文中攜帶的遠端標識符是否與本地節點為Reflector指定的標識符一致。如果一致,Reflector將向Initiator發送SBFD響應報文。如果不一致,Reflector將丟棄收到的SBFD報文。
(3) Initiator在檢測時間超時前收到響應報文,則認為鏈路可達。否則,認為鏈路不可達。
一個節點可以同時作為不同SBFD會話的Initiator和Reflector。
目前僅支持采用靜態方式建立SBFD會話,即通過命令行手工指定遠端的標識符,根據指定的標識符建立SBFD會話。
(1) 配置Initiator
¡ 配置Initiator(檢測SRv6 TE Policy)
(2) 配置Reflector
(3) (可選)開啟延遲DOWN狀態的SBFD會話進行協商的功能
(4) (可選)配置Initiator
Initiator發送的SBFD控製報文中攜帶的遠端標識符必須為Reflector上通過sbfd local-discriminator命令指定的標識符,當Reflector收到Initiator發送的SBFD控製報文後,發現報文中攜帶的遠端標識符不是自己的本地標識符時,不會發送響應報文給Initiator。
SBFD可以用來檢測SRv6 TE Policy的連通性,為其提供毫秒級的故障檢測速度,並實現快速的故障切換。一個SRv6 TE Policy中,優先級最高的有效路徑為主路徑,優先級次高的有效路徑為備份路徑。SBFD對SRv6 TE Policy的主、備路徑進行檢測。如果主、備路徑中存在多個SID列表,SBFD會對所有SID列表進行檢測。當SBFD檢測到SRv6 TE Policy主路徑的所有SID列表均無效時,SBFD通知SRv6 TE Policy切換到備份路徑。
如圖2-1所示,在Device A上配置SRv6 TE Policy,並使用SBFD檢測該SRv6 TE Policy。SBFD檢測SRv6 TE Policy的過程如下:
(1) 頭節點作為Initiator發送SBFD報文,SBFD報文封裝SRv6 TE Policy中主路徑或備份路徑對應的SID列表,分別對主、備路徑進行檢測。
(2) 作為Reflector的尾節點收到SBFD報文後,檢查報文中攜帶的遠端標識符是否與本地配置的標識符一致。如果一致,Reflector將通過IPv6路由向Initiator發送SBFD響應報文。如果不一致,Reflector將丟棄收到的SBFD報文。
(3) 如果頭節點在檢測時間超時前能夠收到SBFD響應報文,則認為SRv6 TE Policy的SID列表正常。否則,頭節點認為SID列表故障。如果主路徑下的所有SID列表都發生故障,則SBFD觸發主備路徑切換。
圖2-1 SBFD for SRv6 TE Policy檢測過程
SRv6-TE視圖和SRv6 TE Policy視圖下均可以配置SRv6 TE Policy的SBFD功能。SRv6-TE視圖的配置對所有SRv6 TE Policy都有效,而SRv6 TE Policy視圖的配置隻對當前SRv6 TE Policy有效。對於一個SRv6 TE Policy來說,優先采用該SRv6 TE Policy內的配置,隻有該SRv6 TE Policy內未進行配置時,才采用SRv6-TE視圖的配置。
SRv6 TE Policy通知SBFD創建會話時,會將報文的源地址、目的地址等信息通告給SBFD。其中,源地址為sbfd source-ipv6命令指定的地址。需要確保遠端設備上存在到達sbfd source-ipv6命令指定的地址的路由。
目前,支持通過BFD echo報文和SBFD兩種方式檢測SRv6 TE Policy。在同一SRv6 TE Policy下同時配置以上兩種檢測方式時,SBFD檢測生效。
(1) 進入係統視圖。
system-view
(2) 配置被檢測路徑的目的IPv6地址和遠端標識符的映射關係。
sbfd destination ipv6 destination-ipv6-address remote-discriminator { ipv4-address | integer-value }
缺省情況下,未配置Initiator端被檢測路徑的目的IPv6地址和遠端標識符的映射關係。
如果未通過sbfd命令或srv6-policy sbfd命令指定SBFD會話的遠端標識符,那麼必須配置sbfd destination ipv6 remote-discriminator命令,否則建立的SBFD會話無法協商UP。
(3) (可選)配置SBFD檢測時間倍數。
bfd multi-hop detect-multiplier value
本命令的缺省情況與設備的型號有關,具體請參見命令參考。
(4) (可選)配置發送SBFD控製報文的最小時間間隔。
bfd multi-hop min-transmit-interval interval
缺省情況下,發送多跳BFD控製報文的最小時間間隔為1000毫秒。
(5) 配置Initiator發送SBFD報文使用的源IPv6地址。
sbfd source-ipv6 ipv6-address
缺省情況下,未配置Initiator發送SBFD報文使用的源IPv6地址。
(6) 進入SRv6視圖。
segment-routing ipv6
(7) 進入SRv6-TE視圖。
traffic-engineering
(8) 全局開啟SRv6 TE Policy的SBFD功能並配置相關參數。
srv6-policy sbfd remote remote-id [ template template-name ] [ backup-template backup-template-name ]
缺省情況下,SRv6 TE Policy的SBFD功能處於關閉狀態。
(9) 進入SRv6 TE Policy視圖。
policy policy-name
(10) 配置SRv6 TE Policy的SBFD功能。
sbfd { disable | enable [ remote remote-id ] [ template template-name ] [ backup-template backup-template-name ] [ oam-sid sid ] }
缺省情況下,未配置SRv6 TE Policy的SBFD功能,以SRv6-TE視圖下的配置為準。
關於本命令的詳細介紹,請參見“Sgment Routeing命令參考”中的“SRv6 TE Policy”。
在SBFD會話的Reflector端配置IPv4地址形式的本地標識符後,設備會自動轉換為整數形式的本地標識符。IPv4地址形式的本地標識符用於和其他廠商互通,通常情況下,建議配置整數形式的本地標識符。
Reflector收到Initiator發送的SBFD控製報文中攜帶的遠端標識符為Reflector上通過sbfd local-discriminator命令指定的任意一個標識符時,Reflector均會發送響應報文給Initiator。
(1) 進入係統視圖。
system-view
(2) 在SBFD會話的Reflector端配置本地標識符。
sbfd local-discriminator { ipv4-address | integer-value }
缺省情況下,未配置SBFD會話的Reflector端的本地標識符。
多次執行本命令,可以為Reflector端配置多個本地標識符。
上層應用使用SBFD檢測主用路徑的場景中,主用路徑DOWN後,觸發上層協議進行主備路徑切換。如果主路徑故障恢複前,檢測主用路徑的SBFD會話重新UP,將會觸發備份路徑切換到處於故障狀態的主路徑,會導致流量丟失。本功能用於解決上述問題。
開啟本功能後,工作機製如下:
· 設備將對每一個從UP狀態切換為DOWN狀態的SBFD會話啟動一個定時器,在定時器超時前,對應的會話不會進行重協商。
· 任何新建立的SBFD會話,設備都會啟動定時器。在定時器超時前,不會重新進行會話協商。
(1) 進入係統視圖。
system-view
(2) 開啟延遲DOWN狀態的SBFD會話進行協商的功能,並設置延遲會話協商的時間。
bfd session-negotiation delay-upon-down interval
缺省情況下,延遲DOWN狀態的SBFD會話進行協商的功能處於關閉狀態。
通過BFD模板可以對SBFD會話的參數進行靈活配置。
(1) 進入係統視圖。
system-view
(2) 創建BFD模板,並進入BFD模板視圖。
bfd template template-name
(3) 配置SBFD檢測時間倍數。
bfd detect-multiplier value
本命令的缺省情況與設備的型號有關,具體請參見命令參考。
(4) 配置發送SBFD控製報文的最小時間間隔。
bfd min-transmit-interval interval
缺省情況下,發送SBFD控製報文的最小時間間隔為1000毫秒。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後SBFD的運行情況,通過查看顯示信息驗證配置的效果。
表2-1 SBFD顯示和維護
操作 |
命令 |
顯示SBFD會話信息 |
display sbfd session { initiator | reflector } [ discriminator value | verbose ] |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!