目錄
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
[UPDATE THE TABLE][UPDATE THE TABLE]
本文檔簡要概述了OSPF/IS-IS和BGP路由的一些已確定的最佳實踐建議。這些建議不是經過思科驗證的設計,在任何特定操作環境中部署時均需要特別注意和重視。閱讀它們時,應參考相關產品的配置指南和技術文檔,這些產品會更加詳細地描述如何實施這些最佳實踐建議。 本文檔中特定產品的配置指南和技術文檔的參考僅用作示例。請參閱特定產品的設定指南和技術檔案。
本文檔概述了一些已建立的最佳實踐和建議,以構建由IOS XR路由平台支援的簡化、高效和可擴展網路。本文檔重點介紹IOS XR中提供的特定實施技術和功能支援選項,以幫助自定義OSPF/IS-IS和BGP部署。
RFC 2328中定義的OSPF協定是用於在單個自治系統內分發路由資訊的IGP。與其他協定相比,OSPF具有多項優勢,但需要正確的設計才能建立可擴展的容錯網路。
有關OSPF的詳細資訊,請參閱:
■ OSPF上的TechNote:
https://www.cisco.com/c/en/us/support/docs/ip/open-shortest-path-first-ospf/7039-1.html#anc13
■令參考: https://www.cisco.com/c/en/us/td/docs/routers/asr9000/software/711x/routing/configuration/guide/b-routing-cg-asr9000-711x/implementing-ospf.html?dtid=osscdc000283
■ 層次:分層網路模型是設計可靠網路基礎架構的有用高級工具,有助於將複雜的網路設計問題分解成更小、更易於管理的區域。
■模組化:通過將網路中的各種功能拆分為模組,網路設計更加容易。思科已確定了多個模組,包括企業園區、服務模組、資料中心和網際網路邊緣。
■彈性:網路在正常和異常情況下均可用。正常狀況包括預期的通訊流、模式和已排程事件(如維護視窗)。異常情況包括硬體或軟體故障、極端流量負載、異常流量模式、拒絕服務(DoS)事件以及其他計畫內或計畫外事件。
■靈活性:能夠修改部分網路、新增新服務或增加容量,而無需進行大規模的叉車式升級(即更換主要硬體裝置)。
作為一般最佳實踐,網路部署應該考慮網路的「span」,以包含特定邊界內的路由以及域內路由器進行轉發時相關且需要的路由。有效使用OSPF區域有助於減少網路中傳送的鏈路狀態通告(LSA)和其他開銷流量的數量。建立層次結構的好處之一是,此方法有助於確保每台路由器需要維護的拓撲資料庫的大小易於管理,並且符合路由器的記憶體配置檔案。
OSPF只承載幾千條路由。在高級別上,OSPF「區域」是網路的一部分,其中任何路由器都知道該區域中其他所有路由器的路由功能。這樣可以在任何裝置出現問題時快速收斂,但會降低可擴充性。因此,OSPF在服務提供商核心層使用,提供所有核心裝置之間的基本級連接,並且所有核心裝置都配置在同一個OSPF區域內。這是「襯底」網路的標準設計。
相比之下,BGP承載的路由遠遠多於大多數IGP(如OSPF)。將BGP路由重新分發到IGP(如OSPF)中相關的風險。如果服務提供商要求將BGP路由重新分發到IGP域以供任何使用案例使用,則需要由服務提供商進行管理,並在自治系統邊界路由器(ASBR)上正確過濾,並在接收路由器上配置過載保護。如果未將BGP重分佈過濾到OSPF中,則ASBR中的每個OSPF裝置將開始接收遠遠超出其同時處理能力的路由。例如,預設情況下,Cisco IOS XR路由器僅允許10,000個BGP路由重分發到OSPF。將BGP路由重新分發到IGP中時,根據IGP設計,IGP域內的所有路由器都可能會收到這些路由。根據OSPF協定RFC,任何重分發到OSPF的外部路由都必須分發給OSPF區域中的所有路由器。
作為一般最佳實踐,只有在沒有其他選項可獲知重分發功能提供的可達性路由時,才應以謹慎且有計畫的方式進行重分發。
作為一般慣例,您應該:
■避免重分發
■ 避免在IGP域中傳送路由
■ 實作BGP,實現外部連線能力
使用過載保護(max-lsa)配置管理從BGP重分配到OSPF的字首的規模。這是防止大量路由洩漏到OSPF域的唯一保護。如果重分佈到單個OSPF區域,應實施多層保護以防止路由重分佈。
以下是一些可防止路由重分配的選項:
使■ACL重新分佈過濾
■ 重分發限制 — 全域性設定可防止重分發超過特定數量的路由。如果刪除過濾器,則全域性重分發限制是第二道防線,將保護核心。
■OSPF區域中的所有裝置上的最大LSA配置 — 如果上述各項中提到的保護失敗,則強制接收路由器拒絕傳入的過量LSA。
OSPF鏈路狀態資料庫過載保護功能在OSPF級別提供了一種機制,用於限制給定OSPF進程非自生LSA的數量。如果網路中的其他路由器配置錯誤,它們可能會生成大量的LSA,例如,將大量字首重新分發到OSPF。此保護機制有助於防止路由器接收許多LSA,從而導致CPU和記憶體不足。
以下是功能的運作方式:
■ 啟用此功能後,路由器會對所有收到(非自產生)的LSA數進行計數。
■ 達到設定的閾值時,會記錄錯誤訊息。
■ 超過已配置的最大接收的LSA數時,路由器停止接受新的LSA。
max-lsa <max-lsa-count> <%-threshold-to-log-warning> ignore-count <ignore-count-value> ignore-time <ignore-time-in-minutes> reset-time <time-to-reset-ignore-count-in-minutes>
如果一分鐘後收到的LSA計數高於配置的max數,OSPF進程將關閉所有鄰接關係並清除OSPF資料庫。此狀態稱為ignore狀態。在此狀態下,所有屬於OSPF例項的介面上接收的所有OSPF資料包都會被忽略,並且介面上不會生成任何OSPF資料包。在配置的ignore-time(預設值為5分鐘)的持續時間內,OSPF進程保持為ignore狀態。ignore-time到期時,OSPF進程將恢復正常運行並在所有介面上建立鄰接關係。
如果OSPF例項從ignore狀態返回後,LSA計數超過max數,則OSPF例項可以在其正常狀態和忽略狀態之間無休止地振盪。為了防止這種無限振盪,OSPF例項會計算其處於忽略狀態的次數。此計數器稱為ignore-count。如果ignore-count(default ignore-count是5)超過其配置值,則OSPF例項將永久保持為ignore狀態。
您必須發出clear ospf 命令,才能將OSPF例項恢復為正常狀態。如果LSA計數在reset-time關鍵字配置的時間段內沒有再次超過最大數,則ignore-count將重置為零。
如果使用warning-only關鍵字,則OSPF例項永遠不會進入忽略狀態。當LSA計數超過最大值時,OSPF進程將記錄一條錯誤消息,OSPF例項將以其正常狀態運行繼續。
max-lsa沒有預設值。僅當特別配置限制時,才會檢查該限制。
配置max-lsa後,其他引數可以具有預設值:
■ default %-threshold-to-log-warning - 75%
■ default ignore-count-value - 5
■ default ignore-time-in-minutes - 5分鐘
■ 預設重設時間 — 略過計數 — 10分鐘
以下示例展示如何配置OSPF例項以接受VRF V1中的非自生LSA120001000個非自生LSA。
RP/0/RSP0/CPU0:router#配置
RP/0/RSP0/CPU0:router(config)# router ospf 0
RP/0/RSP0/CPU0:router(config-ospf)# max-lsa 12000
RP/0/RSP0/CPU0:router(config-ospf)# vrf V1
RP/0/RSP0/CPU0:router(config-ospf)# max-lsa 1000
以下示例展示如何顯示OSPF例項的當前狀態。
RP/0/RSP0/CPU0:router# show ospf 0
ID為10.0.0.2的路由進程「ospf 0」
NSR(無中斷路由)已禁用
僅支援單個TOS(TOS0)路由
支援不透明的LSA
是區域邊界路由器
允許的最大非自生成LSA數12000
當前非自生成LSA的數量1
警告消息閾值75%
Ignore-time 5分鐘, reset-time 10分鐘
允許Ignore-count 5,當前的ignore-count 0
BGP地址系列使BGP成為「多協定」路由協定。強烈建議您瞭解如何使用地址系列來建立易於實施和管理的可擴展拓撲。使用地址系列,運營商可以為不同的技術(例如EVPN、組播等)建立不同的拓撲。
有關BGP的詳細資訊,請參閱BGP配置指南:https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/bgp/76x/b-bgp-cg-ncs5500-76x/implementing-bgp.html
服務提供商網路中的BGP融合對於滿足客戶對構建可復原和容錯網路的期望非常重要。預設情況下,BGP的Keepalive計時器為60秒,保持計時器為180秒。所有這一切都意味著BGP收斂將非常緩慢,除非支援協定可提供幫助。BFD雙向轉發(BFD)是一種此類協定,旨在幫助客戶端協定更快收斂。使用BFD,協定可以在幾秒鐘內收斂。
■ 本指南提供BFD的概念和配置資訊:https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/routing/76x/b-routing-cg-ncs5500-76x/implementing-bfd.html
■ 本白皮書以服務提供商為中心,介紹了在Cisco NCS 5500和Cisco Network Convergence System 500系列路由器上使用BFD進行快速融合的詳情:https://xrdocs.io/ncs5500/tutorials/bfd-architecture-on-ncs5500-and-ncs500/
■ 如需深入瞭解在套件組合介面上使用BFD以及實作多重路徑和多躍點BFD,請參閱https://xrdocs.io/資料庫。
慢速對等體是指在更新組中,無法跟上路由器在較長時段(以分鐘為單位)內生成更新消息的速率。當更新組中存在慢速對等體時,等待傳輸的格式化更新數量就會累積。達到快取限制後,組就不再有格式化新郵件的配額。要格式化新消息,必須使用慢速對等體傳輸某些現有消息,然後從快取中刪除。組內比慢速對等體快、已完成格式化消息傳輸的其他成員將沒有任何新消息要傳送,即使可能有新修改的BGP網路等待通告或撤銷。當一個對等體消耗更新緩慢時,阻止組中的所有對等體的格式化的效果是「慢速對等體」問題。
導致BGP表中發生明顯變化(例如連線重置)的事件,可能會導致更新生成速率出現短暫的峰值。在此類事件期間臨時落後,但在事件之後快速恢復的對等體不被視為慢速對等體。如果要將對等體標籤為慢速,它必須在更長的時間段(大約幾分鐘)內無法保持生成的更新的平均速率。
BGP慢速對等體可能是由於:
■ 封包遺失或到對等體的連結上的高流量。
■ BGP對等體可能在CPU方面負載過重,因此無法以所需的速度為TCP連線提供服務。
■ 在這種情況下,必須檢查平台硬體功能和提供的負載。
■ BGP連線的吞吐量問題
■ 有關BGP慢速對等體檢測的更多資訊,請參閱:https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/bgp/76x/b-bgp-cg-ncs5500-76x/implementing-bgp.html#concept_ir5_j4w_p4b
以下是管理慢速對等體的一些緩解措施和最佳實踐:
■ 端到端QoS,可在擁塞期間為BGP控制平面流量保留頻寬。
■ 使用BGP PMTUD和/或TCP MSS設定使用正確和適當的MSS/MTU值。
■ 使用正確的硬體,並儘量減少硬體相關的路由數量。
從7.1.2版開始,Cisco IOS XR預設啟用慢速對等檢測。較慢的對等體是接收和處理傳入BGP更新以及確認傳送者更新的速度較慢的對等體。如果較慢的對等體與其他對等體參與同一個更新組,這可能會減慢所有對等體的更新過程。在此版本中,當IOS XR檢測到慢速對等體時,它將建立一個包含特定對等體詳細資訊的系統日誌。
對於BGP字首,使用BGP字首獨立收斂(PIC)實現快速收斂,BGP在此過程中計算替代最佳路徑和主最佳路徑,並將兩條路徑作為主路徑和備用路徑安裝到路由表中。
如果BGP下一躍點遠端站點變得不可訪問,BGP會立即使用BGP PIC切換到備用路徑,而不是在故障後重新計算路徑。
如果BGP下一躍點遠端PE處於活動狀態,但存在路徑故障,IGP TI-LFA FRR會處理快速重新收斂到備用路徑,並且BGP會更新遠端PE的IGP下一躍點。
BGP PIC在VRF地址系列下配置,以便在遠端PE不可達時快速收斂VPN字首。
有關BGP字首獨立融合的詳細資訊,請參閱:
https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/bgp/76x/b-bgp-cg-ncs5500-76x/bgp-pic.html
BGP Flowspec(簡而言之)是一項功能,允許您通過BGP更新接收IPv4/IPv6流量規範(源X、目標Y、協定UDP、源埠A等)和需要對該流量執行的操作(如丟棄、管制或重定向)。在BGP更新內
部,Flowspec匹配標準由BGP NLRI表示,而BGP擴展社群代表這些操作。
路由器收到Flowspec並在適用的線卡中對其進行程式設計後,這些線卡上的任何活動的第3層埠都將開始根據Flowspec規則處理輸入流量。
有關實施BGP FlowSpec的詳細資訊,請參閱:
■ BGP FlowSpec白皮書:https://xrdocs.io/ncs5500/tutorials/bgp-flowspec-on-ncs5500/
當在遠端對等站點上更改出站策略時,路由器開始接收的字首超過對等路由器資源可以處理的字首,同時保護資源或轉發這些外部字首的內部BGP對等體時,最大字首功能非常有用。此類資源開銷可能會造成中斷。
BGP maximum-prefix功能對從給定地址系列的鄰居收到的字首數量施加最大限制。預設情況下,每當收到的字首數量超過配置的最大數量時,BGP會話會向鄰居傳送停止通知,會話被終止。一個跨越maximum-prefix的地址系列將使整個BGP會話關閉,影響該BGP會話中啟用的所有其他地址系列。
此功能通常用於外部BGP對等體以保護服務提供商的內部基礎架構。它充當保護欄,防止由於本地或遠端鄰居上的配置錯誤而導致路由器資源耗盡。強烈建議配置maximum-prefix,以避免本地或遠端配置錯誤導致路由表泛洪。這還可以防止字首解聚攻擊。
應在所有eBGP路由器上顯式啟用BGP最大字首配置,以限制它應從特定鄰居(無論是客戶還是對等點)接收的字首數。建議操作員配置額外字首的可接受範圍,以便在仔細評估可用系統記憶體之後系統可以保持這些額外字首。應該注意,沒有一種大小適合所有可能應用於所有路由器的配置,應根據裝置在網路中的角色仔細調整閾值。例如,如果要在IBGP鄰居上設定BGP maximum-prefix,則路由反射器上設定之鄰居的maximum-prefix值必須低於路由反射器使用者端上設定之鄰居的值。路由反射器會聚合從多個對等路由器接收到的字首,然後將完整表重新通告給路由反射器客戶端。因此,路由反射器向其使用者端通告的字首將多於從每個單獨對等點接收的字首。類似地,對等路由器也可以向路由反射器重新通告比它從每個外部對等體收到的更多字首。
總之,建議仔細檢查並配置在生產裝置上達到最大字首閾值時要採取的相應操作。maximum-prefix命令選項的某些屬性說明如下:
%ROUTING-BGP-5-ADJCHANGE_DETAIL : neighbor 10.10.10.10 Down — 已收到BGP通知,已達到最大字首數(VRF:預設;AFI/SAFI: 1/1、1/128、2/4、2/128、1/133、2/133)(AS: 65000)"
%ROUTING-BGP-5-NBR_NSR_DISABLED_STANDBY :由於對等體超過最大字首限制(VRF:預設值),在備用RP上的鄰居10.10.10.10上禁用了NSR
建議:在配置maximum-prefix命令時,請仔細評估以下選項:
如需詳細資訊,請參閱以下路由組態設定指南:
以下清單提供一般最佳實踐和建議的概述,無特定順序列出:
■ 系統一般健康狀況的網路稽核。從配置稽核開始,按順序從介面配置移動到路由和服務。
■ 制定監控策略。雖然SNMP是標準做法,但請考慮使用流遙測部署更強大和描述性的技術。有關在IOS XR路由器上實施遙測的最佳實踐建議,請參閱以下白皮書:https://xrdocs.io/telemetry/
以下是OSPF的一般最佳實踐和建議:
■ 為OSPF的區域內路由實施路由彙總。
■ 將OSPF內部的router-ID明確配置為啟用OSPF的環回地址之一。
■ 設計分層網路以限制OSPF區域中的LSA。將區域的ABR數量保持在合理範圍(~3到4)內。
■ 為OSPF或等效項實施OSPF「max-lsa」配置,以限制資料庫中的LSA以有效使用系統記憶體。
■ 限制從BGP分發到OSPF的最大路由數。在IOS-XR中,預設限製為10K。
■ 使用路由策略(RPL)將路由重分發到OSPF。
■ 總結區域間路由和外部第5類路由(如果適用)。
■ 必要時使用驗證。
■ 始終使用NSF和NSR。
■ 在來源而不是目的地設定重新分發過濾。
■ 使用被動介面(如果適用)。
■ OSPF應只傳送環迴路由和路由器介面路由 — 刪除任何其他BGP到OSPF的重分發。
■ 考慮將每個主集線器移動到其自己的區域(NSSA)。
■ 使用BFD進行快速故障檢測,而不是使用主動路由協定計時器。
■ 儘量不要使用mtu-ignore命令。
■ 考慮在MPLS環境中使用IGP-LDP同步,以避免在未標籤的路徑上傳送流量。
■ 考慮受支援的平台限制內的擴展(字首數、標籤數、ECMP、區域數等)。
■ 避免在多點進行相互重分發。
■ 配置管理距離,以便通過相應域的協定或進程到達每個協定或進程固有的每個字首。
■ 控制字首(使用距離或字首清單組合),以便不會將相同字首通告回始發域。
■ 雖然OSPF進程ID對路由器具有本地意義,但建議相同OSPF域中的所有路由器具有相同的進程ID。這提高了配置一致性並簡化了自動配置任務。
■ 為星型環境配置OSPF時,請使用較少數量的路由器來設計OSPF區域。
■ 將整個OSPF域的OSPF自動開銷參考頻寬配置為網路中的最高頻寬鏈路。
■ 從設計的角度來看,我們建議您與處於相同管理或操作控制下的域實施IGP對等,以幫助避免計畫外或惡意的IGP更新在網路中傳播。這樣可保證更好的可維護性,並在發生錯誤時簡化故障排除。如果大型IGP域是業務需要,計畫在這些情況下使用BGP,以限制IGP網路域中的路由數量。
■ 如果您需要端到端MPLS連線,請繼續使用分層結構/分段並使用諸如RFC3107 BGP-LU或通過PCE的域間路徑計算等選項,或者選擇重新分發/洩漏策略作為最後手段。
■OSPF最短路徑優先限制功能可用於以毫秒為間隔配置SPF排程,並可能會在網路不穩定期間延遲SPF計算。
■OSPF SPF字首優先順序功能使管理員能夠在路由安裝期間更快地收斂重要字首。
以下是IS-IS的一般最佳實踐和建議:
■ 如果運行平面單級網路,請考慮規模。將所有路由器僅配置為L2。預設情況下,路由器為L1-L2,並且預設啟用從L1到L2的洩漏路由資訊。這可能導致所有路由器將所有L1路由洩漏到L2,從而使鏈路狀態資料庫膨脹。
■ 如果運行多級(多區域)網路,請確保第3層拓撲遵循ISIS層次結構。請勿在L1區域之間建立後門連結。
■ 如果執行多層(多個區域)網路,請確保L1和L2路由器都透過L1和L2區域連線。這不需要它們之間的多個物理或虛擬連線;將第1層和第2層路由器之間的鏈路作為L1/L2電路運行。
■ 如果運行多級(多區域)網路,請總結可以總結的內容 — 例如,在MPLS的情況下,PE路由器的環回需要在區域之間傳播,但基礎設施鏈路地址不傳播。
■ 如果可能,請制定並遵循適當的編址計畫。它允許總結並幫助擴展。
■ 將LSP壽命設定為最多18小時。
■ 以任何方式避免重新分發。重分發很複雜,需要手動管理以避免路由環路。如果可能,使用多區域/級別設計。
■ 如果您必須使用重分發,請在重分發期間使用路由標籤,並根據標籤進行「distribute-list in」過濾以對其進行管理。如果可能,在重分發過程中進行彙總。
■ 儘可能將介面設定為「點對點」。這提高了協定的效能和可擴充性。
■ 請勿在高網狀拓撲中使用ISIS。鏈路狀態協定在高網狀環境中表現不佳。
■ 在ISIS地址系列子模式下配置高預設度量。這樣可以防止新新增的鏈路在無意中配置而不使用度量的情況下吸引流量。
■ 配置「log adjacency changes」(記錄鄰接更改)以幫助進行連線故障排除。
■ 在ISIS地址系列ipv4子模式下使用「度量樣式寬度」。窄度量不是非常有用,不支援分段路由或flex-algo等功能。
■ 如果您使用的是SR-MPLS TI-LFA,請記得將「ipv4 unnumbered mpls traffic-eng Loopback0」新增到配置中,以允許ISIS在需要時分配TE隧道。
■使用「lsp-gen-interval」和「spf-interval」配置預設配置,除非您確定需要更快的本機收斂。使用TI-LFA的本地收斂並不那麼重要,因為快速重新路由將在50毫秒或更短時間內處理單個拓撲的變化。
■ 如果修改「lsp-gen-interval」或「spf-interval」,請不要使用初始的短於50毫秒的延遲。
■ 在大多數情況下,「set-overload-bit」是比「max-metric」更好的選擇,因為它是由快速重新路由支援的原子更改。
■ 對Hello(hello-password)和LSP(lsp-password)使用加密身份驗證。金鑰鏈提供了最大的靈活性,可以容
納無中斷金鑰轉滾。
■ 為ISIS進程重新啟動和SMU安裝配置無中斷身份驗證「nsf cisco」。無論名稱為何,這都能提供比「nsf ietf」更好的與其他供應商的互操作性。
■ 在具有雙RP的平台上,還配置「nsr」以處理RP切換。
■ 使用「group」和「apply-group」模板配置重複的配置部分。這不太容易出錯,而且如果需要,更容易更改。
■ 在多級網路中,請仔細考慮是否需要使用「propagate」將字首從級別2向下洩漏到級別1。這可能會限制可擴充性,而且連線位提供的第1級預設路由通常就足夠了。
■ 如果您在同一VRF中使用多個ISIS例項,請考慮為它們配置唯一的「距離」值。如果每個RIB都具有到相同字首的路由,這會使RIB中的路由安裝更加確定性。
■ 使用BFD進行快速連結關閉偵測。利用BFD提供此功能,可以安全地增加ISIS hello-interval以提高可擴充性。
以下是BGP的一般最佳實踐和建議:
■ 使用NSR和NSF /平滑重啟和精心調整的計時器,具體取決於預期規模。
■ 使用「always UP」回送介面(而不是IBGP對等點的實體介面)設定BGP。
■ 如果沒有適當的RPL,請勿將BGP(高容量)路由重分佈到IGP(相對低容量),反之亦然,這會限制從BGP重分佈到IGP(OSPF/ISIS)的路由的數量。
■ 如果沒有正確且經過充分測試的策略(ACL),執行BGP到IGP的重新分發可能會導致路由器上的資源(記憶體)耗盡。
■ 在BGP中使用摘要路由可減小路由表大小和記憶體使用。在有意義的地方,聚合路由並僅包含摘要
■ 使用路由過濾來高效通告和接收路由,尤其是在BGP中。
■ 建議使用路由反射器(RR)和聯盟來擴充網路。
■ 路由反射器設計的一些考慮事項包括:
■路徑擴展根據客戶端/非客戶端的數量增加。
■ 在分層RR中,在同一級別使用相同的cluster-id(冗餘RR),以實現環路預防和擴展。
■ 控制BGP路徑中的MTU或使用PMTUD通訊協定自動調整BGP MSS。
■ 使用BFD或調整BGP計時器以更快地進行故障檢測。
■ BGP規模取決於配置和使用情況,沒有一種大小適合所有大小。您需要有一個好主意:
■由規模
— 路徑擴展(使用軟重新配置,會增加)
— 屬性比例
■ 如果設定了新增路徑,便會消耗更多記憶體。
■ 仔細瞭解BGP鄰居原則:
— pass-all(尤其是在邊界路由器上)可能會因為記憶體數量增加而造成嚴重破壞。
—使用將避免在RPL中使用正規表示式匹配的策略結構。
■使用NSR時,備用RP使用的虛擬記憶體將比活動記憶體多出大約30%。如果存在備用,請保持考慮這一點。
■ 在大量的路由中尋找持續變化(版本顛簸)。這可能使更新生成記憶體保持高水線。
■ 使用max-prefix旋鈕保護對等點。
■ 根據規模和收斂目標,使用下一跳觸發延遲引數。
■ 在網路設計中,嘗試避免使用新屬性。唯一屬性會導致包裝效率低下,並導致更多BGP更新。
■ 在網路中設定多路徑可能會導致轉送回圈。請謹慎使用。
■ 如果RR不是inline-RR(no next-hop-self),則使用table-policy避免將路由安裝到rib
沒有裝置有無限的資源 — 如果向裝置傳送無限數量的路由,裝置必須選擇其失敗方式。路由器將嘗試服務所有路由,直到記憶體限制耗盡,這可能會導致所有路由協定和進程失敗。
核心路由器中的每個進程都定義了「RLIMIT」。「RLIMIT」是每個進程允許使用的系統記憶體量。
本節介紹一些標準技術,用於監控和檢查BGP進程使用的系統記憶體。
顯示進程佔用的記憶體量。
RP/0/RP0/CPU0:NCS-5501#show proc memory
JID文本(KB)資料(KB)堆疊(KB)動態(KB)進程
------ ---------- ---------- ---------- ----------- ------------------------------
1150 896 368300 136 33462 lspv_server
380 316 1877872 136 32775 parser_server
1084 2092 2425220 136 31703 bgp
1260 1056 1566272 160 31691 ipv4_rib
1262 1304 1161960 152 28962 ipv6_rib
1277 4276 1479984 136 21555 pim6
1301 80 227388 136 21372 schema_server
1276 4272 1677244 136 20743 pim
250 124 692436 136 20647 invmgr_proxy
1294 4540 2072976 136 20133 l2vpn_mgr
211 212 692476 136 19408 sdr_invmgr
1257 4 679752 136 17454 statsd_manager_g
每個進程被分配最大記憶體量,允許使用該最大記憶體量。這被定義為限制。
RP/0/RP0/CPU0:NCS-5501#show proc memory detail
JID文本資料堆疊動態Dyn-Limit Shm-Tot Phy-Tot進程
============================================================================================================
1150 896K 359M 136K 32M 1024M 18M 24M lspv_server
1084 2M 2368M 136K 30M 7447M 43M 69M bgp
1260 1米1529米160K 30米8192米38米52米ipv4_rib
380 316K 1833M 136K 29M 2048M 25M 94M解析伺服器
1262 1米1134米152K 28米8192米22米31米ipv6_rib
1277 4米1445米136K 21米1024米18米41米pim6
1301 80K 222M 136K 20M 300M 5M 33M schema_server
1276 4米1637米136K 20米1024米19米41米pim
250 124K 676M 136K 20M 1024M 9M 31M invmgr_proxy
1294 4M 2024M 136K 19M 1861M 48M 66M l2vpn_mgr
211 212K 676M 136K 18M 300M 9M 29M sdr_invmgr
1257 4K 663M 136K 17M 2048M 20M 39M statsd_manager_g
288 4K 534M 136K 16M 2048M 15M 33M statsd_manager_l
RP/0/RP0/CPU0:NCS-5501#show memory-top-consumers
#####################################################################
0/0/CPU0上的頂級記憶體消耗者(2022/Apr/13/15:54:12)
#####################################################################
PID進程總計(MB)堆共用(MB)
3469 fia_driver 826 492.82 321
4091 fib_mgr 175 1094.43 155
3456 spp 130 9.68 124
4063 dpa_port_mapper 108 1.12 105
3457 packet 104 1.36 101
5097 l2fib_mgr 86 52.01 71
4147 bfd_agent 78 6.66 66
4958 eth_intf_ea 66 4.76 61
4131 optics_driver 62 141.23 22
4090 ipv6_nd 55 4.13 49
#####################################################################
0/RP0/CPU0(20xx/MMM/HH:MM:SS)上的最大記憶體消耗量
#####################################################################
PID進程總計(MB)堆共用(MB)
3581 spp 119 9.62 114
4352 dpa_port_mapper 106 2.75 102
4494 fib_mgr 99 7.71 90
3582 packet 96 1.48 94
3684 parser_server 95 64.27 25
8144 te_control 71 15.06 55
8980 bgp 70 27.61 44
7674 l2vpn_mgr 67 23.64 48
8376 mibd_interface 65 35.28 28
系統元件具有固定數量的可用記憶體。
RP/0/RP0/CPU0:NCS-5501#show memory summary location all
節點:node0_0_CPU0
------------------------------------------------------------------
實體記憶體:共8192M(6172M可用)
應用記憶體:8192M(6172M可用)
影象:4M(bootram:0M)
保留:0M,IOMem:0M,快閃記憶體:0M
共用視窗總數:2.26億
節點:node0_RP0_CPU0
------------------------------------------------------------------
實體記憶體:18432共1000萬(15344萬可用)
應用記憶體:18432M(15344M可用)
影象:4M(bootram:0M)
保留:0M,IOMem:0M,快閃記憶體:0M
共用視窗總數:1.81億
共用記憶體視窗提供有關系統上共用記憶體分配的資訊。
RP/0/RP0/CPU0:NCS-5501#show memory summary detail location 0/RP0/CPU0
節點:node0_RP0_CPU0
------------------------------------------------------------------
實體記憶體:18432共1000萬(15344萬可用)
應用記憶體:18432M(15344M可用)
影象:4M(bootram:0M)
保留:0M,IOMem:0M,快閃記憶體:0M
共用視窗soasync-app-1:243.328K
共用視窗soasync-12:3.328K
...
共用視窗rewrite-db:272.164K
共用視窗l2fib_brg_shm:139.758K
共用視窗im_rules:384.211K
共用視窗grid_svr_shm:44.272M
共用視窗:86.387M
共用視窗im_db:1.306M
共用視窗總數:180.969M
分配的記憶體:2.337G
程式文本:127.993T
計畫資料:64.479G
程式堆疊:2.034G
系統RAM:18432米(19327352832)
總使用量:30.88億(3238002688)
已用私有:0M(0)
已用共用記憶體:3088M(3238002688)
您可以使用共用記憶體視窗檢查參與者進程。
RP/0/RP0/CPU0:NCS-5501#sh shmwin spp參與者清單
視窗「spp」的資料:
-----------------------------
當前參與者清單:-
名稱PID JID索引
spp 3581 113 0
資料包3582 345 1
ncd 4362 432 2
netio 4354 234 3
nsr_ping_reply 4371 291 4
aib 4423 296 5
ipv6_io 4497 430 6
ipv4_io 4484 438 7
fib_mgr 4494 293 8
...
snmpd 8171 1002 44
ospf 8417 1030 45
mpls_ldp 7678 1292 46
bgp 8980 1084 47
cdp 9295 337 48
RP/0/RP0/CPU0:NCS-5501#sh shmwin soasync-1參與者清單
視窗"soasync-1"的資料:
-----------------------------
當前參與者清單:-
名稱PID JID索引
tcp 5584 168 0
bgp 8980 1084
記憶體利用率通過cXR中的系統監視程式和eXR中的Resmon進行監視。
RP/0/RP0/CPU0:NCS-5501#show watchdog memory-state
---- node0_RP0_CPU0 ----
記憶體資訊:
實體記憶體:18432.0 MB
可用記憶體:15348.0 MB
記憶體狀態:正常
RP/0/RP0/CPU0:NCS-5501#
RP/0/RP0/CPU0:NCS-5501#show watchdog threshold memory defaults location 0/RP0/CPU0
---- node0_RP0_CPU0 ----
預設記憶體閾值:
次要:1843 MB ß - 10%
嚴重:1474 ß MB - 8%
嚴重:921.599 MBß—5%
記憶體資訊:
實體記憶體:18432.0 MB
可用記憶體:15340.0 MB
記憶體狀態:正常
RP/0/RP0/CPU0:NCS-5501#
RP/0/RP0/CPU0:NCS-5501(config)#watchdog threshold memory minor ?
<5-40>記憶體消耗百分比
如果超出閾值,將列印警告。
RP/0/RP0/CPU0:Feb 17 23:30:21.663 UTC: resmon[425]: %HA-HA_WD-4-MEMORY_ALARM:超過記憶體閾值:次要,可用1840.000MB。上一狀態:正常
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USERS_INFO:系統記憶體使用量前5名(1884160 Kb可用):
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USER_INFO : 0:進程名稱: bgp[0],pid: 7861,堆使用情況: 12207392 kbytes。
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USER_INFO:1:進程名稱:ipv4_rib[0],pid:4726,堆使用情況:708784 kbytes。
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USER_INFO : 2:進程名稱: fib_mgr[0],pid: 3870,堆使用情況: 584072 kbytes。
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USER_INFO : 3:進程名稱:netconf[0],pid:9260,堆使用量:553352 kbytes。
RP/0/RP0/CPU0:Feb 17 23:30:21.664 UTC: resmon[425]: %HA-HA_WD-6-TOP_MEMORY_USER_INFO: 4:進程名稱: netio[0],pid: 3655,堆使用情況: 253556 kb。
LC/0/3/CPU0:Mar 8 05:48:58.414 PST: resmon[172]: %HA-HA_WD-4-MEMORY_ALARM:超過記憶體閾值:嚴重,可用600.182MB。上一狀態:正常
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USERS_WARNING:系統記憶體使用量前5名(624654 Kb可用量):
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USER_WARNING: 0:進程名稱: fib_mgr[0],pid: 5375,堆使用量1014064KB。
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USER_WARNING: 1:進程名稱: ipv4_mfwd_partner[0],pid: 5324,堆使用量185596KB。
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USER_WARNING: 2:進程名稱: nfsvr[0],pid: 8357,堆使用量183692KB。
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USER_WARNING: 3:進程名稱: fia_driver[0],pid: 3542,堆使用量177552KB。
LC/0/3/CPU0:Mar 8 05:48:58.435 PST: resmon[172]: %HA-HA_WD-4-TOP_MEMORY_USER_WARNING: 4:進程名稱: npu_driver[0],pid: 3525,堆使用量177156KB。
某些進程可能根據監視程式記憶體狀態執行特定操作。例如,BGP執行以下操作:
■處於次要狀態時,BGP會停止調出新的對等體
■在嚴重狀態下,BGP逐漸降低一些對等體。
■處於臨界狀態時,BGP進程會關閉。
可以將進程配置為註冊記憶體狀態通知。
顯示監視器或感知進程
由於監視器超時,使用者可以禁用自動進程關閉。
監視程式重新啟動記憶體佔用禁用
■ Cisco IOS XR部落格和白皮書儲存庫(xrdocs.io)
■ 核心交換矩陣設計:https://xrdocs.io/design/blogs/latest-core-fabric-hld :本白皮書討論了核心主幹網路的最新趨勢和演變。
■ 對等交換矩陣設計:https://xrdocs.io/design/blogs/latest-peering-fabric-hld :此白皮書全面概述了對等設計的挑戰和最佳實踐建議,重點在於網路簡化。
■ 配置指南參考:實施BGP https://www.cisco.com/c/en/us/td/docs/iosxr/ncs5500/bgp/710x/b-bgp-cg-ncs5500-710x/implementing-bgp.html
7.10.1中引入了NCS 5500固定埠路由器:NCS 5700固定埠路由器 在使用自治系統邊界路由器(ASBR)和其他路由器的網路中,即使ASBR生成的LSA超過您配置的限制,您現在仍可以確保流量不會中斷。這是可行的,因為您現在可以隔離ASBR,並且還可以在EXCHANGE或LOADING階段控制鄰接的持續時間。通過將ASBR與其近鄰隔離,剩餘的網路拓撲可以繼續正常運行,而不會中斷,從而有效地防止對流量產生任何不利影響。此方法還簡化了恢復過程,因為只有對ASBR路由器的近鄰才需要手動干預。 此功能會帶來以下更改: CLI: · 交換計時器 YANG資料模型: · Cisco-IOS-XR-ipv4-ospf-cfg.yang · Cisco-IOS-XR-ipv4-ospf-oper.yang · Cisco-IOS-XR-um-router-ospf-cfg.yang (請參閱GitHub、YANG資料模型導航器) |
|
本版本中介紹的路由器包括:NCS 5500固定埠路由器;NCS 5700固定埠路由器;NCS 5500模組化路由器(NCS 5500線卡;NCS 5700線卡[模式:相容性;原生]) 現在,可以將路由器配置為自動重新建立已禁用的BGP鄰居會話,因為已超過最大字首限制。 該功能引入以下更改: CLI YANG資料模型: · openconfig-bgp-neighbor.yang的新XPath(請參閱GitHub、YANG資料模型導航器) |
|
在7.10.1版中引入:NCS 5500模組化路由器(NCS 5700線卡[模式:本機]) 現在,您可以有效地在網橋組虛擬介面(BVI)上使用BGP Flowspec來連線到容納主機裝置的廣播域,例如企業網路。此支援意味著您的客戶可以保護其網路免受網路威脅,如通過BVI傳入的分散式拒絕服務(DDoS)攻擊。 |
|
在7.10.1版中引入:NCS 5500固定埠路由器;NCS 5700固定埠路由器;NCS 5500模組化路由器(NCS 5500線卡;NCS 5700線卡[模式:相容性;原生]) 現在,當BGP會話分析收到的更新消息時遇到錯誤時,您可以避免會話重置。這是可能的,因為該功能允許將傳入更新消息作為撤消消息丟棄。 CLI: YANG資料模型: · openconfig-bgp-neighbor.yang的新XPath(請參閱GitHub、YANG資料模型導航器) |
|
在7.10.1版中引入:NCS 5500固定埠路由器;NCS 5700固定埠路由器;NCS 5500模組化路由器(NCS 5500線卡;NCS 5700線卡[模式:相容性;原生]) 通過使MPLS標籤分配更加靈活,我們實現了更好的標籤空間管理和硬體資源利用率。這種靈活性意味著您現在只能將這些標籤分配給通告給其對等路由的那些路由,從而確保了更好的標籤空間管理和硬體資源利用率。 在此版本之前,無論是否通告路由,都會執行標籤分配。這導致標籤空間使用效率低下。 |
|
在7.10.1版中引入:NCS 5500固定埠路由器 通過確保只有來自指定eBGP鄰居的資料包才能通過單個介面,我們增強了直連eBGP鄰居的網路安全,從而阻止了IP欺騙。這是可能的,因為我們現在為本地封包傳輸服務(LPTS)新增了介面識別碼。LPTS根據您配置的流量型別過濾和策略資料包。 該功能引入了以下內容: CLI: YANG資料模型: · Cisco-IOS-XR-um-router-bgp-cfg (請參閱GitHub、YANG資料模型導航器) |
|
在7.10.1版中引入:NCS 5500模組化路由器(NCS 5700線卡[模式:本機]) 現在,您可以在橋接器群組虛擬介面(BVI)上的回送介面上實現eBGP對等,並將遞迴層級從3降低到2。遞迴級別的這種降低通過消除在配置靜態路由時使用BVI名稱的必要性來實現,允許更快速的資料包轉發和更好地利用網路資源。 |
|
版本7.9.1中引入:邊界網關協定(BGP)策略計量並分類從不同對等體接收的IP流量。您可以按客戶標識所有流量並對它們進行記帳,然後相應地計費。 策略記帳是基於單個輸入介面啟用的。使用BGP原則計費,您現在可以根據流量經過的路由將其計費。 具有基於Cisco NC57的線卡和外部TCAM(eTCAM)並在本地模式下運行的路由器現在支援此功能。 此功能會帶來以下更改: · CLI:該功能引入了hw-module fib bgppa stats-mode命令。 · YANG資料模型:Cisco-IOS-XR-um-hw-module-profile-cfg.yang的新版本(請參閱GitHub、YANG Data Models Navigator) |
|
7.9.1版中引入:BGP對等體以不同速率處理傳入的BGP更新消息。慢速對等體是指與更新子組中的其他對等體相比,在較長的一段時間內,處理傳入BGP更新消息的速度非常緩慢的對等體。 當路由在很長一段時間內不斷變化時,對等體處理速度緩慢非常重要。清除隊列中的過時資訊並僅傳送最新狀態非常重要。瞭解是否有網路管理員可以處理的慢速對等體非常有用,這表示存在網路問題,如持續的網路擁塞或接收者沒有及時處理更新。 |
|
版本7.9.1中引入:給定開放最短路徑優先(OSPF)進程的非自生鏈路狀態通告(LSA)限製為500000。此保護機制可防止路由器接收許多LSA,從而防止CPU故障和記憶體不足,並且從本版本開始預設啟用。如果您的網路中500000LSA超過1000個,請在升級到此版本或更新版本之前,使用預期的LSA大小設定max-lsa 命令。 此功能修改以下命令: · show ospf 以顯示重分發字首的最大數量。 · show ospf database database-summary detail以顯示每台路由器的LSA計數數。 · show ospf database database-summary adv-routerrouter ID,顯示路由器資訊以及從特定路由器接收的LSA。 |
|
7.9.1版中引入:預設情況下,給定OSPF進程的最大重分發第3類LSA字首現在限製為100000。此機制可防止OSPF將大量字首作為第3類LSA進行重新分配,從而防止CPU使用率高和記憶體不足。 一旦達到或超過閾值,將生成系統日誌消息,並且不再重新分發字首。 |
修訂 | 發佈日期 | 意見 |
---|---|---|
2.0 |
15-Feb-2024 |
已更新命令引用連結。 |
1.0 |
23-Jul-2022 |
初始版本 |