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