diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc5565.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc5565.txt')
-rw-r--r-- | doc/rfc/rfc5565.txt | 1739 |
1 files changed, 1739 insertions, 0 deletions
diff --git a/doc/rfc/rfc5565.txt b/doc/rfc/rfc5565.txt new file mode 100644 index 0000000..f455ace --- /dev/null +++ b/doc/rfc/rfc5565.txt @@ -0,0 +1,1739 @@ + + + + + + +Network Working Group J. Wu +Request for Comments: 5565 Y. Cui +Category: Standards Track Tsinghua University + C. Metz + E. Rosen + Cisco Systems, Inc. + June 2009 + + + Softwire Mesh Framework + +Status of This Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (c) 2009 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 in effect on the date of + publication of this document (http://trustee.ietf.org/license-info). + Please review these documents carefully, as they describe your rights + and restrictions with respect to this document. + + This document may contain material from IETF Documents or IETF + Contributions published or made publicly available before November + 10, 2008. The person(s) controlling the copyright in some of this + material may not have granted the IETF Trust the right to allow + modifications of such material outside the IETF Standards Process. + Without obtaining an adequate license from the person(s) controlling + the copyright in such materials, this document may not be modified + outside the IETF Standards Process, and derivative works of it may + not be created outside the IETF Standards Process, except to format + it for publication as an RFC or to translate it into languages other + than English. + + + + + + + + + + +Wu, et al. Standards Track [Page 1] + +RFC 5565 Softwire Mesh Framework June 2009 + + +Abstract + + The Internet needs to be able to handle both IPv4 and IPv6 packets. + However, it is expected that some constituent networks of the + Internet will be "single-protocol" networks. One kind of single- + protocol network can parse only IPv4 packets and can process only + IPv4 routing information; another kind can parse only IPv6 packets + and can process only IPv6 routing information. It is nevertheless + required that either kind of single-protocol network be able to + provide transit service for the "other" protocol. This is done by + passing the "other kind" of routing information from one edge of the + single-protocol network to the other, and by tunneling the "other + kind" of data packet from one edge to the other. The tunnels are + known as "softwires". This framework document explains how the + routing information and the data packets of one protocol are passed + through a single-protocol network of the other protocol. The + document is careful to specify when this can be done with existing + technology and when it requires the development of new or modified + technology. + +Table of Contents + + 1. Introduction ....................................................3 + 2. Specification of Requirements ...................................6 + 3. Scenarios of Interest ...........................................7 + 3.1. IPv6-over-IPv4 Scenario ....................................7 + 3.2. IPv4-over-IPv6 Scenario ....................................9 + 4. General Principles of the Solution .............................10 + 4.1. E-IP and I-IP .............................................10 + 4.2. Routing ...................................................10 + 4.3. Tunneled Forwarding .......................................11 + 5. Distribution of Inter-AFBR Routing Information .................11 + 6. Softwire Signaling .............................................13 + 7. Choosing to Forward through a Softwire .........................15 + 8. Selecting a Tunneling Technology ...............................15 + 9. Selecting the Softwire for a Given Packet ......................16 + 10. Softwire OAM and MIBs .........................................17 + 10.1. Operations and Maintenance (OAM) .........................17 + 10.2. MIBs .....................................................18 + 11. Softwire Multicast ............................................18 + 11.1. One-to-One Mappings ......................................18 + 11.1.1. Using PIM in the Core .............................19 + 11.1.2. Using mLDP and Multicast MPLS in the Core .........20 + 11.2. MVPN-Like Schemes ........................................21 + 12. Inter-AS Considerations .......................................22 + 13. Security Considerations .......................................23 + 13.1. Problem Analysis .........................................23 + 13.2. Non-Cryptographic Techniques .............................24 + + + +Wu, et al. Standards Track [Page 2] + +RFC 5565 Softwire Mesh Framework June 2009 + + + 13.3. Cryptographic Techniques .................................26 + 14. References ....................................................27 + 14.1. Normative References .....................................27 + 14.2. Informative References ...................................28 + 15. Contributors ..................................................30 + 16. Acknowledgments ...............................................30 + +1. Introduction + + The routing information in any IP backbone network can be thought of + as being in one of two categories: "internal routing information" or + "external routing information". The internal routing information + consists of routes to the nodes that belong to the backbone, and to + the interfaces of those nodes. External routing information consists + of routes to destinations beyond the backbone, especially + destinations to which the backbone is not directly attached. In + general, BGP [RFC4271] is used to distribute external routing + information, and an Interior Gateway Protocol (IGP) such as OSPF + [RFC2328] or IS-IS [RFC1195] is used to distribute internal routing + information. + + Often an IP backbone will provide transit routing services for + packets that originate outside the backbone and whose destinations + are outside the backbone. These packets enter the backbone at one of + its "edge routers". They are routed through the backbone to another + edge router, after which they leave the backbone and continue on + their way. The edge nodes of the backbone are often known as + "Provider Edge" (PE) routers. The term "ingress" (or "ingress PE") + refers to the router at which a packet enters the backbone, and the + term "egress" (or "egress PE") refers to the router at which it + leaves the backbone. Interior nodes are often known as "P routers". + Routers that are outside the backbone but directly attached to it are + known as "Customer Edge" (CE) routers. (This terminology is taken + from [RFC4364].) + + When a packet's destination is outside the backbone, the routing + information that is needed within the backbone in order to route the + packet to the proper egress is, by definition, external routing + information. + + Traditionally, the external routing information has been distributed + by BGP to all the routers in the backbone, not just to the edge + routers (i.e., not just to the ingress and egress points). Each of + the interior nodes has been expected to look up the packet's + destination address and route it towards the egress point. This is + known as "native forwarding": the interior nodes look into each + packet's header in order to match the information in the header with + the external routing information. + + + +Wu, et al. Standards Track [Page 3] + +RFC 5565 Softwire Mesh Framework June 2009 + + + It is, however, possible to provide transit services without + requiring that all the backbone routers have the external routing + information. The routing information that BGP distributes to each + ingress router specifies the egress router for each route. The + ingress router can therefore "tunnel" the packet directly to the + egress router. "Tunneling the packet" means putting on some sort of + encapsulation header that will force the interior routers to forward + the packet to the egress router. The original packet is known as the + "encapsulation payload". The P routers do not look at the packet + header of the payload but only at the encapsulation header. Since + the path to the egress router is part of the internal routing + information of the backbone, the interior routers then do not need to + know the external routing information. This is known as "tunneled + forwarding". Of course, before the packet can leave the egress, it + has to be decapsulated. + + The scenario where the P routers do not have external routes is + sometimes known as a "BGP-free core". That is something of a + misnomer, though, since the crucial aspect of this scenario is not + that the interior nodes don't run BGP, but that they don't maintain + the external routing information. + + In recent years, we have seen this scenario deployed to support VPN + services, as specified in [RFC4364]. An edge router maintains + multiple independent routing/addressing spaces, one for each VPN to + which it interfaces. However, the routing information for the VPNs + is not maintained by the interior routers. In most of these + scenarios, MPLS is used as the encapsulation mechanism for getting + the packets from ingress to egress. There are some deployments in + which an IP-based encapsulation, such as L2TPv3 (Layer 2 Transport + Protocol) [RFC3931] or GRE (Generic Routing Encapsulation) [RFC2784] + is used. + + This same technique can also be useful when the external routing + information consists not of VPN routes, but of "ordinary" Internet + routes. It can be used any time it is desired to keep external + routing information out of a backbone's interior nodes, or in fact + any time it is desired for any reason to avoid the native forwarding + of certain kinds of packets. + + This framework focuses on two such scenarios. + + 1. In this scenario, the backbone's interior nodes support only + IPv6. They do not maintain IPv4 routes at all, and are not + expected to parse IPv4 packet headers. Yet, it is desired to + use such a backbone to provide transit services for IPv4 + packets. Therefore, tunneled forwarding of IPv4 packets is + + + + +Wu, et al. Standards Track [Page 4] + +RFC 5565 Softwire Mesh Framework June 2009 + + + required. Of course, the edge nodes must have the IPv4 routes, + but the ingress must perform an encapsulation in order to get + an IPv4 packet forwarded to the egress. + + 2. This scenario is the reverse of scenario 1, i.e., the + backbone's interior nodes support only IPv4, but it is desired + to use the backbone for IPv6 transit. + + In these scenarios, a backbone whose interior nodes support only one + of the two address families is required to provide transit services + for the other. The backbone's edge routers must, of course, support + both address families. We use the term "Address Family Border + Router" (AFBR) to refer to these PE routers. The tunnels that are + used for forwarding are referred to as "softwires". + + These two scenarios are known as the "Softwire Mesh Problem" + [SW-PROB], and the framework specified in this document is therefore + known as the "Softwire Mesh Framework". In this framework, only the + AFBRs need to support both address families. The CE routers support + only a single address family, and the P routers support only the + other address family. + + It is possible to address these scenarios via a large variety of + tunneling technologies. This framework does not mandate the use of + any particular tunneling technology. In any given deployment, the + choice of tunneling technology is a matter of policy. The framework + accommodates at least the use of MPLS ([RFC3031], [RFC3032]) -- both + LDP-based (Label Distribution Protocol, [RFC5036]) and RSVP-TE-based + (Resource Reservation Protocol - Traffic Engineering, [RFC3209]) -- + L2TPv3 [RFC3931], GRE [RFC2784], and IP-in-IP [RFC2003]. The + framework will also accommodate the use of IPsec tunneling, when that + is necessary in order to meet security requirements. + + It is expected that, in many deployments, the choice of tunneling + technology will be made by a simple expression of policy, such as + "always use IP-IP tunnels", or "always use LDP-based MPLS", or + "always use L2TPv3". + + However, other deployments may have a mixture of routers, some of + which support, say, both GRE and L2TPv3, but others of which support + only one of those techniques. It is desirable therefore to allow the + network administration to create a small set of classes, and to + configure each AFBR to be a member of one or more of these classes. + Then the routers can advertise their class memberships to each other, + and the encapsulation policies can be expressed as, e.g., "use L2TPv3 + to tunnel to routers in class X; use GRE to tunnel to routers in + + + + + +Wu, et al. Standards Track [Page 5] + +RFC 5565 Softwire Mesh Framework June 2009 + + + class Y". To support such policies, it is necessary for the AFBRs to + be able to advertise their class memberships; a standard way of doing + this must be developed. + + Policy may also require a certain class of traffic to receive a + certain quality of service, and this may impact the choice of tunnel + and/or tunneling technology used for packets in that class. This + needs to be accommodated by the Softwire Mesh Framework. + + The use of tunneled forwarding often requires that some sort of + signaling protocol be used to set up and/or maintain the tunnels. + Many of the tunneling technologies accommodated by this framework + already have their own signaling protocols. However, some do not, + and in some cases the standard signaling protocol for a particular + tunneling technology may not be appropriate (for one or another + reason) in the scenarios of interest. In such cases (and in such + cases only), new signaling methodologies need to be defined and + standardized. + + In this framework, the softwires do not form an overlay topology that + is visible to routing; routing adjacencies are not maintained over + the softwires, and routing control packets are not sent through the + softwires. Routing adjacencies among backbone nodes (including the + edge nodes) are maintained via the native technology of the backbone. + + There is already a standard routing method for distributing external + routing information among AFBRs, namely BGP. However, in the + scenarios of interest, we may be using IPv6-based BGP sessions to + pass IPv4 routing information, and we may be using IPv4-based BGP + sessions to pass IPv6 routing information. Furthermore, when IPv4 + traffic is to be tunneled over an IPv6 backbone, it is necessary to + encode the "BGP next hop" for an IPv4 route as an IPv6 address, and + vice versa. The method for encoding an IPv4 address as the next hop + for an IPv6 route is specified in [V6NLRI-V4NH]; the method for + encoding an IPv6 address as the next hop for an IPv4 route is + specified in [V4NLRI-V6NH]. + +2. Specification of Requirements + + 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]. + + + + + + + + + +Wu, et al. Standards Track [Page 6] + +RFC 5565 Softwire Mesh Framework June 2009 + + +3. Scenarios of Interest + +3.1. IPv6-over-IPv4 Scenario + + In this scenario, the client networks run IPv6 but the backbone + network runs IPv4. This is illustrated in Figure 1. + + +--------+ +--------+ + | IPv6 | | IPv6 | + | Client | | Client | + | Network| | Network| + +--------+ +--------+ + | \ / | + | \ / | + | \ / | + | X | + | / \ | + | / \ | + | / \ | + +--------+ +--------+ + | AFBR | | AFBR | + +--| IPv4/6 |---| IPv4/6 |--+ + | +--------+ +--------+ | + +--------+ | | +--------+ + | IPv4 | | | | IPv4 | + | Client | | | | Client | + | Network|------| IPv4 |-------| Network| + +--------+ | only | +--------+ + | | + | +--------+ +--------+ | + +--| AFBR |---| AFBR |--+ + | IPv4/6 | | IPv4/6 | + +--------+ +--------+ + | \ / | + | \ / | + | \ / | + | X | + | / \ | + | / \ | + | / \ | + +--------+ +--------+ + | IPv6 | | IPv6 | + | Client | | Client | + | Network| | Network| + +--------+ +--------+ + + Figure 1: IPv6-over-IPv4 Scenario + + + + +Wu, et al. Standards Track [Page 7] + +RFC 5565 Softwire Mesh Framework June 2009 + + + The IPv4 transit core may or may not run MPLS. If it does, MPLS may + be used as part of the solution. + + While Figure 1 does not show any "backdoor" connections among the + client networks, this framework assumes that there will be such + connections. That is, there is no assumption that the only path + between two client networks is via the pictured transit-core network. + Hence, the routing solution must be robust in any kind of topology. + + Many mechanisms for providing IPv6 connectivity across IPv4 networks + have been devised over the past ten years. A number of different + tunneling mechanisms have been used, some provisioned manually, and + others based on special addressing. More recently, L3VPN (Layer 3 + Virtual Private Network) techniques from [RFC4364] have been extended + to provide IPv6 connectivity, using MPLS in the AFBRs and, + optionally, in the backbone [V6NLRI-V4NH]. The solution described in + this framework can be thought of as a superset of [V6NLRI-V4NH], with + a more generalized scheme for choosing the tunneling (softwire) + technology. In this framework, MPLS is allowed -- but not required + -- even at the AFBRs. As in [V6NLRI-V4NH], there is no manual + provisioning of tunnels, and no special addressing is required. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Wu, et al. Standards Track [Page 8] + +RFC 5565 Softwire Mesh Framework June 2009 + + +3.2. IPv4-over-IPv6 Scenario + + In this scenario, the client networks run IPv4 but the backbone + network runs IPv6. This is illustrated in Figure 2. + + +--------+ +--------+ + | IPv4 | | IPv4 | + | Client | | Client | + | Network| | Network| + +--------+ +--------+ + | \ / | + | \ / | + | \ / | + | X | + | / \ | + | / \ | + | / \ | + +--------+ +--------+ + | AFBR | | AFBR | + +--| IPv4/6 |---| IPv4/6 |--+ + | +--------+ +--------+ | + +--------+ | | +--------+ + | IPv6 | | | | IPv6 | + | Client | | | | Client | + | Network|------| IPv6 |-------| Network| + +--------+ | only | +--------+ + | | + | +--------+ +--------+ | + +--| AFBR |---| AFBR |--+ + | IPv4/6 | | IPv4/6 | + +--------+ +--------+ + | \ / | + | \ / | + | \ / | + | X | + | / \ | + | / \ | + | / \ | + +--------+ +--------+ + | IPv4 | | IPv4 | + | Client | | Client | + | Network| | Network| + +--------+ +--------+ + + Figure 2: IPv4-over-IPv6 Scenario + + The IPv6 transit core may or may not run MPLS. If it does, MPLS may + be used as part of the solution. + + + +Wu, et al. Standards Track [Page 9] + +RFC 5565 Softwire Mesh Framework June 2009 + + + While Figure 2 does not show any "backdoor" connections among the + client networks, this framework assumes that there will be such + connections. That is, there is no assumption that the only path + between two client networks is via the pictured transit-core network. + Hence, the routing solution must be robust in any kind of topology. + + While the issue of IPv6-over-IPv4 has received considerable attention + in the past, the scenario of IPv4-over-IPv6 has not. Yet, it is a + significant emerging requirement, as a number of service providers + are building IPv6 backbone networks and do not wish to provide native + IPv4 support in their core routers. These service providers have a + large legacy of IPv4 networks and applications that need to operate + across their IPv6 backbone. Solutions for this do not exist yet + because it had always been assumed that the backbone networks of the + foreseeable future would be dual stack. + +4. General Principles of the Solution + + This section gives a very brief overview of the procedures. The + subsequent sections provide more detail. + +4.1. E-IP and I-IP + + In the following sections, we use the term "I-IP" (Internal IP) to + refer to the form of IP (i.e., either IPv4 or IPv6) that is supported + by the transit network. We use the term "E-IP" (External IP) to + refer to the form of IP that is supported by the client networks. + In the scenarios of interest, E-IP is IPv4 if and only if I-IP is + IPv6, and E-IP is IPv6 if and only if I-IP is IPv4. + + We assume that the P routers support only I-IP. That is, they are + expected to have only I-IP routing information, and they are not + expected to be able to parse E-IP headers. We similarly assume that + the CE routers support only E-IP. + + The AFBRs handle both I-IP and E-IP. However, only I-IP is used on + AFBR's "core-facing interfaces", and E-IP is only used on its client- + facing interfaces. + +4.2. Routing + + The P routers and the AFBRs of the transit network participate in an + IGP for the purposes of distributing I-IP routing information. + + The AFBRs use Internal BGP (IBGP) to exchange E-IP routing + information with each other. Either there is a full mesh of IBGP + connections among the AFBRs, or else some or all of the AFBRs are + clients of a BGP Route Reflector. Although these IBGP connections + + + +Wu, et al. Standards Track [Page 10] + +RFC 5565 Softwire Mesh Framework June 2009 + + + are used to pass E-IP routing information (i.e., the Network Layer + Reachability Information (NLRI) of the BGP updates is in the E-IP + address family), the IBGP connections run over I-IP, and the BGP next + hop for each E-IP NLRI is in the I-IP address family. + +4.3. Tunneled Forwarding + + When an ingress AFBR receives an E-IP packet from a client-facing + interface, it looks up the packet's destination IP address. In the + scenarios of interest, the best match for that address will be a BGP- + distributed route whose next hop is the I-IP address of another AFBR, + the egress AFBR. + + The ingress AFBR must forward the packet through a tunnel (i.e, + through a softwire) to the egress AFBR. This is done by + encapsulating the packet, using an encapsulation header that the P + routers can process and that will cause the P routers to send the + packet to the egress AFBR. The egress AFBR then extracts the + payload, i.e., the original E-IP packet, and forwards it further by + looking up its IP destination address. + + Several kinds of tunneling technologies are supported. Some of those + technologies require explicit AFBR-to-AFBR signaling before the + tunnel can be used, others do not. + + Transmitting a packet through a softwire always requires that an + encapsulation header be added to the original packet. The resulting + packet is therefore always longer than the encapsulation payload. As + an operational matter, the Maximum Transmission Unit (MTU) of the + softwire's path SHOULD be large enough so that (a) no packet will + need to be fragmented before being encapsulated, and (b) no + encapsulated packet will need to be fragmented while it is being + forwarded along a softwire. A general discussion of MTU issues in + the context of tunneled forwarding may be found in [RFC4459]. + +5. Distribution of Inter-AFBR Routing Information + + AFBRs peer with routers in the client networks to exchange routing + information for the E-IP family. + + AFBRs use BGP to distribute the E-IP routing information to each + other. This can be done by an AFBR-AFBR mesh of IBGP sessions, but + more likely is done through a BGP Route Reflector, i.e., where each + AFBR has an IBGP session to one or two Route Reflectors rather than + to other AFBRs. + + + + + + +Wu, et al. Standards Track [Page 11] + +RFC 5565 Softwire Mesh Framework June 2009 + + + The BGP sessions between the AFBRs, or between the AFBRs and the + Route Reflector, will run on top of the I-IP address family. That + is, if the transit core supports only IPv6, the IBGP sessions used to + distribute IPv4 routing information from the client networks will run + over IPv6; if the transit core supports only IPv4, the IBGP sessions + used to distribute IPv6 routing information from the client networks + will run over IPv4. The BGP sessions thus use the native networking + layer of the core; BGP messages are NOT tunneled through softwires or + through any other mechanism. + + In BGP, a routing update associates an address prefix (or more + generally, NLRI) with the address of a BGP next hop (NH). The NLRI + is associated with a particular address family. The NH address is + also associated with a particular address family, which may be the + same as or different than the address family associated with the + NLRI. Generally, the NH address belongs to the address family that + is used to communicate with the BGP speaker to whom the NH address + belongs. + + Since routing updates that contain information about E-IP address + prefixes are carried over BGP sessions that use I-IP transport, and + since the BGP messages are not tunneled, a BGP update providing + information about an E-IP address prefix will need to specify a next + hop address in the I-IP family. + + Due to a variety of historical circumstances, when the NLRI and the + NH in a given BGP update are of different address families, it is not + always obvious how the NH should be encoded. There is a different + encoding procedure for each pair of address families. + + In the case where the NLRI is in the IPv6 address family, and the NH + is in the IPv4 address family, [V6NLRI-V4NH] explains how to encode + the NH. + + In the case where the NLRI is in the IPv4 address family, and the NH + is in the IPv6 address family, [V4NLRI-V6NH] explains how to encode + the NH. + + If a BGP speaker sends an update for an NLRI in the E-IP family, and + the update is being sent over a BGP session that is running on top of + the I-IP network layer, and the BGP speaker is advertising itself as + the NH for that NLRI, then the BGP speaker MUST, unless explicitly + overridden by policy, specify the NH address in the I-IP family. The + address family of the NH MUST NOT be changed by a Route Reflector. + + In some cases (e.g., when [V4NLRI-V6NH] is used), one cannot follow + this rule unless one's BGP peers have advertised a particular BGP + capability. This leads to the following softwire deployment + + + +Wu, et al. Standards Track [Page 12] + +RFC 5565 Softwire Mesh Framework June 2009 + + + restriction: if a BGP capability is defined for the case in which an + E-IP NLRI has an I-IP NH, all the AFBRs in a given transit core MUST + advertise that capability. + + If an AFBR has multiple IP addresses, the network administrators + usually have considerable flexibility in choosing which one the AFBR + uses to identify itself as the next hop in a BGP update. However, if + the AFBR expects to receive packets through a softwire of a + particular tunneling technology, and if the AFBR is known to that + tunneling technology via a specific IP address, then that same IP + address must be used to identify the AFBR in the next hop field of + the BGP updates. For example, if L2TPv3 tunneling is used, then the + IP address that the AFBR uses when engaging in L2TPv3 signaling must + be the same as the IP address it uses to identify itself in the next + hop field of a BGP update. + + In [V6NLRI-V4NH], IPv6 routing information is distributed using the + labeled IPv6 address family. This allows the egress AFBR to + associate an MPLS label with each IPv6 address prefix. If an ingress + AFBR forwards packets through a softwire that can carry MPLS packets, + each data packet can carry the MPLS label corresponding to the IPv6 + route that it matched. This may be useful at the egress AFBR, for + demultiplexing and/or enhanced performance. It is also possible to + do the same for the IPv4 address family, i.e., to use the labeled + IPv4 address family instead of the IPv4 address family. The use of + the labeled IP address families in this manner is OPTIONAL. + +6. Softwire Signaling + + A mesh of inter-AFBR softwires spanning the transit core must be in + place before packets can flow between client networks. Given N dual- + stack AFBRs, this requires N^2 "point-to-point IP" or "label switched + path" (LSP) tunnels. While in theory these could be configured + manually, that would result in a very undesirable O(N^2) provisioning + problem. Therefore, manual configuration of point-to-point tunnels + is not considered part of this framework. + + Because the transit core is providing layer 3 transit services, + point-to-point tunnels are not required by this framework; + multipoint-to-point tunnels are all that is needed. In a multipoint- + to-point tunnel, when a packet emerges from the tunnel there is no + way to tell which router put the packet into the tunnel. This models + the native IP forwarding paradigm, wherein the egress router cannot + determine a given packet's ingress router. Of course, point-to-point + tunnels might be required for some reason beyond the basic + requirements described in this document. For example, Quality of + + + + + +Wu, et al. Standards Track [Page 13] + +RFC 5565 Softwire Mesh Framework June 2009 + + + Service (QoS) or security considerations might require the use of + point-to-point tunnels. So point-to-point tunnels are allowed, but + not required, by this framework. + + If it is desired to use a particular tunneling technology for the + softwires, and if that technology has its own "native" signaling + methodology, the presumption is that the native signaling will be + used. This would certainly apply to MPLS-based softwires, where LDP + or RSVP-TE would be used. An IPsec-based softwire would use standard + IKEv2 (Internet Key Exchange) [RFC4306] and IPsec [RFC4301] + signaling, as that is necessary in order to guarantee the softwire's + security properties. + + A GRE-based softwire might or might not require signaling, depending + on whether various optional GRE header fields are to be used. GRE + does not have any "native" signaling, so for those cases, a signaling + procedure needs to be developed to support softwires. + + Another possible softwire technology is L2TPv3. While L2TPv3 does + have its own native signaling, that signaling sets up point-to-point + tunnels. For the purpose of softwires, it is better to use L2TPv3 in + a multipoint-to-point mode, and this requires a different kind of + signaling. + + The signaling to be used for GRE and L2TPv3 to cover these scenarios + is BGP-based, and is described in [RFC5512]. + + If IP-IP tunneling is used, or if GRE tunneling is used without + options, no signaling is required, as the only information needed by + the ingress AFBR to create the encapsulation header is the IP address + of the egress AFBR, and that is distributed by BGP. + + When the encapsulation IP header is constructed, there may be fields + in the IP whose value is determined neither by whatever signaling has + been done nor by the distributed routing information. The values of + these fields are determined by policy in the ingress AFBR. Examples + of such fields may be the TTL (Time to Live) field, the DSCP + (Diffserv Service Classes) bits, etc. + + It is desirable for all necessary softwires to be fully set up before + the arrival of any packets that need to go through the softwires. + That is, the softwires should be "always on". From the perspective + of any particular AFBR, the softwire endpoints are always BGP next + hops of routes that the AFBR has installed. This suggests that any + necessary softwire signaling should either be done as part of normal + system startup (as would happen, e.g., with LDP-based MPLS) or else + + + + + +Wu, et al. Standards Track [Page 14] + +RFC 5565 Softwire Mesh Framework June 2009 + + + be triggered by the reception of BGP routing information (such as is + described in [RFC5512]); it is also helpful if distribution of the + routing information that serves as the trigger is prioritized. + +7. Choosing to Forward through a Softwire + + The decision to forward through a softwire, instead of to forward + natively, is made by the ingress AFBR. This decision is a matter of + policy. + + In many cases, the policy will be very simple. Some useful policies + are: + + - If routing says that an E-IP packet has to be sent out a core- + facing interface to an I-IP core, then send the packet through a + softwire. + + - If routing says that an E-IP packet has to be sent out an + interface that only supports I-IP packets, then send the E-IP + packet through a softwire. + + - If routing says that the BGP next hop address for an E-IP packet + is an I-IP address, then send the E-IP packet through a softwire. + + - If the route that is the best match for a particular packet's + destination address is a BGP-distributed route, then send the + packet through a softwire (i.e., tunnel all BGP-routed packets). + + More complicated policies are also possible, but a consideration of + those policies is outside the scope of this document. + +8. Selecting a Tunneling Technology + + The choice of tunneling technology is a matter of policy configured + at the ingress AFBR. + + It is envisioned that, in most cases, the policy will be a very + simple one, and will be the same at all the AFBRs of a given transit + core -- e.g., "always use LDP-based MPLS" or "always use L2TPv3". + + However, other deployments may have a mixture of routers, some of + which support, say, both GRE and L2TPv3, but others of which support + only one of those techniques. It is desirable therefore to allow the + network administration to create a small set of classes and to + configure each AFBR to be a member of one or more of these classes. + Then the routers can advertise their class memberships to each other, + and the encapsulation policies can be expressed as, e.g., "use L2TPv3 + to talk to routers in class X; use GRE to talk to routers in class + + + +Wu, et al. Standards Track [Page 15] + +RFC 5565 Softwire Mesh Framework June 2009 + + + Y". To support such policies, it is necessary for the AFBRs to be + able to advertise their class memberships. [RFC5512] specifies a way + in which an AFBR may advertise, to other AFBRS, various + characteristics that may be relevant to the policy (e.g., "I belong + to class Y"). In many cases, these characteristics can be + represented by arbitrarily selected communities or extended + communities, and the policies at the ingress can be expressed in + terms of these classes (i.e., communities). + + Policy may also require a certain class of traffic to receive a + certain quality of service, and this may impact the choice of tunnel + and/or tunneling technology used for packets in that class. This + framework allows a variety of tunneling technologies to be used for + instantiating softwires. The choice of tunneling technology is a + matter of policy, as discussed in Section 1. + + While in many cases the policy will be unconditional, e.g., "always + use L2TPv3 for softwires", in other cases the policy may specify that + the choice is conditional upon information about the softwire remote + endpoint, e.g., "use L2TPv3 to talk to routers in class X; use GRE to + talk to routers in class Y". It is desirable therefore to allow the + network administration to create a small set of classes, and to + configure each AFBR to be a member of one or more of these classes. + If each such class is represented as a community or extended + community, then [RFC5512] specifies a method that AFBRs can use to + advertise their class memberships to each other. + + This framework also allows for policies of arbitrary complexity, + which may depend on characteristics or attributes of individual + address prefixes as well as on QoS or security considerations. + However, the specification of such policies is not within the scope + of this document. + +9. Selecting the Softwire for a Given Packet + + Suppose it has been decided to send a given packet through a + softwire. Routing provides the address, in the address family of the + transport network, of the BGP next hop. The packet MUST be sent + through a softwire whose remote endpoint address is the same as the + BGP next hop address. + + Sending a packet through a softwire is a matter of first + encapsulating the packet with an encapsulation header that can be + processed by the transit network and then transmitting towards the + softwire's remote endpoint address. + + + + + + +Wu, et al. Standards Track [Page 16] + +RFC 5565 Softwire Mesh Framework June 2009 + + + In many cases, once one knows the remote endpoint address, one has + all the information one needs in order to form the encapsulation + header. This will be the case if the tunnel technology instantiating + the softwire is, e.g., LDP-based MPLS, IP-in-IP, or GRE without + optional header fields. + + If the tunnel technology being used is L2TPv3 or GRE with optional + header fields, additional information from the remote endpoint is + needed in order to form the encapsulation header. The procedures for + sending and receiving this information are described in [RFC5512]. + + If the tunnel technology being used is RSVP-TE-based MPLS or IPsec, + the native signaling procedures of those technologies will need to be + used. + + If the packet being sent through the softwire matches a route in the + labeled IPv4 or labeled IPv6 address families, it should be sent + through the softwire as an MPLS packet with the corresponding label. + Note that most of the tunneling technologies mentioned in this + document are capable of carrying MPLS packets, so this does not + presuppose support for MPLS in the core routers. + +10. Softwire OAM and MIBs + +10.1. Operations and Maintenance (OAM) + + Softwires are essentially tunnels connecting routers. If they + disappear or degrade in performance, then connectivity through those + tunnels will be impacted. There are several techniques available to + monitor the status of the tunnel endpoints (AFBRs) as well as the + tunnels themselves. These techniques allow operations such as + softwire path tracing, remote softwire endpoint pinging, and remote + softwire endpoint liveness failure detection. + + Examples of techniques applicable to softwire OAM include: + + o BGP/TCP timeouts between AFBRs + + o ICMP or LSP echo request and reply addressed to a particular AFBR + + o BFD (Bidirectional Forwarding Detection) [BFD] packet exchange + between AFBR routers + + Another possibility for softwire OAM is to build something similar to + [RFC4378] or, in other words, to create and generate softwire echo + request/reply packets. The echo request sent to a well-known UDP + port would contain the egress AFBR IP address and the softwire + identifier as the payload (similar to the MPLS Forwarding Equivalence + + + +Wu, et al. Standards Track [Page 17] + +RFC 5565 Softwire Mesh Framework June 2009 + + + Class contained in the LSP echo request). The softwire echo packet + would be encapsulated with the encapsulation header and forwarded + across the same path (inband) as that of the softwire itself. + + This mechanism can also be automated to periodically verify remote + softwire endpoint reachability, with the loss of reachability being + signaled to the softwire application on the local AFBR, thus enabling + suitable actions to be taken. Consideration must be given to the + trade-offs between the scalability of such mechanisms versus the time + required for detection of loss of endpoint reachability for such + automated mechanisms. + + In general, a framework for softwire OAM can, for a large part, be + based on the [RFC4176] framework. + +10.2. MIBs + + Specific MIBs do exist to manage elements of the Softwire Mesh + Framework. However, there will be a need to either extend these MIBs + or create new ones that reflect the functional elements that can be + SNMP-managed within the softwire network. + +11. Softwire Multicast + + A set of client networks, running E-IP, that are connected to a + provider's I-IP transit core may wish to run IP multicast + applications. Extending IP multicast connectivity across the transit + core can be done in a number of ways, each with a different set of + characteristics. Most (though not all) of the possibilities are + either slight variations of the procedures defined for L3VPNs in + [L3VPN-MCAST]. + + We will focus on supporting those multicast features and protocols + that are typically used across inter-provider boundaries. Support is + provided for PIM-SM (Protocol Independent Multicast - Sparse Mode) + and PIM-SSM (PIM Source-Specific Mode). Support for BIDIR-PIM + (Bidirectional PIM), BSR (Bootstrap Router Mechanism for PIM), and + AutoRP (Automatic Rendezvous Point Determination) is not provided as + these features are not typically used across inter-provider + boundaries. + +11.1. One-to-One Mappings + + In the "one-to-one mapping" scheme, each client multicast tree is + extended through the transit core so that for each client tree there + is exactly one tree through the core. + + + + + +Wu, et al. Standards Track [Page 18] + +RFC 5565 Softwire Mesh Framework June 2009 + + + The one-to-one scheme is not used in [L3VPN-MCAST] because it + requires an amount of state in the core routers that is proportional + to the number of client multicast trees passing through the core. In + the VPN context, this is considered undesirable because the amount of + state is unbounded and out of the control of the service provider. + However, the one-to-one scheme models the typical "Internet + multicast" scenario where the client network and the transit core are + both IPv4 or both IPv6. If it scales satisfactorily for that case, + it should also scale satisfactorily for the case where the client + network and the transit core support different versions of IP. + +11.1.1. Using PIM in the Core + + When an AFBR receives an E-IP PIM control message from one of its + CEs, it translates it from E-IP to I-IP, and forwards it towards the + source of the tree. Since the routers in the transit core will not + generally have a route to the source of the tree, the AFBR must + include an "RPF (Reverse Path Forwarding) Vector" [RFC5496] in the + PIM message. + + Suppose an AFBR A receives an E-IP PIM Join/Prune message from a CE + for either an (S,G) tree or a (*,G) tree. The AFBR would have to + "translate" the PIM message into an I-IP PIM message. It would then + send it to the neighbor that is the next hop along the route to the + root of the (S,G) or (*,G) tree. In the case of an (S,G) tree, the + root of the tree is S; in the case of a (*,G) tree, the root of the + tree is the Rendezvous Point (RP) for the group G. + + Note that the address of the root of the tree will be an E-IP + address. Since the routers within the transit core (other than the + AFBRs) do not have routes to E-IP addresses, A must put an RPF Vector + [RFC5496] in the PIM Join/Prune message that it sends to its upstream + neighbor. The RPF Vector will identify, as an I-IP address, the AFBR + B that is the egress point in the transit network along the route to + the root of the multicast tree. AFBR B is AFBR A's BGP next hop for + the route to the root of the tree. The RPF Vector allows the core + routers to forward PIM Join/Prune messages upstream towards the root + of the tree, even though they do not maintain E-IP routes. + + In order to translate an E-IP PIM message into an I-IP PIM message, + the AFBR A must translate the address of S (in the case of an (S,G) + group) or the address of G's RP from the E-IP address family to the + I-IP address family, and the AFBR B must translate them back. + + In the case where E-IP is IPv4 and I-IP is IPv6, it may be possible + to do this translation algorithmically. A can translate the IPv4 S + into the corresponding IPv4-mapped IPv6 address [RFC4291], and then B + can translate it back. At the time of this writing, there is no such + + + +Wu, et al. Standards Track [Page 19] + +RFC 5565 Softwire Mesh Framework June 2009 + + + thing as an IPv4-mapped IPv6 multicast address, but if such a thing + were to be standardized, then A could also translate the IPv4 G into + IPv6, and B could translate it back. The precise circumstances under + which these translations are to be done would be a matter of policy. + + Obviously, this translation procedure does not generalize to the case + where the client multicast is IPv6 but the core is IPv4. To handle + that case, one needs additional signaling between the two AFBRs. + Each downstream AFBR needs to signal the upstream AFBR that it needs + a multicast tunnel for (S,G). The upstream AFBR must then assign a + multicast address G' to the tunnel and inform the downstream of the + P-G value to use. The downstream AFBR then uses PIM/IPv4 to join the + (S',G') tree, where S' is the IPv4 address of the upstream ASBR + (Autonomous System Border Router). + + The (S',G') trees should be SSM trees. + + This procedure can be used to support client multicasts of either + IPv4 or IPv6 over a transit core of the opposite protocol. However, + it only works when the client multicasts are SSM, since it provides + no method for mapping a client "prune a source off the (*,G) tree" + operation into an operation on the (S',G') tree. This method also + requires additional signaling. The BGP-based signaling of + [L3VPN-MCAST-BGP] is one signaling method that could be used. Other + signaling methods could be defined as well. + +11.1.2. Using mLDP and Multicast MPLS in the Core + + LDP extensions for point-to-multipoint and multipoint-to-multipoint + LSPs are specified in [MLDP]; we will use the term "mLDP" to refer to + those LDP extensions. If the transit core implements mLDP and + supports multicast MPLS, then client Source-Specific Multicast (SSM) + trees can be mapped one-to-one onto P2MP (Point-to-Multipoint) LSPs. + + When an AFBR A receives an E-IP PIM Join/Prune message for (S,G) from + one of its CEs, where G is an SSM group, it would use mLDP to join a + P2MP LSP. The root of the P2MP LSP would be the AFBR B that is A's + BGP next hop on the route to S. In mLDP, a P2MP LSP is uniquely + identified by a combination of its root and an "FEC (Forwarding + Equivalence Class) identifier". The original (S,G) can be + algorithmically encoded into the FEC identifier so that all AFBRs + that need to join the P2MP LSP for (S,G) will generate the same FEC + identifier. When the root of the P2MP LSP (AFBR B) receives such an + mLDP message, it extracts the original (S,G) from the FEC identifier, + creates an "ordinary" E-IP PIM Join/Prune message, and sends it to + the CE that is its next hop on the route to S. + + + + + +Wu, et al. Standards Track [Page 20] + +RFC 5565 Softwire Mesh Framework June 2009 + + + The method of encoding the (S,G) into the FEC identifier needs to be + standardized. The encoding must be self-identifying so that a node + that is the root of a P2MP LSP can determine whether a FEC identifier + is the result of having encoded a PIM (S,G). + + The appropriate state machinery must be standardized so that PIM + events at the AFBRs result in the proper mLDP events. For example, + if at some point an AFBR determines (via PIM procedures) that it no + longer has any downstream receivers for (S,G), the AFBR should invoke + the proper mLDP procedures to prune itself off the corresponding P2MP + LSP. + + Note that this method cannot be used when the G is a Sparse Mode + group. The reason this method cannot be used is that mLDP does not + have any function corresponding to the PIM "prune this source off the + shared tree" function. So if a P2MP LSP were mapped one-to-one with + a P2MP LSP, duplicate traffic could end up traversing the transit + core (i.e., traffic from S might travel down both the shared tree and + S's source tree). Alternatively, one could devise an AFBR-to-AFBR + protocol to prune sources off the P2MP LSP at the root of the LSP. + It is recommended, though, that client SM multicast groups be + supported by other methods, such as those discussed below. + + Client-side bidirectional multicast groups set up by PIM-bidir could + be mapped using the above technique to MP2MP (Multipoint-to- + Multipoint) LSPs set up by mLDP [MLDP]. We do not consider this + further, as inter-provider bidirectional groups are not in use + anywhere. + +11.2. MVPN-Like Schemes + + The "MVPN (Multicast VPN)-like schemes" are those described in + [L3VPN-MCAST] and its companion documents (such as + [L3VPN-MCAST-BGP]). To apply those schemes to the softwire + environment, it is necessary only to treat all the AFBRs of a given + transit core as if they were all, for multicast purposes, PE routers + attached to the same VPN. + + The MVPN-like schemes do not require a one-to-one mapping between + client multicast trees and transit-core multicast trees. In the MVPN + environment, it is a requirement that the number of trees in the core + scales less than linearly with the number of client trees. This + requirement may not hold in the softwire scenarios. + + The MVPN-like schemes can support SM, SSM, and Bidir groups. They + provide a number of options for the control plane: + + + + + +Wu, et al. Standards Track [Page 21] + +RFC 5565 Softwire Mesh Framework June 2009 + + + - LAN-like + + Use a set of multicast trees in the core to emulate a LAN (Local + Area Network) and run the client-side PIM protocol over that + "LAN". The "LAN" can consist of a single Bidir tree containing + all the AFBRs or a set of SSM trees, one rooted at each AFBR and + containing all the other AFBRs as receivers. + + - NBMA (Non-Broadcast Multiple Access), using BGP + + The client-side PIM signaling can be translated into BGP-based + signaling, with a BGP Route Reflector mediating the signaling. + + These two basic options admit of many variations; a comprehensive + discussion is in [L3VPN-MCAST]. + + For the data plane, there are also a number of options: + + - All multicast data sent over the emulated LAN. This particular + option is not very attractive, though, for the softwire + scenarios, as every AFBR would have to receive every client + multicast packet. + + - Every multicast group mapped to a tree that is considered + appropriate for that group, in the sense of causing the traffic + of that group to go to "too many" AFBRs that don't need to + receive it. + + Again, a comprehensive discussion of the issues can be found in + [L3VPN-MCAST]. + +12. Inter-AS Considerations + + We have so far only considered the case where a "transit core" + consists of a single Autonomous System (AS). If the transit core + consists of multiple ASes, then it may be necessary to use softwires + whose endpoints are AFBRs attached to different Autonomous Systems. + In this case, the AFBR at the remote endpoint of a softwire is not + the BGP next hop for packets that need to be sent on the softwire. + Since the procedures described above require the address of a remote + softwire endpoint to be the same as the address of the BGP next hop, + those procedures do not work as specified when the transit core + consists of multiple ASes. + + There are several ways to deal with this situation. + + 1. Don't do it; require that there be AFBRs at the edge of each AS + so that a transit core does not extend more than one AS. + + + +Wu, et al. Standards Track [Page 22] + +RFC 5565 Softwire Mesh Framework June 2009 + + + 2. Use multi-hop EBGP to allow AFBRs to send BGP routes to each + other, even if the ABFRs are not in the same or in neighboring + ASes. + + 3. Ensure that an ASBR that is not an AFBR does not change the + next hop field of the routes for which encapsulation is needed. + + In the latter two cases, BGP recursive next hop resolution needs to + be done, and encapsulations may need to be "stacked" (i.e., multiple + layers of encapsulation may need to be used). + + For instance, consider packet P with destination IP address D. + Suppose it arrives at ingress AFBR A1 and that the route that is the + best match for D has BGP next hop B1. So A1 will encapsulate the + packet for delivery to B1. If B1 is not within A1's AS, A1 will need + to look up the route to B1 and then find the BGP next hop, call it + B2, of that route. If the interior routers of A1's AS do not have + routes to B1, then A1 needs to encapsulate the packet a second time, + this time for delivery to B2. + +13. Security Considerations + +13.1. Problem Analysis + + In the Softwire Mesh Framework, the data packets that are + encapsulated are E-IP data packets that are traveling through the + Internet. These data packets (the softwire "payload") may or may not + need such security features as authentication, integrity, + confidentiality, or replay protection. However, the security needs + of the payload packets are independent of whether or not those + packets are traversing softwires. The fact that a particular payload + packet is traveling through a softwire does not in any way affect its + security needs. + + Thus, the only security issues we need to consider are those that + affect the I-IP encapsulation headers, rather than those that affect + the E-IP payload. + + Since the encapsulation headers determine the routing of packets + traveling through softwires, they must appear "in the clear". + + In the Softwire Mesh Framework, for each receiving endpoint of a + tunnel, there are one or more "valid" transmitting endpoints, where + the valid transmitting endpoints are those that are authorized to + tunnel packets to the receiving endpoint. If the encapsulation + header has no guarantee of authentication or integrity, then it is + possible to have spoofing attacks, in which unauthorized nodes send + + + + +Wu, et al. Standards Track [Page 23] + +RFC 5565 Softwire Mesh Framework June 2009 + + + encapsulated packets to the receiving endpoint, giving the receiving + endpoint the invalid impression the encapsulated packets have really + traveled through the softwire. Replay attacks are also possible. + + The effect of such attacks is somewhat limited, though. The + receiving endpoint of a softwire decapsulates the payload and does + further routing based on the IP destination address of the payload. + Since the payload packets are traveling through the Internet, they + have addresses from the globally unique address space (rather than, + e.g., from a private address space of some sort). Therefore, these + attacks cannot cause payload packets to be delivered to an address + other than the one appearing in the destination IP address field of + the payload packet. + + However, attacks of this sort can result in policy violations. The + authorized transmitting endpoint(s) of a softwire may be following a + policy according to which only certain payload packets get sent + through the softwire. If unauthorized nodes are able to encapsulate + the payload packets so that they arrive at the receiving endpoint + looking as if they arrived from authorized nodes, then the properly + authorized policies have been side-stepped. + + Attacks of the sort we are considering can also be used in denial- + of-service attacks on the receiving tunnel endpoints. However, such + attacks cannot be prevented by use of cryptographic + authentication/integrity techniques, as the need to do cryptography + on spoofed packets only makes the denial-of-service problem worse. + (The assumption is that the cryptography mechanisms are likely to be + more costly than the decapsulation/forwarding mechanisms. So if one + tries to eliminate a flooding attack on the decapsulation/forwarding + mechanisms by discarding packets that do not pass a cryptographic + integrity test, one ends up just trading one kind of attack for + another.) + + This section is largely based on the security considerations section + of RFC 4023, which also deals with encapsulations and tunnels. + +13.2. Non-Cryptographic Techniques + + If a tunnel lies entirely within a single administrative domain, + then, to a certain extent, there are certain non-cryptographic + techniques one can use to prevent spoofed packets from reaching a + tunnel's receiving endpoint. For example, when the tunnel + encapsulation is IP-based: + + + + + + + +Wu, et al. Standards Track [Page 24] + +RFC 5565 Softwire Mesh Framework June 2009 + + + - The receiving endpoints of the tunnels can be given a distinct + set of addresses, and those addresses can be made known to the + border routers. The border routers can then filter out packets, + destined to those addresses, that arrive from outside the domain. + + - The transmitting endpoints of the tunnels can be given a distinct + set of addresses, and those addresses can be made known to the + border routers and to the receiving endpoints of the tunnels. + The border routers can filter out all packets arriving from + outside the domain with source addresses that are in this set, + and the receiving endpoints can discard all packets that appear + to be part of a softwire, but whose source addresses are not in + this set. + + If an MPLS-based encapsulation is used, the border routers can refuse + to accept MPLS packets from outside the domain, or they can refuse to + accept such MPLS packets whenever the top label corresponds to the + address of a tunnel receiving endpoint. + + These techniques assume that, within a domain, the network is secure + enough to prevent the introduction of spoofed packets from within the + domain itself. That may not always be the case. Also, these + techniques can be difficult or impossible to use effectively for + tunnels that are not in the same administrative domain. + + A different technique is to have the encapsulation header contain a + cleartext password. The 64-bit "cookie" of L2TPv3 [RFC3931] is + sometimes used in this way. This can be useful within an + administrative domain if it is regarded as infeasible for an attacker + to spy on packets that originate in the domain and that do not leave + the domain. An attacker would then not be able to discover the + password. An attacker could, of course, try to guess the password, + but if the password is an arbitrary 64-bit binary sequence, brute + force attacks that run through all the possible passwords would be + infeasible. This technique may be easier to manage than ingress + filtering is, and may be just as effective if the assumptions hold. + Like ingress filtering, though, it may not be applicable for tunnels + that cross domain boundaries. + + Therefore, it is necessary to also consider the use of cryptographic + techniques for setting up the tunnels and for passing data through + them. + + + + + + + + + +Wu, et al. Standards Track [Page 25] + +RFC 5565 Softwire Mesh Framework June 2009 + + +13.3. Cryptographic Techniques + + If the path between the two endpoints of a tunnel is not adequately + secure, then: + + - If a control protocol is used to set up the tunnels (e.g., to + inform one tunnel endpoint of the IP address of the other), the + control protocol MUST have an authentication mechanism, and this + MUST be used when the tunnel is set up. If the tunnel is set up + automatically as the result of, for example, information + distributed by BGP, then the use of BGP's MD5-based + authentication mechanism [RFC2385] is satisfactory. + + - Data transmission through the tunnel should be secured with + IPsec. In the remainder of this section, we specify the way + IPsec may be used, and the implementation requirements we mention + are meant to be applicable whenever IPsec is being used. + + We consider only the case where IPsec is used together with an IP- + based tunneling mechanism. Use of IPsec with an MPLS-based tunneling + mechanism is for further study. + + If it is deemed necessary to use tunnels that are protected by IPsec, + the tunnel type SHOULD be negotiated by the tunnel endpoints using + the procedures specified in [RFC5566]. That document allows the use + of IPsec tunnel mode but also allows one to treat the tunnel head and + the tunnel tail as the endpoints of a Security Association, and to + use IPsec transport mode. + + In order to use IPsec transport mode, encapsulated packets should be + viewed as originating at the tunnel head and as being destined for + the tunnel tail. A single IP address of the tunnel head will be used + as the source IP address, and a single IP address of the tunnel tail + will be used as the destination IP address. This technique can be + used to carry MPLS packets through an IPsec Security Association, by + first encapsulating the MPLS packets in MPLS-in-IP or MPLS-in-GRE + [RFC4023] and then applying IPsec transport mode. + + When IPsec is used to secure softwires, IPsec MUST provide + authentication and integrity. Thus, the implementation MUST support + either ESP (IP Encapsulating Security Payload) with null encryption + [RFC4303] or else AH (IP Authentication Header) [RFC4302]. ESP with + encryption MAY be supported. If ESP is used, the tunnel tail MUST + check that the source IP address of any packet received on a given SA + (IPsec Security Association) is the one expected, as specified in + Section 5.2, step 4, of [RFC4301]. + + + + + +Wu, et al. Standards Track [Page 26] + +RFC 5565 Softwire Mesh Framework June 2009 + + + Since the softwires are set up dynamically as a byproduct of passing + routing information, key distribution MUST be done automatically by + means of IKEv2 [RFC4306]. If a PKI (Public Key Infrastructure) is + not available, the IPsec Tunnel Authenticator sub-TLV described in + [RFC5566] MUST be used and validated before setting up an SA. + + The selectors associated with the SA are the source and destination + addresses of the encapsulation header, along with the IP protocol + number representing the encapsulation protocol being used. + +14. References + +14.1. Normative References + + [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. + + [RFC2784] Farinacci, D., Li, T., Hanks, S., Meyer, D., and P. + Traina, "Generic Routing Encapsulation (GRE)", RFC + 2784, March 2000. + + [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, + "Multiprotocol Label Switching Architecture", RFC + 3031, January 2001. + + [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., + Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack + Encoding", RFC 3032, January 2001. + + [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, + V., and G. Swallow, "RSVP-TE: Extensions to RSVP for + LSP Tunnels", RFC 3209, December 2001. + + [RFC3931] Lau, J., Ed., Townsley, M., Ed., and I. Goyret, Ed., + "Layer Two Tunneling Protocol - Version 3 (L2TPv3)", + RFC 3931, March 2005. + + [RFC4023] Worster, T., Rekhter, Y., and E. Rosen, Ed., + "Encapsulating MPLS in IP or Generic Routing + Encapsulation (GRE)", RFC 4023, March 2005. + + [RFC5512] Mohapatra, P. and E. Rosen, "The BGP Encapsulation + Subsequent Address Family Identifier (SAFI) and the + BGP Tunnel Encapsulation Attribute", RFC 5512, April + 2009. + + + +Wu, et al. Standards Track [Page 27] + +RFC 5565 Softwire Mesh Framework June 2009 + + + [RFC5566] Berger, L., White, R. and E. Rosen, "BGP IPsec Tunnel + Encapsulation Attribute", RFC 5566, June 2009. + + [V4NLRI-V6NH] Le Faucheur, F. and E. Rosen, "Advertising IPv4 + Network Layer Reachability Information with an IPv6 + Next Hop", RFC 5549, May 2009. + + [V6NLRI-V4NH] De Clercq, J., Ooms, D., Prevost, S., and F. Le + Faucheur, "Connecting IPv6 Islands over IPv4 MPLS + Using IPv6 Provider Edge Routers (6PE)", RFC 4798, + February 2007. + +14.2. Informative References + + [BFD] Katz, D. and D. Ward, "Bidirectional Forwarding + Detection", Work in Progress, February 2009. + + [L3VPN-MCAST] Rosen, E., Ed., and R. Aggarwal, Ed., "Multicast in + MPLS/BGP IP VPNs", Work in Progress, March 2009. + + [L3VPN-MCAST-BGP] + Aggarwal, R., Rosen, E., Morin, T. and Y. Rekhter, + "BGP Encodings and Procedures for Multicast in + MPLS/BGP IP VPNs", Work in Progress, April 2009. + + [MLDP] Minei, I., Ed., Kompella, K., Wijnands, IJ., Ed., and + B. Thomas, "Label Distribution Protocol Extensions for + Point-to-Multipoint and Multipoint-to-Multipoint Label + Switched Paths", Work in Progress, April 2009. + + [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP + and dual environments", RFC 1195, December 1990. + + [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April + 1998. + + [RFC2385] Heffernan, A., "Protection of BGP Sessions via the TCP + MD5 Signature Option", RFC 2385, August 1998. + + [RFC4176] El Mghazli, Y., Ed., Nadeau, T., Boucadair, M., Chan, + K., and A. Gonguet, "Framework for Layer 3 Virtual + Private Networks (L3VPN) Operations and Management", + RFC 4176, October 2005. + + [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A + Border Gateway Protocol 4 (BGP-4)", RFC 4271, January + 2006. + + + + +Wu, et al. Standards Track [Page 28] + +RFC 5565 Softwire Mesh Framework June 2009 + + + [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing + Architecture", RFC 4291, February 2006. + + [RFC4301] Kent, S. and K. Seo, "Security Architecture for the + Internet Protocol", RFC 4301, December 2005. + + [RFC4302] Kent, S., "IP Authentication Header", RFC 4302, + December 2005. + + [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", + RFC 4303, December 2005. + + [RFC4306] Kaufman, C., Ed., "Internet Key Exchange (IKEv2) + Protocol", RFC 4306, December 2005. + + [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private + Networks (VPNs)", RFC 4364, February 2006. + + [RFC4378] Allan, D., Ed., and T. Nadeau, Ed., "A Framework for + Multi-Protocol Label Switching (MPLS) Operations and + Management (OAM)", RFC 4378, February 2006. + + [RFC4459] Savola, P., "MTU and Fragmentation Issues with In- + the-Network Tunneling", RFC 4459, April 2006. + + [RFC5036] Andersson, L., Ed., Minei, I., Ed., and B. Thomas, + Ed., "LDP Specification", RFC 5036, October 2007. + + [RFC5496] Wijnands, IJ., Boers, A., and E. Rosen, "The Reverse + Path Forwarding (RPF) Vector TLV", RFC 5496, March + 2009. + + [SW-PROB] Li, X., Ed., Dawkins, S., Ed., Ward, D., Ed., and A. + Durand, Ed., "Softwire Problem Statement", RFC 4925, + July 2007. + + + + + + + + + + + + + + + + +Wu, et al. Standards Track [Page 29] + +RFC 5565 Softwire Mesh Framework June 2009 + + +15. Contributors + + Xing Li + Tsinghua University + Department of Electronic Engineering, Tsinghua University + Beijing 100084 + P.R.China + + Phone: +86-10-6278-5983 + EMail: xing@cernet.edu.cn + + + Simon Barber + Cisco Systems, Inc. + 250 Longwater Avenue + Reading, ENGLAND, RG2 6GB + United Kingdom + + EMail: sbarber@cisco.com + + + Pradosh Mohapatra + Cisco Systems, Inc. + 3700 Cisco Way + San Jose, CA 95134 + USA + + EMail: pmohapat@cisco.com + + + John Scudder + Juniper Networks + 1194 North Mathilda Avenue + Sunnyvale, CA 94089 + USA + + EMail: jgs@juniper.net + +16. Acknowledgments + + David Ward, Chris Cassar, Gargi Nalawade, Ruchi Kapoor, Pranav Mehta, + Mingwei Xu, and Ke Xu provided useful input into this document. + + + + + + + + + +Wu, et al. Standards Track [Page 30] + +RFC 5565 Softwire Mesh Framework June 2009 + + +Authors' Addresses + + Jianping Wu + Tsinghua University + Department of Computer Science, Tsinghua University + Beijing 100084 + P.R.China + + Phone: +86-10-6278-5983 + EMail: jianping@cernet.edu.cn + + + Yong Cui + Tsinghua University + Department of Computer Science, Tsinghua University + Beijing 100084 + P.R.China + + Phone: +86-10-6278-5822 + EMail: yong@csnet1.cs.tsinghua.edu.cn + + + Chris Metz + Cisco Systems, Inc. + 3700 Cisco Way + San Jose, CA 95134 + USA + + EMail: chmetz@cisco.com + + + Eric C. Rosen + Cisco Systems, Inc. + 1414 Massachusetts Avenue + Boxborough, MA 01719 + USA + + EMail: erosen@cisco.com + + + + + + + + + + + + + +Wu, et al. Standards Track [Page 31] + |