BNG 上的 IPFIX 调解
流量是一种将 IP 数据流量如何通过网络各个组件的概念化的方法。流由一组 IP 数据包组成,这些数据包在特定的时间间隔内在网络中传递观察点。该集由通用属性定义:
一个或多个数据包、传输或应用程序标头字段
数据包的一个或多个特征
从处理数据包的方式派生的一个或多个字段
例如,特定流可能包含具有相同目标 IP 地址和目标端口号、MPLS 标签数量、下一跃点地址和输出接口的数据包。
IP 流信息导出 (IPFIX) 协议是一种通过网络从导出进程传输到收集流程的流量记录形式的流量信息的机制。每个流记录由监控进程生成,其中包含有关观察点特定流的信息,例如流中所有数据包的字节总数和源 IP 地址。托管一个或多个导出进程的设备称为导出设备或 IPFIX 设备。从一个或多个导出进程接收(收集)流记录的设备称为收集器。
从 Junos OS 18.3R1 版开始,您可以将充当 BNG 的 MX 系列路由器配置为 IPFIX 导出器和收集器之间的中介设备。作为 IPFIX 调解器,BNG 同时充当收集器和导出器。IPFIX 调解器功能通过 IPFIX 记录从下游接入网络设备(例如 OLT 和高级 ONUs)收集性能管理数据(具有 IPFIX 导出器、VOIP SIP 客户端等集成功能)。这些数据以及来自 MX BNG 的本地性能管理数据将聚合并中继到上游 IPFIX 收集器。从 IPFIX 收集器的参考点,IPFIX 调解使路由器及其关联的接入网络设备能够利用 MX BNG 和上游收集器之间的单个 TCP/IP 连接,显示为单个 IPFIX 导出源。
图 1 显示了一个无源光纤网络 (PON) 拓扑结构,其中 BNG IPFIX 介质连接到下游 OTT,而下游的 OTT 则进一步连接到住宅中的 ONT。下游设备通过 TCP/IP 连接将流信息导出到调解器;调解人从下游设备收集流信息。然后,调解器处理流信息,并通过 TCP 或传输层安全 (TLS) 连接将其向上游导出到 IPFIX 收集器。
IPFIX 调解器功能可将 BNG 及其关联的下游设备表示为向 IPFIX 收集器的单个 IPFIX 导出器。数据记录不会格式化,从而优化了数据流的效率。模板记录(有时简称为模板)将流记录的语义和结构指定为<类型、长度>对的有序序列。模板记录在数据记录之前发送,或与其内联发送。
每个模板记录都包含模板标头以及一个或多个与数据记录中信息元素对应的字段指定符。模板标头包括模板 ID 和模板记录中的字段计数。模板 ID 对于传输会话和观察域(观察流量的位置)是唯一的。实际上,该 ID 对于下游导出设备和调解器之间的 TCP 连接是唯一的。因此,不同的下游设备可能会为同一记录类型使用不同的模板 ID。
模板 ID 对账
调解处理的一个方面是模板 ID 协调。调解器维护从下游导出器接收的唯一模板记录缓存。从不同导出源接收的匹配模板记录会映射到模板缓存中的同一记录实例。根据记录字段的数字、类型、长度和顺序的哈希值,匹配传入模板记录。换句话说,调解人可独立于其 ID 来唯一标识模板记录。
这使调解器可以为接收的每个唯一模板 ID 分配一个新的模板 ID。新的上游 ID 用于将模板记录和数据记录导出到上游收集器。对于调解器和收集器之间的传输会话(TCP 或 TLS),每个新 ID 都是唯一的。与单独发送匹配的记录(其模板 ID 除外)相比,此处理可以显著简化调解人和收集器之间的通信。
图 2 显示了协调的工作原理。
IPFIX 调解器从每个 OLT 接收两个具有不同 ID 的模板记录。
通过比较字段的数量和顺序的散列值以及每个字段的类型和长度值,调解器确定 OLT 中的六条模板记录仅代表三条唯一记录,如下所示:
具有 333 (OLT1)、779 (OLT2) 和 655 (OLT3) 的模板记录具有相同的散列值,因此描述同一记录。
具有 337 (OLT1) 和 656 (OLT3) 的模板记录的散列值相同,因此描述同一记录。
ID 为 778 (OLT2) 的模板记录的哈希值与其他任何记录都不匹配。
每个唯一模板记录存储在模板缓存中,并分配一个新的模板 ID,用于向收集器发送模板和数据记录。
如果 IPFIX 调解器收到任何数据记录而未在同一 TCP 会话中收到相应的模板记录,则会丢弃数据记录并记录事件。
IPFIX 调解器具有来自下行设备的数据记录的直通容量。除了更改要导出到收集器的模板 ID 外,它不会修改数据记录。调解人不会区分从不同下游设备接收的数据;该功能留给 IPFIX 收集器
IPFIX 调解和网络分析
MX 系列路由器上的 IPFIX 调解为网络分析服务代理使用插件 ipfix
来接收、处理和导出 IPFIX 记录。输入插件(input-ipfix)
默认使用端口 4739 侦听来自下游导出设备的 TCP 连接上的 IPFIX 消息。不期望或接受其他消息类型。输出插件 (output-ipfix
) 协调收到的记录,并将其发送至目标 IPFIX 收集器,后者默认在 TCP 端口 4740 上侦听这些记录。这两个插件都允许您为 IPFIX 调解配置不同的参数。例如,调解器是否尝试与收集器建立 TLS 或 TCP 连接,取决于输出插件中证书选项的配置。
IPFIX 插件只能相互配合工作,不与其他任何分析插件协同工作。
IPFIX 调解的优势
IPFIX 调解器可以在不丢失信息的情况下减少收集器上的负载。随着特定网络中流量的增长,单个收集器处理来自多个导出器的流量记录的容量可能会超出。数据包采样和聚合可以减少要处理的数据量,同时有可能丢失小流量,以及检测和处理某些流量变化和异常行为可能需要的详细信息。
IPFIX 调解器提供了使用多个流量监控应用程序时所需的灵活性。不同的应用程序可能需要不同的信息级别,例如数据包级别与流级别。这些不同的需求可能会迫使导出器运行不同的计量任务来生成流记录,从而给设备上的有限资源带来压力。
IPFIX 调解器通过来自多家供应商的各种 IPFIX 设备(运行多个软件版本)简化了对信息的准确监控、处理和导出。在将流量记录导出到收集器之前,单个 BNG 可以调解许多连接的 IPFIX 设备之间的差异,从而减轻单个收集器的负担。