在 MX 系列路由器的 IPFIX 模板中包含分片标识符和 IPv6 扩展标头元素
从 Junos OS 14.2 版开始,发送到流收集器的 IPFIX 流模板中可以包含以下属性:
片段标识(元素 ID 54)
ipv6扩展标头(元素 ID 64)
一个流可以在给定的时间间隔内接收许多片段。对于数据包的给定片段集,有一个唯一的分片标识。因此,在给定的时间间隔内可以接收多个这样的值。RFC 5102 for fragmentIdentification 54 没有明确指出流记录信息中需要传送哪个片段标识(发送流记录信息后观察到的第一个片段或在发送流记录信息之前观察到的最后一个片段)。然而,给定流的最后观察到的片段标识也被传输到流收集器。
与 IPv4 不同,IPv6 路由器从不对 IPv6 数据包进行分段。超过目标链路最大传输单元大小的数据包将被丢弃,此情况由数据包太大 ICMPv6 类型 2 消息向始发节点发出信号,类似于设置不分段 (DF) 位时的 IPv4 方法。
IPv4 和 IPv6 流模板都支持 fragmentIdentification 元素。片段标识元素将添加到记录模板中。对于 IPv4 和 IPv6,fragmentIdentification 属性的大小均为 32 位。对于 IPv6,此字段存在于片段扩展标头中,如果没有片段扩展标头,则片段标识符将更新为 0。
端口是用于标识流的密钥的一部分,第一个分段数据包之后的后续数据包没有端口信息。对于发往路由器的分段数据包,拆分的数据包采用不同的流量(第一个和后续数据包)。此外,由于分段数据包的端口表示为零,因此从特定源发往特定目标的所有流量可能会报告为同一流量,尽管它们之间在目标端口方面不存在关联。片段 ID 不是密钥的一部分。尽管片段 ID 属性在每个源和目标之间都是唯一的,但它们最终可能会成为中间路由器中的相同流。
由于密钥中使用端口进行流查找,流的分段数据包被计入两个不同的流中。第一个分段数据包(包含其数据包中的端口信息)是一个流的一部分。第一个分片之后的后续数据包(不包含端口信息)将在不同的流下核算。由于第二个流不包含用于标识自身的端口信息,因此它会整合具有相同源 IP 和目标 IP 地址前缀的所有其他流量流(还包括在不同端口上发送的非第一个分段数据包)。
IPv6 中的目标节点或端点应执行路径 MTU 发现,以确定要发送的最大数据包大小,上层协议应限制有效负载大小。但是,如果上层协议无法执行此操作,则发送主机可以使用片段扩展标头来执行 IPv6 数据包的端到端分段。任何传输 IPv6 数据的数据链路层都必须能够提供包含 1280 字节的 IP 数据包,而无需在 IP 层调用端到端分段。
ipv6ExtensionHeaders 信息元素是 32 位字段的集合。此集中的每个位代表一个 IPv6 扩展标头。如果为流观察到该特定扩展标头,则会设置扩展标头位。如果观察到的此流的任何数据包包含相应的 IPv6 扩展标头,则该位设置为 1。否则,如果观察到的此流中没有数据包包含相应的 IPv6 扩展标头,则相应位的值为 0。ipv6ExtensionHeaders 元素将添加到记录模板中。创建的流数取决于包含 IPv6 扩展器标头属性的 IPv6 数据包数。
要在导出到流收集器的 IPFIX 流模板中启用元素 ID 54、片段标识和元素 ID 64、ipv6扩展标头,请在层次结构级别包含 ipv6-extended-attrib
语句 [edit chassis fpc slot-number inline- services flow-table-size]
。会自动收集 IP4 分段 ID,无需显式配置此设置。
[edit chassis] fpc slot-number { inline-services { flow-table-size { ipv6-extended-attrib; } } }
从 Junos OS 版本 17.3R4、17.4R3、18.1R4、18.2R2、18.3R2 和 18.4R1 开始, 表 1 介绍了 IPv6 数据包中包含的 IPv6 选项值及其功能。
位值 |
IPv6 选项 |
下一个标头代码 |
描述 |
---|---|---|---|
0 |
Dst |
60 |
目标选项标头 |
1 |
跳 |
0 |
逐跳选项标头 |
2 |
Res |
不适用 |
保留 |
3 |
UNK |
不适用 |
未知第 4 层标头(压缩、加密、不支持) |
4 |
FRA0 |
44 |
片段标头 – 第一个片段 |
5 |
Rh |
43 |
路由标头 |
6 |
FRA1 |
44 |
分片标头 – 不是第一个分片 |
7 |
Res |
不适用 |
保留 |
8 到 11 |
Res |
不适用 |
保留 |
12 |
暴徒 |
135 |
IPv6 移动性 (RFC3775) |
13 |
Esp |
50 |
加密安全有效负载 |
14 |
啊 |
51 |
身份验证标头 |
15 |
支付 |
108 |
有效负载压缩标头 |
16 到 31 |
Res |
不适用 |
保留 |
对于 17.3R4、17.4R3、18.1R4、18.2R2 和 18.3R2 之前的 Junos OS 版本, 表 2 介绍了 IPv6 数据包中包含的 IPv6 选项值及其功能。
位值 |
IPv6 选项 |
下一个标头代码 |
描述 |
---|---|---|---|
0 |
Res |
不适用 |
保留 |
1 |
FRA1 |
44 |
分片标头 |
2 |
Rh |
43 |
路由标头 |
3 |
FRA0 |
44 |
片段标头 – 第一个片段 |
4 |
UNK |
不适用 |
未知第 4 层标头(压缩、加密、不支持) |
5 |
Res |
不适用 |
保留 |
6 |
跳 |
0 |
逐跳选项标头 |
7 |
Dst |
60 |
目标选项标头 |
8 |
支付 |
108 |
有效负载压缩标头 |
9 |
啊 |
51 |
身份验证标头 |
10 |
Esp |
50 |
加密安全有效负载 |
11 到 31 |
Res |
不适用 |
保留 |