本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案將說明邊界閘道通訊協定(BGP)路由反射器(RR)可達的最大擴充度的主要貢獻者,以及有關BGP RR效能監控的指南。
大規模BGP RR通常不在攜帶由網際網路服務提供商提供的服務的資料包的轉發路徑中。因此,BGP RR和在資料路徑中主要轉發資料包的路由器的硬體要求是不同的。標準路由器具有強大的資料路徑轉發元素和相對溫和的控制路徑元素。BGP RR在控制計畫中執行其所有任務。
在Cisco IOS® XR系列產品中,您可以為BGP RR角色選擇三種型別的硬體/軟體平台:
實體Cisco IOS XR路由器 |
Cisco IOS XRv 9000裝置 |
Cisco IOS XRv 9000路由器(也稱為XRv9k) |
|
|
|
截至本文撰稿時,XRv9k裝置是BGP RR的最佳平台選擇,因為它提供了最高控制平面容量和最高效能。
支援的資料平面實體的比例相對容易表示,因為資料路徑元素的效能很少取決於比例。例如,無論活動TCAM條目的數量是多少,TCAM查詢都會花費相同的時間。
支援的控制平面實體的比例通常要複雜得多,因為比例和效能是互連的。考慮具有1M路由的BGP RR。BGP進程維護此BGP表必須執行的工作取決於:
BGP對等體的數量通常是第一個,而且很遺憾,通常是在考慮BGP規模時唯一需要考慮的問題。雖然不能在不提及BGP對等體數量的情況下表示支援的BGP規模,但這並不是最重要的因素。許多其他方面也同樣重要。
地址系列的型別(AF)是BGP效能考慮因素中的一個重要因素,因為在典型部署中,它影響單個路由的大小。可封裝到單個TCP段中的IPv4路由數顯著高於VPNv4路由數。因此,對於相同規模的BGP表變更,IPv4 BGP RR比VPNv4 BGP RR需要做的工作更少。顯然,在每條路由都新增了大量社群的部署中,AF之間的差異會變得不太顯著,但一條路由的規模會更大,需要加以考慮。
BGP進程為同一更新組的所有成員準備單一更新。然後,TCP進程將更新資料拆分為所需數量的TCP資料段(取決於TCP MSS),分別流向更新組中的每個成員。您可以使用命令檢視活動的更新組及其成員show bgp update-group
。通過為要位於同一更新組中的對等體組建立公共出站策略,可以影響更新組成員中的對等體及其數量。BGP RR向大量BGP RR客戶端傳送的單個更新可能會觸發TCP ACK的突發,這些突發可能會在Cisco IOS XR路由器的本地資料包傳輸服務(LPTS)元件中被丟棄。
BGP使用的路由策略的複雜性會影響BGP進程的效能。必須根據配置的路由策略評估每個接收或傳送的路由。一個非常長的策略需要佔用許多CPU週期來執行此操作。包含正規表示式的路由策略在處理時尤其繁重。正規表示式可幫助您以較少的行數表示路由策略,但處理時需要比不使用正規表示式的等效路由策略更多的CPU週期。
更新頻率對BGP規模有重要影響。更新數量通常很難預測。您可以使用「advertisement-interval」命令來影響更新頻率,該命令可設定BGP)路由更新傳送之間的最小間隔。iBGP對等點的預設值為0秒,eBGP對等點的預設值為30秒。
在高規模、高更新頻率的環境中,將更新拆分為許多TCP資料段會給TCP進程資源帶來很多壓力。較大的路徑MTU和較大的TCP MSS更有利於BGP和TCP效能。
NSR是一個非常好的冗餘功能,但它確實會影響BGP效能。在Cisco IOS XR路由器上,兩個RP同時從入口線卡上的NPU接收每個BGP更新,這意味著活動RP無需花費時間將更新複製到備用RP。但是,活動RP生成的每個更新都必須傳送到備用RP,並從那裡傳送到BGP對等體。這允許備用RP始終在序列號和確認號上保持最新,但會對整體BGP效能產生影響。這就是建議BGP RR為單RP路由器的原因。
較慢的對等體可能會減慢對更新組所有成員的更新,因為BGP進程必須將該更新保留在其記憶體中,直到所有對等體都確認該更新。如果您知道某些對等體速度要慢得多(例如,網路中的傳統部分中的路由器),請將其提前分離到更新組中。預設情況下,Cisco IOS XR通過syslog消息報告對等體速度較慢。您可以建立靜態慢速對等體(從不與他人共用更新組),或在全域性或按鄰居配置模式下使用BGP slow-peer
configuration命令微調動態慢速對等體的行為。有關此內容的進一步閱讀可參閱Troubleshoot Slow BGP Convergence Due to Suboptimal Route Policies on IOS-XR on the Cisco xrdocs.io portal。
如果多個BGP下一跳在短時間間隔內發生更改,並且在具有大量路由的地址族(AF)中配置了臨界下一跳觸發延遲值0,則必須在每個下一跳更改事件上執行AF的完全漫遊。AF重複遍歷會增加具有較低臨界下一跳觸發延遲值的地址族的收斂時間。通過運行「show bgp all nexthops」命令,您可以看到下一跳觸發延遲值。
多維尺度結果,特別是控制平面特徵,高度依賴於特定的測試環境。如果更改某些引數,測試結果可能會發生明顯變化。
參數 |
價值 |
價值 |
平台 |
XRv9k裝置(基於UCS M5) |
ASR9902 |
IOS XR版本 |
7.5.2 +適用於思科錯誤ID CSCwf09600的umbrella SMU . (此umbrella SMU的元件整合在Cisco IOS XR 7.9.2版及更新版本中) |
7.11.2 |
同儕節點 |
VPNv4 eBGP:2500 VPNv4 iBGP:1700 |
VPNv4 iBGP:2000 |
BGP路由 |
每個會話:200 總計:40萬 每路由的路徑:1 |
每個會話:750 VPNv4:1.36米 VPNv6:15萬 IPv4:95萬 IPv6:20萬 總計:約260萬 每路由的路徑:1 |
IGP路由 |
1萬(ISIS) |
1萬(ISIS) |
BGP更新組 |
1 |
1 |
BGP計時器 |
預設 |
預設 |
LPTS BGP已知管制器速率 |
50,000 |
25,000 |
tcp num-thread configuration |
16 16 |
16 16 |
BGP傳送緩衝區大小 |
預設 |
預設 |
主要績效指標(KPI)摘要 |
|
|
網路中放置BGP RR有兩種方法:
在集中式/平面設計中,網路中的所有BGP RR使用者端都會與一組包含完全相同資訊的BGP RR裝置(通常是一對)建立BGP對等關係。這種方法實施簡單,在中小規模網路中效果良好。BGP表中的任何更改都會快速傳播到所有BGP RR客戶端。隨著BGP RR客戶端數量的增加,當BGP RR裝置上的TCP連線數量增加到影響其效能的程度時,設計可達到規模限制。
在分散式/分層設計中,網路被劃分為多個區域。區域中的所有路由器都會與包含完全相同資訊的一組(通常是一對)BGP RR裝置建立BGP對等。這些BGP RR裝置充當另一組(通常是一對)BGP RR裝置的BGP RR客戶端。此設計方法允許輕鬆進行網路擴展,同時保持每個BGP RR上的TCP連線數在一定限制下。
另一個設計考慮事項是定製BGP更新的接收者的範圍。根據BGP RR客戶端之間的VRF分佈,值得考慮RT約束路由分佈。如果所有BGP RR客戶端在同一VRF中具有介面,則RT約束路由分配不會帶來很多好處。但是,如果VRF在所有BGP RR客戶端之間稀疏分佈,則使用RT約束路由分佈會顯著減少BGP RR上bgp進程的負ƒ。
監控BGP RR的主要效能指標(KPI)對於確保正確的網路運行非常重要。
網路拓撲的顯著變化(例如重大DWDM連結翻動)可能會觸發路由更新,產生流向BGP RR和/或來自BGP RR的過度流量。到達BGP RR的重要流量通常包括:
本文此節說明在典型BGP RR上需要監控的KPI,以及如何判斷兩個重要BGP流量型別中的哪一個導致了高控制平面流量速率。
路由器內BGP封包的路徑可如下圖所示:
點球 |
乙太網控制器 — (資料包) — >資料路徑轉發器 — (資料包) — > LPTS — (資料包) — > SPP — (資料包) — > NetIO — (資料包) — > TCP — (消息) — > BGP |
注入 |
BGP — (消息) — > TCP — (資料包) — > NetIO — (資料包) — > SPP — (資料包) — >資料路徑轉發器 — (資料包) — >乙太網控制器 |
KPI可以拆分為:
要點:
可選:
在XRv9000上,資料路徑轉發器是資料平面代理(DPA),而在ASR9000平台上,它是網路處理器(NP)。
用於檢視DPA的負載和統計資訊的有用命令是:
show controllers dpa statistics global
此命令顯示所有非零計數器,通過這些計數器,您可以深入瞭解從網路介面傳送到RP CPU、從RP CPU傳送到網路介面的資料包型別和數量,以及丟棄的資料包數量:
RP/0/RP0/CPU0:xrv9k-01#show controllers dpa statistics global Index Debug Count ---------------------------------------------------------------------------- 350 TBPG L2 mailbox events 1 Index Punt Count ---------------------------------------------------------------------------- 1500 CDP 46790 1503 ARP 212 1611 IFIB 595305 1776 LLDP 94037 2001 IPv4 incomplete Tx adjacency 2 Index Inject Count ---------------------------------------------------------------------------- 744 CLNS multicast from fabric pre-route 321250 749 IPv4 from fabric 273993 765 Inject to fabric 595245 766 Inject to port 141033 Index Drop Count ---------------------------------------------------------------------------- 416 Egress UIDB in down state 1 474 IPv4 egress UIDB down 2 673 Pre-route PIT lookup missed 2
用於檢視系統中每個NP的負載和統計資訊的有用命令包括:
show controllers np load all
show controllers np counters all
ASR9000上的NP具有一組豐富的計數器,可顯示已處理和丟棄的資料包的數量、速率和型別。
RP/0/RSP0/CPU0:ASR9k-B#show controllers np load all Node: 0/0/CPU0: ---------------------------------------------------------------- Load Packet Rate NP0: 0% utilization 937 pps NP1: 0% utilization 538 pps RP/0/RSP0/CPU0:ASR9k-B#
RP/0/RSP0/CPU0:ASR9k-B#show controllers np counters all Node: 0/0/CPU0: ---------------------------------------------------------------- Show global stats counters for NP0, revision v4 Last clearing of counters for this NP: NEVER Read 92 non-zero NP counters: Offset Counter FrameValue Rate (pps) ------------------------------------------------------------------------------------- 16 MDF_TX_LC_CPU 25475368 10 17 MDF_TX_WIRE 681957877 267 21 MDF_TX_FABRIC 683500690 267 33 PARSE_FAB_RECEIVE_CNT 681767730 267 37 PARSE_INTR_RECEIVE_CNT 1323024637 517 41 PARSE_INJ_RECEIVE_CNT 13949634 5 45 PARSE_ENET_RECEIVE_CNT 677655725 265 49 PARSE_TM_LOOP_RECEIVE_CNT 49331192 19 53 PARSE_TOP_LOOP_RECEIVE_CNT 1520846 1 109 RSV_DROP_EGR_UIDB_NO_MATCH 10 0 146 RSV_DROP_IPV4_RXADJ_DROP 1 0 164 RSV_DROP_ING_LAG_NO_MATCH 3 0 241 RSV_DROP_MPLS_LEAF_NO_MATCH 1312 0 <. . .>
由於標準BGP RR不在轉發路徑中,因此網路介面上接收的所有資料包都會被傳送到控制平面。BGP RR上的資料路徑元素會在封包傳送到控制平面之前執行少量的簡單操作。由於資料路徑元素不太可能是擁塞點,因此線卡上唯一需要監控的元素是LPTS統計資訊。
請注意,對於XRv9k,硬體統計資訊對映到vPP
指令:
show lpts pifib hardware police location <location> | inc "Node|flow_type|BGP"
範例:
RP/0/RP0/CPU0:xrv9k-01#sh lpts pifib hardware police location 0/0/CPU0 | i "Node|flow_type|BGP" Node 0/0/CPU0: flow_type priority sw_police_id hw_policer_addr Cur. Rate burst static_avgrate avgrate_type AggrAccepts AggrDrops TOS Value BGP-known high 6 220 50000 1250 2500 Global 16401392 0 01234567 BGP-cfg-peer medium 7 221 4000 1000 2000 Global 355976 1563 01234567 BGP-default low 8 222 3000 750 1500 Global 5212380 0 01234567 RP/0/RP0/CPU0:xrv9k-01#
要查詢的內容:
如果觀察到與BGP已知流量型別相比AggDrops出現顯著跳躍,則開始查詢已觸發如此大規模控制平面抖動的網路拓撲變化。
遙測資料路徑:
Cisco-IOS-XR-lpts-pre-ifib-oper:lpts-pifib
附註:可以清除LPTS統計資訊計數器。監視系統必須考慮這種可能性。
SPP是路由處理器或線卡CPU上的第一個實體,它接收通過內部交換矩陣從NP或DPA打出的資料包,也是軟體資料包處理的最後一個點,在此之後它將被傳遞給交換矩陣以注入到NP或DPA。
SPP監視的相關命令:
show spp node-counters
show spp client
該命show spp node-counters
令顯示點入/注入資料包的速率,並且易於讀取和理解。對於BGP會話,相關計數器位於活動client/punt
RPclient/inject
下且位於其上。
更豐show spp client
富的輸出,並更詳細地瞭解向客戶端入隊/丟棄的資料包的數量以及高水印。
RP/0/RP0/CPU0:xrv9k-01#show spp node-counters 0/RP0/CPU0: socket/rx Punted packets: 595305 Punt bulk reads: 6 Punt non-bulk reads: 595293 Management packets: 74200158 Management bulk reads: 1775930 Management non-bulk reads: 70031734 ------------------------------- socket/tx Injected packets: 595245 Management packets: 139939168 ------------------------------- xrv9k/classify Forwarded to SPP clients: 74795463 ------------------------------- client/inject Injected from client: 140534413 Non-bulk injects: 140534413 ------------------------------- client/punt punted to client: 74795371 no client found - send to defa: 92 ------------------------------- 0/0/CPU0: <. . .>
RP/0/RP0/CPU0:xrv9k-01#show spp client Sat Apr 20 17:11:40.725 UTC 0/RP0/CPU0: Clients ======= <. . .> netio, JID 254 (pid 4591) ---------------------------------------------------------- Reconnect Pending: F, Exited: F, Keep Queues: F, Pakman Client: T Quota Current: 0, Limit: 16384, Drops 0 Queues: Key Cur Max Enqueues High Watermark (Timestamp) Drops 0xffffffff 0 10 0 0 (22:13:52.195 Feb 21 24 UTC) 0 0x03000006 0 2048 0 0 (22:13:52.196 Feb 21 24 UTC) 0 0x03000007 0 3072 414881 1 (23:03:30.721 Feb 21 24 UTC) 0 0x03000008 0 1024 5 1 (13:41:28.389 Mar 13 24 UTC) 0 0x03000009 0 2048 180411 1 (23:03:31.565 Feb 21 24 UTC) 0
雖然LPTS管制器只顯示相應管制器接受或丟棄的資料包數量,但在NetIO級別我們可以看到傳送到RP CPU的資料包的速率。由於在一般BGP RR上,大部分接收的封包是BGP封包,因此總的NetIO速率非常接近地表示接收的BGP封包的速率。
Command:show netio rates
範例:
RP/0/RP0/CPU0:xrv9k-01#show netio rates Netio packet rate for node 0/RP0/CPU0 ----------------------------------- Current rate (updated 0 seconds ago): Input: 7845 pkts/s Output: 10570 pkts/s Driver Output: 10598 pkts/s 1 minute rate (updated 0 seconds ago): Input: 7825 pkts/s Output: 10542 pkts/s Driver Output: 10569 pkts/s 5 minute rate (updated 0 seconds ago): Input: 7997 pkts/s Output: 10677 pkts/s Driver Output: 10704 pkts/s RP/0/RP0/CPU0:xrv9k-01#
要查詢的內容:
遙測資料路徑:
在punt路徑上,NetIO從LPTS接收的封包會傳遞到TCP和BGP。監控這些隊列非常重要:
1. TCP高優先順序隊列,NetIO通過該隊列將資料包傳送到TCP
2. BGP控制隊列
3. BGP資料隊列
在注入路徑上,資料包由TCP建立並傳遞到NetIO。監控這些隊列非常重要:
指令:
show netio clients
show processes bgp | i "Job Id"
show xipcq jid
show xipcq jid
queue-id
範例:
從NetIO到TCP,從NetIO的角度檢視:
RP/0/RP0/CPU0:xrv9k-01#show netio clients <. . .> Input Punt XIPC InputQ XIPC PuntQ ClientID Drop/Total Drop/Total Cur/High/Max Cur/High/Max <. . .> tcp L 0/340774 0/0 L 0/10/12800 0/0/0 H 0/44774091 H 0/784/12800
從TCP到NetIO,從NetIO的角度檢視:
RP/0/RP0/CPU0:xrv9k-01#show netio clients <. . .> XIPC queues Dropped/Queued Cur/High/Max ------------------------------------------------------------ OutputL 124860/9355257 0/14000/14000
NetIO到TCP,從TCP過程的角度檢視:
RP/0/RP0/CPU0:xrv9k-01#show processes tcp | i "Job Id"
Job Id: 430
RP/0/RP0/CPU0:xrv9k-01#show xipcq jid 430 Mon Apr 17 16:16:11.315 CEST Id Name Size Cur Size Produced Dropped HWM ------ ------------------------------- ------ --------- ----------- ----------- -------- 17 XIPC_xipcq_12_0_9854_6506_i... 60000 0 39010269 0 960 16 XIPC_xipcq_12_0_9854_6506_i... 24000 0 31518436 0 1364 15 XIPC_tcp_124 3200 0 0 0 0 14 XIPC_tcp_125 9600 0 0 0 0 13 XIPC_tcp_psb_0 25600 0 0 0 0 10 XIPC_tcp_iq_9 102400 0 9486010 0 312 12 XIPC_tcp_iq_8 102400 0 8892274 0 280 9 XIPC_tcp_iq_5 102400 0 8291392 0 289 11 XIPC_tcp_iq_7 102400 0 9700123 0 319 8 XIPC_tcp_iq_6 102400 0 9378703 0 332 7 XIPC_tcp_iq_3 102400 0 7221706 0 261 6 XIPC_tcp_iq_4 102400 0 9791070 0 308 4 XIPC_tcp_ctrl_iq_1 4266 0 0 0 0 5 XIPC_tcp_iq_2 102400 0 9699027 0 295 3 XIPC_tcp_ctrl_iq_0 4266 0 209909 0 9 2 XIPC_tcp_i1 12800 0 39460564 0 784 1 XIPC_tcp_i0 12800 0 212540 0 10
TCP到BGP:
RP/0/RP0/CPU0:xrv9k-01#show processes bgp | i "Job Id" Job Id: 1078 RP/0/RP0/CPU0:xrv9k-01#show xipcq jid 1078 Mon Apr 17 16:09:33.046 CEST Id Name Size Cur Size Produced Dropped HWM ------ ------------------------------- ------ --------- ----------- ----------- -------- 2 XIPC_xipcq_12_0_9854_6506_i... 60000 2 35546667 0 15034 1 XIPC_xipcq_12_0_9854_6506_i... 24000 0 1369029 0 50 RP/0/RP0/CPU0:xrv9k-01#
BGP資料隊列:
RP/0/RP0/CPU0:xrv9k-01#show xipcq jid 1078 queue-id 1 XIPC_xipcq_12_0_9854_6506_inst_1_data_toapp: Magic: 12344321 Version: 0 SHM Size: 192392 Owner PID: 9854 Owner JID: 1078 Queue ID: 1 Owner MQ handle: 483 User Context: 0x64 Interrupt Flag: 0 Sent-on-full Flag: 0 Max Queue Size: 24000 Queue Size: 0 Client Queue Size: 24000 High watermark: 50 Last Trigger Sent: Mon Apr 17 16:11:10.009 CEST MQ Send Errors: 0 Priority Queues: Prio Size Drops Total ---------- ---------- ---------- ---------- Unspec 24000 0 0 Normal 24000 0 1396159 Medium 24000 0 0 High 24000 0 0 Crucial 24000 0 0 RP/0/RP0/CPU0:xrv9k-01#
BGP控制隊列:
RP/0/RP0/CPU0:xrv9k-01#show xipcq jid 1078 queue-id 2 XIPC_xipcq_12_0_9854_6506_inst_1_ctrl_toapp: Magic: 12344321 Version: 0 SHM Size: 480392 Owner PID: 9854 Owner JID: 1078 Queue ID: 2 Owner MQ handle: 485 User Context: 0x64 Interrupt Flag: 0 Sent-on-full Flag: 0 Max Queue Size: 60000 Queue Size: 0 Client Queue Size: 60000 High watermark: 15034 Last Trigger Sent: Mon Apr 17 16:12:49.483 CEST MQ Send Errors: 0 Priority Queues: Prio Size Drops Total ---------- ---------- ---------- ---------- Unspec 60000 0 0 Normal 60000 0 37313633 Medium 60000 0 0 High 60000 0 0 Crucial 60000 0 0 RP/0/RP0/CPU0:xrv9k-01#
要查詢的內容:
為了更好的跟蹤高水印值的演化,每次讀取後必須清除高水印值。請注意,這不僅會清除HWM計數器,而且還會清除所有隊列統計資訊。清除XIPC隊列統計資訊的命令格式為: clear xipcq statistics queue-name
由於隊列名稱通常包含進程ID(PID),因此隊列名稱在進程重新啟動後會發生更改。
清除相關隊列統計資訊的命令示例:
clear xipcq statistics queue-name XIPC_tcp_i0
clear xipcq statistics queue-name XIPC_tcp_i1
clear xipcq statistics queue-name XIPC_xipcq_12_0_9854_6506_inst_1_data_toapp
clear xipcq statistics queue-name XIPC_xipcq_12_0_9854_6506_inst_1_ctrl_toapp
遙測路徑:
BGP維護每個BGP對等體的輸入和輸出隊列。當TCP將資料傳遞到BGP時,資料會放在InQ中,但BGP尚未處理這些資料。資料位於OutQ中,而BGP會等待TCP將資料拆分為封包並加以傳輸。BGP InQ/OutQ的即時大小很好地指示了BGP進程的繁忙程度。
指令:
show bgp <AFI> <SAFI> summary
範例:
RP/0/RP0/CPU0:xrv9k-01#show bgp all all summary Address Family: VPNv4 Unicast ----------------------------- BGP router identifier 192.168.0.1, local AS number 65000 BGP generic scan interval 60 secs BGP table state: Active Table ID: 0x0 BGP main routing table version 2208096 BGP scan interval 60 secs BGP is operating in STANDALONE mode. Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer Speaker 2208096 2208096 2208096 2208096 2208096 2208096 Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd 10.0.0.2 0 65000 180 601022 2208096 0 0 02:56:18 100 10.0.0.3 0 65000 180 601022 2208096 0 0 02:56:18 100 10.0.0.4 0 65000 180 601022 2208096 0 0 02:56:21 100 10.0.0.5 0 65000 180 601022 2208096 0 0 02:56:21 100 10.0.0.6 0 65000 180 601022 2208096 0 0 02:56:18 100
要查詢的內容:
遙測路徑:
如果網路拓撲不穩定,某些BGP鄰居可以連續傳送更新或撤消。然後,BGP RR必須將這種路由表更改複製成千上百次給其所有RR客戶端。因此,監控從鄰居收到的消息速率以跟蹤不穩定源非常重要。
指令:
show bgp <AFI> <SAFI> summary
範例:
RP/0/RP0/CPU0:xrv9k-01#show bgp all all summary Address Family: VPNv4 Unicast ----------------------------- BGP router identifier 192.168.0.1, local AS number 65000 BGP generic scan interval 60 secs BGP table state: Active Table ID: 0x0 BGP main routing table version 2208096 BGP scan interval 60 secs BGP is operating in STANDALONE mode. Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer Speaker 2208096 2208096 2208096 2208096 2208096 2208096 Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd 10.0.0.2 0 65000 180 601022 2208096 0 0 02:56:18 100 10.0.0.3 0 65000 180 601022 2208096 0 0 02:56:18 100 10.0.0.4 0 65000 180 601022 2208096 0 0 02:56:21 100 10.0.0.5 0 65000 180 601022 2208096 0 0 02:56:21 100 10.0.0.6 0 65000 180 601022 2208096 0 0 02:56:18 100
RR客戶端隊列的MsgSent量大致相同,但某些鄰居的MsgRcvd數可能高於其他鄰居。您必須捕獲此命令的多個快照才能評估消息速率。
識別出有問題的對等體後,您可以執行其他命令,如show bgp neighbor
和show bgp neighbor
show bgp recent-prefixes
,或者嘗試瞭解哪些字首在搖動,以及它們始終是相同的字首還是不同的字首。
附註:MsgRcvd和MsgSent計數器是按鄰居的,而不是按地址系列的。因此,當運行類似的show bgp all all summary
命令時,您會在各個地址系列的部分中看到每個鄰居的相同計數器。它們不代表該地址系列的從/向該鄰居接收/傳送的消息數量,而是跨地址系列傳送消息的數量。
必須在每台路由器上監控CPU使用率,但是在擁有大量專用於控制平面的CPU核心的路由器上,某些讀取可能是不直觀的。在具有大量專用於路由處理器(RP)的CPU核心的BGP RR上,如XRv9k裝置一樣,活動執行緒運行在不同的CPU核心上,而許多CPU核心保持空閒。因此,某些CPU核心可能非常繁忙,但計算出的所有CPU核心的總體CPU利用率仍為中等。
因此,要通過CLI正確監控CPU核心利用率,請使用命show processes cpu thread
令。
Cisco IOS®維護每個TCP會話的詳細統計資訊。CLI命令show tcp brief
顯示所有現有TCP會話的清單。在此摘要輸出中,每個TCP作業階段都可以看到以下資訊:
show cef vrf all summary | utility egrep "^VRF:|Vrfid" | utility egrep -B1
由於公認的BGP埠號為179,因此您可以將顯示的TCP會話限製為與BGP應用程式相關聯的TCP會話。
範例:
RP/0/RSP0/CPU0:ASR9k-B#show tcp brief | include "PCB|:179 " PCB VRF-ID Recv-Q Send-Q Local Address Foreign Address State 0x00007ff7d403bde0 0x60000000 0 0 :::179 :::0 LISTEN 0x00007ff7d403b020 0x60000002 0 0 :::179 :::0 LISTEN 0x00007ff7d403d130 0x60000000 0 0 192.168.0.4:50144 192.168.0.5:179 ESTAB 0x00007ff7a4025650 0x60000000 0 0 0.0.0.0:179 0.0.0.0:0 LISTEN 0x00007ff7a4024a50 0x60000002 0 0 0.0.0.0:179 0.0.0.0:0 LISTEN
可以使用顯示的PCB值獲取特定TCP會話的統計資訊。用於深入瞭解TCP進程統計資訊的CLI命令:
全域性:
show tcp statistics clients location <active_RP>
show tcp statistics summary location <active_RP>
每個PCB:
show tcp brief | i ":179"
show tcp detail pcb <pcb> location 0/RP0/CPU0
show tcp statistics pcb <pcb> location <active_RP>
全域性TCP統計資訊命令顯示TCP會話的整體運行狀況。除了資料封包統計資訊(in/out)外,您可以看到例如是否有具有校驗和錯誤之封包、格式錯誤之封包、由於驗證錯誤而捨棄之封包、順序錯誤之封包、包含視窗後資料之封包,這可以指示TCP對等體的行為。
在每PCB命令中,您可以看到TCP作業階段的重要引數,例如MSS、最大來回時間等。
命令輸出中的相關計數器show tcp detail pcb
為:
RP/0/RSP0/CPU0:ASR9k-B#show tcp detail pcb 0x4a4400e4 ============================================================== Connection state is ESTAB, I/O status: 0, socket status: 0 Established at Sat Apr 20 18:26:26 2024 PCB 0x4a4400e4, SO 0x4a42c0ac, TCPCB 0x4a43b708, vrfid 0x60000000, Pak Prio: Normal, TOS: 64, TTL: 255, Hash index: 402 Local host: 10.10.10.229, Local port: 179 (Local App PID: 856311) Foreign host: 10.10.10.254, Foreign port: 46980 (Local App PID/instance/SPL_APP_ID: 856311/0/0) Current send queue size in bytes: 0 (max 16384) Current receive queue size in bytes: 0 (max 65535) mis-ordered: 0 bytes Current receive queue size in packets: 0 (max 60) Timer Starts Wakeups Next(msec) Retrans 2795 0 0 SendWnd 1341 0 0 TimeWait 0 0 0 AckHold 274 2 0 KeepAlive 333 1 299983 PmtuAger 0 0 0 GiveUp 0 0 0 Throttle 0 0 0 FirstSyn 0 0 0 iss: 2030796738 snduna: 2034498828 sndnxt: 2034498828 sndmax: 2034498828 sndwnd: 3291 sndcwnd: 4200 irs: 285455091 rcvnxt: 285455710 rcvwnd: 64917 rcvadv: 285520627
SRTT: 162 ms, RTTO: 415 ms, RTV: 253 ms, KRTT: 0 ms
minRTT: 0 ms, maxRTT: 247 ms ACK hold time: 200 ms, Keepalive time: 300 sec, SYN waittime: 30 sec Giveup time: 0 ms, Retransmission retries: 0, Retransmit forever: FALSE Connect retries remaining: 0, connect retry interval: 0 secs <...> RP/0/RSP0/CPU0:ASR9k-B#
BGP路由表儲存在BGP進程堆記憶體中。路由表儲存在RIB進程堆記憶體中。
用於堆記憶體監控的有用命令:
show memory summary
show memory summary detail
show memory-top-consumers
show memory heap summary all
遙測感測器路徑:
Cisco-IOS-XR-nto-misc-oper:memory-summary/nodes/node/detail
FIB將轉發條目儲存在共用記憶體空間中。
用於共用記憶體監控的有用命令:
show memory summary
show memory summary detail
show shmwin summary
提供有關BGP進程效能的內部資料的有用命令:
show bgp process performance-statistics
show bgp process performance-statistics detail
另一個有用的命令是顯示BGP收斂的總體狀態的命令: show bgp convergence
當網路穩定時,您會看到類似的情況:
RP/0/RP0/CPU0:ASR9k-B#show bgp convergence Mon Dec 18 13:55:47.976 UTC Converged. All received routes in RIB, all neighbors updated. All neighbors have empty write queues. RP/0/RP0/CPU0:ASR9k-B#
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
01-Aug-2024 |
初始版本 |