什么是IOAM?
IOAM(In-band Operation, Administration, and Maintenance,带内操作管理和维护)是一种网络测量和监控技术。它通过实时、高速地对业务流量进行采样,并在采样数据内添加IOAM信息(Metadata元数据,包含设备ID、出入接口、时间戳等),然后主动将采样数据发送给分析器进行分析,实现对网络运行状态的实时感知和监控。
为什么需要IOAM?
随着互联网业务和用户规模的不断增长,网络正向着大规模、高速率、多接入和不可预期的方向发展,对网络管控方式也提出了更高的要求。网络测量是网络管控的基础手段和数据来源。常见的网络测量方式主要分为主动测量、被动测量和混合测量三类。
- 主动测量通过向网络中主动发送探测信息来分析网络行为,常见的主动测量技术如PING等。主动测量协议虽然使用比较灵活,但是会给网络增加额外的带宽和处理开销。
- 被动测量通过捕获测量点的业务流量来测量网络状态、流量特征和性能等参数,主要包括采样流sFlow等。被动测量的优点是不会产生额外的测量负载,缺点是无法检测网络状态和丢包率等网络全局信息。
- 混合测量方式通过路径中间交换节点对数据包依次插入元数据的方式完成网络状态采集。混合测量方式的典型代表之一就是IOAM技术。混合测量方式结合了主动测量和被动测量的优点:能够保证获取业务流量状态的准确性,同时尽量少的占用额外的带宽;相较于传统网络测量方案,能够实现更细粒度的测量;具有较好的可编程性,数据信息的收集类型更自由。
IOAM系统有哪些组成?
IOAM网络系统由数据采集模块和数据分析模块两部分构成,如下图所示:
- 数据采集模块主要包含封装节点、传输节点和解封装节点三部分,实现对网络节点运行数据的采集和报文转发的功能。
- 数据分析模块主要由分析器组成,可以对采集到的数据进行分析和网络监控。
其中,数据采集模块中三类节点实现的功能如下:
- 封装节点:主要负责对业务报文进行采样,对报文封装IOAM信息后转发。
- 传输节点:主要负责对来自封装节点的IOAM报文,添加本节点的IOAM信息并转发,或者直接转发。
- 解封装节点:在接收到来自传输节点的IOAM报文后,添加本节点IOAM信息,并复制报文头封装成NetStream V9格式发送到分析器。再将原报文剥离IOAM信息后转发给目的地址。
可以由一个或多个节点负责将采集到的数据发送到分析器,因此根据数据采集方式的不同,数据采集模块可以工作在不同的模式。
IOAM网络系统示意图
IOAM是如何工作的?
IOAM协议头格式
IOAM协议头包括Probermarker、IOAM SHIM头和IOAM选项头三部分。如下图所示:
- Probermarker为IOAM报文的首部,长度为64比特,用于标识IOAM封装类型的报文;
- IOAM SHIM头长度为32比特,用于标识IOAM报文的数据采集模式;
- IOAM选项头长度为64比特,用于标识不同模式下MD(Metadata元数据)的数据封装格式。不同数据采集模式下的IOAM选项头格式是不同的。
IOAM协议头的报文格式
不同数据采集模式下采集的节点的MD信息是不同的。如下图所示,Trace增量模式和Direct-export模式主要采集节点的出入端口、转发时延、时间戳和队列深度信息,Edge-to-Edge端到端模式主要采集序列号和入设备时间戳信息。
IOAM MD的报文格式
IOAM实现机制
根据数据采集方式的不同,数据采集模块可以分为Trace增量模式、Edge-to-Edge端到端模式和Direct-export模式三种数据采集模式。
- Trace增量模式的封装节点、传输节点和解封装节点主要完成的功能如下图所示:
- 封装节点:采样Host1发出的业务报文,并为报文封装IOAM协议头和本节点MD信息后再进行报文转发。
- 传输节点:传输节点在接收到来自封装节点的IOAM报文后添加自己节点的MD信息,再将报文转发出去。主要用于逐跳分析场景,可以获取流量的入端口、出端口、转发时延、时间戳、队列深度和TTL等信息。随着转发跳数的增加,报文头部会越来越长,因此对于设备的转发性能要求很高。
- 解封装节点:负责为IOAM报文封装本节点的MD信息,然后将报文的头部(不带payload)复制一份封装成NetStream V9格式的报文发送到分析器,再将原报文剥离IOAM信息后转发给Host2。
Trace增量模式IOAM网络报文转发示意图(以TCP报文为例) - Edge-to-Edge端到端模式与Trace增量模式基本相同,区别是Edge-to-Edge端到端模式的传输节点不添加本节点MD信息,只作为一个报文转发设备,将封装节点发出的IOAM报文直接转发出去。由于传输节点不添加MD信息,报文头的长度不会增加很多,因此对设备的转发性能要求不高。这种模式适用于只需要端到端时延信息的场景。
- Direct-export模式与前两种模式区别较大。
- 封装节点会对业务报文先封装IOAM协议头,然后复制一份报文头并添加上本节点MD信息,封装成NetStream V9格式发送到分析器,再将原始带IOAM协议头的报文(不含MD信息)转发给传输节点。
- 传输节点收到报文后会复制一份带IOAM协议头的报文头,并添加上本节点MD信息,然后封装成NetStream V9格式发送到分析器,再将原始带IOAM协议头的报文(不含MD信息)转发给解封装节点。
- 解封装节点收到报文后与传输节点处理方式基本相同,区别是最后会将原始报文剥离IOAM头后转发给目的地址。
Direct-export模式的每个节点都会上送带IOAM信息的报文头给分析器,如果中间某节点丢包没上送,分析器还可以接收到其他节点的上报。因为每个节点都会上送,所以这种模式对网络带宽要求较高。
IOAM的应用
如下图所示,IOAM技术可以应用在VXLAN网络上,实现对VXLAN隧道业务流量的测量。在实际应用中,应根据网络监测需求和网络性能等情况,选择数据采集模式及各节点位置。
IOAM技术应用在VXLAN网络示意图
- 作者: 李慧珂
- 最近更新: 2024-02-26
- 浏览次数: 19425
- 平均得分: