Internet D. Yeung Internet-Draft Cisco Systems Intended status: Informational Feb 2013 Expires: August 5, 2013 ICMP Extensions for Virtual Network draft-yeung-icmp-vnet-01 Abstract This document specifies the extensions to ICMP that allow virtual network information to be included in an ICMP packet. These extensions can be used to facilitate troubleshooting network problems within a virtual network or across multiple virtual networks. 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 August 5, 2013. Copyright Notice Copyright (c) 2013 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 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Yeung Expires August 5, 2013 [Page 1] Internet-Draft ICMP Virtual Network Feb 2013 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . . 3 2. ICMP Multiple-part Message Extension . . . . . . . . . . . . . 3 3. Virtual Network Information Objects for ICMP . . . . . . . . . 3 3.1. Incoming Virtual Network Name Object . . . . . . . . . . . 4 3.2. Outgoing Virtual Network Name Object . . . . . . . . . . . 4 3.3. Incoming Virtual Network ID Object . . . . . . . . . . . . 5 3.4. Outgoing Virtual Network ID Object . . . . . . . . . . . . 6 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 7 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 7 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 7.1. Normative References . . . . . . . . . . . . . . . . . . . 8 7.2. Informative References . . . . . . . . . . . . . . . . . . 8 Appendix A. Additional Stuff . . . . . . . . . . . . . . . . . . . 8 Yeung Expires August 5, 2013 [Page 2] Internet-Draft ICMP Virtual Network Feb 2013 1. Introduction Internet Control Message Protocol (ICMP) [RFC0792] has been widely used for troubleshooting purposes. This document utilizes the ICMP multi-part message extension [RFC4884] to define new virtual network information objects in ICMP messages. When using a traceroute diagnostic tool across virtual network domains, it is useful to have ICMP Time Exceeded messages, defined in section 4.2 and 4.5 of [RFC4884], to include transit virtual network information of intermediate routers. 1.1. Requirements Language 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]. 2. ICMP Multiple-part Message Extension The ICMP message MUST include the IP header and leading payload octets of the original datagram. An ICMP Extension Structure Header MUST follow the octets from the original datagram and come before any ICMP Extension Objects. 3. Virtual Network Information Objects for ICMP This section defines a list of new ICMP virtual network information objects that can be optionally appended to the ICMP Time Exceeded and Destination Unreachable messages. These new ICMP virtual network information objects are defined per section 8, ICMP Extension Objects, of [RFC4884] and have the format below. Object header and payload: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Class-Num | C-Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | // (Object payload) // | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 1: ICMP Extension Objects Yeung Expires August 5, 2013 [Page 3] Internet-Draft ICMP Virtual Network Feb 2013 3.1. Incoming Virtual Network Name Object The router MAY include the incoming virtual network name object when sending out the ICMP messages. Object header and payload: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | 5 | 11 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Virtual Network Name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // Virtual Network Name, continued. // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Virtual Network Name, continued. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 2: Incoming Virtual Network Name Object Length: Length of the object, measured in octets, including the object header and object payload. The value is 4 + 4 * N, where N is the number of 4-octets used to store the Virtual Network Name. Class-Num: Set to the value of 5 to identify the Virtual Network Information Object class. C-Type: Set to the value of 11 to identify the Incoming Virtual Network Name Object. Virtual Network Name: This object payload contains the name of the virtual network of the incoming interface. Human-readable text for this object MUST be provided in the US-ASCII charset [ANSI.X3-4.1986] using the Default Language [RFC2277]. This field must have a length that is a multiple of 4 bytes; the string should be padded with zeroes as necessary. 3.2. Outgoing Virtual Network Name Object The router MAY include the outgoing virtual network name object when sending out the ICMP messages. Yeung Expires August 5, 2013 [Page 4] Internet-Draft ICMP Virtual Network Feb 2013 Object header and payload: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | 5 | 12 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Virtual Network Name | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // Virtual Network Name, continued. // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Virtual Network Name, continued. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 3: Outgoing Virtual Network Name Object Length: Length of the object, measured in octets, including the object header and object payload. The value is 4 + 4 * N, where N is the number of 4-octets used to store the Virtual Network Name. Class-Num: Set to the value of 5 to identify the Virtual Network Information Object class. C-Type: Set to the value of 12 to identify the Outgoing Virtual Network Name Object. Virtual Network Name: This object payload contains the name of the virtual network of the outgoing interface should the original packet is forwarded. Human-readable text for this object MUST be provided in the US-ASCII charset [ANSI.X3-4.1986] using the Default Language [RFC2277]. This field must have a length that is a multiple of 4 bytes; the string should be padded with zeroes as necessary. 3.3. Incoming Virtual Network ID Object The router MAY include the incoming virtual network ID object when sending out the ICMP messages. Yeung Expires August 5, 2013 [Page 5] Internet-Draft ICMP Virtual Network Feb 2013 Object header and payload: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | 5 | 13 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Virtual Network ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 4: Incoming Virtual Network ID Object Length: Length of the object, measured in octets, including the object header and object payload. The value is 8. Class-Num: Set to the value of 5 to identify the Virtual Network Information Object class. C-Type: Set to the value of 13 to identify the Incoming Virtual Network Name ID. Virtual Network ID: This object payload contains the ID of the virtual network of the incoming interface. 3.4. Outgoing Virtual Network ID Object The router MAY include the outgoing virtual network ID object when sending out the ICMP messages. Object header and payload: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | 5 | 14 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Virtual Network ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Figure 5: Outgoing Virtual Network ID Object Yeung Expires August 5, 2013 [Page 6] Internet-Draft ICMP Virtual Network Feb 2013 Length: Length of the object, measured in octets, including the object header and object payload. The value is 8. Class-Num: Set to the value of 5 to identify the Virtual Network Information Object class. C-Type: Set to the value of 14 to identify the Outgoing Virtual Network Name ID. Virtual Network ID: This object payload contains the ID of the virtual network of the outgoing interface should the original packet is forwarded. 4. Acknowledgements The authors would like to thank Padma Pillay-Esnault, Naiming Shen and many others for review and comments. This document was produced using Marshall Rose's xml2rfc tool. 5. IANA Considerations This document defines new ICMP Extension Object Class 5 for the Virtual Network Information Object registry. Within the new Virtual Network Information Object class, the following Class Sub-type are defined. +--------------------------------------+----------------------+ | Object Name | Class Sub-type Value | +--------------------------------------+----------------------+ | Incoming Virtual Network Name Object | 11 | | Outgoing Virtual Network Name Object | 12 | | Incoming Virtual Network ID Object | 13 | | Outgoing Virtual Network ID Object | 14 | +--------------------------------------+----------------------+ Table 1: Virtual Network Information Object Class Sub-types 6. Security Considerations These ICMP extensions can provide operators with additional information during network troubleshooting. It may be desirable to provide this information only to network operators. The Yeung Expires August 5, 2013 [Page 7] Internet-Draft ICMP Virtual Network Feb 2013 implementation should allow the configuration of the policy control over the operation of these objects. For example, an access list can be attached to check the IP destination of the ICMP packets with this extension belong to internal network management subnet. 7. References 7.1. Normative References [RFC0792] Postel, J., "Internet Control Message Protocol", STD 5, RFC 792, September 1981. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4884] Bonica, R., Gan, D., Tappan, D., and C. Pignataro, "Extended ICMP to Support Multi-Part Messages", RFC 4884, April 2007. 7.2. Informative References [ANSI.X3-4.1986] American National Standards Institute, "Coded Character Set - 7-bit American Standard Code for Information Interchange", ANSI X3.4, 1986. [RFC2277] Alvestrand, H., "IETF Policy on Character Sets and Languages", BCP 18, RFC 2277, January 1998. Appendix A. Additional Stuff Author's Address Derek Yeung Cisco Systems 170 West Tasman Drive San Jose, CA 95134 USA Phone: EMail: myeung@cisco.com Yeung Expires August 5, 2013 [Page 8]