Fred Baker wrote:
On Oct 19, 2006, at 3:53 AM, Su Thunder wrote:

I don't think your comment is a problem. Whether a block of memory is payload or an extension header is determined by the Next Header value of the immediately preceding header, not whether the extension header is known or unknown. A node should pass an unknown extension header to the next header immediately following it, why it regards something unknown as something else?


yes, but there is some ambiguity there. One can use the value in the next header field to indicate an interior header, or one can use it to pass out to another protocol such as TCP.

So you are a machine that doesn't know the meaning of the number (let's say) 254. Is it an interior header, in which case it is of a certain size and you can continue processing to determine that maybe there is an end to end header after it, or is it a new transport protocol? How do you know?

And actually, as I read the spec, that's not what it is supposed to do.

   If, as a result of processing a header, a node is required to  proceed
   to the next header but the Next Header value in the current  header is
   unrecognized by the node, it should discard the packet and send an
   ICMP Parameter Problem message to the source of the packet, with an
   ICMP Code value of 1 ("unrecognized Next Header type encountered")
   and the ICMP Pointer field containing the offset of the unrecognized
   value within the original packet.  The same action should be  taken if
   a node encounters a Next Header value of zero in any header other
   than an IPv6 header.

When it comes to a number it doesn't know how to interpret, it is supposed to drop the datagram and report to the sender.

Right, so for end hosts, any new extension header would have to be supported. Firewalls, IDSes, routers with ACLs etc. would probably also need to be upgraded. Say a firewall might be configured to only allow certain UDP and TCP traffic through. If it finds an unknown extension header, it might believe it's an unknown protocol that shouldn't get through. Even if the payload really is UDP/TCP that should get through.

Trying to assume that an unknown protocol number is an extension header
and then to look what's beyond it would be a very bad idea.

It might have been useful to remove the ambiguity by having a predefined protocol number range for potential new extension headers. Then current equipment/software could be made to support future unknown headers.

Anyway, I'm hoping that any new stuff can be options within the
currently defined extension headers...

Stig


--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email protected]
Administrative Requests: https://www1.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------


--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email protected]
Administrative Requests: https://www1.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

Reply via email to