簡介
本檔案介紹邊界閘道通訊協定(BGP)的常見問答集(FAQ)。
問:如何配置BGP?
A.有關如何配置BGP和BGP功能的資訊,請參閱以下文檔:
問題: 如何使用環回地址配置BGP?
答:使用環回介面可確保鄰居保持正常運行並且不受硬體故障的影響。
預設情況下,建立BGP對等會話時,BGP使用直接連線到BGP對等體的物理介面上配置的IP地址作為源地址。發出neighbor <ip地址> update-source <介面>命令以更改此行為,並配置BGP以告之路由器使用環回地址作為源地址建立對等會話。
有關詳細資訊,請參閱使用或不使用環回地址配置iBGP和eBGP的示例。
問:當部分或全部屬性應用於BGP中的一個鄰居時,屬性的優先順序是什麼?
A.首選項的順序取決於屬性是應用於入站更新還是出站更新。
對於入站更新,首選順序為:
-
路由對映
-
filter-list
-
prefix-list、distribute-list
對於出站更新,首選項的順序為:
-
filter-list
-
路由對映 | unsuppress-map
-
advertise-map (條件通告)
-
prefix-list|distribute-list
-
ORF prefix-list(鄰居向我們傳送的字首清單)
注意:屬性prefix-list和distribute-list是互斥的,並且只能將一個命令(neighbor prefix-list或neighbor distribute-list)應用於特定鄰居的每個入站或出站方向。
show ip bgp命令輸出中的下一跳0.0.0.0有什麼含義?
A. BGP表中下一跳地址為0.0.0.0的網路表示該網路是透過將內部網關協定(IGP)重分配到BGP而在本地建立的,或是透過BGP配置中的network或aggregate命令建立的。
問:什麼是BGP社群屬性的已知社群?
答:社群屬性是一種可傳遞的可選屬性,用於分組特定社群中的目標並應用特定策略(例如接受、首選或重新分配)。下表顯示公認的BGP社群。
社群 |
說明 |
本地AS |
在聯盟情況下使用,不要將封包傳送到本機自治系統(AS)之外。 |
no-export -不匯出 |
請勿通告給外部BGP (eBGP)對等體。將此路由保留在AS內。 |
不通告 |
請勿將此路由通告給內部或外部的任何對等體。 |
none |
當您要清除與路由關聯的社群時,不要應用社群屬性。 |
網際網路 |
將此路由通告給Internet社群以及屬於該社群的任何路由器。 |
有關社群配置的更多資訊,請參閱配置BGP的配置BGP社群過濾部分。
問:我可以使用什麼格式來配置BGP社群屬性?
答:在Cisco IOS®軟體版本12.0及更高版本中,您可以使用三種不同的格式(稱為十進位制、十六進位制和AA:NN)配置社群。預設情況下,Cisco IOS使用較舊的小數格式。要在AA:NN中進行配置和顯示(其中第一部分是AS編號,第二部分是2位元組編號),請發出ip bgp-community new-format全局配置命令。
注意:BGP社群屬性是一個數值(任意),可以分配給特定字首並通告給其他鄰居。雖然社群屬性可以用十進位制、十六進位制或AA:NN表示,但它仍然是32位數。例如,以下三個配置命令中的任何一個都指定社群30:20(AS 30,數字20):
- set community 30:20
- set community 0x1E0014
- set community 1966100
無論您使用哪種命令,路由器配置檔案和BGP表中顯示的社群均為30:20。
有關詳細資訊,請參閱BGP案例分析的「社群屬性」部分,以及使用BGP社群值配置和控制上游供應商網路。
問:在啟用或停用自動彙總的情況下,BGP的行為有何不同?
答:自動彙總行為在各個Cisco IOS軟體版本中均已發生變化。最初,預設情況下啟用自動總結。但是,使用思科漏洞ID CSCdu81680時,此行為已更改。在最新的Cisco IOS中,預設情況下停用自動總結。啟用自動總結時,它會將本地生成的BGP網路總結到其有類邊界。自動彙總僅在舊版本中預設啟用。停用自動彙總時,本地引入到BGP表中的路由不會彙總到其有類邊界。當路由表中存在子網並且滿足這三個條件時,本地路由表中該有類網路的任何子網都可以提示BGP將有類網路安裝到BGP表中。
-
路由表中網路的有類network語句
-
該network語句上的有類掩碼
-
已啟用自動摘要
例如,如果路由表中的子網為10.75.75.0(掩碼255.255.255.0),您在router bgp命令下配置network 10.0.0.0,並且啟用自動彙總,則BGP會在BGP表中引入有類網路10.0.0.0(掩碼255.0.0.0)。
附註:只有完成註冊的思科使用者能存取思科內部工具與資訊。
如果這三個條件不完全符合,則BGP不會在BGP表中安裝任何條目,除非本地路由表中存在完全匹配條目。
注意:如果執行BGP的AS不具備完全有類網路,Cisco建議您在router bgp下發出no auto-summary命令以停用自動彙總。
問:如何驗證BGP路由器是否宣佈其BGP網路並將其傳播到全局BGP網格?
A.使用以下命令檢查IP地址塊是否已通告給直連ISP:
注意:show ip bgp neighbors <地址> advertise-routes命令不考慮已應用的任何出站策略。在將來的Cisco IOS軟體版本中,可以更改命令輸出以反映出站策略。如果有兩條備用路徑通往目的地,則BGP始終使用最佳路由進行通告。
要驗證IP塊如何透過直接連線的ISP傳播到全局BGP網格,請登入Internet上的路由服 務器,在路由伺服器中查詢字首的BGP條目。
問:何時以及如何重置BGP會話?
A.更改此會話的入站/出站策略時清除BGP會話。發出clear ip bgp x.x.x.x soft out 命令可清除BGP會話,以使出站策略更改生效。發出clear ip bgp x.x.x.x 命令可清除BGP會話,以使入站策略更改生效。如果鄰居具有軟重新配置功能,您可以發出clear ip bgp x.x.x.x soft in 命令。如果設定最佳化邊緣路由(OER),則可自動清除BGP作業階段。OER會自動清除入站和出站方向的BGP會話。有關OER的詳細資訊,請參閱設定OER網路元件。
注意:在Cisco IOS軟體版本12及更高版本中,引入了新的BGP軟重置增強功能。
問:在PIX/ASA上是否需要任何特殊配置來允許BGP會話透過它?
答:是,請參閱ASA/PIX:透過ASA的BGP配置示例,瞭解完整的配置詳細資訊。
問:什麼是自治系統(AS)編號?如何獲得一個?
A. AS編號是全局唯一編號,用於標識AS,並且使AS能夠交換相鄰AS之間的外部路由資訊。AS是一組相連的IP網路,它們遵循單個明確定義的路由策略。
可用的AS編號數量有限。因此,必須確定哪些站點需要唯一的AS編號,哪些則不需要。不需要唯一AS編號的站點使用為專用保留的一個或多個AS編號,其範圍從64512到65535。存取AS編號註冊服務網 站以取得AS編號。
問:什麼是BGP路徑選擇標準?
A. BGP路徑選擇標準記錄在BGP最佳路徑選擇演算法中。
問:always-compare-med 和deterministic-med 有何區別?
A.這些命令之間區別的完整說明記錄在bgp deterministic-med命令與bgp always-compare-med命令有何區別中。
問:內部BGP (iBGP)會話是否修改下一跳?
A. iBGP會話保留從eBGP對等體中獲知的下一跳屬性。因此,擁有到下一跳的內部路由非常重要。否則BGP路由將無法訪問。為了確保可以到達eBGP下一跳,請將下一跳所屬的網路包含到IGP中,或者發出next-hop-self neighbor 命令,以強制路由器通告自己(而不是外部對等體)作為下一跳。有關更多詳細說明,請參閱BGP案例分析的BGP下一跳屬性部分。
問:聯盟之間的外部BGP (eBGP)會話是否修改下一跳?
答:否,聯盟子AS之間的eBGP會話不會修改下一跳屬性。所有iBGP規則仍適用於將整個AS作為單個實體運行。聯盟eBGP對等體之間的度量和本地優先順序值也保持不變。有關聯盟的更多資訊,請參閱BGP案例分析的BGP聯盟部分。
問:在外部BGP (eBGP)會話中,哪個IP地址作為下一跳傳送?
答:在eBGP對等中,下一跳是通告路由的鄰居的IP地址。但是,當路由在多路訪問介質(如乙太網或幀中繼)上通告時,下一跳通常是連線到該介質的路由器介面的IP地址,該介面是路由的源介面。有關更多詳細說明,請參閱BGP案例分析的BGP下一跳屬性。
問:路由反射器是否更改反射字首的下一跳屬性?
A.預設情況下,當字首由路由反射器反射時,不會更改下一跳屬性。然而,您可以發出neighbor next-hop-self 命令,以更改從eBGP對等體反射到任何路由反射器客戶端的字首的下一跳的屬性。
問:我如何才能在丟失與主ISP的連線時,有條件地將字首通告給一個ISP?
A.預設情況下,BGP會向外部對等體通告其BGP表中的路由。BGP條件通告功能提供了基於BGP表中存在其他字首的路由通告的其他控制。通常,無論是否存在其他路徑,都會傳播路由。BGP條件宣佈功能使用non-exist-map 和advertise-map 配置命令透過路由字首跟蹤路由。如果non-exist-map 命令中不存在路由字首,則宣佈advertise-map 命令指定的路由。有關詳細資訊,請參閱配置BGP的配置BGP條件通告部分。
問:從我的ISP接收完整的BGP路由表時,我的路由器中有多少記憶體?
A.儲存BGP路由所需的記憶體量取決於許多因素,例如路由器、可用備用路徑數、路由懲罰、社群、配置的最大路徑數、BGP屬性和VPN配置。不瞭解這些引數,就很難計算儲存一定數量的BGP路由所需的記憶體量。Cisco通常建議在路由器中至少使用512 MB RAM來儲存一個BGP對等體的完整全局BGP路由表。但是,瞭解減少記憶體消耗和實現最佳路由的方法非常重要,無需接收完整的Internet路由表。有關詳細資訊,請參閱配置BGP路由器以獲得最佳效能和降低的記憶體消耗。
問:配置BGP對等體組有什麼好處?
A. BGP對等體組的主要優點是它減少了生成更新時使用的系統資源(CPU和記憶體)數量。它還簡化了BGP配置,因為它允許路由表僅檢查一次,並將更新複製到所有其他同步對等組成員。這可以顯著降低負載,具體取決於對等體組成員的數量、表中的字首數量以及通告的字首的數量。Cisco建議您將具有相同出站通告策略的對等體組合在一起。有關詳細資訊,請參閱BGP對等組。
問:什麼是同步?它如何影響安裝在IP路由表中的BGP路由?
A.如果您的AS將流量從另一個AS傳遞到第三個AS,則BGP無法在您的AS中的所有路由器透過IGP獲知該路由之前通告該路由。BGP會等待,直到IGP在AS內傳播路由,然後將其通告給外部對等體。如果啟用了同步的BGP路由器無法驗證其IGP中的路由,則不會將iBGP獲知的路由安裝到其路由表中。在router bgp下發出no synchronization命令可停用同步。這可防止BGP在IGP中對iBGP路由進行身份驗證。有關更多詳細說明,請參閱BGP案例分析:同步。
問:如何在通告給外部BGP (eBGP)鄰居的字首上設定多出口識別符號(MED)值,以便與內部網關協定(IGP)下一跳度量匹配?
A. set metric-type internal route-map配置命令使BGP通告與IGP度量值(與路由的下一跳相關聯)相對應的MED。Cisco IOS軟體版本10.3及更高版本中提供了此命令。
問:什麼是預設BGP ConnectRetry計時器?是否可以調整BGP ConnectRetry計時器?
A.預設BGP ConnectRetry計時器為120秒。只有經過此時間後,BGP進程才會檢查是否建立了被動TCP會話。如果未建立被動TCP會話,則BGP進程會啟動新的主動TCP嘗試連線到遠端BGP發言者。在ConnectRetry計時器的此空閒120秒期間,遠端BGP對等體可以與其建立BGP會話。目前,Cisco IOS ConnectRetry計時器無法從其預設值120秒進行更改。
問:在show ip bgp命令輸出中,r RIB-Failure 有什麼含義?
R1> show ip bgp
BGP table version is 5, local router ID is 10.200.200.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
r> 10.6.6.0/24 10.10.13.3 0 130 0 30 i
*> 10.7.7.0/24 10.10.13.3 0 125 0 30 i
當BGP嘗試將bestpath字首安裝到路由資訊庫(RIB)(例如IP路由表)中時,RIB可能會因下列任一原因而拒絕BGP路由:
在這些情況下,由於上述原因被拒絕的字首會透過show ip bgp命令輸出中的r RIB Failure 進行標識,並通告給對等體。此功能最初在Cisco IOS軟體版本12.2(08.05)T中提供。
問:如何將內部BGP (iBGP)獲知的default-route (0.0.0.0/0)路由重分配到EIGRP/OSPF/IS-IS?
答:將iBGP路由重分配到內部網關協定(IGP) -增強型內部網關路由協定/開放最短路徑優先/中間系統到中間系統(EIGRP/OSPF/IS-IS) -可能會在自治系統內導致路由環路,這是不推薦的做法。預設情況下,停用iBGP重分配到IGP。發出bgp redistribute-internal命令可啟用將iBGP路由重分配到IGP。
注意:必須採取預防措施,將包含路由對映的特定路由重分配到IGP中。
以下是將iBGP獲知的預設路由0.0.0.0/0重分配到EIGRP的配置示例。OSPF/IS-IS的配置類似。
router bgp 65345
[...]
bgp redistribute-internal
!
router eigrp 10
[...]
redistribute bgp 65345 route-map check-def
!
ip prefix-list def-route seq 5 permit 0.0.0.0/0
!
route-map check-def permit 10
match ip address prefix-list def-route
注意:在配置bgp redistribute internal命令後,請確保輸入clear ip bgp命令以清除本地路由表中的所有路由。
問:除了預設路由0.0.0.0/0之外,如何過濾通告給BGP鄰居的所有IP路由?
A.如果對同一bgp鄰居同時使用入站filter-list、distribute-list、prefix-list和route-map,則可以過濾特定路由。這是操作順序:
-
Filter-list
-
Router-map
-
Distribute-list (或) prefix-list
問題: 如何排除Protocol not in this image錯誤?
A.錯誤消息protocol not in this image的原因是在路由器上運行的Cisco IOS版本不支援BGP功能。要解決此錯誤,請將Cisco IOS升級到支援BGP的較新Cisco IOS版本。
Q. BGP:計時器滾輪運行速度慢1個刻度出現在調試輸出中。
A.只有在路由器上啟用了BGP調試時才會顯示此消息。這只是參考性訊息,不是錯誤訊息。此資訊性消息與BGP內部計時器相關。undebug all命令可忽略此消息。
問:能否跟蹤介面並更改路由的可用性?
答:是的,透過增強對象跟蹤,可以跟蹤介面的狀態變化和路由可用性。
問:IP RIB更新如何分配記憶體?
A. IP RIB更新分配字首,並且以區塊的形式儲存屬性。在釋放區塊中的每個元素之前,無法釋放整個區塊。如果獲知更多路由,則使用塊中的空閒元素。
問:用於檢視IPv6 BGP鄰居的命令是什麼?
A. show bgp ipv6 unicast summary命令用於檢視IPv6 BGP鄰居
問:在刪除靜態路由「ip route 10.150.0.0 255.255.0.0 Null0」方面,BGP中沒有自動彙總是否導致通告10.150.0.0的所有子網?
A.例如:
network 10.150.0.0 mask 255.255.0.0
no auto-summary
ip route 10.150.0.0 255.255.0.0 Null0
路由器停止通告該路由,但仍會傳送其他最具體的路由。
問:為什麼使用debug bfd events和debug bfd packets命令時沒有統計結果?
答:這是正常現象,因為bfd hello在極短的時間內傳送,並且如果為此運行調試,路由器將無法處理。因此,只有在發生抖動時,才會在調試中看到bfd消息。以下是debug bfd命令的用途:
debug bfd events
此命令啟用當前配置的所有BFD會話的BFD事件記錄。它捕獲會話狀態更改、由本地CLI或遠端端觸發的會話配置更改等BFD事件。
debug bfd packets
此命令啟用記錄所有當前配置的BFD會話的BFD資料包。它只捕獲在發生bfd配置更改(如會話狀態更改)時交換的BFD hello資料包。此命令不會捕獲正常BFD資料包。
問:在配置新的BGP鄰居最大字首後,是否必須重新啟動路由器?
A.如果新的最大字首數大於當前最大值,則無需軟/硬清除BGP會話,也不需要重新載入。
問:有沒有命令可以檢查通告的路由以及AS-paths的前置?
A.當設定了AS-path prepending時,要附加的AS編號將附加到AS-path中,並且當更新將AS保留到eBGP對等體時,本地AS編號將附加到完整的AS-path中。
但是,您可以輕鬆地檢查是否使用以下選項之一完成AS路徑預置:
-
檢查對等裝置上的BGP AS PATH屬性。這是檢查路由器是否執行AS PATH預掛的最簡單方法之一。
-
對BGP更新運行調試(在出站方向),然後檢查前置。調試BGP更新時使用訪問清單。
Example:
Router#debug ip bgp updates 1 out
BGP: TX IPv4 Unicast Mem global 3 1 10.1.1.2 Refresh has to wait for net
prepend.
BGP: TX IPv4 Unicast Top global Start net prepend.
BGP: TX IPv4 Unicast Top global Done net prepend (1 attrs).
The router has prepended the prefix.
BGP: TX IPv4 Unicast Grp global 3 Starting refresh after prepend completion.
-
另一種方法是在送出介面捕獲資料包,並檢視線路上傳送的更新。
問題: neighbor soft-reconfiguration inbound命令如何工作?
A. neighbor soft-reconfiguration inbound命令會使路由器儲存收到的所有路由策略更新(入站),而無需進行修改,例如,在記憶體中為每個對等體儲存重複表。
注意:此方法會佔用大量記憶體,除非絕對必要,否則不建議使用此方法。請參閱BGP軟重置增強功能,以便在不使用額外記憶體的情況下實現軟重置。
問題: 「%BGP-3-NOTIFICATION: sent to neighbor *A.B.C.D passive 6/0 (stop) 0 bytes」錯誤消息意味著什麼?
A.當已建立另一個BGP會話時,會出現此消息。收到停止消息的路由器已嘗試向另一個IP上的同一對等體傳送BGP OPEN消息。此訊息是修飾性的,而且是由組態錯誤所造成。
問:%IPRT-3-ROUTEINSERTERROR: Error inserting routing entry錯誤消息意味著什麼?
A.此錯誤消息表示記憶體不足,無法容納從鄰居獲知的BGP字首。
問:使用思科IOS XR的GSR是否支援VPLS-BGP自動發現功能作為路由反射器?
答:是,帶有Cisco IOS XR的GSR支援VPLS-BGP自動發現的路由反射器功能。
問:如何調試思科IOS XR環境中特定vrf的路由?
A.使用debug bgp keepalive [vrf [vrf-name | all]] vpnv4 unicast命令以調試思科IOS XR環境中給定vrf的路由。以下是輸出示例:
*Mar 1 00:16:06.735: BGP: ses TWO 10.2.2.3 (0x69A1C8F4:1) Keep alive timerfired. *Mar 1 00:16:06.735: BGP: 10.2.2.3 KEEPALIVE requested (bgp_keepalive_timer_expired) *Mar 1 00:16:06.743: BGP: ses TWO 10.2.2.3 (0x69A1C8F4:1) service keepalive IO request. *Mar 1 00:16:06.747: BGP: 10.2.2.3 KEEPALIVE write request serviced in BGP_IO *Mar 1 00:16:07.759: BGP: ses ONE 10.1.1.1 (0x6900D344:1) Keep alive timer fired. *Mar 1 00:16:07.759: BGP: 10.1.1.1 KEEPALIVE requested (bgp_keepalive_timer_expired) *Mar 1 00:16:07.759: BGP: ses ONE 10.1.1.1 (0x6900D344:1) service keepalive IO request. *Mar 1 00:16:07.763: BGP: 10.1.1.1 KEEPALIVE write request serviced in BGP_IO
問:透過redistribute命令或network命令在BGP中注入路由有何區別?
A.當您使用IGP重分配到BGP以通告路由時,不需要為所有子網單獨指定network語句。此外,當透過重分配從任何其他路由協定獲取到BGP表中的路由時,Origin屬性為Incomplete (?),而當指定network命令時,該屬性為Internal/IGP (i)。在路由選擇過程中,首選最低原始碼(IGP<EGP<Incomplete)。
問:如何驗證第4層轉發摘要資訊?
A.要檢視有關第4層轉發的摘要資訊,請使用show mls cef summary命令。舉例來說:
Router#show mls cef summary Total routes: 532462 IPv4 unicast routes: 502841 IPv4 Multicast routes: 6 MPLS routes: 19794 IPv6 unicast routes: 9821 IPv6 multicast routes: 3 EoM routes: 0 Router#show mls cef maximum-routes FIB TCAM maximum routes : ======================= Current :- ------- IPv4 + MPLS - 512k (default) IPv6 + IP Multicast - 256k
相關資訊