我已经有一段时间试图解决这个问题了,但找不到。
有没有一种方法可以为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/