According to draft-ietf-vrrp-ipv6-spec-08 (VRRPv3) IPv4 is defined in RFC3768 (VRRPv2). "This protocol is intended for use with IPv6 routers only. VRRP for IPv4 is defined in VRRP-V4." , sentence from draft-ietf-vrrp-ipv6-spec-08, section 1.1 - Scope It appears that Wireshark uses the pseudo-header in the checksum calculation for IPv4 and for IPv6. For me the pseudo-header should be used for IPv6 as defined in the draft but should not be used in IPv4 since it doesn't appear in the checksum calculation defined in the section 5.3.8. of RFC3768. Could you confirm that the Wireshark's checksum calculation for VRRPv3 uses a pseudo-header even for IPv4? It is intentional or a bug? asked 26 Oct '12, 03:44 ToinoBiclas edited 26 Oct '12, 03:45 |
One Answer:
RFC5798 defines VRRPv3 for IPv4 and IPv6. There are header field related to the IP protocol version and those that are independent of the IP protocol version. The checksum is independent of the IP protocol version. See
So the checksum calculation of Wireshark is correct, as it only adds the pseudo header for VRRPv3, regardless of the IP protocol (however, see below!). packet-vrrp.c:
However, RFC5798 is a bit unclear, as it refers to the IPv6 pseudo header in RFC2460 without explanation how to apply that to IPv4 for the checksum calculation. There have been discussions about this, apparently without a clear result !?!
So, this is again one of those RFC interpretation versus interoperability issues and I guess different implementations calculate the checksum differently. There is also a bug report for this:
BTW: If you want clarification, you can contact the author of the RFC. You'll find his e-mail address at the end of the RFC. However, he did not comment on the discussion about the checksum.
Regards answered 06 Nov '12, 02:54 Kurt Knochner ♦ edited 06 Nov '12, 03:12 |
Added a preference to the VRRP dissector in https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=a653014e69a4f0e0b59393ddc03871006057b36a whether to use V2 or V3 metod for V3 packets.