我已经有一段时间试图解决这个问题了,但找不到。

有没有一种方法可以为IPv6中的逐跳扩展标头指定新的选项值,以便我可以在用户空间中解析该值,而不是内核对其进行解析?

内核尝试解析该值时,会向我发送一个ICMP回复,说明标头中该值无法识别的参数。

我想知道是否应该有一种方法可以在IPv6扩展头中部署和测试新选项,而无需为它们编写处理程序(如LKM)。

网络上没有太多可用于IPv6的资源,因此IPv6专家的任何帮助将非常有用!

RFC 2460提到了这一点。我假设您可以创建一个新的选项类型来测试任何新的应用程序:


  意识到需要与现有的IPv6部署兼容,
  除非创建或指定新的IPv6扩展头,否则不得
  通过指定新的名称,无法使用现有的IPv6扩展头
  该现有IPv6扩展标题的选项。任何建议
  创建或指定新的IPv6扩展标头必须包含详细的
  为什么不能使用现有IPv6扩展头的技术说明
  Internet草案中使用了新的IPv6扩展头。

最佳答案

至于您提到的“内核在尝试解析该值时,向我发送ICMP回复...”,通过“内核”,我认为您表示一个远程ipv6节点(路由器或目标主机)。然后,您可能会在通过原始套接字发送的出口数据包中设置“选项类型”错误的方式。

如RFC 2460所述:

选项类型标识符在内部进行了编码,以使它们的最高位两位指定在处理IPv6节点无法识别选项类型时必须采取的措施:

00,01,10,11 ....

---我猜您填写“ 10”或“ 11”,您可以填写“ 00”

关于c - 为逐跳扩展 header IPv6指定新选项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22958322/

10-13 07:22