由于ICMP 和ICMPv6 具有不同的IP 协议编号,因此IPv4 主机接收ICMPv6 数据包或IPv6 主机接收ICMP 数据包在技术上是可能的。在这种情况下,主机的行为是否有任何标准规定?我在任何 RFC 中都没有看到任何内容。
如何处理 ICMP-in-IPv6 或 ICMPv6-in-IPv4?
网络工程
ip
ipv4
ipv6
国际会议
icmpv6
2021-07-05 08:43:44
2个回答
RFC 8200 声明 IPv6 中的“下一个标头”字段使用与 IPv4 中的“协议”字段相同的值。
但是,RFC 4443 指出:
每个ICMPv6 消息前面都有一个IPv6 标头……ICMPv6 标头由Next Header值 58标识......
RFC 792 指出:
ICMP 消息使用基本 IP 报头发送。
...
第4版
我解释这两个语句的方式是,ICMP 数据包不仅由“协议”或“下一个标头”字段标识,而且该协议由ANDIP 版本和“协议”/“下一个标头”编号的逻辑组合标识.
这意味着 IPv4 数据包中的“协议”值 58并不意味着 ICMPv6,而 IPv6 数据包中的“下一个标头”值 1并不意味着 ICMP(v4)。
如果这种解释是正确的,则您必须以与收到具有未知“协议”或“下一个标头”编号的数据包相同的方式做出反应。
ICMPv4 封装在 IPv4 数据包中,ICMPv6 封装在 IPv6 中。仅 IPv4 的主机无法接收和解析 IPv6 数据包(反之亦然)。
其它你可能感兴趣的问题