    Network Working Group                                         X. Li, Ed.
    Request for Comments: 4925                                        CERNET
    Category: Informational                                  S. Dawkins, Ed.
                                                                      Huawei
                                                                D. Ward, Ed.
                                                               Cisco Systems
                                                              A. Durand, Ed.
                                                                     Comcast
                                                                   July 2007

                           Softwire Problem Statement

    Status of This Memo

       This memo provides information for the Internet community.  It does
       not specify an Internet standard of any kind.  Distribution of this
       memo is unlimited.

    Copyright Notice

       Copyright (C) The IETF Trust (2007).

    Abstract

       This document captures the problem statement for the Softwires
       Working Group, which is developing standards for the discovery,
       control, and encapsulation methods for connecting IPv4 networks
       across IPv6-only networks as well as IPv6 networks across IPv4-only
       networks.  The standards will encourage multiple, inter-operable
       vendor implementations by identifying, and extending where necessary,
       existing standard protocols to resolve a selected set of "IPv4/IPv6"
       and "IPv6/IPv4" transition problems.  This document describes the
       specific problems ("Hubs and Spokes" and "Mesh") that will be solved
       by the standards developed by the Softwires Working Group.  Some
       requirements (and non-requirements) are also identified to better
       describe the specific problem scope.

    Table of Contents

       1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
         1.1.  Terminology  . . . . . . . . . . . . . . . . . . . . . . .  4
       2.  Hubs and Spokes Problem  . . . . . . . . . . . . . . . . . . .  6
         2.1.  Description  . . . . . . . . . . . . . . . . . . . . . . .  8
         2.2.  Non-Upgradable CPE Router  . . . . . . . . . . . . . . . .  9
         2.3.  Network Address Translation (NAT) and Port Address
               Translation (PAT)  . . . . . . . . . . . . . . . . . . . . 10
         2.4.  Static Prefix Delegation . . . . . . . . . . . . . . . . . 10
         2.5.  Softwire Initiator . . . . . . . . . . . . . . . . . . . . 11
         2.6.  Softwire Concentrator  . . . . . . . . . . . . . . . . . . 11
         2.7.  Softwire Concentrator Discovery  . . . . . . . . . . . . . 12
         2.8.  Scaling  . . . . . . . . . . . . . . . . . . . . . . . . . 12
         2.9.  Routing  . . . . . . . . . . . . . . . . . . . . . . . . . 12
         2.10. Multicast  . . . . . . . . . . . . . . . . . . . . . . . . 12
         2.11. Security . . . . . . . . . . . . . . . . . . . . . . . . . 12
           2.11.1.  Authentication, Authorization, and Accounting
                    (AAA) . . . . . . . . . . . . . . . . . . . . . . . . 12
           2.11.2.  Privacy, Integrity, and Replay Protection . . . . . . 13
         2.12. Operations and Management (OAM)  . . . . . . . . . . . . . 13
         2.13. Encapsulations . . . . . . . . . . . . . . . . . . . . . . 13
       3.  Mesh Problem . . . . . . . . . . . . . . . . . . . . . . . . . 14
         3.1.  Description  . . . . . . . . . . . . . . . . . . . . . . . 14
         3.2.  Scaling  . . . . . . . . . . . . . . . . . . . . . . . . . 16
         3.3.  Persistence, Discovery, and Setup Time . . . . . . . . . . 16
         3.4.  Multicast  . . . . . . . . . . . . . . . . . . . . . . . . 17
         3.5.  Softwire Encapsulation . . . . . . . . . . . . . . . . . . 17
         3.6.  Security . . . . . . . . . . . . . . . . . . . . . . . . . 17
       4.  Security Considerations  . . . . . . . . . . . . . . . . . . . 18
       5.  Principal Authors  . . . . . . . . . . . . . . . . . . . . . . 18
       6.  Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 19
       7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 20
         7.1.  Normative References . . . . . . . . . . . . . . . . . . . 20
         7.2.  Informative References . . . . . . . . . . . . . . . . . . 20

    1.  Introduction

       The Softwires Working Group is specifying the standardization of
       discovery, control, and encapsulation methods for connecting IPv4
       networks across IPv6-only networks and IPv6 networks across IPv4-only
       networks in a way that will encourage multiple, inter-operable vendor
       implementations.  This document describes the specific problems
       ("Hubs and Spokes" and "Mesh") that will be solved by the standards
       developed by the Softwires Working Group.  Some requirements (and
       non-requirements) are also identified to better describe the specific
       problem scope.  A few generic assumptions are listed up front:

       o  Local Area Networks will often support both protocol families in
          order to accommodate both IPv4-only and IPv6-only applications, in
          addition to dual-stack applications.  Global reachability requires
          the establishment of softwire connectivity to transit across
          portions of the network that do not support both address families.
          Wide area networks that support one or both address families may
          be separated by transit networks that do not support all address
          families.  Softwire connectivity is necessary to establish global
          reachability of both address families.

       o  Softwires are to be used in IP-based networks to forward both
          unicast and multicast traffic.

       o  Softwires are assumed to be long-lived in nature.

       o  Although Softwires are long-lived, the setup time of a softwire is
          expected to be a very small fraction of the total time required
          for the startup of the Customer Premise Equipment (CPE)/Address
          Family Border Router (AFBR).

       o  The nodes that actually initiate softwires should support dual-
          stack (IPv4 and IPv6) functionality.

       o  The goal of this effort is to reuse or extend existing technology.
          The 'time-to-market' requirement for solutions to the stated
          problems is very strict and existing, deployed technology must be
          very strongly considered in our solution selection.

       The solution to the stated problem should address the following
       points:

       o  Relation of the softwire protocols to other host mechanisms in the
          same layer of the network stack.  Examples of mechanisms to
          consider are tunneling mechanisms, VPNs (Virtual Private
          Networks), mobility (SHIM6 (Level 3 Shim for IPv6)),...

       o  Operational brittleness introduced by softwire, e.g., potential
          single point of failure or difficulties to deploy redundant
          systems.

       o  Effects of softwires on the transport layer.  Issue like packet
          losses, congestion control, and handling of QoS (Quality of
          Service) reservation and usage of on-path protocols such as RSVP
          (Resource Reservation Protocol).

       The history of IPv4 and IPv6 transition strategies at the IETF is
       very long and complex.  Here we list out some steps we have taken to
       further the effort and it has lead to the creation of this document
       and a few 'working rules' for us to accomplish our work:

       o  At the IETF 63 "LightWeight Reachability softWires" (LRW) BOF
          meeting, attendees from several operators requested a very tight
          timeframe for the delivery of a solution, based on time-to-market
          considerations.  This problem statement is narrowly scoped to
          accommodate near-term deployment.

       o  At the Paris Softwires interim meeting in October, 2005,
          participants divided the overall problem space into two separate
          "sub-problems" to solve based on network topology.  These two
          problems are referred to as "Hubs and Spokes" (described in
          Section 2) and "Mesh" (described in Section 3).

       As stated, there are two scenarios that emerged when discussing the
       traversal of networks composed of differing address families.  The
       scenarios are quite common in today's network deployments.  The
       primary difference between "Spokes and Hubs" and "Mesh" is how many
       connections and associated routes are managed by each IPv4 or IPv6
       "island".  "Hubs and Spokes" is characterized with one connection and
       associated static default route, and "Mesh" is characterized by
       multiple connections and routing prefixes.  In general, the two can
       be categorized as host or LAN connectivity and network (or VPN)
       connectivity problems.  Looking at the history of multi-address
       family networking, the clear delineation of the two scenarios was
       never clearly illustrated but they are now the network norm, and both
       must be solved.  Later, during the solution phase of the Work Group
       (WG), these problems will be treated as related, but separate,
       problem spaces.  Similar protocols and mechanisms will be used when
       possible, but different protocols and mechanisms may be selected when
       necessary to meet the requirements of each given problem space.

    1.1.  Terminology

       Address Family (AF) - IPv4 or IPv6.  Presently defined values for
       this field are specified in
       http://www.iana.org/assignments/address-family-numbers.

       Address Family Border Router (AFBR) - The router that interconnects
       two networks that use different address families.

       Customer Premise Equipment (CPE) - Under the scope of this document,
       this refers to terminal and associated equipment and inside wiring
       located at a subscriber's premises and connected with a carrier's
       communication channel(s) at the demarcation point ("demarc").  The
       demarc is a point established in a building or complex to separate
       customer equipment from telephone, cable, or other service provider
       equipment.  CPE can be a host or router, depending on the specific
       characteristics of the access network.  The demarc point for IPv4 may
       or may not be the same as the demarc point for IPv6, thus there can
       be one CPE box acting for IPv4 and IPv6 or two separate ones, one for
       IPv4 and one for IPv6.

       Home gateway - Existing piece of equipment that connects the home
       network to the provider network.  Usually act as CPE for one or both
       address families.

       Softwire (SW) - A "tunnel" that is created on the basis of a control
       protocol setup between softwire endpoints with a shared point-to-
       point or multipoint-to-point state.  Softwires are generally dynamic
       in nature (they may be initiated and terminated on demand), but may
       be very long-lived.

       Softwire Concentrator (SC) - The node terminating the softwire in the
       service provider network.

       Softwire Initiator (SI) - The node initiating the softwire within the
       customer network.

       Softwire Transport Header AF (STH AF) - the address family of the
       outermost IP header of a softwire.

       Softwire Payload Header AF (SPH AF) - the address family of the IP
       headers being carried within a softwire.  Note that additional
       "levels" of IP headers may be present if (for example) a tunnel is
       carried over a softwire - the key attribute of SPH AF is that it is
       directly encapsulated within the softwire and the softwire endpoint
       will base forwarding decisions on the SPH AF when a packet is exiting
       the softwire.

       Subsequent Address Family (SAF) - Additional information about the
       type of Network Layer Reachability Information (e.g., unicast or
       multicast).

    2.  Hubs and Spokes Problem

       The "Hubs and Spokes" problem is named in reference to the airline
       industry where major companies have established a relatively small
       number of well connected hubs and then serve smaller airports from
       those hubs.

       Manually configured tunnels (as described in [RFC4213]) can be a
       sufficient transition mechanism in some situations.  However, cases
       where Network Address Translation (NAT) traversal is a concern (see
       Section 2.3), or dynamic IP address configuration is required,
       another solution is necessary.

       There are four variant cases of the "Hubs and Spokes" problem which
       are shown in the following figures.

                             +-------+  +------------+  +--------+
                             |       |  |Softwire    |  | IPv6   |
                +---------+  | IPv4  |--|concentrator|--| Network|=>Internet
                |v4/v6    |--|       |  +------------+  +--------+
                |Host CPE |  |       |
                +---------+  |Network|
                             +-------+
                           _ _ _ _ _ _ __
                         ()_ _ _ _ _ _ __()      IPv6 SPH
                             "softwire"
                         |--------------||-------------------------|
                            IPv4-only        IPv6 or dual-stack

       Case 1: IPv6 connectivity across an IPv4-only access network (STH).
       Softwire initiator is the host CPE (directly connected to a modem),
       which is dual-stack.  There is no other gateway device.  The IPv4
       traffic should not traverse the softwire.

                                 Figure 1: Case 1
                          +-------+  +-------------+  +--------+
                          |       |  | Softwire    |  |   v6   |
       +-----+  +------+  |  v4   |--| concentrator|--| Network|=>Internet
       |v4/v6|--|v4/v6 |--|       |  +-------------+  +--------+
       |Host |  |Router|  |Network|
       +-----+  |v4/v6 |  |       |
                |  CPE |  +-------+
                +------+
                        _ _ _ _ _ _ __
                      ()_ _ _ _ _ _ __()                          IPv6 SPH
                          "softwire"
       |--------------||--------------||-------------------------|
          Dual-stack       IPv4-only        IPv6 or dual-stack

       Case 2: IPv6 connectivity across an IPv4-only access network (STH).
       Softwire initiator is the router CPE, which is a dual-stack device.
       The IPv4 traffic should not traverse the softwire.

                                 Figure 2: Case 2

                           +-------+  +-------------+  +--------+
                           |       |  | Softwire    |  |   v6   |
       +------+  +------+  |  v4   |--| concentrator|--| Network|=>Internet
       |v4/v6 |--|v4    |--|       |  +-------------+  +--------+
       |Host  |  |Router|  |Network|
       |v6 CPE|  |v4 CPE|  |       |
       +------+  |      |  +-------+
                 +------+
              _ _ _ _ _ _ _ _ _ _ _ _
            ()_ _ _ _ _ _ _ _ _ _ _ _()                           IPv6 SPH
                    "softwire"
             |-----------------------||-------------------------|
                      IPv4 only           IPv6 or dual-stack

       Case 3: IPv6 connectivity across an IPv4-only access network (STH).
       The CPE is IPv4-only.  Softwire initiator is a host, which act as an
       IPv6 host CPE.  The IPv4 traffic should not traverse the softwire.

                                 Figure 3: Case 3
       +-----+
       |v4/v6|                +-------+  +------------+  +-------+
       |Host |                |       |  |Softwire    |  |  v6   |
       +-----+      +------+  |  v4   |--|concentrator|--|Network|=>Internet
          |         |v4    |--|       |  +------------+  +-------+
          |---------|Router|  |Network|
          |         |v4 CPE|  +-------+
       +---------+  +------+
       |Softwire |
       |Initiator|
       |v6 Router|
       |   CPE   |
       +---------+
                  _ _ _ _ _ _ _ _ _ _ _ _
                ()_ _ _ _ _ _ _ _ _ _ _ _()                       IPv6 SPH
                         "softwire"
       |--------||-----------------------||----------------------|
          Dual           IPv4 only             IPv6 or dual-stack
          stack

       Case 4: IPv6 connectivity across an IPv4-only access network (STH).
       The routing CPE is IPv4-only.  Softwire initiator is a device acting
       as an IPv6 CPE router inside the home network.  The IPv4 traffic
       should not traverse the softwire.

                                 Figure 4: Case 4

       The converse cases exist, replacing IPv4 by IPv6 and vice versa in
       the above figures.

    2.1.  Description

       In this scenario, carriers (or large enterprise networks acting as
       carriers for their internal networks) have an infrastructure that in
       at least one device on any given path supports only one address
       family, with customers who wish to support applications bound to an
       address family that cannot be routed end-to-end.  The address family
       that must be "crossed" is called the Softwire Transport Header, or
       STH AF (which could be either IPv4 or IPv6).

       In order to support applications bound to another address family (the
       Softwire Payload Header Address Family, or SPH AF), it is necessary
       to establish a virtual dual-stack infrastructure (end-to-end),
       typically by means of automatically-established tunnels (Softwires).
       The traffic that can traverse the network via its native AF must not
       be forced to take the softwire path.  Only the traffic that otherwise
       would not be able to be forwarded due to the AF mismatch should be
       forwarded within the softwire.  The goal is to avoid overwhelming the
       softwire concentrator (SC).

       A network operator may choose to enable a single address family in
       one or several parts of this infrastructure for policy reasons (i.e.,
       traffic on the network is dominant in one of the address families, a
       single address family is used to lower Operations and Management
       (OAM) cost, etc.) or for technical reasons (i.e., because one or more
       devices are not able to support both address families).

       There are several obstacles that may preclude support for both
       address families:

       a) One or more devices (routers or some other media-specific
       aggregation point device) being used across the infrastructure (core,
       access) that supports only one address family.  Typically the reasons
       for this situation include a lack of vendor support for one of the
       address families, the (perceived) cost of upgrading them, the
       (perceived) complexity of running both address families natively,
       operation/management reasons to avoid upgrades (perhaps temporarily),
       or economic reasons (such as a commercially insignificant amount of
       traffic with the non-supported address family).

       b) The home gateway (CPE router or other equipment at the demarc
       point), cannot be easily upgraded to support both address families.
       Typically the reason for this is the lack of vendor support for one
       of the address families, commercial or operational reasons for not
       carrying out the upgrade (i.e., operational changes and/or cost may
       need to be supported by the carrier for all the customers, which can
       turn into millions of units), or customer reluctance to change/
       upgrade CPE router (cost, "not broken, so don't change it").  Note
       that the impracticality of systematic upgrades of the CPE routers is
       also hindering the deployment of 6to4 based solutions [RFC3056] in
       IPv4 networks.

    2.2.  Non-Upgradable CPE Router

       Residential and small-office CPE equipment may be limited to support
       only one address family.  Often, they are owned by a customer or
       carrier who is unwilling or unable to upgrade them to run in dual
       stack mode (as shown in Figure 3 and Figure 4).

       When the CPE router cannot run in dual-stack mode, a softwire will
       have to be established by a node located behind that CPE router.
       This can be accomplished either by a regular host in the home running
       softwire software (Figure 1 or Figure 3) or by a dedicated piece of
       hardware acting as the "IPv6 router" (Figure 4).  Such a device is
       fairly simple in design and only requires one physical network
       interface.  Again, only the traffic of the mismatched AF will be
       forwarded via the softwire.  Traffic that can otherwise be forwarded
       without a softwire should not be encapsulated.

    2.3.  Network Address Translation (NAT) and Port Address Translation
          (PAT)

       A typical case of non-upgradable CPE router is a pre-existing IPv4/
       NAT home gateway, so the softwire solution must support NAT
       traversal.

       Establishing a Softwire through NAT or PAT must be supported without
       an explicit requirement to "autodetect" NAT or PAT presence during
       softwire setup.  Simply enabling NAT traversal could be sufficient to
       meet this requirement.

       Although the tunneling protocol must be able to traverse NATs,
       tunneling protocols may have an optional capability to bypass UDP
       encapsulation if not traversing a NAT.

    2.4.  Static Prefix Delegation

       An important characteristic of this problem in IPv4 networks is that
       the carrier-facing CPE IP address is typically dynamically assigned.
       (The IP address of the node establishing the softwire behind the CPE
       router can also be dynamically assigned.)

       Solutions like external dynamic DNS and dynamic NAT port forwarding
       have been deployed to deal with ever changing addresses, but it would
       be simpler if, in IPv6 networks, a static prefix was delegated to
       customers.  Such a prefix would allow for the registration of stable
       addresses in the DNS and enable the use of solutions like RFC 3041
       [RFC3041] privacy extension or cryptographically generated addresses
       (CGA) [RFC3972].

       The softwire protocol does not need to define a new method for prefix
       delegation; however, the Dynamic Host Configuration Protocol for IPv6
       (DHCPv6) prefix delegation [RFC3633] must be able to run over a
       softwire.

       Link local addresses allocated at both ends of the tunnel are enough
       for packet forwarding, but for management purpose like traceroute,
       global addresses can be allocated using existing protocols such as
       stateless address auto-configuration [RFC2462] or DHCPv6. DHCPv6 [RFC3315].

       The IP addresses of the softwire link itself do not need to be
       stable, the desire for stability only applies to the delegated
       prefix.  Even if there is a single node attached behind a softwire
       link, nothing prevents a softwire concentrator to delegate it a /64
       prefix.

       Similarly, in the case of an IPv4 softwire, the address could be
       provided by means of DHCP. DHCP [RFC2131].  In the case of an IPv4
       softwire, a mechanism should be available in order to delegate an
       IPv4 prefix. prefix [SUBNET].

       Note about 6to4: This is one of the main differences between
       Softwires and 6to4. 6to4 addresses will change every time the CPE
       router gets a new external address, where a DHCPv6 delegated prefix
       through a softwire link could be stable.

    2.5.  Softwire Initiator

       In the "Hubs and Spokes" problem, softwires are always initiated by
       the customer side.  Thus, the node hosting the end of the softwire
       within the customer network is called the softwire initiator.  It can
       run on any dual-stack node.  As noted earlier, this can be the CPE
       access device, another dedicated CPE router behind the original CPE
       access device, or actually any kind of node (host, appliance, sensor,
       etc.).

       The softwire initiator node can change over time and may or may not
       be delegated the same IP address for the softwire endpoint.  In
       particular, softwires should work in the nomadic case (e.g., a user
       opening up his laptop in various Wi-Fi hot-spots), where the softwire
       initiator could potentially obtain an IP address of one address
       family outside its original carrier network and still want to obtain
       the other address family addresses from its carrier.

       If and when the IPv4 provider periodically changes the IPv4 address
       allocated to the gateway, the softwire initiator has to discover in a
       reasonable amount of time that the tunnel is down and restart it.
       This re-establishment should not change the IPv6 prefix and other
       parameters allocated to the site.

    2.6.  Softwire Concentrator

       On the carrier side, softwires are terminated on a softwire
       concentrator.  A softwire concentrator is usually a dual-stack router
       connected to the dual-stack core of the carrier.

       A carrier may deploy several softwire concentrators (for example one
       per POP) for scalability reasons.

       Softwire concentrators are usually not nomadic and have stable IP
       addresses.

       It may be the case that one of the address families is not natively
       supported on the interface facing the core of the carrier.
       Connectivity must then be provided by other tunnels, potentially
       using the softwire mesh model.

       Softwire concentrator functionality will be based on existing
       standards for tunneling, prefixes, and addresses allocation,
       management.  The working group must define a softwire concentrator
       architecture and interaction between these protocols and recommend
       profiles.  These recommendations must take into account the
       distributed nature of the Softwires Concentrator in the provider
       network and the impact on core IPv6 networks (for instance: prefix
       aggregation).

    2.7.  Softwire Concentrator Discovery

       The softwire initiator must know the DNS name or IP address of the
       softwire concentrator.  An automated discovery phase may be used to
       return the IP address(s) or name(s) of the concentrator.
       Alternatively, this information may be configured by the user, or by
       the provider of the softwire initiator in advance.  The details of
       this discovery problem are outside the scope of this document,
       however previous work could be taken in consideration.  Examples
       include: [SERVICE-DIS], [RFC4891], and [TUN-AD].

    2.8.  Scaling

       In a "Hubs and Spokes model", a carrier must be able to scale the
       solution to millions of softwire initiators by adding more hubs
       (i.e., softwire concentrators).

    2.9.  Routing

       As customer networks are typically attached via a single link to
       their carrier, the minimum routing requirement is a default route for
       each of the address families.

    2.10.  Multicast

       Softwires must support multicast.

    2.11.  Security

    2.11.1.  Authentication, Authorization, and Accounting (AAA)

       The softwire protocol must support customer authentication in the
       control plane, in order to authorize access to the service, and
       provide adequate logging of activity (accounting).  However, a
       carrier may decide to turn it off in some circumstances, for
       instance, when the customer is already authenticated by some other
       means, such as closed networks, cellular networks, etc., in order to
       avoid unnecessary overhead.

       The protocol should offer mutual authentication in scenarios where
       the initiator requires identity proof from the concentrator.

       The softwire solution, at least for "Hubs and Spokes", must be
       integrable with commonly deployed AAA solutions (although extensions
       to those AAA solutions may be needed).

    2.11.2.  Privacy, Integrity, and Replay Protection

       The softwire Control and/or Data plane must be able to provide full
       payload security (such as IPsec or SSL (Secure Socket Layer)) when
       desired.  This additional protection must be separable from the
       tunneling aspect of the softwire mechanism itself.  For IPsec,
       default profiles must be defined.  [RFC4891] provides guidelines on
       this.

    2.12.  Operations and Management (OAM)

       As it is assumed that the softwire may have to go across NAT or PAT,
       a keepalive mechanism must be defined.  Such a mechanism is also
       useful for dead peer detection.  However in some circumstances (i.e.,
       narrowband access, billing per traffic, etc.) the keepalive mechanism
       may consume unnecessary bandwidth, so turning it on or off, and
       modifying the periodicity, must be supported administrative options.

       Other needed OAM features include:

       -  Logging

       -  Usage accounting

       -  End-point failure detection (the detection mechanism must operate
          within the tunnel)

       -  Path failure detection (the detection mechanism must operate
          outside the tunnel)

    2.13.  Encapsulations

       IPv6/IPv4, IPv6/UDP/IPv4, and IPv4/IPv6 are on the critical path for
       "Hubs and Spokes" softwires.  There is no intention to place limits
       on additional encapsulations beyond those explicitly mentioned in
       this specification.

    3.  Mesh Problem

    3.1.  Description

       We use the term "Mesh Problem" to describe the problem of supporting
       a general routed topology in which a backbone network that does not
       support a particular address family can be used as part of the path
       for packets that belong to that address family.  For example, the
       path for an IPv4 packet might include a transit network that supports
       only IPv6.  There might (or might not) be other paths that the IPv4
       packet could take that do not use the IPv6 transit network; the
       actual path chosen will be determined by the IPv4 routing procedures.

       By saying that the transit network supports only a single address
       family, we mean that the "core" routers of that network do not
       maintain routing information for other address families, and they may
       not even be able to understand the packet headers of other address
       families.  We do suppose though that the core will have "edge
       routers" or "border routers", which maintain the routing information
       for both address families, and which can parse the headers of both
       address families.  We refer to these as "Address Family Border
       Routers" (AFBRs).

       The following figure shows an AF2-only network connected to AF1-only
       networks, AF2-only networks, and dual stack networks.  Note that in
       addition to paths through the AF2-only core, other paths may also
       exist between AF1 networks.  The AFBRs that support AF1 would use BGP
       to exchange AF1 routing information between themselves, but such
       information would not be distributed to other core routers.  The
       AFBRs would also participate in the exchange of AF2 routing
       information with the core nodes.

                       +----------+            +----------+
                       |AF1 only  |            |AF1 only  |
                       |          |            |          |
                       +----------+            +----------+
                           |                    |
                           |                    |
                       Dual-Stack           Dual-Stack
                         "AFBR"               "AFBR"
                           |                    |
                           |                    |
                       +----------------------------+
                       |                            |
       +-------+       |                            |       +-------+
       |AF2    |       |         AF2 only           |       |AF2    |
       |only   |-------|     (but also providing    |-------|only   |
       +-------+       |      transit for AF1)      |       +-------+
                       |                            |
                       +----------------------------+
                          |   /              \    |
                          |  /                \   |
                        Dual-Stack          Dual-Stack
                         "AFBR"              "AFBR"
                          | |                   |
                          | |                   |
                       +--------+            +--------+
                       |AF1 and |            |AF1 and |
                       |AF2     |            |AF2     |
                       +--------+            +--------+

                              Figure 5: Mesh Topology

       The situation in which a pair of border routers use BGP to exchange
       routing information that is not known to the core routers is
       sometimes known, somewhat misleadingly, as a "BGP-free core".  In
       this sort of scenario, the problems to be solved are (a) to make sure
       that the BGP-distributed routing updates for AF1 allow a given AFBR,
       say AFBR1, to see that the path for a given AF1 address prefix is
       through a second AFBR, say AFBR2, and (b) to provide a way in which
       AFBR1 can send AF1 packets through the AF2-only core to AFBR2.  Of
       course, sending AF1 packets through an AF2-only core requires the AF1
       packets to be encapsulated and sent through "tunnels"; these tunnels
       are the entities known as "softwires".

       One of the goals of the mesh problem is to provide a solution that
       does not require changes in any routers other than the AFBRs.  This
       would allow a carrier (or large enterprise networks acting as carrier
       for their internal resources) with an AF2-only backbone to provide
       AF1 transit services for its clients, without requiring any changes
       whatsoever to the clients' routers, and without requiring any changes
       to the core routers.  The AFBRs are the only devices that perform
       dual-stack operations, and the only devices that encapsulate and/or
       decapsulate the AF1 packets in order to send and/or receive them on
       softwires.

       It may be recognized that this scenario is very similar to the
       scenario handled by the Layer 3 Virtual Private Network (L3VPN)
       solution described in RFC 4364 [RFC4364].  The AFBRs correspond to
       the "Provider Edge Routers" (PE) of RFC 4364.  In those L3VPN
       scenarios, the PEs exchange routing information in an address family
       (e.g., the VPN-IPv4 address family), but they send VPN data packets
       through a core which does not have the VPN routing information.
       However, the softwire problem is NOT focused on the situation in
       which the border routers maintain multiple private and/or overlapping
       address spaces.  Techniques which are specifically needed to support
       multiple address spaces are in the domain of L3VPN, rather than in
       the domain of Softwires.

       Note that the AFBRs may be multiply connected to the core network,
       and also may be multiply connected to the client networks.  Further,
       the client networks may have "backdoor connections" to each other,
       through private networks or through the Internet.

    3.2.  Scaling

       In the mesh problem, the number of AFBRs that a backbone network
       supporting only AF2 will need is approximately on the order of the
       number of AF1 networks to which it connects.  (This is really an
       upper limit, since a single AFBR can connect to many such networks).

       An AFBR may need to exchange a "full Internet's" worth of routing
       information with each network to which it connects.  If these
       networks are not VPNs, the scaling issues associated with the amount
       of routing information are just the usual scaling issues faced by the
       border routers of any network which is providing Internet transit
       services.  (If the AFBRs are also attached to VPNs, the usual L3VPN
       scaling issues apply, as discussed in RFC 4364 [RFC4364] and RFC 4365
       [RFC4365].)  The number of BGP peering connections can be controlled
       through the usual methods, e.g., use of route reflectors.

    3.3.  Persistence, Discovery, and Setup Time

       AFBRs may discover each other, and may obtain any necessary
       information about each other, as a byproduct of the exchange of
       routing information (essentially in the same way that PE routers
       discovery each other in L3VPNs).  This may require the addition of
       new protocol elements or attributes to existing protocols.

       The softwires needed to allow packets to be sent from one AFBR to
       another should be "always available", i.e., should not require any
       extended setup time that would impart an appreciable delay to the
       data packets.

    3.4.  Multicast

       If the AF2 core does not provide native multicast services, multicast
       between AF1 client networks should still be possible, even though it
       may require replication at the AFBRs and unicasting of the replicated
       packets through Softwires.  If native multicast services are enabled,
       it should be possible to use these services to optimize the multicast
       flow.

    3.5.  Softwire Encapsulation

       The solution to the mesh problem must not require the use of any one
       encapsulation.  Rather, it must accommodate the use of a variety of
       different encapsulation mechanisms, and a means for choosing the one
       to be used in any particular circumstance based on policy.

       In particular, the solution to the mesh problem must allow for at
       least the following encapsulations to be used: Layer 2 Tunneling
       Protocol version 3 (L2TPv3), IP-in-IP, MPLS (LDP-based and RSVP-TE-
       based), Generic Routing Encapsulation (GRE), and IPsec.  The choice
       of encapsulation is to be based on policy, and the policies
       themselves may be based on various characteristics of the packets, of
       the routes, or of the softwire endpoints themselves.

    3.6.  Security

       In the mesh problem, the routers are not advertising routes for
       individual users.  So the mesh problem does not require the fine-
       grained authentication that is required by the "Hub and Spoke"
       problem.  There should however be a way to provide various levels of
       security for the data packets being transmitted on a softwire.  The
       softwire solution must support IPsec and an IPsec profile must be
       defined (see recommendations in [USEIPSEC]).

       Security mechanisms for the control protocols are also required.  It
       must be possible to protect control data from being modified in
       flight by an attacker, and to prevent an attacker from masquerading
       as a legitimate control protocol participant.

       The verification of the reachability information exchanged and issues
       surrounding the security of routing protocols themselves is outside
       the scope of the specification.

    4.  Security Considerations

       Security considerations specific to the "Hubs and Spokes" and "Mesh"
       models appear in those sections of the document.

       As with any tunneling protocol, using this protocol may introduce a
       security issue by circumventing a site security policy implemented as
       ingress filtering, since these filters will only be applied to STH AF
       IP headers.

    5.  Principal Authors

       These are the principal authors for this document.

          Xing Li
          CERNET
          Room 225 Main Building, Tsinghua University
          Beijing 100084
          China

          Phone: +86 10 62785983
          Fax:   +86 10 62785933
          Email: xing@cernet.edu.cn

          Alain Durand
          Comcast
          1500 Market st
          Philadelphia
          PA 19102
          USA

          Email: Alain_Durand@cable.comcast.com

          Shin Miyakawa
          NTT Communications
          3-20-2 TOC 21F, Nishi-shinjuku, Shinjuku
          Tokyo
          Japan

          Phone: +81-3-6800-3262
          Fax:   +81-3-5365-2990
          Email: miyakawa@nttv6.jp
          Jordi Palet Martinez
          Consulintel
          San Jose Artesano, 1
          Alcobendas - Madrid
          E-28108 - Spain

          Phone: +34 91 151 81 99
          Fax:   +34 91 151 81 98
          Email: jordi.palet@consulintel.es

          Florent Parent
          Hexago
          2875 boul. Laurier, suite 300
          Sainte-Foy, QC  G1V 2M2
          Canada

          Phone: +1 418 266 5533
          Email: Florent.Parent@hexago.com

          David Ward
          Cisco Systems
          170 W. Tasman Dr.
          San Jose, CA 95134
          USA

          Phone: +1-408-526-4000
          Email: dward@cisco.com

          Eric C. Rosen
          Cisco Systems
          1414 Massachusetts Avenue
          Boxborough, MA, 01716
          USA

          Email: erosen@cisco.com

    6.  Contributors

       The authors would like to acknowledge the following contributors who
       provided helpful inputs on earlier versions of this document: Alain
       Baudot, Hui Deng, Francis Dupont, Rob Evans, Ed Koehler Jr, Erik
       Nordmark, Soohong Daniel Park, Tom Pusateri, Pekka Savola, Bruno
       Stevant, Laurent Totain, Bill Storer, Maria (Alice) Dos Santos, Yong
       Cui, Chris Metz, Simon Barber, Skip Booth, Scott Wainner, and Carl
       Williams.

       The authors would also like to acknowledge the participants in the
       Softwires interim meeting in Paris, France (October 11-12, 2005)
       (minutes are at
       http://bgp.nu/~dward/softwires/InterimMeetingMinutes.htm).

       The authors would also like to express a special acknowledgement and
       thanks to Mark Townsley.  Without his leadership, persistence,
       editing skills, and thorough suggestions for the document, we would
       have not have been successful.

       Tunnel-based transition mechanisms have been under discussion in the
       IETF for more than a decade.  Initial work related to softwire can be
       found in RFC 3053 [RFC3053].  The earlier "V6 Tunnel Configuration"
       BOF problem statement [GOALS-TUN] a reasonable pointer to prior work.

    7.  References

    7.1.  Normative References

       [RFC3041]      Narten, T. and R. Draves, "Privacy Extensions for
                      Stateless Address Autoconfiguration in IPv6",
                      RFC 3041, January 2001.

       [RFC3053]      Durand, A., Fasano, P., Guardini, I., and D. Lento,
                      "IPv6 Tunnel Broker", RFC 3053, January 2001.

       [RFC3056]      Carpenter, B. and K. Moore, "Connection of IPv6
                      Domains via IPv4 Clouds", RFC 3056, February 2001.

       [RFC3972]      Aura, T., "Cryptographically Generated Addresses
                      (CGA)", RFC 3972, March 2005.

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

    7.2.  Informative References

       [GOALS-TUN]    Palet, J., "Goals for Tunneling Configuration", Work
                      in Progress, February 2005.

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

       [RFC2462]      Thomson, S. and T. Narten, "IPv6 Stateless Address
                      Autoconfiguration", RFC 2462, December 1998.

       [RFC3315]       Droms, R., Ed., Bound, J., Volz, B., Lemon, T.,
                      Perkins, C., and M. Carney, "Dynamic Host
                      Configuration Protocol for IPv6 (DHCPv6)", RFC 3315,
                      July 2003.

       [RFC3633]       Troan, O. and R. Droms, "IPv6 Prefix Options for
                      Dynamic Host Configuration Protocol (DHCP) version 6",
                      RFC 3633, December 2003.

       [RFC4364]      Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
                      Networks (VPNs)", RFC 4364, February 2006.

       [RFC4365]      Rosen, E., "Applicability Statement for BGP/MPLS IP
                      Virtual Private Networks (VPNs)", RFC 4365,
                      February 2006.

       [RFC4891]      Graveman, R., Parthasarathy, M., Savola, P., and H.
                      Tschofenig, "Using IPsec to Secure IPv6-in-IPv4
                      Tunnels", RFC 4891, May 2007.

       [SERVICE-DIS]  Durand, A., "Service Discovery using NAPTR records in
                      DNS", Work in Progress, October 2004.

       [SUBNET]         Johnson, R., "Subnet Allocation Option", Work in
                      Progress, June 2007.

       [TUN-AD]       Palet, J. and M, "Analysis of IPv6 Tunnel End-point
                      Discovery Mechanisms", Work in Progress, January 2005.

       [USEIPSEC]     Bellovin, S., "Guidelines for Mandating the Use of
                      IPsec", Work in Progress, February 2007.

    Authors' Addresses

       Xing Li (editor)
       CERNET
       Room 225 Main Building, Tsinghua University
       Beijing,   100084
       China

       Phone: +86 10 62785983
       Fax:   +86 10 62785933
       EMail: xing@cernet.edu.cn

       Spencer Dawkins (editor)
       Huawei Technologies (USA)
       1700 Alma Drive, Suite 100
       Plano, TX  75075
       US

       Phone: +1 972 509 0309
       Fax:   +1 469 229 5397
       EMail: spencer@mcsr-labs.org

       David Ward (editor)
       Cisco Systems
       170 W. Tasman Dr.
       San Jose, CA  95134
       US

       Phone: 1-408-526-4000
       EMail: dward@cisco.com

       Alain Durand (editor)
       Comcast
       1500 Market St
       Philadelphia, PA  19102
       US

       EMail: alain_durand@cable.comcast.com

    Full Copyright Statement

       Copyright (C) The IETF Trust (2007).

       This document is subject to the rights, licenses and restrictions
       contained in BCP 78, and except as set forth therein, the authors
       retain all their rights.

       This document and the information contained herein are provided on an
       "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
       OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
       THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
       OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
       THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
       WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

    Intellectual Property

       The IETF takes no position regarding the validity or scope of any
       Intellectual Property Rights or other rights that might be claimed to
       pertain to the implementation or use of the technology described in
       this document or the extent to which any license under such rights
       might or might not be available; nor does it represent that it has
       made any independent effort to identify any such rights.  Information
       on the procedures with respect to rights in RFC documents can be
       found in BCP 78 and BCP 79.

       Copies of IPR disclosures made to the IETF Secretariat and any
       assurances of licenses to be made available, or the result of an
       attempt made to obtain a general license or permission for the use of
       such proprietary rights by implementers or users of this
       specification can be obtained from the IETF on-line IPR repository at
       http://www.ietf.org/ipr.

       The IETF invites any interested party to bring to its attention any
       copyrights, patents or patent applications, or other proprietary
       rights that may cover technology that may be required to implement
       this standard.  Please address the information to the IETF at
       ietf-ipr@ietf.org.

    Acknowledgement

       Funding for the RFC Editor function is currently provided by the IETF
       Administrative Support Activity (IASA).
       Internet Society.