簡介
本檔案介紹有關邊界閘道通訊協定(BGP)的常見問題(FAQ)。
問:如何配置BGP?
A.如何設定BGP和BGP的運作,請參閱以下檔案:
問:如何使用環回地址配置BGP?
A.使用環回介面可確保鄰居保持正常工作狀態,不會受到硬體故障的影響。
預設情況下,BGP建立BGP對等作業階段時,會使用在直接連線到BGP對等點的實體介面上設定的IP位址作為來源位址。發出neighbor <ip address> update-source <interface>命令以更改此行為,並配置與路由器通訊的BGP,以使用環回地址作為源地址建立對等。
如需詳細資訊,請參閱具有或不具有回送位址的iBGP和eBGP的組態範例。
問:當部分或全部屬性應用於BGP中的一個鄰居時,屬性的優先順序是什麼?
A.優選順序取決於屬性是應用於入站更新還是出站更新,因此順序有所不同。
對於入站更新,優先順序為:
-
route-map
-
filter-list
-
prefix-list、distribute-list
對於出站更新,優先順序為:
-
filter-list
-
route-map | 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社群屬性的已知社群有哪些?
A.社群屬性是一種可傳遞的可選屬性,旨在對特定社群中的目標進行分組並應用某些策略(如接受、優先或重分發)。下表顯示公認的BGP社群。
社群 |
說明 |
Local-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 Community Attribute是一個可分配給特定字首並通告給其他鄰居的數字值(任意)。雖然社群屬性可以用十進位制、十六進位制或AA:NN表示,但它仍然是32位數字。例如,這三個配置命令中的任何一個都指定社群30:20(AS 30,數字20):
- set community 30:20
- set community 0x1E0014
- set community 1966100
無論使用哪種命令,路由器配置檔案和BGP表中顯示的團體都是30:20。
如需詳細資訊,請參閱BGP個案研究的社群屬性一節,以及使用BGP社群值設定和控制上游提供者網路。
問:啟用或禁用自動摘要後,BGP的行為有何不同?
A.自動摘要行為在Cisco IOS軟體版本之間已變更。最初,預設情況下啟用自動彙總。但是使用思科錯誤ID CSCdu81680時,此行為已更改。在最新的Cisco IOS中,自動摘要功能預設會停用。啟用自動摘要後,會將本地產生的BGP網路總結到其有類邊界。自動摘要僅在舊版本中預設啟用。禁用自動總結時,本地引入到BGP表中的路由不會彙總到其有類邊界。如果路由表中存在子網,並且滿足這三個條件,則本地路由表中該有類網路的任何子網都可以提示BGP將有類網路安裝到BGP表中。
例如,如果路由表中的子網是10.75.75.0掩碼255.255.255.0,並且您在router bgp命令下配置網絡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.使用以下命令檢查是否向直連ISP通告了IP地址塊:
注意:show ip bgp neighbors <address> advertise-routes命令不會考慮您應用的任何出站策略。在將來的Cisco IOS軟體版本中,可以變更命令輸出以反映傳出原則。如果有兩個備用路徑通往目的地,BGP一律使用最佳路由進行通告。
為了驗證IP塊如何通過直接連線的ISP傳播到全域性BGP網狀,請登入到Internet上的route server,並在路由伺服器中查詢字首的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:BGP至ASA配置示例,瞭解完整的配置詳細資訊。
問:自治系統(AS)編號是什麼?如何獲得一個?
A.AS編號是全域性唯一編號,用於標識AS,並使AS能夠在相鄰AS之間交換外部路由資訊。AS是一組連線的IP網路,它們遵循單個明確定義的路由策略。
可用的AS編號數量有限。因此,確定哪些站點需要唯一的AS編號,哪些站點不需要AS編號非常重要。不要求唯一AS編號的站點使用為專用保留的一個或多個AS編號,其範圍從64512到65535。訪問AS Number Registration Services(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路由所需的記憶體量。思科通常建議路由器中至少使用512 MB的RAM來儲存來自一個BGP對等體的完整全域性BGP路由表。但是,瞭解降低記憶體消耗和實現最佳路由的方法非常重要,無需接收完整的Internet路由表。如需詳細資訊,請參閱設定BGP路由器以取得最佳效能和降低記憶體消耗。
問:配置BGP對等體組有什麼好處?
A. BGP對等體組的主要優點是它減少了更新生成中使用的系統資源(CPU和記憶體)量。這也簡化了BGP配置,因為它只允許路由表檢查一次,並且更新可以複製到所有其他同步對等組成員。這可以顯著降低負載,具體取決於對等體組成員的數量、表中的字首數量和通告的字首數量。思科建議您使用相同的出站公告策略將對等體組合在一起。有關詳細資訊,請參閱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 configuration命令會導致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)learned default-route(0.0.0.0/0)路由重分發到EIGRP/OSPF/IS-IS?
A.將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命令以清除本地路由表中的所有路由。
問:如何過濾通告給BGP鄰居的除預設路由0.0.0.0/0以外的所有IP路由?
A.如果對同一bgp鄰居同時使用入站filter-list、distribute-list、prefix-list和route-map,則可以過濾特定路由。這是操作順序:
-
Filter-list
-
Router-map
-
Distribute-list(or)prefix-list
問:如何解決此映像中不包含的協定錯誤?
A.此映像中沒有錯誤訊息protocol的原因,是因為路由器上執行的Cisco IOS版本不支援BGP功能。若要解決此錯誤,請將Cisco IOS升級為支援BGP的較新Cisco IOS版本。
Q. BGP: timer-wheel runs slow by 1 ticks顯示在調試輸出中。
A.只有在路由器上啟用BGP偵錯時,才會顯示此消息。它只是一條資訊性消息,而不是錯誤消息。此資訊性消息與BGP內部計時器相關。undebug all指令可以忽略此訊息。
問:是否可以跟蹤介面並更改路由可用性?
答:是,通過增強型對象跟蹤,可以跟蹤介面的狀態變化和路由可用性。
問: IP RIB更新如何分配記憶體?
A. IP RIB Update分配字首,屬性保留為塊。在釋放區塊中的每個元素之前,無法釋放整個區塊。如果獲知了更多路由,則使用塊中的那些空閒元素。
問:檢視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在極短秒內傳送,如果您為此運行調試,路由器將無法處理。因此,只有在發生翻動時,才會在debug中看到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預置時,要預置的AS編號將附加到AS-path,並且當更新向eBGP對等體離開AS時,本地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:插入路由條目錯誤消息意味著什麼?
A.此錯誤訊息表示沒有足夠的記憶體來容納從鄰居得知的BGP字首。
問:搭載Cisco IOS XR的GSR是否支援VPLS-BGP自動探索功能作為路由反射器?
答:是,帶Cisco IOS XR的GSR支援VPLS-BGP自動發現的路由反射器功能。
問:如何在Cisco IOS XR環境中調試特定vrf的路由?
A.使用debug bgp keepalive [vrf [vrf-name | all]] vpnv4 unicast命令,在Cisco 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層轉發摘要資訊?
答:要檢視第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
相關資訊