在 IP 查找期间检查 IPv6 标头中的哪些字段?

网络工程 路由 路由器 IPv6 ip 转发表
2022-02-05 12:15:18

我将考虑这个问题的 IPv6 标头。

我假设最简单的 IP 查找方案实现只会查看传入 IP 数据包的 IP 标头中的“目标地址”字段。

但是,我怀疑路由器中的“现实世界”实现更复杂,看看其他领域,例如:

  • '流标签'、'源地址'、'端口'号用于流识别;
  • 减少'Hop Limit',如果达到0则决定是否丢弃一个数据包;
  • 甚至一些“扩展标题”。

我的问题是:

  • 当前的转发引擎实现通常会检查哪些 IPv6 标头字段以执行“通用”IP 查找?
  • 在执行“通用”IP 查找时,是否通常会检查任何 IPv6“扩展标头”?
1个回答

如果您指的是 IPv6 数据包的路由,那么实际上只有目标地址在其中起作用。

首先检查跳数字段以查看是否应丢弃数据包。如果数据包未被丢弃,则该字段递减并根据目标地址转发或丢弃数据包。

路由器通常检查的唯一扩展标头是逐跳选项扩展标头,但许多路由器会拒绝带有此扩展标头的数据包,或者完全忽略它。

路由器上启用的各种服务可以检查其他字段。例如,如果路由器配置了 QoS,则流量类别字段可用于排队。路由器中配置的 ACL 可能关心源地址和目标地址、有效负载中的协议和端口号等。

流标签字段没有得到广泛支持,因为它的使用不是强制性的,它有各种“可能的”用途。一个好的用途是防止单个流量中的所有数据包传播到多个路径。这种使用需要路径中的源主机和路由器支持。

路由器检查和使用哪些字段实际上取决于路由器上配置和启用了哪些服务。IPv6 数据包标头比 IPv4 数据包标头简单。唯一真正复杂的事情可能是您配置了 IPv6 移动性,并且路由器需要使用相关的扩展标头:Hop-by-Hop Options、Routing 和 Mobility。

如果数据包目的地是路由器本身(例如路由协议数据),则可以检查和使用数据包目的地使用的其他扩展头,尤其是 OSPFv3 的认证头。