了解带内流分析器 2.0
带内网络遥测 (INT) 是一种供应商中立的网络监控框架,可在转发(数据)平面中提供每跳粒度数据。INT 允许您观察由微爆发、数据包传输延迟、每个节点的延迟以及流路径中的新端口引起的流模式变化。
带内流分析器 (IFA) 2.0 是 Junos OS 交换机中 INT 的实现。IFA 使设备能够收集流数据并将数据导出到外部收集器,以进行逐跳或端到端分析。IFA 使用探测数据包来收集数据,例如每跃点延迟、每个跃点入口和出口端口、数据包接收 (RX) 时间戳(以秒为单位)、队列 ID、拥塞和出口端口速度。IFA 数据包遍历网络中的相同路径,并使用与转发平面中的数据包相同的队列。因此,IFA 数据包经历与数据包类似的延迟和拥塞。
带内遥测解决方案的优势
- 对流数据进行采样并将数据导出到收集器的速度比传统的遥测引入更快。
- 提供实时网络中故障、延迟和拥塞来源的精细视图。
设备配置
QFX5120-32C 和 QFX5120-48Y 设备支持使用 IFA 2.0 的带内网络遥测 (INT)。IFA 探测数据包收集流量指标,并以互联网协议流信息导出 (IPFIX) 格式导出数据。Paragon Automation 支持使用 IFA 传感器分析 IPv4 虚拟可扩展 LAN (VXLAN) 流量数据。如果外部 L4 报头(第 4 层报头)中将标准 VXLAN 端口 4789 作为目的端口存在,Paragon Automation 可识别 VXLAN 流。包含 VXLAN 流数据的 IFA 2.0 数据包格式如图 1 所示。
IFA使用收入端口将数据导出到收集器。不能使用管理端口导出 IFA 数据。
IFA 探测数据包在收集流信息时使用三个具有单独功能的节点:
-
IFA 发起方节点(入口节点)— 对 IPv4 VXLAN 流量进行采样,通过添加 IFA 报头将数据包转换为 IFA 格式,并使用发起方节点元数据更新 IFA 探测数据包。IFA 标头具有 IFA 元数据堆栈允许的总最大长度。元数据堆栈是每个节点添加其各自特定于跃点的元数据的位置。
-
IFA 传输节点 — 标识 IFA 数据包并将元数据追加到数据包的元数据堆栈中。传输节点根据 IFA 标头中的总最大长度检查当前长度。如果当前长度等于或超过最大长度,则交通节点不会将其元数据追加到 IFA 元数据堆栈。
-
IFA 终止节点(出口节点 - 附加其元数据并将流数据的副本导出到 IFA 2.0 应用程序(IFA 固件)。IFA 应用程序添加出口端口号,将数据包转换为 IPFIX 格式,然后将其发送到收集器,例如 Paragon Automation。
有关更多信息,请参阅 IFA 2.0探头进行实时监测 。
您必须在 QFX5120-32C 和 QFX5120-48Y 交换机中配置 IFA 发起方节点、IFA 传输节点和 IFA 终止节点。
Paragon Automation 配置
在 Paragon Automation 中,您必须执行以下任务:
-
配置部署节点的 IP 地址和设备组中的 UDP 端口。Paragon Insights 在配置的部署节点上部署 IFA 摄取。
有关详细信息 ,请参阅添加设备组 。
-
在设备中配置一个或多个 IFA 流 IP 地址。有关详细信息,请参阅 编辑设备 。
-
为 IFA 引入创建规则。
有关更多信息,请参阅 在 Paragon Automation GUI 中配置自定义规则 。
-
创建操作指南并在设备组中部署操作指南实例。
请参阅使用 Paragon Insights GUI 创建操作 指南,以在 Paragon Automation 中创建操作指南。
请参阅 管理操作手册实例 以部署操作指南。
-
在引入中配置设备详细信息,例如设备名称和设备 ID。请参阅 配置带内流分析器设备的设备详细信息。
Paragon Automation 支持 hb_ifa_v2_0 作为 IFA 传感器名称。IFA传感器支持 表1中所述的字段。
字段 | 键字段 | 数据类型 | 说明 |
---|---|---|---|
source_ip | 是的 | 字符串 | 源自 IFA 流数据包的发起方节点的 IP 地址。 |
source_port | 是的 | 字符串 | IFA 数据包源自的发起方节点的源端口。 |
dest_ip | 是的 | 字符串 | 终止节点的 IP 地址。 |
dest_port | 是的 | 字符串 | 导出 IFA 数据包的终止节点的目标端口。 |
原 | 是的 | 字符串 | 用于 IFA 流的协议的值。 |
跳 | 是的 | 字符串 | 跃点字段表示 IFA 数据包遍历的跃点数。如果有 n 个节点,则跃点值从 1 开始(对于发起方节点),2 表示传输节点,依此类推,直到到达分配了值 n 的终止节点。
注意:
IFA 传感器还可以分配跃点值 65,535,以描述端到端延迟和完整的 IFA 流路。 在 Paragon Automation 规则中,跃点字段捕获每个跃点的序列号(跃点值)。 |
node_id | 不 | 字符串 | 当跃点字段的值不是 65,535 时,IFA 发起方节点、IFA 传输节点或 IFA 终止符节点的设备 ID。设备 ID 存在于 IFA 元数据堆栈中。 当跃点字段的值为 65,535 时,node_id字段表示 IFA 探测数据包采用的完整路径。 |
node_name | 不 | 字符串 | 显示与 关联的 node_idIFA 节点的名称(如果之前已将 Paragon Automation 配置为显示node_name)。 如果未将 Paragon Automation 配置为显示node_name,则会显示node_id。 |
ingress_port | 不 | 字符串 | IFA 流进入的节点的入口端口。 |
egress_port | 不 | 字符串 | IFA 流通过的节点的出口端口。 |
egress_portspeed | 不 | 无符号整数 32 | 出口端口的速度(以千兆位/秒为单位)。 |
congestion_bits | 不 | 无符号整数 32 | 拥塞位,指示 IFA 数据包是否遇到拥塞。 |
queue_id | 不 | 无符号整数 32 | 节点中 IFA 数据包占用的队列的标识符 (ID)。 |
residence_time_ns | 不 | 无符号整数 32 | 节点内的 IFA 数据包所花费的时间(以纳秒为单位)。 |
rx_ts_ns | 不 | 无符号整数 64 | IFA 探测数据包进入节点时接收时间戳值。 |
延迟 | 不 | 无符号整数 64 | 当跃点字段不是 65,535 时,当前节点和前一个节点的接收时间戳之间的差异。 当跃点字段的值为 65,535 时,延迟字段表示完整路径的端到端延迟。 |
Paragon Automation 将 IFA 数据作为 IPFIX 记录摄取,并在时间序列数据库 (TSDB) 中为每个 IPFIX 记录创建多行条目。TSDB 行捕获每个跃点的详细信息,例如:
- 入口和出口端口
- 延迟
- 接收数据包 (RX) 时间戳
- 在每个跃点递增的序列号
- 从发起方节点到终止节点的端到端延迟记录