拡張性、トラブルシューティング、監視の考慮事項
この章では、ルートサーバーの拡張性、Junos BGP コンポーネント、クライアント固有の BGP セッションの監視に関するさまざまな事項について説明します。ルートサーバーの監視は、通常の BGP セッション管理とは異なり、読者が it に精通していることを前提としている他のパブリケーションでも一般的に使用されています。
通常の BGP スピーカーとは異なり、Junos ルートサーバーにはいくつかの特別な考慮事項があります。
構成データベースのサイズ
ルーティングインスタンス間のルートコピーの rpd メモリ使用率
構成データベースのサイズを監視する
大規模な構成をサポートするために、たとえば、200万行以上の出力を伴う1,000 台のルートサーバークライアントなど、デフォルトの構成データベースサイズを拡張して、圧縮を有効にする必要があります。次の構成スタンザでは、拡張構成データベースのサイズ Junos を使用できますが、再起動が必要です。
初期 Junos 構成データベース
Junos 構成データベースを監視するには、 show system configuration database usage
ここで、基本的な設定を使用して、次のようにサイズを示します。
ここで’は、独自のルーティングインスタンス、インポートポリシー、インスタンス-エクスポートポリシー、およびインスタンスインポートポリシーを使用して、1000のルートサーバークライアントを表示してみましょう。
データベースの重要な使用状況を見ることができます。
ルートテーブルサイズの監視
次のサンプル出力は、ルーティングテーブルのエントリに関する要約統計を示しています (show route summary
コマンド) とメモリ使用量の詳細 (show task
memory detail
コマンド) が使用されます。この2つのコマンドは、ルーティングプロトコルプロセスのメモリ使用率の包括的な図を提供します。
こちらの show route summary
コマンドは、各ルートサーバークライアントのさまざまなルーティングテーブル内のルート数を示します。各ルーティングテーブル内で、アクティブ、holddown、非表示の宛先とルートがすべてまとめられています。ルートは holddown
ルーティングポリシーが原因で非アクティブな宣言が行われる前の状態と非表示ルートは使用されません。のルートであることに注意してください。 holddown
および hidden
状態は、ルーティングテーブルに表示されるため、依然としてメモリを使用しています。
RPD メモリの使用率の監視
こちらの show task memory detail
コマンドは、rpd によって実行されるタスク内のデータ構造をリストします。ルーター’の構成に応じて、タスクが有効になります。こちらの Alloc
Bytes
フィールドは、データ構造によって使用されるメモリ量が最も多いことを示します。最大割り当てブロックとバイト数は、データ構造のハイウォーターマークです。次の例は、非常に少ないメモリが割り当てられているため、非常に健全なルートサーバーからの出力を見ています。
------------------------------------------------------------------------- ------------------------ Allocator Memory Report ------------------------- Name Size Alloc DTXP Alloc Alloc MaxAlloc MaxAlloc bgp-th-wrstage-iov 10240 12288 5 61440 7 86016 rt_table_name_node 20 24 11 264 12 288 bgpconf 1776 1792 12 21504 17 30464 bgp_uio_trace_conf 20 24 36 864 36 864 bgp_uio_group_info 820 896 4 3584 4 3584 bgp_uio_peer_info 168 192 7 1344 7 1344 bgp_orf_mark_t 24 28 7 196 7 196 bgp_riblist_entry_t 12 16 12 192 12 192 bgp_rg_list_obj 8 12 1 12 1 12 bgp_msgbld 76 80 11 880 11 880 bgp_io_oper 228 256 7 1792 7 1792 bgp_nlri_sync_t 372 384 7 2688 7 2688 bgp-rib-to-group 12 16 4 64 4 64 bgp_mrto_hash 4096 8192 2 16384 4 32768 bgp-rib-grp 1896 2048 2 4096 4 8192 bgp-rib-globals 28 32 7 224 7 224 bgp-rib-peer-group 496 512 2 1024 4 2048 bgp-rib-peer-counter 116 128 7 896 7 896 bgp-rib-peer 484 512 7 3584 7 3584 bgp-rib 136 140 7 980 7 980 bgp ifachg notify 12 16 3 48 3 48 bgp ifachg reg 32 36 3 108 3 108 bgp_act_node 700 768 7 5376 7 5376 bgp_adv_entry 24 28 6 168 136 3808 bgp_checksum_stats_t 12 16 7 112 7 112 bgp_tsi_t 16 20 6 120 136 2720 bgp_addpath_params_t 12 16 7 112 7 112 bgpb_sbits_01 20 24 4 96 10 240 bgp_metrics_node 84 96 13 1248 19 1824 bgpg_rtinfo_entry 16 20 6 120 65 1300 bgp_peeras_t 16 20 1 20 3 60 bgp_rtentry 24 28 43 1204 105 2940 bgp_bmp_common_peer_ 4 8 16 128 22 176 bgpPeerGroup 19088 20480 4 81920 4 81920 bgpPeer 9288 12288 7 86016 7 86016 bgp_buffer 4100 8192 5 40960 7 57344 bgp_cluster_t 16 20 1 20 1 20 bgp_instance_t 88 96 5 480 6 576 bgp_evpn_metrics 48 52 18 936 34 1768 -------------------------------------------------------------------------
-------------------------- Malloc Usage Report --------------------------- Name Allocs Bytes MaxAllocs MaxBytes FuncCalls BGP_3 3 448 3 448 3 BGP_Group_C3 4 816 4 816 4 BGP_2 3 448 3 448 3 BGP_Group_C2 4 816 4 816 4 BGP_1 3 448 3 448 3 BGP_Group_C1 4 816 4 816 4 BGP_100_100 3 448 3 448 3 BGP_100_100 3 448 3 448 3 BGP_100_100 3 448 3 448 3 BGP_100_100 3 448 3 448 3 BGP_Group_evpn 4 816 5 828 94 BGP_RT_Background 29 278000 32 278136 303 bgp-thrio 1 8192 1 8192 1 bgp-thrio-ctx 41 19552 60 27420 575053 BGP addpath task 2 3584 2 3584 2 -------------------------------------------------------------------------
クライアント EBGP セッションの監視
個々のルートサーバークライアント EBGP セッションは、要約リストとして表示するか、 show bgp
summary
サンプルのトポロジでは次のようになります。
root@rs1> show bgp summary Threading mode: BGP I/O Groups: 4 Peers: 7 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending bgp.evpn.0 12 12 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/ Received/Accepted/Damped... 192.0.2.1 1 6195 6093 0 1 1d 22:26:37 Establ C1.inet.0: 31/31/31/0 192.0.2.2 2 332 325 0 7 2:27:38 Establ C2.inet.0: 31/31/31/0 192.0.2.3 3 53788 52946 0 0 2w2d 19:23:41 Establ C3.inet.0: 31/31/31/0
root@rs1> show bgp neighbor 192.0.2.1 Peer: 192.0.2.1+56947 AS 1 Local: 192.0.2.254+179 AS 123 Group: C1 Routing-Instance: C1 Forwarding routing-instance: master Type: External State: Established Flags: <Sync> Last State: OpenConfirm Last Event: RecvKeepAlive Last Error: Hold Timer Expired Error Options: <Preference AddressFamily PeerAS Refresh> Options: <MtuDiscovery> Options: <RouteServerClient> Address families configured: inet-unicast Holdtime: 90 Preference: 170 Number of flaps: 1 Last flap event: HoldTime Error: ‘Hold Timer Expired Error’ Sent: 1 Recv: 0 Peer ID: 192.0.2.1 Local ID: 192.0.2.254 Active Holdtime: 90 [...Output truncated...]`
ルート分散の監視
次の show コマンドは、ルートサーバークライアント C3’s リブに存在するルートの合計と、インポートされた突起を示します。
root@rs1> show route export C3.inet.0 detail C3.inet.0 Routes: 31 Import: [ C1.inet.0 C2.inet.0 C3.inet.0 ]
IXP グローバルポリシーに基づい’て C1 s リブの特定のルートを表示するには、ソースのリブとフィルタを使用して、ターゲットコミュニティーを表示します。
root@rs1> show route protocol bgp community 64498:1 table C3.inet.0 C3.inet.0: 31 destinations, 31 routes (31 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 198.51.100.0/24 *[BGP/170] 2w0d 20:13:27, localpref 100 AS path: 3 I, validation-state: unverified > to 192.0.2.3 via ge-0/0/1.0 203.0.113.0/24 *[BGP/170] 2w0d 20:13:27, localpref 100 AS path: 3 I, validation-state: unverified > to 192.0.2.3 via ge-0/0/1.0 [...Output truncated...]
わずかに異なるビューであったり、前のコマンドの検証であったりするには、特定のルートサーバークライアントから受信したルートの視点から見た、クライアントのすべての突起部分のリブコンテンツを確認する必要があります。次の例では、192.0.2.3 はルーティングインスタンス C3 に関連付けられている BGP ピアです。
root@rs1> show route receive-protocol bgp 192.0.2.3 | except inet.0 inet.3: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden) C1.inet.0: 31 destinations, 31 routes (31 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 198.51.100.0/24 192.0.2.3 3 I * 203.0.113.0/24 192.0.2.3 3 I [...Output truncated...] C3.inet.0: 31 destinations, 31 routes (31 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 198.51.100.0/24 192.0.2.3 3 I * 203.0.113.0/24 192.0.2.3 3 I [...Output truncated...]
特定の接頭番号を検索して、トラブルシューティングに役立てることもできます。
regress@RS1> show route receive-protocol bgp 192.0.2.3 198.51.100.0 |except inet.0 C1.inet.0: 31 destinations, 31 routes (31 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 198.51.100.0/24 192.0.2.3 3 I C1.inet.0: 31 destinations, 31 routes (31 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 198.51.100.0/24 192.0.2.3 3 I
ルートはコミュニティーの値や名前によって検索することもできます。検索結果によって、一致する’クライアントのすべての突起を取得します。したがって、クライアントの突起部分間のルート伝播を追跡できます。
regress@RS1> show route protocol bgp community-name as64498_comms 198.51.100.0 inet.0: 41 destinations, 41 routes (40 active, 0 holddown, 1 hidden) C1.inet.0: 93 destinations, 93 routes (93 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 198.51.100.0/24 *[BGP/170] 2w2d 19:32:26, localpref 100 AS path: 3 I, validation-state: unverified > to 192.0.2.3 via ge-0/0/1.0 C3.inet.0: 62 destinations, 62 routes (62 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 198.51.100.0/24 *[BGP/170] 2w2d 19:32:26, localpref 100 AS path: 3 I, validation-state: unverified > to 192.0.2.3 via ge-0/0/1.0
監視ツール: HealthBot
HealthBot は、高度に自動化されたプログラム可能なデバイスレベルの診断およびネットワーク分析ツールです。ネットワーク導入環境に一貫性のある一貫した運用インテリジェンスを提供します。複数のデータ収集方法 (Junos テレメトリインターフェイス、NETCONF、SNMP など) と統合されているため、時間に依存した大量のテレメトリデータを集約して関連付け、ネットワークのマルチディメンションと予測のビューを提供しています。さらに、HealthBot はトラブルシューティング、保守、リアルタイム分析を直感的なユーザーエクスペリエンスに変換し、ネットワーク事業者が、個々のデバイスとネットワーク全体の稼働状態に対応できるようになります。
HealthBot BGP Kpi はhttps://github.com/Juniper/healthbot-rules/tree/master/juniper_official/Protocols/Bgpにありますが、すぐに使える HealthBot プレイブックとルールが含まれており、BGP の隣接した主要業績評価指標 (kpi) に固有のものです。
BGP の KPI ルールは、ネットワークデバイスから統計情報を収集し、データを分析して動作します。BGP の KPI プレイブックはルールのセットで、各ルールは一連の Kpi で定義されています。プレイブックには、BGP セッション状態、近傍フラップ検出、静的なしきい値を持つ受信ルート、および動的しきい値ルールによる受信ルートが含まれています。
ルールはデフォルトの変数値で定義されており、プレイブックの導入時に変更することができます。
HealthBot のリブ Kpi は、 https://github.com/Juniper/healthbot-rules/tree/master/juniper_official/Protocols/Ribにあります。すぐに使える HealthBot プレイブックとルールが含まれています。これは、リブルートサマリ kpi に固有のものです。リブルートサマリ KPI ルールは、ネットワークデバイスから統計情報を収集し、データを分析して適切に動作します。リブルートの概要 KPI プレイブックでは、ルールが一連の Kpi で定義されています。プレイブックには、ascertaining ルートのルートテーブルの概要と、動的しきい値を使用したプロトコルルートサマリルールが含まれています。ルールはデフォルトの変数値を使用して定義され、プレイブックの導入中に変更することができます。
Https://github.com/Juniper/healthbot-rules/tree/master/juniper_official/Systemにある HealthBot Systems kpi には、システム kpi に特化した、すぐに使用可能な HealthBot プレイブックとルールが含まれています。システム KPI ルールは、ネットワークデバイスから統計情報を収集し、データを分析して行動を行います。システムの KPI プレイブックはルールのセットであり、各ルールは一連の Kpi で定義されています。プレイブックには、ルーティングエンジン CPU、ルーティングエンジンメモリ、Junos プロセス CPU、メモリリーク検知、システムストレージルールが含まれています。
ルールはデフォルトの変数値で定義されており、プレイブックの導入時に変更できます。