Re: [Int-area] updated to draft-atlas-icmp-unnumbered-03
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Int-area] updated to draft-atlas-icmp-unnumbered-03



Alia,

Thank you for your answers, please see inline.

On 10/1/2007 9:23 PM, Alia Atlas said the following:
On 9/19/07, Carlos Pignataro <cpignata at cisco.com> wrote:


On 7/26/2007 2:12 PM, Alia Atlas said the following:
> On 7/26/07, *Shane Amante* <shane at castlepoint.net
> <mailto: shane at castlepoint.net>> wrote:
>
>     Mark,
>
>     Mark Townsley wrote:
>     >
>     > Please also give us feedback on whether or not this document should be
>     > published, and on what track. I am considering the Standards Track,
>     > shepherded directly by either me or Jari.
>
>     I would support Standards Track.

I also support publishing this document in Standards Track.

>
>     In addition, Alia and I have been speaking about another use case for
>     this draft.  In particular, I would like to see it extended to account
>     for identification of component-links inside ECMP and LAG's, which
>     should be a straightforward use case given what's already specified in
>     this draft.  This use case has become prevalent over the last several
>     years and will become even more so in the future.
>
>
> I believe that these cases can be handled by the router deciding which
> ifIndex or IP address to include.  For instance, a router might include the
> ifIndex of the member interface of a LAG.

I agree that the document is much more aligned with and structured
around solving the problem of identifying the incoming interface of an
undeliverable datagram, and that's a very useful troubleshooting tool.
It also cleaned some of the issues previously identified.

Please find a couple of comments: I think that the "Usage" section can
use some finer/stricter definition; the report of the "numberedness" of
the interface in question can also help (and is currently not directly
covered). In the bitfield definition of the C-Type, one bit can be saved
by merging together the IPv4 and IPv6 bits in a single field, since only
one is meaningful for a given ICMP. It may also help to discuss what a
NAT should do with extension fields containing addresses, if anything.
Finally, regarding ECMPs and LAGs, I think that the router behavior
should be deterministic in always including the same interface, (e.g.,
the LAG and not individual members), so that the receiving end can
interpret it a given way.

I have added a bit to the usage mentioning that the outgoing interface information
can be used to create a destination map.  I would be happy to add additional usage
details.

On those lines, please let me know what the usage case is for reporting the numberedness of an interface.
There may not be strong usage cases that would aid in identifying the incoming interface (and the numberdness might be inferred from the other fields based on the Section 4.4 usage rules). It was more of a having all the pieces, strike out this comment :)
I have consolidated the IPv4/IPv6 bits into 1 - it causes a parsing dependency on the packet type that was received, but given how short we are of bits, I think that is acceptable.
Thank you.

I would welcome discussion on what a NAT should do.  I can see a couple possibilities and I'm sure there are more.  One possibility that would expose that there are different paths would be for the NAT to replace an IP address with a "fake ifindex" or a "description" that indicates the external (address, port) or something along those lines.  I.e., the NAT doesn't try to hide the multiplicity of paths behind it; I can see usage cases where this would be very helpful for trouble-shooting.  
This is when the ICMP originates on the private side and traverses the NAT, correct?

The second option would be to remove the IP address and ifindex info and overwrite the description with something indicating the address of the NAT that did so (or the authority or something) or just remove the object.
 
Let me know what you'd prefer - or if we should define both for policy-based behavior - or if you see another option.
I'm not sure what a NAT should do, although it might need different behavior for the different fields (IP Address, ifIndex and Description)? one further option for the IP address is a similar to the Router-x|y source IP address treatment in Section 4.2.1 and 4.2.2 (respectively) of draft-ietf-behave-nat-icmp-05, that is depending on external/private network. draft-ietf-behave-nat-icmp-05 says:

   In addition, if the ICMP Error payload contains ICMP extensions
   ([ICMP-EXT]), the NATs are encouraged to support ICMP extension
   objects. At the time of this writing, the authors are not aware
   of any standard ICMP extension objects containing realm
   specific information.
And revision -03 explored something like that. But it could treat the IP address in the object similarly than the source IP address in those sections (they might be the same). This could be coupled, as you say, with an option (or even a default?) to remove the extension (or overwrite it with a description). The other aspect of extension-NAT interaction is the risk when the ICMP is generated from the private network sent outside, to leak "internal information". This risk may fall under the existing text:
   It may be
   desirable to provide this information to a particular network's
   operators and not to others.
Although it might help to call it out separately.

As for the LAG, this is a real problem that exists in networks today.  I don't want to lose the ability to solve that problem due to a desire for determinism.   An ifindex has meaning that is router-specific already; wouldn't the description provide the necessary information for a clearer interpretation? 
I agree it is a real problem. My comment is that if someone sources a traceroute and receives an interface extension object, it should be clear if it is reporting a member or the LAG. Agreed, the ifIndex can be used for identification, but that would typically need an extra (offline) query step; the Description might help, if included.
Are you picturing something more sophisticated than a traceroute output?  Given the desire to preserve the ability to tell the member of a LAG taken, what would you suggest?  Are we onto another sub-object?
Or a new "Interface Role" / C-type. Currently, only one incoming interface object can be included, the question I think is how can the receiving end know it points to a member interface.

Thanks,

--Carlos.


Thanks,
Alia

Thanks,

--Carlos.


>
> Alia
>
>
>     -shane
>
>
>     > - Mark
>     >
>     > Alia Atlas wrote:
>     >> I have updated the draft to reflect its goal of providing better
>     >> identification of the receiving interface to aid in troubleshooting
>     >> with traceroute.
>     >>
>     >> There are a few common scenarios that this draft is intended to help
>     >> with.
>     >>
>     >> First, the receiving interface may be different than the outgoing
>     >> interface (which gives the source IP address in the ICMP packet)
>     >> because of either asymmetric link costs or ECMP.
>     >>
>     >> Second, the receiving interface may be unnumbered, so that the source
>     >> IP address can't identify the interface.  This is a problem for
>     >> troubleshooting when there are parallel unnumbered links.
>     >>
>     >> I would welcome any comments or discussion on this draft.
>     >>
>     >> Thanks,
>     >> Alia
>     >>
>     >>
>     >>
>     >>
>     >> On 5/15/07, *Alia Atlas* < akatlas at gmail.com
>     <mailto:akatlas at gmail.com>
>     >> <mailto:akatlas at gmail.com <mailto: akatlas at gmail.com>>> wrote:
>     >>
>     >>     On 5/14/07, *Pekka Savola* < pekkas at netcore.fi
>     <mailto: pekkas at netcore.fi>
>     >>     <mailto:pekkas at netcore.fi <mailto:pekkas at netcore.fi>>> wrote:
>     >>
>     >>         On Mon, 14 May 2007, Alia Atlas wrote:
>     >>         > In general, I find the specification having features
>     that I
>     >>         don't see
>     >>         >>  necessary. Reporting ifIndex is not necessary (and the
>     >>         index is not
>     >>         >>  very useful as is to a human) if ifName is
>     >>         reported.  Addresses are
>     >>         >>  already known from the source address though somewhat
>     less
>     >>         reliably so
>     >>         >>  those need not be reported for outgoing interface
>     use, and
>     >>         could also
>     >>         >>  result in reporting IPv6 link-local addresses (or IPv4
>     >> private
>     >>         >>  addresses) which wouldn't necessarily be useful or
>     desired.
>     >>         >
>     >>         > The idea with reporting the ifIndex is to provide the easy
>     >>         ability
>     >>         > to correlate that to MIB data.  It is a common look-up key
>     >> and I
>     >>         > believe it to be useful.
>     >>         >
>     >>         > Using simply the source address doesn't handle
>     topologies with
>     >>         > parallel links between routers.  In that case, knowing the
>     >> exact
>     >>         > outgoing link for troubleshooting is useful. ...
>     >>
>     >>         (A potentially interesting note: at least one implementation
>     >>         has an
>     >>         internal 'interface index' which is different from 'SNMP
>     >> ifIndex'.
>     >>         The intent should be clear in the spec.)
>     >>
>     >>
>     >>     Do you have improved phrasing you might suggest?
>     >>
>     >>         If ifName is reported, is there significant benefit in
>     reporting
>     >>         ifIndex as well?
>     >>
>     >>         It could be more easily used for correlation, but that's only
>     >>         useful
>     >>         for the operators of the network who could know the
>     ifIndexes
>     >>         on the
>     >>         routers, not outsiders.  On the other hand, those network
>     >>         operators
>     >>         can very well map the ifName to ifIndex using SNMP or similar
>     >>         tools as
>     >>         well.
>     >>
>     >>
>     >>     True -  I guess some of it depends whether the name or ifIndex is
>     >>     more private
>     >>     and how many steps an operator has to take to get decent
>     results.
>     >>     On the other hand, normal traceroute gives both the IP
>     address and
>     >>     the DNS
>     >>     name, if any.  I was looking to provide the equivalent.
>     >>
>     >>         I'm not strongly against being able to report ifIndex
>     (but I'd
>     >>         rather
>     >>         that it doesn't get reported by default, at least to
>     >>         everyone), but it
>     >>         seems like a feature that's more likely to clutter the
>     traceroute
>     >>         output with little added value: ifName should already provide
>     >>         the same
>     >>         benefits and is a more generic mechanism.
>     >>
>     >>
>     >>     All of the additional info is optional and an operator could
>     >>     determine what
>     >>     to show based upon the incoming IP address or such.
>     >>
>     >>     Again, I was going for duplicating the information provided if an
>     >>     IP address existed.
>     >>
>     >>     Alia
>     >>
>     >>
>     >>
>     ------------------------------------------------------------------------
>     >>
>     >> _______________________________________________
>     >> Int-area mailing list
>     >> Int-area at lists.ietf.org <mailto:Int-area at lists.ietf.org>
>     >> https://www1.ietf.org/mailman/listinfo/int-area
>     >>
>     >
>     >
>     > _______________________________________________
>     > Int-area mailing list
>     > Int-area at lists.ietf.org <mailto:Int-area at lists.ietf.org>
>     > https://www1.ietf.org/mailman/listinfo/int-area
>
>
>
>     _______________________________________________
>     Int-area mailing list
>     Int-area at lists.ietf.org <mailto: Int-area at lists.ietf.org>
>     https://www1.ietf.org/mailman/listinfo/int-area
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Int-area mailing list
> Int-area at lists.ietf.org
> https://www1.ietf.org/mailman/listinfo/int-area

--
--Carlos Pignataro.
Escalation RTP - cisco Systems


-- 
--Carlos Pignataro.
Escalation RTP - cisco Systems
_______________________________________________
Int-area mailing list
Int-area at lists.ietf.org
https://www1.ietf.org/mailman/listinfo/int-area

Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.