11-BFD配置
本章節下載: 11-BFD配置 (323.27 KB)
BFD(Bidirectional Forwarding Detection,雙向轉發檢測)是一個通用的、標準化的、介質無關和協議無關的快速故障檢測機製,用於檢測轉發路徑的連通狀況,保證設備之間能夠快速檢測到通信故障,以便能夠及時采取措施,保證業務持續運行。BFD可以為各種上層協議(如路由協議)快速檢測兩台設備間雙向轉發路徑的故障。上層協議通常采用Hello報文機製檢測故障,所需時間為秒級,而BFD可以提供毫秒級檢測。
BFD可以用來進行單跳和多跳檢測:
· 單跳檢測:是指對兩個直連設備進行IP連通性檢測,這裏所說的“單跳”是IP的一跳。
· 多跳檢測:BFD可以檢測兩個設備間任意路徑的鏈路情況,這些路徑可能跨越很多跳。
BFD會話通過echo報文和控製報文實現。
echo報文封裝在UDP報文中傳送,其UDP目的端口號為3785。
本端發送echo報文建立BFD會話,對鏈路進行檢測。對端不建立BFD會話,隻需把收到的echo報文轉發回本端。如果在檢測時間內沒有收到對端轉發回的echo報文,則認為會話down。
當BFD會話工作於echo報文方式時,僅支持單跳檢測,且不受檢測模式的控製。
控製報文封裝在UDP報文中傳送,對於單跳檢測其UDP目的端口號為3784,對於多跳檢測其UDP目的端口號為4784。鏈路兩端的設備通過控製報文中攜帶的參數(會話標識符、期望的收發報文最小時間間隔、本端BFD會話狀態等)協商建立BFD會話。
BFD會話建立前有兩種模式:主動模式和被動模式。
· 主動模式:在建立會話前不管是否收到對端發來的BFD控製報文,都會主動發送BFD控製報文;
· 被動模式:在建立會話前不會主動發送BFD控製報文,直到收到對端發送來的控製報文。
通信雙方至少要有一方運行在主動模式才能成功建立起BFD會話。
BFD會話建立後有兩種模式:異步模式和查詢模式。
· 異步模式:設備周期性發送BFD控製報文,如果在檢測時間內沒有收到對端發送的BFD控製報文,則認為會話down。
· 查詢模式:本端的BFD會話工作在查詢模式時,本端設備會向對端發送D比特位置1的BFD控製報文,對端(缺省為異步模式)收到該報文後將停止周期性發送BFD控製報文。這種情況下,僅對本端到對端的鏈路進行檢測,即當對端設備在檢測時間內未收到BFD控製報文時,則認為鏈路故障,將BFD會話狀態置為down。如果通信雙方的BFD會話均工作在查詢模式,則雙方都停止周期性發送BFD控製報文。這種情況下,係統將通過其他與BFD無關的機製對鏈路進行檢測(比如Hello報文機製、硬件檢測機製等)。當係統中的BFD會話數量較多時,采用查詢模式可防止周期性發送BFD控製報文的開銷對係統的正常運行造成影響。
表1-1 BFD支持的應用
應用 |
參見信息 |
靜態路由 IS-IS OSPF RIP BGP IP快速重路由 |
“三層技術-IP路由配置指導” |
IPv6靜態路由 OSPFv3 |
“三層技術-IP路由配置指導” |
PIM |
“IP組播配置指導” |
Track |
“網絡管理和監控配置指導” |
與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
缺省BFD運行版本1,同時兼容版本0。不能通過命令行配置修改為版本0,當對端設備運行版本0會話時,本端自動會切換到版本0。
BFD功能不支持跨NAT探測。
BFD會話建立後,可以動態協商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會話的本地標識符不能相同。
如果創建靜態BFD會話時未指定source-ip/source-ipv6參數,將使用bfd echo-source-ip/bfd echo-source-ipv6命令指定的IPv4/IPv6地址作為echo報文的源IPv4/IPv6地址。如果創建靜態BFD會話時指定了source-ip/source-ipv6參數,將使用該參數的地址作為echo報文的源IPv4/IPv6地址。建議用戶創建echo報文方式的靜態BFD會話時指定source-ip/source-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 } ]
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 配置接收單跳echo報文的最小時間間隔。
bfd min-echo-receive-interval interval
缺省情況下,接收單跳echo報文的最小時間間隔為400毫秒。
(4) 配置單跳檢測的BFD檢測時間倍數。
bfd detect-multiplier interval
本命令的缺省情況與設備的型號有關,請以設備的實際情況為準。
(1) 進入係統視圖。
system-view
(2) 配置接收多跳echo報文的最小時間間隔。
bfd multi-hop min-echo-receive-interval interval
缺省情況下,接收多跳echo報文的最小時間間隔為400毫秒。
(3) 配置多跳檢測的BFD檢測時間倍數。
bfd multi-hop detect-multiplier value
本命令的缺省情況與設備的型號有關,請以設備的實際情況為準。
建立控製報文方式的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會話時,必須指定靜態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會話。
(1) 進入係統視圖。
system-view
(2) 配置BFD會話建立前的運行模式。
bfd session init-mode { active | passive }
缺省情況下,BFD會話建立前的運行模式為主動模式。
(3) 進入接口視圖或靜態BFD會話視圖。
¡ 進入接口視圖。
interface interface-type interface-number
¡ 進入靜態BFD會話視圖。
bfd static session-name
靜態BFD會話必須已經存在。
(4) 配置單跳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控製報文不進行認證。
(5) 配置BFD會話為查詢模式。
bfd demand enable
缺省情況下,BFD會話為異步模式。
(6) 配置發送單跳BFD控製報文的最小時間間隔。
bfd min-transmit-interval interval
缺省情況下,發送單跳BFD控製報文的最小時間間隔為400毫秒。
(7) 配置接收單跳BFD控製報文的最小時間間隔。
bfd min-receive-interval interval
缺省情況下,接收單跳BFD控製報文的最小時間間隔為400毫秒。
(8) 配置單跳檢測的BFD檢測時間倍數。
bfd detect-multiplier interval
本命令的缺省情況與設備的型號有關,請以設備的實際情況為準。
(9) (可選)配置BFD會話無法建立時,通知上層協議BFD會話down的超時時間
bfd init-fail-timer seconds
缺省情況下,BFD會話無法建立時,不會通知上層協議BFD會話down。
配置本命令後,對於由於配置原因(比如對端設備沒有使能BFD,或者兩端的BFD認證配置不一致等)造成BFD會話無法進入up狀態的情況,如果配置了本定時器,會導致上層協議作出錯誤的處理,所以,請謹慎使用本命令。
(1) 進入係統視圖。
system-view
(2) 配置BFD會話建立前的運行模式。
bfd session init-mode { active | passive }
缺省情況下,BFD會話建立前的運行模式為主動模式。
(3) 配置多跳BFD控製報文進行認證的方式。
bfd multi-hop authentication-mode { m-md5 | m-sha1 | md5 | sha1 | simple } key-id { cipher cipher-string | plain plain-string }
缺省情況下,多跳BFD控製報文不進行認證。
(4) 配置多跳BFD控製報文的目的端口號。
bfd multi-hop destination-port port-number
缺省情況下,多跳BFD控製報文的目的端口號為4784。
(5) 配置多跳檢測的BFD檢測時間倍數。
bfd multi-hop detect-multiplier value
本命令的缺省情況與設備的型號有關,請以設備的實際情況為準。
(6) 配置接收多跳BFD控製報文的最小時間間隔。
bfd multi-hop min-receive-interval interval
缺省情況下,接收多跳BFD控製報文的最小時間間隔為400毫秒。
(7) 配置發送多跳BFD控製報文的最小時間間隔。
bfd multi-hop min-transmit-interval interval
缺省情況下,發送多跳BFD控製報文的最小時間間隔為400毫秒。
(8) (可選)配置BFD會話無法建立時,通知上層協議BFD會話down的超時時間
bfd init-fail-timer seconds
缺省情況下,BFD會話無法建立時,不會通知上層協議BFD會話down。
配置本命令後,對於由於配置原因(比如對端設備沒有使能BFD,或者兩端的BFD認證配置不一致等)造成BFD會話無法進入up狀態的情況,如果配置了本定時器,會導致上層協議作出錯誤的處理,所以,請謹慎使用本命令。
使能BFD回聲功能後,會話的一端周期性地發送echo報文,對端不對此報文進行處理,隻將此報文轉發回發送端,根據發送端是否能收到echo報文來判斷鏈路狀態。
僅單跳檢測支持回聲功能。
回聲功能對接口狀態與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報文的最小時間間隔為400毫秒。
(6) 配置接收BFD控製報文的最小時間間隔。
bfd min-receive-interval interval
缺省情況下,接收BFD控製報文的最小時間間隔為400毫秒。
(7) 配置發送BFD控製報文的最小時間間隔。
bfd min-transmit-interval interval
缺省情況下,發送BFD控製報文的最小時間間隔為400毫秒。
開啟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 ] [ 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 |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!