路由器上的 sFlow 支持
在PTX1000路由器和 QFX10000 系列交换机上,sFlow 技术始终在物理接口级别工作。在一个逻辑接口上启用 sFlow 监控会在属于该物理接口的所有逻辑接口上启用该监控。
在 PTX1000 路由器、PTX10000 路由器和 QFX10000 系列交换机上,您只能在活动逻辑接口上配置 sFlow。使用 show interfaces terse
命令显示接口的状态信息。如果接口的操作和管理状态均为 up,则它是活动接口。
在 PTX10000 路由器、PTX5000 路由器和 QFX10000 系列交换机上,当入口或出口接口是路由实例的一部分时,sFlow 将不会按预期生成样本,特别是在 ECMP 场景中。
sFlow 代理负责监控网络端口,对所有传入数据包(包括控制流量和到达系统中所有端口的流量)进行采样。
ACX5000 系列路由器支持以下 sFlow 功能:
-
基于数据包的采样
注:ACX5448路由器不支持此功能。
-
基于时间的采样
-
自适应采样
以下 sFlow 技术限制适用于ACX5000系列路由器:
-
入口和出口采样只能在物理接口下的一台设备上配置,并且为物理接口(端口)启用了 sFlow。如果未配置物理接口下的单元,则无法启用 sFlow。
-
不支持对广播、未知单播和组播 (BUM) 流量进行出口采样,因为 source-interface 无法填充 sFlow 数据报中的字段。
-
对于第 3 层转发,不会填充目标 VLAN 和目标优先级字段。
-
分析器的输出接口不支持 sFlow 采样。
-
对 sFlow 的 SNMP MIB 支持不可用。
-
无法在 IRB 接口上启用 sFlow。
-
无法在逻辑隧道 (lt-) 和 LSI 接口上启用 sFlow。
用于 GRE 封装的 sFlow
在 PTX10001-36MR、PTX10003、PTX10004、PTX10008 和 PTX10016 设备上,sFlow 支持导出进入 IPv4 或 IPv6 GRE 隧道的流量的扩展隧道出口结构字段。这使 sFlow 能够提供有关 GRE 隧道的信息,进入设备的数据包可能被封装到该隧道中。GRE 隧道可以是 IPv4 或 IPv6。仅当在入口方向上启用了 sFlow(其中基于 IPv4 或 IPv6 数据包上发生基于防火墙的 GRE 封装)时,才支持此功能。
启用入口 sFlow 采样时,以量方案支持此功能:
-
经过 IPv4 GRE 封装的传入 IPv4 流量
-
经过 IPv4 GRE 封装的传入 IPv6 流量
-
经过 IPv6 GRE 封装的传入 IPv4 流量
-
经过 IPv6 GRE 封装的传入 IPv6 流量
要了解有关 sFlow 和 sFlow 隧道结构的更多信息,请参阅 sFlow 隧道结构。
#id-overview-of-sflow-technology__sflow-fields 介绍了进入 IPv4 或 IPv6 GRE 隧道的流量的扩展隧道出口结构字段。
字段名称 | value |
---|---|
报告的协议 | 0x2f (GRE) |
源 IP | 隧道源的 IPv4 或 IPv6 地址 |
目标 IP | 隧道目标端点的 IPv4 或 IPv6 地址 |
长度 | 0 |
源端口 | 0 |
目标端口 | 0 |
TCP 标志 | 0 |
优先级 | 0 |
IPv4 和 IPv6 GRE 隧道的扩展结构如下:
/* opaque = flow_data; enterprise = 0; format = 1023 */ struct extended_ipv4_tunnel_egress { sampled_ipv4 header; } /* opaque = flow_data; enterprise = 0; format = 1025 */ struct extended_ipv6_tunnel_egress { sampled_ipv6 header; }
示例 IPv4 标头结构如下所示:
/* Packet IP version 4 data */ /* opaque = flow_data; enterprise = 0; format = 3 */ struct sampled_ipv4 { unsigned int length; /* The length of the IP packet excluding lower layer encapsulations */ unsigned int protocol; /* IP Protocol type (for example, TCP = 6, UDP = 17) */ ip_v4 src_ip; /* Source IP Address */ ip_v4 dst_ip; /* Destination IP Address */ unsigned int src_port; /* TCP/UDP source port number or equivalent */ unsigned int dst_port; /* TCP/UDP destination port number or equivalent unsigned int tcp_flags; /* TCP flags */ unsigned int tos; /* IP type of service */ }
示例 IPv6 标头结构如下所示:
/* Packet IP Version 6 Data */ /* opaque = flow_data; enterprise = 0; format = 4 */ struct sampled_ipv6 { unsigned int length; /* The length of the IP packet excluding lower layer encapsulations */ unsigned int protocol; /* IP next header (for example, TCP = 6, UDP = 17) */ ip_v6 src_ip; /* Source IP Address */ ip_v6 dst_ip; /* Destination IP Address */ unsigned int src_port; /* TCP/UDP source port number or equivalent */ unsigned int dst_port; /* TCP/UDP destination port number or equivalent*/ unsigned int tcp_flags; /* TCP flags */ unsigned int priority; /* IP priority */ }
sFlow 样本量
从适用于 PTX 系列设备的 Junos OS 演化版 23.1R1 版本开始,您可以配置要作为 sFlow 记录的一部分导出到收集器的原始数据包标头的 sFlow 样本大小。样本大小的可配置范围为 128 字节到 512 字节。使用 set protocols sflow sample-size Sample-Size
命令配置样本大小。如果配置的样本大小大于实际数据包大小,则会导出数据包的实际大小。如果未配置样本大小,则导出到收集器的原始数据包标头的默认大小为 128 字节。
在全局 sFlow 配置中配置的样本大小由在 sFlow 协议下配置的所有接口继承。
路由器上的 sFlow 限制
在路由器上,sFlow 流量采样的限制包括:
-
Trio 芯片组无法为每个系列支持不同的采样率。因此,每个线卡只能支持一种采样率。
-
自适应 负载平衡采样适用于每个线卡,而不是每个线卡下的接口。
路由器仅支持在线卡上配置一个采样率(包括入口和出口速率)。为了支持与其他瞻博网络产品的 sFlow 配置兼容,路由器仍接受同一线卡不同接口上的多速率配置。但是,路由器会将最低速率编程为该线卡所有接口的采样速率。(show sflow interfaces
) 命令显示配置的速率和实际(有效)速率。但是,瞻博网络路由器仍支持不同线卡上的不同速率。
您无法在以下线卡上配置 sFlow:
-
JNP10K-LC4800
-
MPC10E
-
MPC15E
-
MPC11E
-
MX10K-LC9600
-
EX9200-15C
在 Junos OS 演化版中,您只能在以太网接口 (et-*
) 上为以下 PTX 系列设备配置 sFlow:
-
PTX10003-80C 和 PTX10003-160C
-
PTX10008
-
PTX10001-36MR
-
PTX10004
-
PTX10016
您无法在环路接口 ()lo0
上配置 sFlow。