[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bugs in UDP-MIB and TCP-MIB (was: RE: MIB DOctor review of: draft-ietf-ipv6-inet-tunnel-mib-01.txt)



Hi Mike,

Thanks for the heads up on the issue! Dave was kind enough to
forward this mail a couple of days back, so we were aware of
this thread. It is indeed a good catch!

There are a two places in the TCP-MIB where this issue arises.
I've got the original/old descriptions snippets and the proposed
modifications listed below.

tcpListenerTable
=====================

OLD
----
            2. An application which is willing to accept only IPv4 or
               IPv6 datagrams is represented by a
               tcpListenerLocalAddressType of the appropriate address
               type and tcpListenerLocalAddress of ''h (a zero-length
               octet-string).

PROPOSED MODIFICATION
-----------------------

            2. An application which is willing to accept only IPv4 or
               IPv6 datagrams is represented by a
               tcpListenerLocalAddressType of the appropriate address
               type and tcpListenerLocalAddress of '0.0.0.0' or '::'
               respectively.

tcpListenerLocalAddress
=========================

OLD
----

            The local IP address for this TCP connection.  In the case
            of a listener which is willing to accept connections for
            any IP interface associated with the node, a value of ''h
            (zero-length octet-string) is used.  The type of this
            address is determined by the value of
            tcpListenerLocalAddressType.

PROPOSED MODIFICATION
-----------------------

            The local IP address for this TCP connection.

            The value of this object can be represented in three
            possible ways, depending on the characteristics of the
            listening application:

            1. For an application that is willing to accept both
               IPv4 and IPv6 datagrams, the value of this object
               must be ''h (a zero-length octet-string), with
               the value of the corresponding
               tcpListenerLocalAddressType object being unknown (0).

            2. For an application which is willing to accept only
               IPv4 or IPv6 datagrams, the value of this object
               must be '0.0.0.0' or '::' respectively, while
               tcpListenerLocalAddressType represents the
               appropriate address type.

            3. For an application which is a listening for data
               destined only to a specific IP address, the value
               of this object is the specific local address, with
               tcpListenerLocalAddressType representing the
               appropriate address type.

As to the impact of this change, any implementation of this
draft would need to accordingly incorporate this change! I am
not certain as to the extent of the implementation, though.
But if required, we could run this by on the ipv6 and tcp
mailing lists to get some feedback.

Does this qualify for an AUTH48 change?

Thanks,
Rajiv.

C. M. Heard wrote:
Bert,

In the case of the UDP MIB it should not be necessary to make the
corrections in AUTH48 because draft-ietf-ipv6-rfc2013-update-03.txt
is still in last call.  It is necessary to do any corrections to the
TCP MIB in that way since draft-ietf-ipv6-rfc2012-update-06.txt was
already approved.

I've cc:'d the document authors since they are probably in the best
position to evaluate the impact of the required changes.  For their
benefit, the issue is that RFC3291bis does not permit using a
zero-length octet string for an InetAddress object when the
corresponding InetAddressType object has a value other than
unknown(0), but both of those MIB modules use that combination to
indicate an IPv4 or IPv6 wildcard address.  There are more details
in the discussion below.

For IPv4 the problem could be solved by using the all-zeroes
address;  that indeed is what the older IPv4-specific modules did.
However, I don't know enough about IPv6 to know if that would be a
viable solution for that case.

Mike Heard


On Thu, 19 Aug 2004, Wijnen, Bert (Bert) wrote:

It would be good to prepare the fix to UDP and TCP MIB documents
in the form of RFC-Editor instructions aka

- on page x pls change
 OLD:
   ....
 NEW:
   ...

So that we can make the change when we see the AUTH48.
I need to check the impact a bit though... (I am in the process of recovering from a broken laptop... so I do not have verything handy at the
moment).


Thanks, Bert



-----Original Message-----
From: C. M. Heard [mailto:heard@pobox.com]
Sent: Friday, August 13, 2004 05:34
To: Mreview (E-mail)
Cc: Wijnen, Bert (Bert); Margaret Wasserman (E-mail)
Subject: Bugs in UDP-MIB and TCP-MIB (was: RE: MIB DOctor review of:
draft-ietf-ipv6-inet-tunnel-mib-01.txt)


On Thu, 12 Aug 2004, Dave Thaler wrote:

 3. According to RFC3291, if the address is unknown, then the
    value should be the zero-length octet string

My reading of 3291 is that the zero-length octet string is

only used if


the InetAddressType is unknown.

http://www1.ietf.org/internet-drafts/draft-ietf-ops-rfc3291bis-05.txt says something a little bit different -- an InetAddressType object must assume the value unknown(0) if the corresponding InetAddress object has zero length, but the reverse is not necessarily true, per the following excerpt from the InetAddressType DESCRIPTION clause:

  unknown(0)  An unknown address type. This value MUST
              be used if the value of the corresponding
              InetAddress object is a zero-length string.
              It may also be used to indicate an IP address
              which is not in one of the formats defined
              below.


If the type is known to be IPv4 or IPv6, then the zero-length
octet string is not used.

That, however, is certainly true.



[... ] The new UDP MIB says [ ... ] (and the TCP MIB has
similar text):
     an application which is willing to accept only IPv4
     or only IPv6 datagrams is represented by a
     udpEndpointLocalAddressType of the appropriate
     address type, and udpEndpointLocalAddress of ''h (a
     zero-length octet-string).

However, from RFC 3291 (unchanged in

draft-ietf-ops-rfc3291bis-05.txt),


the definition of the InetAddressType says
        ipv4(1)     An IPv4 address as defined by the
                    InetAddressIPv4 textual convention.

        ipv6(2)     A global IPv6 address as defined by the
                    InetAddressIPv6 textual convention.

And the SYNTAX clauses of those are:
InetAddressIPv4 ::= TEXTUAL-CONVENTION
   SYNTAX       OCTET STRING (SIZE (4))

InetAddressIPv6 ::= TEXTUAL-CONVENTION
   SYNTAX       OCTET STRING (SIZE (16))

Since the 0-length string is not legal in those SYNTAX clauses,
my reading is that the UDP-MIB (which is in IETF last call) and TCP-MIB (which is in the RFC editors queue)
interpretation is not legal, and the existing TUNNEL-MIB interpretation is correct.


Or am I missing something?

IMHO, you are not. I think that both of those documents need to be corrected. Fortunately, they are both blocked waiting for 3291bis, since it is a normative reference in both.

I guess we would be covered by a Last Call comment on the UDP-MIB,
but we will have to ask for help from Bert and Margaret for the
TCP-MIB.

Mike