ON THIS PAGE
扩展、故障排除和监控注意事项
本章讨论监控路由服务器规模、Junos BGP 组件和客户端特定的 BGP 会话的各个方面。监控路由服务器与正常的 BGP 会话管理不同,这在我们假定读者精通的其他发布中很普遍。
与这些正常 BGP 扬声器不同,Junos 路由服务器有几个特殊注意事项
配置数据库大小
路由实例之间的路由副本的 rpd 内存利用率
监控配置数据库大小
为了支持大配置,例如,假设一千个路由服务器客户端导致超过2000000行输出或更多,则需要扩展默认配置数据库大小,并启用压缩。以下配置部分支持扩展配置数据库大小,但需要Junos 重新启动:
初始 Junos 配置数据库
可使用以下方式监控 Junos 配置数据库 show system configuration database usage
命令时,此处显示了基本配置的大小:
现在,’让我们来展示1000路由服务器客户端,每个都有自己的路由实例、导入策略、实例导出策略和实例导入策略:
您可以看到显著的数据库使用情况。
监控路由表大小
下一个示例输出显示有关路由表中条目的汇总统计信息(show route summary
命令)和内存使用情况分解(show task
memory detail
命令)的 rpd。这两个命令提供路由协议进程的内存利用率的全面了解。
T4000 路由器不支持 show route summary
命令显示每个路由服务器客户端的各个路由表中的路由数。在每个路由表中,汇总了所有活动、holddown 和隐藏的目标和路由。路由位于 holddown
声明为非活动之前的状态,并且由于路由策略而不使用隐藏路由。请注意, holddown
及 hidden
状态仍在使用内存,因为它们出现在路由表中:
监控 RPD 内存利用率
T4000 路由器不支持 show task memory detail
命令列出由 rpd 运行的任务内的数据结构。根据路由器’的配置启用任务。T4000 路由器不支持 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’筋中存在的总路由,以及从中导入这些路径的肋条:
root@rs1> show route export C3.inet.0 detail C3.inet.0 Routes: 31 Import: [ C1.inet.0 C2.inet.0 C3.inet.0 ]
要查看 C3’的筋中将根据 IXP global 策略导出到 C1 的特定路由,请使用目标社区查看源筋和过滤器:
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 将故障排除、维护和实时分析转换为直观的用户体验,让网络运营商可对单个设备和整个网络的运行状况进行操作见解。
HealthBot BGP 位于https://github.com/Juniper/healthbot-rules/tree/master/juniper_official/Protocols/Bgp的 kpi 包含可随时采用的 HealthBot 行动指南和规则,这些指南特定于 BGP 邻居关键性能指标(kpi)。
BGP KPI 规则从网络设备收集统计数据后,便会分析并发挥作用。BGP KPI 行动手册是一组规则,每条规则都定义了一组 Kpi。操作手册包含 BGP 会话状态、邻域摆动检测、接收的具有静态阈值的路由以及带动态阈值规则的已接收路由。
规则是使用默认变量值定义的,可在部署行动手册时进行更改。
位于https://github.com/Juniper/healthbot-rules/tree/master/juniper_official/Protocols/Rib的 HealthBot 筋 kpi 包含特定于筋路由摘要 kpi 的易于采用的 HealthBot 指南和规则。筋路由摘要 KPI 规则从网络设备收集统计数据,然后进行相应的分析和操作。筋路由摘要 KPI 行动手册是一组规则,每个规则都使用一组 Kpi 进行定义。操作手册包含 ascertaining 路由的路由表汇总以及带有动态阈值的协议路由摘要规则。规则是使用默认变量值定义的,可在部署行动手册时进行更改。
HealthBot Systems Kpi 位于https://github.com/Juniper/healthbot-rules/tree/master/juniper_official/System,包含特定于系统 kpi 的易于采用的 HealthBot 指南和规则。系统 KPI 规则收集网络设备的统计信息,然后分析数据和行为。系统 KPI 行动手册是一组规则,其中每条规则都定义了一组 Kpi。操作手册包含路由引擎 CPU、路由引擎内存、Junos 处理 CPU、内存泄漏检测和系统存储规则。
规则使用默认变量值定义,可在部署行动手册时进行更改。