RFC 5579

Transmission of IPv4 Packets over Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) Interfaces

๐Ÿ“… published February 2010, from ietf

1. Introduction โœจ

Okay bestie, let's get the title block tea first ๐Ÿซถ This RFC is RFC 5579, Transmission of IPv4 Packets over Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) Interfaces. F. Templin, Ed. wrote it at Boeing Research & Technology, and it's dated February 2010 ๐Ÿ“…. It's Informational and came in as an Independent Submission, with ISSN 2070-1721. The title block doesn't list anything it obsoletes or updates, so it's not replacing or changing any other RFC ๐Ÿ’….

Abstract

The Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) is a Non-Broadcast, Multiple Access (NBMA) interface type that sends IPv6 packets over IPv4 networks using automatic IPv6-in-IPv4 encapsulation ๐ŸŒธ. The original specs don't cover encapsulating and sending IPv4 packets, though, which is a gap ๐Ÿฅบ. This doc fills it with a method for transmitting IPv4 packets over ISATAP interfaces ๐ŸŽ€.

Status of This Memo

This document is not an Internet Standards Track specification ๐Ÿ™…โ€โ™€๏ธ. It's published just for information ๐Ÿ“š.

This is a contribution to the RFC Series, independent of any other RFC stream. The RFC Editor chose to publish it at their discretion, and they make no statement about how useful it is for implementation or deployment ๐Ÿคทโ€โ™€๏ธ. Documents the RFC Editor approves for publication aren't candidates for any level of Internet Standard, see Section 2 of RFC 5741 ๐Ÿ“–.

For the current status, any errata, and how to give feedback, check http://www.rfc-editor.org/info/rfc5579 ๐Ÿ”—.

IESG Note

This RFC is not a candidate for any level of Internet Standard ๐Ÿšซ. The IETF doesn't know whether this RFC is fit for any purpose, and its decision to publish wasn't based on IETF review of things like security, congestion control, or bad interaction with deployed protocols ๐Ÿ˜ฌ. The RFC Editor chose to publish it at their discretion, so readers should be careful about how much they trust it for implementation and deployment โš ๏ธ. See RFC 3932 for more info.

Copyright (c) 2010 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 it was published. Please read these carefully, because they spell out your rights and restrictions for this document ๐Ÿ“œ.

Table of Contents

1. Introduction ....................................................3
2. Terminology .....................................................3
3. ISATAP Interface Model ..........................................3
4. ISATAP Interface MTU ............................................4
5. IPv6 Operation ..................................................4
6. IPv4 Operation ..................................................4
   6.1. ISATAP IPv4 Address Configuration ..........................4
   6.2. IPv4 Route Configuration ...................................5
   6.3. ISATAP Interface Determination .............................5
   6.4. Next-Hop Resolution ........................................5
   6.5. Encapsulation and Transmission .............................6
   6.6. IPv4 Multicast Mapping .....................................6
   6.7. Recursive Encapsulation Avoidance ..........................7
7. Security Considerations .........................................7
8. Acknowledgements ................................................7
9. References ......................................................7
   9.1. Normative References .......................................7
   9.2. Informative References .....................................8
Appendix A. Encapsulation Avoidance ................................9

1. Introduction โœจ

Okay so ISATAP [RFC5214] is an NBMA interface type for sending IPv6 packets over IPv4 networks using automatic IPv6-in-IPv4 encapsulation ๐ŸŒˆ. ISATAP interfaces usually set up IPv6 addresses and prefixes but not IPv4 ones, so they look like a normal IPv6 interface with a null IPv4 config ๐Ÿ˜ญ. That's a real limit on where ISATAP can be used, and it's giving unnecessary ๐Ÿ’€.

ISATAP interfaces do automatic IPv6-in-IPv4 encapsulation over a virtual IPv6 overlay that covers a region inside a connected IPv4 routing topology (a "site") made of ordinary IPv4 routers ๐Ÿฆ‹. They make IPv6 link-local addresses that wrap an IPv4 address from an underlying IPv4 interface inside the IPv6 link-local prefix fe80::/10, as laid out in Sections 6 and 7 of [RFC5214] ๐Ÿ’œ. They can also set up IPv6 addresses from a non-link-local IPv6 prefix, exactly the same way. So [RFC5214] builds on the basic transition mechanisms from [RFC4213] ๐Ÿงš.

This doc sets up mechanisms and ops practices that let automatic IPv4-in-IPv4 encapsulation run over ISATAP interfaces, just like IPv6-in-IPv4 does ๐Ÿ’…. That means it also extends the IPv4-in-IPv4 tunneling from [RFC2003] โœจ. These are useful in lots of enterprise network setups, like the ones discussed in the RANGER [RANGER] and VET [VET] proposals ๐Ÿข.

The next sections spell out IPv4 operation over ISATAP interfaces. You're expected to know the IPv4 and IPv6 protocols ([RFC0791] and [RFC2460]), IPv4-in-IPv4 encapsulation [RFC2003], and IPv6-in-IPv4 encapsulation ([RFC4213] and [RFC5214]) already ๐Ÿซถ.

2. Terminology

The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in [RFC2119] ๐Ÿ“–.

3. ISATAP Interface Model

ISATAP interfaces use automatic IPv6-in-IPv4 encapsulation to cover a site (a region within a connected IPv4 routing topology) in a single IPv6 hop ๐Ÿฆ‹. So the site has border nodes with ISATAP interfaces that forward IPv6-in-IPv4 packets across it in one IPv6 hop, plus ordinary IPv4 routers between the border nodes that decrement the Time to Live (TTL) in the outer IPv4 header ๐ŸŒธ. Border nodes with ISATAP interfaces in the same site therefore see each other as single-hop neighbors ๐Ÿ‘ฏโ€โ™€๏ธ.

ISATAP interfaces get configured over one or more of the node's underlying IPv4 interfaces connected to the site. Those underlying IPv4 interfaces use site- or greater-scoped IPv4 addresses, and the underlying IPv4 interfaces of two "neighboring" ISATAP interfaces can be separated by many IPv4 hops inside the site ๐Ÿ—บ๏ธ.

This spec just extends the ISATAP interface model to also support IPv4-in-IPv4 encapsulation ๐Ÿ’–. When IPv4-in-IPv4 encapsulation is used, the ISATAP interface covers exactly the same underlying site as IPv6-in-IPv4 encapsulation does ๐ŸŽ€.

4. ISATAP Interface MTU

ISATAP interface MTU stuff is exactly as specified in Section 3.2 of [RFC4213], and it applies equally to both IPv6 and IPv4 operation ๐Ÿ“.

5. IPv6 Operation

IPv6 operations over ISATAP interfaces are exactly as specified in [RFC5214] ๐Ÿ’œ.

6. IPv4 Operation

The following sections specify IPv4 operation over ISATAP interfaces ๐ŸŒˆ:

6.1. ISATAP IPv4 Address Configuration

Just like IPv6 operation, IPv4 operation requires that all ISATAP interfaces connected to the same site configure a unique Layer 3 IPv4 address ("L3ADDR") taken from an IPv4 prefix for the site ๐Ÿ . L3ADDR is used for next-hop determination, and it can also be the source address for packets that come from the ISATAP interface itself ๐Ÿ“ฎ.

When the ISATAP site needs a unique "name" (say, to tell it apart from other ISATAP sites), L3ADDR comes from a public IPv4 prefix ๐ŸŒ. Otherwise, it can come from a link-local-scoped IPv4 prefix, like 169.254/16 [RFC3927] ๐Ÿงท.

Ways to make sure L3ADDR is unique include dynamic allocation using DHCP [RFC2131], manual configuration, etc. ๐Ÿ™Œ

6.2. IPv4 Route Configuration

Like any IPv4 interface, IPv4 Forwarding Information Base (FIB) entries (aka IPv4 routes) get configured over ISATAP interfaces through either administrative or dynamic mechanisms ๐Ÿ—‚๏ธ.

Next-hop addresses in FIB entries configured over an ISATAP interface match up with the L3ADDR assigned to a neighbor's ISATAP interface ๐ŸŽฏ.

6.3. ISATAP Interface Determination

When the node's IPv4 layer has a packet to send, it does an IPv4 FIB lookup to figure out the outgoing ISATAP interface and the next-hop L3ADDR ๐Ÿ”. Then the node checks the packet length against the MTU configured on the ISATAP interface ๐Ÿ“.

If the packet is no bigger than the MTU, the node lets it into the ISATAP interface without fragmenting it โœ…. If the packet is bigger than the MTU, the node checks the "Don't Fragment (DF)" flag in the IPv4 header ๐Ÿ‘€. If DF=1, it drops the packet and sends an ICMPv4 "fragmentation needed" message back to the original source [RFC1191] ๐Ÿ™…โ€โ™€๏ธ. Otherwise, it fragments the packet with IPv4 fragmentation and lets each fragment into the ISATAP interface ๐Ÿงฉ.

Heads up: DF=1 means the packet gets dropped, not fragmented, so the sender has to hear about it through that ICMPv4 "fragmentation needed" message ๐Ÿšจ.

6.4. Next-Hop Determination and Address Mapping

Just like ISATAP for IPv6, ISATAP for IPv4 requires a way to figure out the L3ADDR of neighbors on the ISATAP interface that can act as a next-hop toward the final destination ๐Ÿงญ. Next-hop determination for default routes goes through the Potential Router List (PRL) discovery procedures in Section 8.3.2 of [RFC5214] ๐Ÿ›ฃ๏ธ. For more-specific routes, next-hop methods include forwarding initial packets via a default router until a redirect comes back, name service lookup (like the one in [VET]), and so on ๐Ÿ”.

Once a next-hop L3ADDR is discovered, the node lets IPv4 packets and fragments into the ISATAP interface and maps the next-hop L3ADDR to a next-hop Layer 2 address ("L2ADDR") ๐Ÿช„. In reality, that L2ADDR is the IPv4 address of an underlying interface on the ISATAP neighbor, which might be many IPv4 hops away ๐ŸŒ.

Address mapping for IPv4 is different from the IPv6 version because there's no algorithmic mapping between L3ADDR and L2ADDR ๐Ÿ˜ค. So ISATAP for IPv4 requires an L3ADDR->L2ADDR address mapping method that's coordinated on a per-site basis, so every node in the site follows the same convention ๐Ÿค. Examples include name service lookup (like [VET] describes), static mapping table lookup, and so on ๐Ÿ“‹.

Next, the node does an IPv4 FIB lookup on the next-hop L2ADDR to find the correct underlying IPv4 interface ๐Ÿ”Ž. If that FIB lookup fails, the node drops the packet and sends an ICMPv4 "Destination Unreachable" message back to the original source [RFC0792] ๐Ÿ™ˆ. Otherwise, it encapsulates the packet and submits it to the IPv4 layer, as described below ๐Ÿ’–.

6.5. Encapsulation and Transmission โœจ

Okay bestie, so after the node does the IPv4 FIB lookup on the next-hop L2ADDR, it wraps the packet up using [RFC2003] ๐ŸŽ€. The outer IPv4 source is the IPv4 address of the underlying interface, and the outer IPv4 destination is the next-hop L2ADDR. The DF flag in the outer header gets set according to Section 3.2 of [RFC4213] ๐Ÿ’…. The IP protocol field in the outer header also gets set to 4 (that's ip-protocol-4) ๐Ÿฆ‹.

Then the node hands the encapsulated packet down to the IPv4 layer. If it's too big, the IPv4 layer fragments it, and then each fragment goes out the underlying IPv4 interface. That interface does address resolution on the outer IPv4 destination (aka the next-hop L2ADDR) and sends the packet out on the underlying link layer ๐Ÿš€.


6.6. IPv4 Multicast Mapping ๐Ÿงš

Lowkey, ISATAP is basically a unicast-only cousin of "6over4" [RFC2529] ๐Ÿ‘ฏ. ISATAP ended up getting deployed everywhere, while 6over4 kinda got quietly carried forward through ongoing research ๐Ÿ™ˆ. This spec extends the ISATAP interface model so it supports IPv4 multicast mapping, and it works exactly like the IPv6 multicast mapping in 6over4 (see [RFC2529], Section 6) ๐Ÿ’œ. Honestly, the approach could've been called "4over4" if "ISATAP" weren't already super ingrained in the terminology ๐Ÿ˜ญ.

IPv4 multicast mapping is only available on ISATAP interfaces that are configured over sites supporting IPv4 multicast ๐ŸŒธ. For those sites, an IPv4 packet sent on an ISATAP interface with a multicast destination address DST MUST be encapsulated for transmission on an underlying IPv4 interface, to the IPv4 multicast address of Organization-Local Scope, using the mapping below โœจ. The mapped address SHOULD come from the block 239.193.0.0/16. If that's not an option, it can come from a different sub-block of the Organization-Local Scope address block, or, if none of those are available, from the expansion blocks defined in [RFC2365] ๐Ÿ“.

Quick note: when the mapped address is formed using the expansion blocks, it only uses a /16-sized block ๐Ÿ’….
  +-------+-------+-------+-------+
  |  239  |  OLS  | DST2  | DST3  |
  +-------+-------+-------+-------+

       DST2, DST3          Last two bytes of IPv4 multicast address.

       OLS                 From the configured Organization-Local
                           Scope address block.  SHOULD be 193;
                           see [RFC2365] for details.

                  Figure 1: ISATAPv4 Multicast Mapping

No new IANA registration procedures are required for the above ๐ŸŒˆ.


6.7. Recursive Encapsulation Avoidance ๐Ÿ™…โ€โ™€๏ธ

The node must take care in managing its IPv4 FIB table entries in order to avoid looping through recursive encapsulations ๐Ÿ”. Don't let your tunnels eat their own tails, periodt ๐Ÿ’€.

7. Security Considerations ๐Ÿ”

The security considerations specified in [RFC2003] apply equally to this document. The security considerations specified in ISATAP [RFC5214] and 6over4 [RFC2529] also apply, with one exception: ip-protocol-4 encapsulation is used instead of ip-protocol-41 ๐Ÿšจ.

Updated tunnel security considerations are found in [SECURITY] ๐Ÿ›ก๏ธ. Read it, it's serious stuff, no cap โญ.

8. Acknowledgements ๐Ÿซถ

This work extends the ISATAP interface model, which has evolved through the insights of many contributers over the course of many decades ๐ŸŒท. Special thanks to Brian Carpenter and Jari Arkko for their helpful review input ๐Ÿ’–.

9. References ๐Ÿ“š

9.1. Normative References

[RFC0791]  Postel, J., "Internet Protocol", STD 5, RFC 791, September
           1981.

[RFC0792]  Postel, J., "Internet Control Message Protocol", STD 5,
           RFC 792, September 1981.

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

[RFC2003]  Perkins, C., "IP Encapsulation within IP", RFC 2003,
           October 1996.

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

[RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
           (IPv6) Specification", RFC 2460, December 1998.

[RFC2529]  Carpenter, B. and C. Jung, "Transmission of IPv6 over IPv4
           Domains without Explicit Tunnels", RFC 2529, March 1999.

[RFC3927]  Cheshire, S., Aboba, B., and E. Guttman, "Dynamic
           Configuration of IPv4 Link-Local Addresses", RFC 3927, May
           2005.

[RFC4213]  Nordmark, E. and R. Gilligan, "Basic Transition Mechanisms
           for IPv6 Hosts and Routers", RFC 4213, October 2005.

[RFC5214]  Templin, F., Gleeson, T., and D. Thaler, "Intra-Site
           Automatic Tunnel Addressing Protocol (ISATAP)", RFC 5214,
           March 2008.

9.2. Informative References

[SECURITY] Hoagland, J., Krishnan, S., and D. Thaler, "Security
           Concerns With IP Tunneling", Work in Progress, October
           2008.

[VET]      Templin, F., "Virtual Enterprise Traversal (VET)", RFC
           5558, February 2010.

[RANGER]   Templin, F., "Routing and Addressing in Networks with
           Global Enterprise Recursion (RANGER)", RFC 5720, February
           2010.

[RFC2131]  Droms, R., "Dynamic Host Configuration Protocol", RFC
           2131, March 1997.

[RFC2365]  Meyer, D., "Administratively Scoped IP Multicast", BCP 23,
           RFC 2365, July 1998.

Appendix A. Encapsulation Avoidance ๐Ÿฆ„

In some instances, an ISATAP interface may be configured over a site in which the L3ADDRs and L2ADDRs of all ISATAP neighbors are also known to be routable within the underlying site. In that case, the ISATAP interface MAY avoid encapsulation and submit the unencapsulated packets directly to the IPv4 layer. Note however that this approach does not provide for the use of indirection afforded through encapsulation ๐Ÿ’ญ.

Author's Address ๐ŸŽ€

Fred L. Templin (editor)
Boeing Research & Technology
P.O. Box 3707 MC 7L-49
Seattle, WA  98124
USA

EMail: fltemplin@acm.org
๐Ÿ“ฆ where this page comes from