用于实时流量监控的带内流分析器 (IFA) 2.0 探测器
带内流分析器 (IFA) 2.0 以网络的每跃点为基础收集数据。您可以将此数据导出到外部收集器,以执行本地化或端到端分析。
带内流分析器 2.0
- 带内流分析器 2.0 概述
- 优势
- 模式(仅限 Junos OS Evolved)
- 带内流分析器进程
- IFA 探针数据包标头
- IFA 探测数据包的尾戳(仅限 QFX5220)
- IFA 节点上支持的功能
- IFA 2.0 配置的限制
- 使用注意事项
带内流分析器 2.0 概述
带内流分析器 2.0 (IFA 2.0) 是一项功能,可用于在数据包进出网络时对其进行监控和分析。作为网络管理员,您可以使用此功能收集与数据包通过网络的路径以及数据包在每个跃点上花费的时间相关的数据。这些数据表明延迟过大,可能存在拥塞。此功能通过收集数据平面上的单跃点流数据,帮助您获得有关复杂网络的见解。
IFA 使用探测数据包来收集全网的流数据。IFA 对感兴趣的流进行采样并生成探测数据包。这些数据包代表原始流量,具有与原始流量相同的特征。这意味着 IFA 数据包在网络中遍历与原始数据包相同的路径和网络元素中的相同队列。因此,IFA 探针数据包遍历与原始流量相同的网络路径,会经历类似的延迟和拥塞。
您可以使用带内流分析器 2.0 (IFA 2.0) 收集流数据信息,例如:
- 停留时间(延迟)
- 单跃点延迟
- 单跃点入口端口号
- 单跃点出口端口号
- 收到的数据包时间戳值
- 队列 ID
- 拥塞通知
- 出口端口速度
IFA 2.0 在标题为 带内流分析器的 IETF 草案 draft-kumar-ippm-ifa-02 中定义。
优势
- IFA 探测数据包遍历与原始流量相同的网络路径,有助于监控网络是否存在故障和性能问题。
- 监控实时流量,从而帮助执行数据包级延迟分析和队列拥塞监控,以优化网络性能。
模式(仅限 Junos OS Evolved)
从 Junos OS 演化版 25.4R1 版开始,IFA 2.0 功能支持两种模式。新模式如下:
-
在实时模式下,对于支持它的交换机,IFA 2.0 将原始数据包用作 IFA 探查数据包。
-
在探查模式下,IFA 2.0 使用原始数据包的副本作为 IFA 探测数据包。此模式是默认模式,其行为方式与 Junos OS 演化版 25.4R1 之前的此功能相同。
将 IFA 发起器节点配置为发起 IFA 探测数据包时:
-
在实时模式下,发起方会将 IFA 标头和元数据插入实时数据包中。
-
在探查模式下,发起方对流量进行采样并复制该采样以创建探查。
如果配置 IFA 终止器节点来解析数据包中的 IFA 报头,以确定它是实时数据包还是探测数据包,请执行以下作:
-
如果是实时数据包,则终止程序将剥离 IFA 层,并将修改后的实时数据包转发到其目标。
-
如果数据包是探测数据包,则终止程序将丢弃该数据包并向收集器发送镜像副本。
要指定模式,请在层次结构级别配置mode (live | probe)[edit services inband-flow-telemetry]该语句。默认模式为 probe。使用此show services inband-flow-telemetry global命令可查看包含模式信息的探测结果。
带内流分析器进程
IFA 使用以下处理节点(如 图 1 所示)来监视和分析流量:
- IFA 发起节点(也称为入口节点)
- IFA 中继节点
- IFA 终止节点(也称为出口节点)
IFA 2.0 支持处理第 3 层 (L3) 和 VXLAN 流,但您不能在同一设备上同时为 L3 和 VXLAN 流配置 IFA。流类型选项是互斥的。您可以使用配置 flow-type 语句设置关注的流量类型 — L3 或 VXLAN。您仅为 IFA 发起节点和 IFA 终止节点(通常是叶节点)配置该 flow-type 语句。对于 IFA 中转节点(通常是主干节点),无需配置 flow-type 该语句。
表 1 总结了 IFA 处理节点执行的不同功能:
| IFA 节点 | 功能 |
|---|---|
| IFA 发起器节点 | 对感兴趣的流量(L3 或 VXLAN)进行采样,并通过向每个样本添加 IFA 报头来创建 IFA 副本。如果配置了实时模式,则发起方会将 IFA 标头和元数据插入实时数据包中。 |
| IFA 中继节点 | 标识 IFA 数据包,并将其元数据追加到数据包中的元数据堆栈。
|
| IFA 终止节点 |
注意:
IFA 终止功能需要有效的瞻博网络高级遥测功能 (ATF) 许可证。 |
IFA 探针数据包标头
IFA 2.0 探测数据包包含以下内容:
- IFA 报头
- IFA 元数据报头
- IFA 元数据堆栈
图 2 显示了 IFA 发起方节点上的 L3 IFA 2.0 数据包格式:
图 3 显示了 IFA 发起节点上的 VXLAN IFA 2.0 数据包格式。
使用 VXLAN 时,将使用三遍机制在 VXLAN 封装之后添加 IFA 报头。
IFA 报头
IFA 2.0 定义了上层报头 (ULH),类似于 TCP、UDP、通用路由封装 (GRE) 和生成树协议 (STP) 对 ULH 的定义。IFA ULH 始终是 IP 报头后的第一个报头,即使还有一些其他 IPv4 扩展报头也是如此。该 NextHdr 字段(即 Protocol Type IFA 报头中的字段)携带原始 IP 报头协议字段值。 图 4 显示了 IFA 标头格式。
| IFA 表头字段 | 说明 |
|---|---|
| IFA 版本 | IFA 标头的版本。在当前实现中,IFA 版本为 2.0。 |
| GNS | IFA 元数据的全局命名空间 (GNS)。IFA 发起器节点将此字段的值设置为0xF。 |
| 协议类型 | IP 报头协议类型。此值从 IP 报头复制。 |
| 标志 | 未使用 |
| 最大长度 | 元数据堆栈允许的最大长度(以四个八位位组的倍数为单位)。发起方节点将初始化此字段。路径中的每个节点都会比较当前长度和最大长度。如果当前长度等于或超过最大长度,则传输节点将停止插入元数据。您可以配置此最大允许长度。默认值为 240 个八位位组(30 个跃点)。 |
IFA 元数据报头
IFA 2.0定义了一个紧凑的4字节元数据标头,如 图5所示。IFA 发起器节点会将此报头添加到探查数据包中。
| IFA 元数据表头字段 | 说明 |
|---|---|
| 请求向量 | 指定 GNS 指定的字段的存在。未使用。 |
| 动作向量 | 指定对 IFA 数据包的节点本地或端到端作。未使用。 |
| 跳跃限制 | 指定 IFA 区域中允许的最大跃点数。发起方节点将初始化此字段。跃点限制在每个跃点处递减。如果传入数据包的跃点限制为 0,则当前节点不会插入元数据。您可以配置此限制。默认值为 250。 终止节点不执行跃点限制检查。 |
| 当前长度 | 指定元数据堆栈的当前长度(以 4 个八位位组的倍数表示)。 |
IFA 元数据堆栈
每个 IFA 跃点都会将特定于跃点的元数据插入到 IFA 元数据堆栈中,如 图 6 所示。IFA 发起器节点在 L4 标头之后添加元数据标头。
作为过渡节点的 QFX5220 无法将元数据插入 IFA 探针数据包标头的元数据堆栈中。相反,QFX5220 会在 IFA 探测数据包末尾添加一个尾戳,其中包含时间戳和其他元数据。有关这些尾戳的详细信息,请参阅 IFA 探测数据包的尾戳(仅限 QFX5220)。
QFX5230 不支持 IFA 2.0 元数据堆栈中的出口端口速度字段。无论出口端口速度如何,该字段中的值始终为“0”。
| IFA 元数据堆栈标头字段 | 说明 |
|---|---|
| LNS | 本地命名空间。您必须将 LNS 值设置为 1。 |
| 设备 ID | 用户可配置的设备 ID。您可以显式配置设备 ID 或配置 device-id auto 语句。如果配置 device-id auto,则设备 ID 将从路由器 ID 或管理 IP 地址内部生成。 |
| IP TTL | 每个跃点的 IP 生存时间 (TTL) 值。 |
| 出口端口速度 | 编码为 0–10Gbps、1–25Gbps、2–40Gbps、3–50Gbps、4–100Gbps、5–200Gbps、6–400Gbps。 出口端口速度与 IFA 元数据映射。例如,当出口端口速度为 10Gbps 时,IFA 数据包的速度字段设置为 0。 |
| 拥堵 | 指示数据包是否出现拥塞。您必须在出口端口上启用显式拥塞通知 (ECN)。 |
| 队列 ID | 出口端口队列 ID。 |
| Rx 时间戳秒 | 收到的数据包时间戳值(以秒为单位)。收集器负责从这些 20 位值中检索一天的时间 (ToD)。20 位秒将每 12 天绕行一次。收集器必须在环绕时间内定期同步 ToD,并将其与元数据中的 20 位一起使用,以派生 32 位 Rx Timestamp Seconds 值。 |
| 出口端口号 | 出口硬件 (ASIC) 端口号。 |
| 入口端口号 | 入口硬件端口号。 |
| Rx 时间戳纳秒 | 收到的时间戳值(以纳秒为单位)。此时间戳是时间戳之后的确切值(以秒为单位)。将其添加到 Rx 时间戳秒数值,以获得纳秒精度的精确时间戳。 |
| 停留时间纳秒 | 单跃点延迟(以纳秒为单位)。对于QFX5120,停留时间计算为 0x3B9ACA00(1 秒以纳秒为单位)+ TX_NSEC - RX_NSEC。(每个数据包都会额外增加一秒,以避免环绕处理。相反,对于 QFX5130、QFX5220 和 QFX5700,停留时间将作为实际值更新。 |
IFA 探测数据包的尾戳(仅限 QFX5220)
作为过渡节点的 QFX5220 无法将元数据插入 IFA 探针数据包标头的元数据堆栈中。相反,QFX5220 会在 IFA 探测数据包末尾添加一个尾戳,其中包含时间戳和其他元数据。QFX5220 总共添加 28 字节的元数据作为尾戳。收到 IFA 探测数据包后,IFA 终止节点使用元数据中的 TTL 值来识别尾戳的数量(即,两个 QFX5120 或 QFX5130 设备之间路径上的 QFX5220 跃点数)。然后,尾戳被转换为正确的元数据格式,并插入到元数据堆栈中的正确位置,以便元数据按照中转节点添加它们的顺序显示。完成后,IFA 终止节点会将数据以 IPFIX 格式导出到配置的外部收集器。
由于无法将元数据插入堆栈中,因此在收集器上接收的 IFA 元数据堆栈字段 IP TTL 和 Congestion Egress Port Speed QFX5220 的值为 0。您必须将收集器配置为忽略 QFX5220 中这些不受支持的字段。
尾戳包括 14 个字节的入口 (Rx) 尾戳和 14 个字节的出口 (Tx) 尾戳。 图 7 和 图 8 提供了有关这些时间戳格式的详细信息。
IFA 节点上支持的功能
表 5 列出了 IFA 节点支持的功能。
| IFA 节点 | 支持的功能 |
|---|---|
| IFA 发起器 | 流量和接口类型:
|
| IFA 中继 | 识别 IFA 数据包,附加其元数据并转发。 |
| IFA 终止 |
|
支持的 IFA 2.0 IPFIX 格式(终止节点)
终止节点将 IFA 2.0 数据包格式化为 IPFIX 格式,更新出口端口信息,并将数据包发送到配置的收集器。IFA 2.0 IPFIX 模板对于 L3 流量和 VXLAN 流量是相同的。 图 9 显示了 IPFIX 模板,其中终止节点在其中对 IFA 2.0 数据进行格式化并将其发送到收集器。
QFX5240 交换机不使用这些 IPFIX 模板。相反,QFX5240交换机会终止 IFA 数据包,对其进行镜像封装,然后将数据包作为 IPFIX PSAMP 数据包发送到收集器。PSAMP 数据包包含收集器的目标 MAC 地址、收集器的源 MAC 地址、源 IP 地址、目标 IP 地址、UDP 源端口、UDP 目的端口、IPFIX PSAMP 报头以及 IFA 数据包的 MAC 源和目标地址。这些字段后面跟着 IP 层标头、IFA 标头、L4 层 (UDP/TCP) 标头、IFA 元数据标头和堆栈以及有效负载。
图 10 显示了配置的收集器以 IPFIX 格式接收的 VXLAN IFA 2.0 数据包示例。
IFA 2.0 配置的限制
在运行 Junos OS 的设备上配置 IFA 2.0 之前,必须了解以下限制:
-
协议号 — IFA 2.0 使用实验协议号 253。如果交换机收到协议号为 253 的任何流量,这些数据包将命中 IFA 中转过滤器。在这种情况下,QFX5220 会向这些数据包添加一个 28 字节的尾戳。对于 QFX5130 和 QFX5700 交换机,即使数据包命中过滤器,IFA 元数据也不会添加到数据包中。但是,IFA 传输统计信息确实会递增。
-
过滤器资源分配 (Filter Resource Allocation) - 如果系统中的过滤器硬件资源已耗尽,则 IFA 功能无法运行,因为它需要过滤器资源。您可以监控系统日志 (syslog) 以查找过滤器空间耗尽错误。
-
第 2 层和 BUM 流量 — 第 2 层交换流量和广播、未知单播和组播 (BUM) 流量不支持 IFA 2.0。
-
IFA 第 3 层和 VXLAN 流
- IFA 2.0 支持同时处理 L3 和 VXLAN 流,但您不能在同一设备上同时为 L3 和 VXLAN 流配置 IFA。选项
flow-type是互斥的。您可以使用配置flow-type语句设置关注的流量类型 — L3 或 VXLAN。此限制仅适用于 IFA 发起节点和终止节点(通常是叶节点)。对于 IFA 传输节点(通常是主干节点),不需要配置流类型。 - 对于 VXLAN IFA 流,终止节点的出口端口相关元数据(包括出口端口号、速度、队列 ID 和拥塞)不正确。建议忽略 VXLAN 流的终止节点出口端口相关元数据。
-
对于 VXLAN 流,发送到收集器的 IFA 终止数据包仅包含来自发起方节点和所有中转节点的元数据。这些数据包不包含来自终止器节点的元数据。
- IFA 流类型(L3 或 VXLAN)更改需要移除并重新配置 IFA 过滤器。如果出现流量类型不匹配(例如,
flow-type配置为 VXLAN,而传入流量为 L3,反之亦然),我们无法保证 IFA 行为(IFA 探测数据包可能使用无效字段启动)。
- IFA 2.0 支持同时处理 L3 和 VXLAN 流,但您不能在同一设备上同时为 L3 和 VXLAN 流配置 IFA。选项
-
IFA 发起器节点
- L4 报头 (UDP/TCP) 对于 IFA 启动是必需的。
- 如果出口端口配置为充当链路聚合组 (LAG)(将叶连接到主干的链路),则 VXLAN 流的 IFA 启动不起作用。
- 您不能为 IFA 发起方端口上的不同流量配置不同的采样率。端口内的所有流量必须具有相同的采样率。
-
IFA 传输节点 — 运行 Junos OS 和 Junos OS Evolved 的设备不支持元数据堆栈的最大长度检查。配置该
hop-limit选项以限制在传输节点上插入元数据。QFX5220 无法执行跃点限制检查来插入尾戳。QFX5220 也无法将元数据插入 IFA 探测数据包标头的元数据堆栈中;相反,QFX 5220 会在 IFA 探测数据包末尾附加一个尾戳。QFX5220 仅支持 18 位
Rx Seconds Timestamp的值。QFX5130和QFX5700支持 20 位Rx Seconds Timestamp值。该
Residence Time Nano Seconds字段将更新为QFX5220、QFX5130和QFX5700传输节点上的实际值,但在QFX5120传输节点上,1 秒 (10000000000) 将与实际停留时间一起添加。 -
IFA 终止节点
- 您只能在终止节点上配置一个 IPv4 收集器。
- 终止节点元数据的队列 ID 为 47。此队列 ID 保留用于 IFA 数据包导出。
- 终止节点不执行跃点限制检查。即使传入 IFA 数据包
hop-limit设置为 0,终止节点也会插入元数据并将跃点限制减少 1,从而将值重置hop-limit为 255。
使用注意事项
以下是与 IFA 2.0 相关的使用注意事项:
- 采样的 IFA 数据包在发起方节点上出口时,还有额外的 40 个字节(4 字节 IFA 报头 + 4 字节 IFA 元数据报头 + 32 字节元数据)。在后续 IFA 节点上,每个跃点都会插入 32 字节的 IFA 元数据。由于将每跃点元数据插入 IFA 数据包中,因此数据包大小在每一跳后都会增长。您必须沿网络路径相应配置接口的最大传输单元 (MTU)。如果 IFA 区域具有大量传输节点,则必须注意 MTU。或者,您可以在发起方节点上配置该
hop-limit选项,以确保 IFA 数据包的大小永远不会超过指定的 MTU 值。 - 要选择感兴趣的流量,可以使用源 IP 地址、目标 IP 地址、源端口、目标端口和协议匹配限定符的任意组合。对于 VXLAN 终止,请使用外部源 IP 地址和目标 IP 地址匹配限定符。IFA 2.0 不支持任何其他匹配限定符。
另一种选择是配置不带任何限定符的终止过滤器。在这种情况下,端口上的所有传入 IFA 数据包都将被终止。
- 您必须为 IFA 区域内的每个跃点配置唯一的设备 ID。如果已配置
auto设备 ID 选项,则设备 ID 将从路由器 ID 或管理 IP 地址的最后 20 位生成。 - 如果已将采样率配置为
aggressive,则出口端口可能会由于 IFA 副本较多而出现拥塞。当将 IFA 副本发送到芯片处理器进行 IPFIX 导出时,这种端口拥塞可能会在终止节点上造成拥塞。我们建议您相应地选择采样率。 - 配置 IFA 2.0 发起器时,将为环路端口创建内部镜像会话。因此,用户可配置的镜像会话数从 4 个减少到 3 个。
- 终止节点接受最大 9000 字节的 IFA 数据包(包括 IFA 标头)。在终止节点上,收到的多个 IFA 数据包会合并为一个 IPFIX 导出数据包。在一个 IPFIX 导出数据包中最多可组合 10 条 IFA 记录。默认情况下,最多 256 字节的原始流数据包与 IFA 报头一起作为 IPFIX 导出的一部分导出。单个 IPFIX 数据包的最大大小为 9000 字节。您必须在收集器端口上正确配置 MTU。由于单个 IPFIX 数据包的最大大小为 9000 字节,因此 IPFIX 数据包的最大裁剪长度等于或小于: 9000 字节 -(IFA 标头长度 + IFA 元数据标头长度 + IFA 元数据堆栈长度)。
- 建议仅在 IFA 区域中使用 IFA 感知(受支持)设备。我们无法保证使用 IFA 感知不及时的设备能实现正确的 IFA 行为。
配置带内流分析器 2.0
IFA 是一种带内网络遥测 (INT),可让您通过数据平面收集有关网络状态的信息。
要配置 IFA 2.0 来监控网络故障、性能问题并收集数据进行分析,需要先配置 IFA 角色。您可以在支持 IFA 功能的 Junos OS 或 Junos OS 演化版设备上配置 IFA 角色。有关支持的设备,请参阅 功能浏览器:带内流分析器 (IFA) 2.0 。
以下是为 IFA 角色配置 Junos OS 设备的一些准则:
- 您可以使用相同型号的交换机或不同的交换机来为特定 IFA 流扮演 IFA 角色(发起方、中继方、终止方)。
- 您可以使用同一设备为不同的流执行所有三个不同的 IFA 角色。
- 在 IFA 流中,传输 IFA 角色可选。
图 11 展示了在 Junos OS 设备上配置 IFA 节点的示例场景。在此场景中,支持 IFA 功能的不同 Junos OS 设备在单个 IFA 流中扮演不同的 IFA 角色。
以下是有关配置 IFA 节点的一些准则:
- 只能通过防火墙过滤器配置在接口上启用 IFA 配置。
- 您只能对端口上的入口方向应用 IFA 过滤器。
表 6 总结了 IFA 发起节点、中继节点和终止节点的配置。
| IFA 配置参数 | 配置语句 | IFA 角色 |
|---|---|---|
| (必填)配置设备 ID | user@host# set services inband-flow-telemetry device-id (<1 - 1048575> | auto) |
IFA 发起节点、中继节点和终止节点的必需配置。 |
| (可选,仅限 QFX5120-48YM 或 QFX5220)配置更准确的时钟源 | user@host# set services inband-flow-telemetry clock-source (ntp|ptp) |
IFA 发起节点、中继节点和终止节点。 |
| (选答)IFA 最大元数据堆栈长度 | user@host# set services inband-flow-telemetry meta-data-stack-length <8 - 255> 默认值:240(用于 30 跳) |
IFA 发起器节点 |
| (选答)IFA 最大跃点限制 | user@host# set services inband-flow-telemetry hop-limit <1 - 250> 默认值 : 250 |
IFA 发起器节点 |
| (选答)IPv6 地址不匹配 | user@host# set services inband-flow-telemetry no-ipv6-address-match |
IFA 发起方/终止节点 |
| (必填)IFA 流类型 | user@host# set services inband-flow-telemetry flow-type (l3 | vxlan) |
IFA 发起节点和终止节点的必需配置。IFA 中继节点不需要此配置。 |
| IFA 采样 | user@host# set services inband-flow-telemetry profile ifa-profile-name sample-rate <1-16777215> |
IFA 发起器节点 |
| 收集器信息 | user@host# set services inband-flow-telemetry profile ifa-profile-name collector source-address IP-address user@host# set services inband-flow-telemetry profile ifa-profile-name collector destination-address IP-address user@host# set services inband-flow-telemetry profile ifa-profile-name collector destination-port port-number user@host# set services inband-flow-telemetry profile ifa-profile-name collector maximum-clip-length length user@host# set services inband-flow-telemetry profile ifa-profile-name collector mtu size |
IFA 终止节点 |
| 用于 L3 流的 IFA 过滤器 | 例如: user@host# set firewall family inet filter f1 term t1 from match-condition user@host# set firewall family inet filter f1 term t1 then inband-flow-telemetry-init p1 user@host# set firewall family inet filter f1 term t2 from match-condition user@host# set firewall family inet filter f1 term t2 then inband-flow-telemetry-terminate p2 user@host# set interfaces (interface-name | wildcard) unit 0 family inet filter input f1 |
IFA 发起方/终止节点 |
| 用于 VXLAN 流的 IFA 过滤器 | 例如: user@host# set firewall family ethernet-switching filter f1 term term1 from match-condition user@host# set firewall family ethernet-switching filter f1 term t1 then inband-flow-telemetry-init p1 user@host# set firewall family ethernet-switching filter f1 term t2 from match-condition user@host# set firewall family ethernet-switching filter f1 term t2 then inband-flow-telemetry-terminate p2 user@host# set interfaces (interface-name | wildcard) unit 0 family ethernet-switching filter input f1 |
IFA 发起方/终止节点 |
配置 IFA 发起器节点
要将设备配置为 IFA 2.0 发起方,请执行以下作:
配置 IFA 中继节点
要将设备配置为 IFA 中继节点:
device-id值auto。如果配置device-id为 auto,则从device-id路由器 ID 或管理 IP 地址内部生成。
user@host# set services inband-flow-telemetry device-id (id-number | auto)
例如:
user@host# set services inband-flow-telemetry device-id 10001
配置 IFA 终止节点
要将设备配置为 IFA 终止节点:
查看带内流分析器统计信息
您可以查看以下 IFA 相关信息:
- 使用作模式命令的
show services inband-flow-telemetry statsIFA 统计信息。 - IFA
show services inband-flow-telemetry global全局参数。 - 使用作模式命令配置的
show services inband-flow-telemetry profileIFA 配置文件。
您可以使用作模式命令清除 clear inband-flow-telemetry stats IFA 统计信息。
IFA 统计信息直接从 PFE 中检索,不在路由引擎中维护。因此,PFE 进程重新启动将清除 IFA 统计信息,而路由引擎进程重新启动不会影响 IFA 统计信息。
示例 - 配置带内流分析器 2.0 以进行流量监控
使用此示例在 QFX 系列交换机上配置 IFA 2.0 节点,以便分析第 3 层或 VXLAN 流量。 图 12 显示了在支持 IFA 2.0 功能的 QFX 系列交换机上配置 IFA 2.0 的拓扑。在此拓扑中,VXLAN 流量在发起方受到监控,并在终止节点上收集数据进行分析。
分析 VXLAN 流量的拓扑
要求
此示例使用以下硬件和软件组件:
- 将一台 QFX5120-32C 交换机用作主干节点
- 两台 QFX5120-48Y 交换机作为叶节点
- Junos OS 21.4R1 版
先决条件
此示例假设您已拥有基于 EVPN-VXLAN 的网络,并希望在 QFX 交换机上启用流量监控。
开始之前
- 请确保您了解 EVPN 和 VXLAN 的工作原理。请参阅 示例:在 EVPN-VXLAN 环境中配置 IRB 接口,为数据中心的主机提供第 3 层连接 ,以及桥 接叠加设计和实施 ,以深入了解 EVPN-VXLAN。
- 要使 IFA 终止节点配置生效,您需要拥有有效的高级遥测功能 (ATF) 许可证。
概述
在此示例中,您将其中一台 QFX5120-48Y 交换机(枝叶 1)配置为发起节点,将 QFX5120-32C 交换机配置为过渡节点,并将第二台 QFX5120-48Y 交换机(枝叶 2)配置为终止节点。VXLAN 流量从主机 1 流向主机 2。在入口和出口节点上配置 IFA 可以监控网络运维并识别性能问题。
QFX5120-32C 可用作连接 QFX5120-48Y 叶节点的主干。在终止节点上,您可以使用 IPv4 收集器应用程序以 IPFIX 格式收集采样流量。
配置
在此示例中,您将在交换机上配置以下功能:
- 将叶 1 配置为发起方节点,并配置与发起方相关的属性,如全局设备标识符和采样率。使用作 AS
inband-flow-telemetry-init配置 IFA 配置文件和防火墙过滤器,并将 IFA 防火墙过滤器绑定到接口。 - 将 QFX5120-32C 主干交换机配置为具有全局设备标识符的中转节点。配置全局设备标识符时,主干设备将添加 IFA 元数据并转发 IFA 探测数据包。
- 将叶 2 配置为终止节点。使用收集器信息配置 IFA 配置文件,将作配置
inband-flow-telemetry-terminate为防火墙过滤器,并将 IFA 防火墙过滤器绑定到接口。
CLI 快速配置
要在 QFX 系列设备上快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改任何必要的详细信息以匹配您的网络配置,然后将命令复制并粘贴到层次结构级别的 [edit] CLI 中。
QFX5120-48Y 交换机上的配置(枝叶 1 - IFA 发起器节点)
回想一下,在此示例中,您将 IFA 添加到预配置的 EVPN-VXLAN 基准中。此处显示的配置侧重于将 IFA 添加到基线所需的增量。我们展示了一些现有配置,以最好地显示 IFA 增量与基线的关系。
set services inband-flow-telemetry device-id 15000 set services inband-flow-telemetry meta-data-stack-length 100 set services inband-flow-telemetry hop-limit 4 set services inband-flow-telemetry flow-type vxlan set services inband-flow-telemetry profile ifa_profile_host1 sample-rate 1 set interfaces et-0/0/51:0 unit 0 family ethernet-switching filter input f_init set firewall family ethernet-switching filter f_init term t1 from ip-protocol udp set firewall family ethernet-switching filter f_init term t1 from ip-protocol tcp set firewall family ethernet-switching filter f_init term t1 then inband-flow-telemetry-init ifa_profile_host1 set firewall family ethernet-switching filter f_init term t1 then count ifa_stats set firewall family ethernet-switching filter f_init term t1 then accept set firewall family ethernet-switching filter f_init term t2 then count non_ifa_stats set firewall family ethernet-switching filter f_init term t2 then accept
QFX5120-32C 交换机上的配置(IFA 中转节点)
set services inband-flow-telemetry device-id 15001
QFX5120-48Y 交换机上的配置(叶 2 — IFA 终止节点)
set services inband-flow-telemetry device-id 15002 set services inband-flow-telemetry meta-data-stack-length 100 set services inband-flow-telemetry hop-limit 5 set services inband-flow-telemetry flow-type vxlan set services inband-flow-telemetry profile p_term collector source-address 172.16.3.1 set services inband-flow-telemetry profile p_term collector destination-address 172.16.3.2 set services inband-flow-telemetry profile p_term collector destination-port 3055 set interfaces xe-0/0/18 unit 0 family inet filter input f_term set interfaces xe-0/0/45 description To_Collector set interfaces xe-0/0/45 unit 0 family inet address 172.16.3.1/24 set firewall family inet filter f_term term ifa then inband-flow-telemetry-terminate p_term set firewall family inet filter f_term term ifa then count ifa_term set firewall family inet filter f_term term other then count non_ifa_term set firewall family inet filter f_term term other then accept
分步程序
将 QFX5120-48Y 交换机(叶 1)配置为发起节点
IFA 发起器节点对流执行以下功能:
- 根据配置对感兴趣的流量进行采样。
- 通过向每个示例添加 IFA 标头,将流量转换为 IFA 流。
- 使用发起方节点元数据更新数据包。
-
配置 IFA 发起器节点属性。流量类型配置为发起方节点的 VXLAN。请注意,您必须为发起方和终止节点配置相同的流类型(L3 或 VXLAN)。在此示例中,如果为发起方节点配置了 VXLAN 流量类型,请确保也为终止节点配置 VXLAN 流量类型。
当配置为值为 1 时[edit] user@host# set services inband-flow-telemetry device-id 15000 user@host# set services inband-flow-telemetry meta-data-stack-length 100 user@host# set services inband-flow-telemetry hop-limit 4 user@host# set services inband-flow-telemetry flow-type vxlan user@host# set services inband-flow-telemetry profile ifa_profile_host1 sample-rate 1
sample-rate,将对入口端口接收到的每个数据包进行采样。如果您更喜欢不太激进的采样,请增加该sample-rate值。 -
将过滤器绑定到发起方节点入口接口。
[edit] user@host# set interfaces et-0/0/51:0 unit 0 family ethernet-switching filter input f_init
-
创建防火墙以控制 IFA 采样。首先定义应采样的主机流量类型。在此示例中,您希望对 UDP 和 TCP 流量流执行分析。在此示例中,您将配置一个名为
f_init的防火墙过滤器,术语名称term1为 。[edit] user@host# set firewall family ethernet-switching filter f_init term t1 from ip-protocol udp user@host# set firewall family ethernet-switching filter f_init term t1 from ip-protocol tcp user@host# set firewall family ethernet-switching filter f_init term t1 then accept
您可以通过向术语添加t1作修饰符
inband-flow-telemetry-init来配置过滤器以执行 IFA 采样。请注意,带内流遥测配置文件ifa_profile_host1链接到过滤器:user@host# set firewall family ethernet-switching filter f_init term t1 then inband-flow-telemetry-init ifa_profile_host1 user@host# set firewall family ethernet-switching filter f_init term t1 then count ifa_stats user@host# set firewall family ethernet-switching filter f_init term t2 then count non_ifa_stats user@host# set firewall family ethernet-switching filter f_init term t2 then accept
将 QFX5120-32C 交换机配置为过渡节点
IFA 中继节点在指定 VXLAN 流的 IFA 数据包中插入中继节点元数据。
为过渡节点 QFX5120-32C 交换机配置全局设备标识符。
user@host# set services inband-flow-telemetry device-id 15001
将 QFX5120-48Y 交换机(叶 2)配置为终止节点
IFA 终止节点对流执行以下作:
- 在 IFA 数据包中插入终止节点元数据。
- 对一个或多个元数据段执行本地分析功能,例如,停留时间阈值突破、拥塞通知等。
- 在克隆流量的情况下过滤 IFA 流。
- 将数据包的副本或报告发送到收集器。
- 移除 IFA 标头并在有实时流量的情况下转发数据包。
-
配置终端节点相关属性,如全局设备标识符和流量类型。
user@host# set services inband-flow-telemetry device-id 15002 user@host# set services inband-flow-telemetry meta-data-stack-length 100 user@host# set services inband-flow-telemetry hop-limit 5 user@host# set services inband-flow-telemetry flow-type vxlan
使用收集器相关信息配置 IFA 配置文件。
user@host# set services inband-flow-telemetry profile p_term collector source-address 172.16.3.1 user@host# set services inband-flow-telemetry profile p_term collector destination-address 172.16.3.2 user@host# set services inband-flow-telemetry profile p_term collector destination-port 3055
-
配置用于终止节点叶 2 的收集器接口。
user@host# set interfaces xe-0/0/45 unit 0 family inet address 172.16.3.1/24
将防火墙过滤器应用于预配置接口,以激活叶 2 的带内流遥测出口处理。
在此示例中,您将防火墙过滤器映射f-term到inet物理接口 xe-0/0/18 的逻辑接口 0 家族:user@host# set interfaces xe-0/0/18 unit 0 family inet filter input f_term
-
创建防火墙过滤器并配置作
inband-flow-telemetry-terminate。在此示例中,您配置名为
f-term的防火墙过滤器,其术语名称t1包含作inband-flow-telemetry-terminate,并将带内流遥测终止配置文件p_term映射到它:user@host# set firewall family inet filter f_term term t1 then count ifa_term user@host# set firewall family inet filter f_term term t1 then inband-flow-telemetry-terminate p_term user@host# set firewall family inet filter f_term term t1 then accept user@host# set firewall family inet filter f_term term other then count non_ifa_term user@host# set firewall family inet filter f_term term other then accept
结果
QFX5120-48Y 交换机上的结果(叶 1 - IFA 发起器节点)
在作模式下,输入 show configuration services、 show configuration interfaces和 show configuration firewall 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
输出显示了预先存在的 EVPN-VXLAN 基准的某些部分,以便为添加 IFA 所需的配置增量提供上下文。
[edit]
user@host> show configuration services
inband-flow-telemetry {
device-id {
15000;
}
meta-data-stack-length 100;
hop-limit 4;
flow-type vxlan;
profile {
ifa_profile_host1 {
sample-rate 1;
}
}
}
[edit]
user@host> show configuration interfaces
[output truncated]
xe-0/0/44 {
description Connected_to_Spine1;
unit 0 {
family inet {
address 10.100.13.1/24;
}
}
}
et-0/0/51:0 {
description Connected_to_Host1_vlan_101;
unit 0 {
family ethernet-switching {
interface-mode trunk;
vlan {
members 101;
}
filter {
input f_init;
}
}
}
}
[output truncated]
[edit]
user@host> show configuration firewall
family ethernet-switching {
filter f_init {
term t1 {
from {
ip-protocol [ udp tcp ];
}
then {
accept;
inband-flow-telemetry-init ifa_profile_host1;
count ifa_stats;
}
}
term t2 {
then {
accept;
count non_ifa_stats;
}
}
}
}
在设备上完成该功能的配置后,从配置模式进入。commit
QFX5120-32C 交换机(IFA 中转节点)上的结果
在作模式下,输入 show configuration services和 show configuration interfaces 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
[edit]
user@host> show configuration services
inband-flow-telemetry {
device-id {
15001;
}
}
在设备上完成该功能的配置后,从配置模式进入。commit
QFX5120-48Y 交换机(枝叶 1 — IFA 终止节点)上的结果
在作模式下,输入 show configuration services、 show configuration interfaces和 show configuration firewall 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
[edit]
user@host> show configuration services
inband-flow-telemetry {
device-id {
15002;
}
meta-data-stack-length 100;
hop-limit 5;
flow-type vxlan;
profile {
p_term {
collector {
source-address 172.16.3.1;
destination-address 172.16.3.2;
destination-port 3055;
}
}
}
}
[edit]
user@host> show configuration interfaces
[edit]
user@host> show configuration interfaces
[output truncated]
xe-0/0/18 {
description Connected_to_Spine1;
unit 0 {
family inet {
filter {
input f_term;
}
address 10.100.12.1/24;
}
}
}
xe-0/0/44 {
description Connected_to_Host2_vlan_101;
unit 0 {
family ethernet-switching {
interface-mode trunk;
vlan {
members 101;
}
}
}
}
xe-0/0/45 {
description To_Collector;
mtu 9200;
unit 0 {
family inet {
address 172.16.3.1/24;
}
}
}
[output truncated]
[edit]
user@host> show configuration firewall
family inet {
filter f_term {
term t1 {
then {
count ifa_term_c;
inband-flow-telemetry-terminate p_term;
accept;
}
}
term other {
then {
count non_ifa_term;
accept;
}
}
}
}
在设备上完成该功能的配置后,从配置模式进入。commit
验证
验证 IFA 统计信息
Purpose
显示启动器节点上的 IFA 统计信息。
Action
在作模式下,输入命令 show services inband-flow-telemetry stats 。
IFA Init Packets : 70989449712 IFA Transit Packets : 0 IFA Terminate Rx Packets : 0 IFA Terminate Tx Packets : 0
验证 IFA 全局配置
Purpose
显示在启动器节点上配置的 IFA 全局参数。
Action
在作模式下,输入命令 show services inband-flow-telemetry global 。
Global Device ID : 15000 Meta-data Stack Length : 100 Hop Limit : 4 Flow Type : vxlan
验证 IFA 配置文件
Purpose
显示在启动器节点上配置的 IFA 配置文件。
Action
在作模式下,输入命令 show services inband-flow-telemetry profile 。
Profile Name : ifa_profile_host1 Sample rate : 1 Source Address : 0.0.0.0 Destination Address : 0.0.0.0 Destination Port : 0
验证 IFA 统计信息
Purpose
显示传输节点上的 IFA 统计信息。
Action
在作模式下,输入命令 show services inband-flow-telemetry stats 。
IFA Init Packets : 0 IFA Transit Packets : 26057387140 IFA Terminate Rx Packets : 0 IFA Terminate Tx Packets : 0
验证 IFA 全局配置
Purpose
显示在传输节点上配置的 IFA 全局参数。
Action
在作模式下,输入命令 show services inband-flow-telemetry global 。
Global Device ID : 15001 Meta-data Stack Length : 240 Hop Limit : 250 Flow Type : NA
验证 IFA 统计信息
Purpose
显示终止节点上的 IFA 统计信息。
Action
在作模式下,输入命令 show services inband-flow-telemetry stats 。
IFA Init Packets : 0 IFA Transit Packets : 373569 IFA Terminate Rx Packets : 374448690 IFA Terminate Tx Packets : 41605188
验证 IFA 全局配置
Purpose
显示在终止节点上配置的 IFA 全局参数。
Action
在作模式下,输入命令 show services inband-flow-telemetry global 。
Global Device ID : 15002 Meta-data Stack Length : 100 Hop Limit : 5 Flow Type : vxlan
验证 IFA 配置文件
Purpose
显示终止节点上配置的 IFA 配置文件。
Action
在作模式下,输入命令 show services inband-flow-telemetry profile 。
Profile Name : p_term Sample rate : 0 Source Address : 172.16.3.1 Destination Address : 172.16.3.2 Destination Port : 3055
也可以看看
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。