Internet DRAFT - draft-jacquin-opsawg-icmp-blackhole-problem

draft-jacquin-opsawg-icmp-blackhole-problem






Network Working Group                                         L. Jacquin
Internet-Draft                                                   V. Roca
Intended status: Informational                                 M. Kaafar
Expires: January 10, 2013                                          INRIA
                                                            July 9, 2012


                   ICMP black hole: problem position
             draft-jacquin-opsawg-icmp-blackhole-problem-00

Abstract

   ICMP is a key protocol to exchange control and error messages over
   the Internet.  Unfortunately it is frequent that some routers along a
   given path do not correctly process this protocol.  This document
   provides a taxonomy of the problem in order to help an end user who
   suspects ICMP-related problems to better understand the situation,
   and possibly identify the faulty router(s).

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 10, 2013.

Copyright Notice

   Copyright (c) 2012 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of



Jacquin, et al.         Expires January 10, 2013                [Page 1]

Internet-Draft      ICMP black hole: problem position          July 2012


   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   2.  Requirements notation . . . . . . . . . . . . . . . . . . . . . 3
   3.  Problem position  . . . . . . . . . . . . . . . . . . . . . . . 3
     3.1.  Path definitions  . . . . . . . . . . . . . . . . . . . . . 3
     3.2.  Router behavior taxonomy  . . . . . . . . . . . . . . . . . 4
     3.3.  Note on the use of traffic destined to R itself . . . . . . 6
     3.4.  Path characterization with respect to ICMP  . . . . . . . . 6
   4.  A simple example  . . . . . . . . . . . . . . . . . . . . . . . 7
   5.  Addressing complex situations: the need for dedicated tools . . 7
   6.  Security Considerations . . . . . . . . . . . . . . . . . . . . 8
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 8
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 8
     8.1.  Normative References  . . . . . . . . . . . . . . . . . . . 8
     8.2.  Informative References  . . . . . . . . . . . . . . . . . . 8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 8






























Jacquin, et al.         Expires January 10, 2013                [Page 2]

Internet-Draft      ICMP black hole: problem position          July 2012


1.  Introduction

   ICMP is the key protocol to exchange control and error messages over
   the Internet.  ICMP is also implied in several functionalities, like
   the "Path Maximum Transmission Unit Discovery" (PMTUD) mechanism
   [RFC1191].  For instance, in IPv4, the sender sets the "don't
   fragment bit" (this is useless in IPv6 since fragmentation is not
   authorized).  If a router cannot transmit the packet because of its
   size, it must send back to the source an ICMP "Too Big" (type 3, code
   4 with IPv4 and type 2, code 0 with IPv6) packet.  Iteratively, the
   source will lower the packet size until it matches the lowest MTU on
   the path.

   An appropriate ICMP's processing throughout a path is therefore a key
   requirement both for troubleshooting operations (e.g., debugging
   routing problems) and for several functionalities (e.g., PMTUD).
   Unfortunately certain routers of the Internet do not handle ICMP as
   one would expect.  For instance, some of them will not forward ICMP
   packets on a given path, while others will not generate and send ICMP
   packets in response to errors or solicitations (e.g., an ICMP "echo
   request").  Note that the presence of ICMP black holes has been the
   motivation for the design of ICMP-free alternatives to PMTUD, namely
   the Packetization Layer Path MTU Discovery (PLPMTUD) [RFC4821].  In
   the present document we take the opposite approach and try to improve
   ICMP-related problem debugging in the Internet.

   The present document is essentially a problem position document.
   More precisely, the contributions are twofold:

   o  we provide a taxonomy of router behavior with respect to ICMP;

   o  we provide examples taken from real world experiments, using
      existing tools to illustrate the previous discussion and taxonomy;


2.  Requirements notation

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].


3.  Problem position

3.1.  Path definitions

   Let us consider a path from a source S to a destination D, and a
   router R along this path (there are typically several such routers



Jacquin, et al.         Expires January 10, 2013                [Page 3]

Internet-Draft      ICMP black hole: problem position          July 2012


   and R is one of them).  We assume that the packet flow generated by S
   and destined to D uses protocol PP.  More specifically in this work
   we consider either ICMP/IP, UDP/IP, or TCP/IP, where IP denotes
   either IPv4 or IPv6.

                 ICMP packet
        +---------------------------+
        |     ICMP return path      |
        v                           |
   +--------+  initial packet  +--------+ initial packet +-------------+
   |Source S|----------------->|Router R|--------------->|Destination D|
   +--------+ initial forward  +--------+ final forward  +-------------+
                    path                      path

                                 Figure 1

   We can define three different paths (Figure 1):

   o  the initial forward path: this is the path between S and R;

   o  the final forward path: this is the path between R and D;

   o  the ICMP return path: This is the path taken by ICMP packets
      destined to S and generated either by R, or by a router on the
      final forward path, or by D itself, and that go through R (this is
      not necessarily the case);

   It is important to note that the initial forward path up to R and the
   return ICMP path from R are not necessarily identical since routers
   often have different forwarding rules for each direction.  The
   forward initial or final paths also potentially depend on the nature
   of the initial packet protocol, since routers often use protocol
   dependent forwarding rules.  Finally, it is important to note that
   there are potentially as many ICMP return paths as there are routers
   on the forwarding path.

3.2.  Router behavior taxonomy

   First of all, it is important to note that ICMP handling is not a
   global property of a router.  Said differently, two interfaces of a
   given router may behave differently with respect to ICMP processing
   (e.g., per interface firewall configuration can explain this
   situation).  Therefore we need to work at the interface level.
   Moreover, for each interface we also differentiate incoming and
   outcoming traffic.  Said differently, a router behavior from S to D
   may differ when considering the reverse direction, D to S.

   Let us consider traffic from a source S to a destination D, and a



Jacquin, et al.         Expires January 10, 2013                [Page 4]

Internet-Draft      ICMP black hole: problem position          July 2012


   router R along this path.  We first identify an ability, which is not
   directly related to ICMP, but which has impacts on ICMP:

   1.  Ability A0: "correct IP processing of an incoming packet (not
       necessarily an ICMP packet) on the initial forward path": even if
       this is not an ICMP packet, it may have consequences on ICMP
       behavior.  For instance, if R does not decrement the IPv4 TTL/
       IPv6 Hop Limit field, R will not generate an ICMP packet if this
       field equals 1 upon being received by R.

   We then distinguish three ICMP-related abilities for traffic from S
   to D:

   1.  Ability A1: "R forwards ICMP packets destined to D on the final
       forward path when appropriate": upon receiving an ICMP packet
       from S, after A0 processing, when appropriate, does R forward it
       to D?

   2.  Ability A2: "ICMP packet generation at R": if an event requiring
       the generation of an ICMP packet occurs, does R forge an ICMP
       packet and does R return it to S, regardless of whether this
       packet arrives to S or not?  For instance this ICMP packet can
       result from an IPv4 TTL/IPv6 Hop Limit field that decrements to 0
       during the forwarding of a packet received on the incoming
       forward path;

   3.  Ability A3: "correct ICMP return path from R": when an ICMP
       packet is sent back to S from R (when it is generated by R) or
       through R (when it is generated by a router on the final forward
       path, D included), does this packet reach S?  It not necessarily
       the case, even if R can generate ICMP packets, e.g., because of
       ICMP filtering rules;

   As a particular case, we also need to assess the destination D
   abilities.  These abilities are essentially the same as for router R,
   with the distinction that:

   1.  Ability A1': "D processes ICMP packets destined to D as required
       by the upper layers": Forwarding is replaced in that case by the
       handling of the packet to the upper layers;

   Those are the four main properties along which we assess R's behavior
   and D's behavior.  As explained, these properties are (S, D)
   dependent (i.e. they depend on the path and direction), and there is
   no way to determine for sure all the features of router R with
   respect to ICMP.  For instance, the R's behavior for another
   interface, that is neither the two ones used for traffic from S to D,
   may have completely different behavior when considering ICMP.  Note



Jacquin, et al.         Expires January 10, 2013                [Page 5]

Internet-Draft      ICMP black hole: problem position          July 2012


   that having a full characterization of R is not required, since our
   goal is to help solving ICMP black holes from S to D, and not to
   determine R's full configuration policies with respect to ICMP.

3.3.  Note on the use of traffic destined to R itself

   It is of common practice to probe each router R directly, e.g., with
   PING "Echo Request"/"Echo Reply" packets.  This case almost
   corresponds to the previous case where R is the destination (D and R
   are identical).  A limit of this approach is that there is no strong
   guarantee that the initial forward path to R is identical with a
   packet destined to R to the initial forward path to R with a packet
   destined to D. However, this probing method can still be useful to
   qualify ability A3, no matter whether the initial forward paths are
   the same or not.  Indeed, A3 share in both cases the same ICMP packet
   source (R), destination (S) and protocol (ICMP).

3.4.  Path characterization with respect to ICMP

   Let us consider a path from a source S to a destination D, and let
   R_0, R_1, ..  R_n-1 be routers along this path.  Let us assume this
   path is fixed for the duration of the test (i.e., the list of the n
   routers will not change).  Then the path characterization consists in
   providing the full list of abilities that could be determined for
   each router plus the destination.  Of course, an ability A may not be
   determined, i.e., it can be either true or false, which is
   represented by (A + !A).

    S:
   R0: A0.!A1.A2.A3      (R0 does not forward ICMP packets)
   R1: A0.(A1+!A1).A2.A3 (we cannot assert if R1 forwards ICMP or not)
    D: A0.(A1'+!A1').A2.A3

              Figure 2: Simple path characterization example.

   Let us consider a simple case (Figure 2) with two intermediate
   routers, R0 and R1, where R0 does not forward ICMP packets on path S
   to D. In that case there is no way to determine ability A1 on R1 and
   A1' on D, but other abilities may be determined since they rely on
   different mechanisms.  For example, A0 can be determined by using UDP
   as a probing protocol, A2 can be determined by using a TTL value that
   decrements to 0 on R0, R1 or D with UDP or TCP as probing protocol,
   and since we assume that the ICMP packet returned on the return path
   arrives to S, A3 is determined too.

   This examples shows that the determination of abilities for router R
   can impact our detection of the abilities for router on the final
   forward path after R. Of course, it does not impact the routers



Jacquin, et al.         Expires January 10, 2013                [Page 6]

Internet-Draft      ICMP black hole: problem position          July 2012


   abilities themselves, only our view of their abilities.  Going
   further in the determination of all the router abilities may require
   additional control of the network, for instance via vintage points
   (i.e., routers or hosts within the core network that allows us to
   inject and observe traffic between S and D).


4.  A simple example

   Let us consider the following example where the path between S and D
   crosses three routers: R0, R1 and R2.  The user, located behind S,
   experiments bandwidth problems when using TCP (e.g., through an HTTP
   or SSH connection), and more precisely small TCP segments reach D but
   not large ones.  In order to investigate the problem, the user will
   probably ping D and in that case will obtain a reply.  Therefore this
   test is not of significant value to the user.  So the user continues
   investigating the problem and uses the traceroute tool, with either
   TCP or ICMP as the probing protocols.  The results are presented in
   Figure 3.  The user can deduce that R1, whose IP address (iP_R1) is
   obtained by the traceroute/ICMP test, does not forge any ICMP packet
   in response to TCP packets whose IPv4 TTL/IPv6 Hop Limit is
   decremented to 0 on R. Thus the user can deduce that its bandwidth
   problem is due to an erroneous configuration of R1, which by not
   forging ICMP packets when handling TCP packets, deprives S from using
   PMTUD.

                 Router | Traceroute TCP | Traceroute ICMP
                   S:   |     IP_S       |     IP_S
                  R0:   |     IP_R0      |     IP_R0
                  R1:   |     * * *      |     IP_R1
                  R2:   |     IP_R2      |     IP_R2
                   D:   |     IP_D       |     IP_D

                       Figure 3: Traceroute example.


5.  Addressing complex situations: the need for dedicated tools

   If the example of Section 4 can relatively easily be characterized,
   this is not the case with more complex situations.  In [Jacquin12] we
   detail the IBTrack (ICMP Black hole Tracker) tool that provides a
   general methodology to achieve this kind of analysis.  Depending on
   the assumptions that can be made, different tools can also be used.
   In particular if vantage points within the core network can be used,
   a more detailed diagnosis can probably be made by refining the
   observations, using different observations from different vantage
   points.  Similarly, if the destination D can be involved in the
   process, some abilities of the routers may be refined, even if some



Jacquin, et al.         Expires January 10, 2013                [Page 7]

Internet-Draft      ICMP black hole: problem position          July 2012


   of the ICMP return paths are not functioning.

   Therefore the present document should be regarded as a problem
   position document.  Practical approaches and tools will be introduced
   and discussed in separate documents.


6.  Security Considerations

   TBD


7.  Acknowledgements

   The authors want to thank the other authors of [Jacquin12], namely
   Fabrice Schuler and Jean-Louis Roch.


8.  References

8.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

8.2.  Informative References

   [Jacquin12]
              Jacquin, L., Roca, V., Kaafar, M., Schuler, F., and J-L.
              Roch, "IBTrack: an ICMP black holes tracker", IEEE
              Globecom 2012, http://hal.inria.fr/hal-00695746/en/,
              December 2012.

   [RFC1191]  Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191,
              November 1990.

   [RFC4821]  Mathis, M. and J. Heffner, "Packetization Layer Path MTU
              Discovery", RFC 4821, March 2007.













Jacquin, et al.         Expires January 10, 2013                [Page 8]

Internet-Draft      ICMP black hole: problem position          July 2012


Authors' Addresses

   Ludovic Jacquin
   INRIA
   655, av. de l'Europe
   Inovallee; Montbonnot
   ST ISMIER cedex  38334
   France

   Email: ludovic.jacquin@inria.fr
   URI:   http://planete.inrialpes.fr/~jacquin/


   Vincent Roca
   INRIA
   655, av. de l'Europe
   Inovallee; Montbonnot
   ST ISMIER cedex  38334
   France

   Email: vincent.roca@inria.fr
   URI:   http://planete.inrialpes.fr/~roca/


   Mohamed-Ali Kaafar
   INRIA
   655, av. de l'Europe
   Inovallee; Montbonnot
   ST ISMIER cedex  38334
   France

   Email: mohamed-ali.kaafar@inria.fr
   URI:   http://planete.inrialpes.fr/~kaafar/


















Jacquin, et al.         Expires January 10, 2013                [Page 9]