Internet DRAFT - draft-vanrein-v6ops-6bed4

draft-vanrein-v6ops-6bed4









INTERNET-DRAFT                                             Rick van Rein
Intended Status: Proposed Standard                          OpenFortress
Expires: September 12, 2012                               March 11, 2012

              6bed4: Peer-to-Peer IPv6 on Any Internetwork
                      draft-vanrein-v6ops-6bed4-01


Abstract

   The intention of 6bed4 is to support IPv6-only applications, even on
   IPv4-only networks.  A specific area of concern is that of peer-to-
   peer protocols such as SIP or document exchange during a chat
   session.  Such protocols are designed to run in any environment,
   which means that they cannot rely on IPv6 for themselves, or their
   peers.  The 6bed4 tunnel mechanism ensures that IPv6 can be assumed
   on all peers, without a need to configure it explicitly.

   The 6bed4 mechanism is meant as a fallback mechanism for IPv6
   connectivity on networks that do not support it natively, by running
   a tunnel over UDP and IPv4.  The IPv4 address is used to support
   traceability of the traffic originator, which means that no user
   account or other configuration is needed.

   The tunnel mechanism builds on existing IPv6 mechanisms; it employs
   Stateless Address Autoconfiguration [RFC4862] to setup an IPv6
   address on a 6bed4 Peer, and Neighbor Discovery [RFC4861] to find the
   most direct route to a remote 6bed4 Peer.


Status of this Memo

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

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as
   Internet-Drafts.

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

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.html




Van Rein               Expires September 12, 2012               [Page 1]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html


Copyright and License Notice

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

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.



Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   3.  Conceptual Model for a 6bed4 node  . . . . . . . . . . . . . .  6
   4.  Link-Local Profile for 6bed4 . . . . . . . . . . . . . . . . .  9
   5.  6bed4 Router Behavior  . . . . . . . . . . . . . . . . . . . . 10
     5.1.  Address Information  . . . . . . . . . . . . . . . . . . . 11
     5.2.  Relaying Plain Unicast Traffic . . . . . . . . . . . . . . 11
     5.3.  Relaying Plain Multicast Traffic . . . . . . . . . . . . . 12
     5.4.  Handling Router Solicitation from the 6bed4 Network  . . . 12
     5.5.  Handling Router Advertisement from the 6bed4 Network . . . 13
     5.6.  Handling Neighbor Solicitation from the 6bed4 Network  . . 13
     5.7.  Handling Neighbor Advertisement from the 6bed4 Network . . 13
     5.8.  Handling Redirect from the 6bed4 Network . . . . . . . . . 13
     5.9.  Handling Empty UDP Packets from the 6bed4 Network  . . . . 14
     5.10.  Dealing with Packet Fragmentation . . . . . . . . . . . . 14
   6.  6bed4 Peer Behavior  . . . . . . . . . . . . . . . . . . . . . 14
     6.1.  Filtering Incoming Traffic . . . . . . . . . . . . . . . . 14
     6.2.  6bed4 Tunnel and Link-Layer Address Setup  . . . . . . . . 15
     6.3.  Relaying Plain Unicast Traffic . . . . . . . . . . . . . . 16
     6.4.  Relaying Plain Multicast Traffic . . . . . . . . . . . . . 16
     6.5.  Handling Router Solicitation from the 6bed4 Network  . . . 17
     6.6.  Handling Router Advertisement from the 6bed4 Network . . . 17
     6.7.  Handling Router Solicitation from the 6bed4 Link . . . . . 18
     6.8.  Handling Router Advertisement from the 6bed4 Link  . . . . 18
     6.9.  Handling Neighbor Solicitation from the 6bed4 Network  . . 18
     6.10.  Handling Neighbor Advertisement from the 6bed4 Network  . 18
     6.11.  Handling Neighbor Solicitation from the 6bed4 Link  . . . 19
     6.12.  Handling Neighbor Advertisement from the 6bed4 Link . . . 21



Van Rein               Expires September 12, 2012               [Page 2]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


     6.13.  Handling Redirect from the 6bed4 Network  . . . . . . . . 21
     6.14.  Handling Redirect from the 6bed4 Link . . . . . . . . . . 22
     6.15.  Dealing with Packet Fragmentation . . . . . . . . . . . . 22
   7.  Impact of Firewalls and Network Address Translation  . . . . . 22
   8.  Security Considerations  . . . . . . . . . . . . . . . . . . . 23
   9.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 24
     9.1.  Registered UDP port: 6bed4 . . . . . . . . . . . . . . . . 24
   10.  References  . . . . . . . . . . . . . . . . . . . . . . . . . 25
     10.1.  Normative References  . . . . . . . . . . . . . . . . . . 25
     10.2.  Informative References  . . . . . . . . . . . . . . . . . 26
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 26








































Van Rein               Expires September 12, 2012               [Page 3]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


1.  Introduction

   The 6bed4 mechanism is a fallback for networks that have no support
   for IPv6.  It is designed to work without configuration on any
   network that is not secured beyond common defaults.  It works behind
   any sequence of Network Address Translating (NAT) devices and
   Firewalls, and it does not require support (such as protocol 41) from
   any of those devices.  The local network may or may not support IPv6
   already; and also upstream network providers may or may not support
   IPv6.  The 6bed4 traffic does not mingle with local IPv6 traffic, so
   it will never raise alarms that monitor native local IPv6 traffic for
   potential IPv6-specific attacks.

   All traffic on the 6bed4 Network is embedded in UDP and IPv4.  The
   6bed4 Network is thereby layered on top of the IPv4 Internet.  Common
   default configurations for NAT and firewalls support UDP [RFC3022]
   [RFC4787], as long as the communication is initiated internally.
   This is precisely what 6bed4 does.

   This traffic is exchanged between 6bed4 Peers, which are the
   endpoints in the communication.  They may pass their traffic through
   a 6bed4 Router.  A 6bed4 Router recognizes 6bed4 traffic because it
   is received on the standard UDP port TBD1, and it recognizes IPv6
   addresses as 6bed4 addresses because they start with the /64 prefix
   that it has dedicated to 6bed4.  Such IPv6 prefixes are paired to the
   IPv4 address and UDP port of the 6bed4 Router.

   The IPv4 address and UDP port as seen from the Internet are combined
   to form a link-layer address, from which an Interface Identifier is
   constructed in the same way as for Ethernet Networks [RFC2464].  This
   implies that the IPv4 address and UDP port are shown as part of the
   IPv6 address.  This supports traceback of a traffic originator in
   case of abuse, without a need to register accounts or login to them.
   Every 6bed4 Router validate that the IPv4 address and UDP port in the
   IPv6 address against the actual traffic, so the properties of egress
   filtering on IPv4 packets are inherited by the 6bed4 Network.

   The simplest mode of communication between to 6bed4 Peers is to
   communicate through a 6bed4 Router.  This service relays between
   6bed4 traffic and native IPv6 or, if both IPv6 addresses are IPv6
   addresses under the same 6bed4 prefix, then a 6bed4 Router relays the
   traffic between the 6bed4 Peers, using its own IPv4 address and UDP
   port when forwarding a packet over 6bed4 to the destination.  Traffic
   intended for addresses that the 6bed4 Router does not handle as 6bed4
   prefixes are relayed as IPv6 over normal IPv6 routes.

   It is normal for a 6bed4 Peer to attempt to bypass the 6bed4 Router
   by contacting remote peers directly.  One such bypass that every



Van Rein               Expires September 12, 2012               [Page 4]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   6bed4 Peer MUST attempt is to contact 6bed4 Peers at the IPv4 address
   and UDP port contained in their Interface Identifier.  Other
   bypassing mechanisms may also be tried; the success or failure of
   each bypass method depends on co-operation of intermediate network
   nodes.  Rather than devising a model of these intermediate nodes,
   6bed4 Peers simply try to send Neighbor Solicitation over a candidate
   bypass, and when the remote 6bed4 Peer replies with a matching
   Neighbor Advertisement, then the bypass is fit for use.  If the reply
   does not arrive, the 6bed4 Peer can still fallback to the 6bed4
   Router for that remote 6bed4 Peer.

   Information about bypasses to a 6bed4 Peer should be cached for some
   time.  A good place to do this is the Neighbor Cache, which retains
   such information for tens of seconds [RFC4861].  This happens
   automatically if the IPv6 stack that uses a 6bed4 Link for IPv6
   connectivity is used to relay link-layer addresses for the 6bed4
   Network; such link-layer addresses would be composed of the IPv4
   address and UDP port needed to contact the 6bed4 Peer over the 6bed4
   Network.  Whenever the IPv6 stack sends a Neighbor Solicitation down
   the 6bed4 Link, the 6bed4 Peer will know that it should try a number
   of bypasses for that route, once again using Neighbor Discovery.
   When no bypasses work, then the link-local address of the 6bed4
   Router is passed back up to the IPv6 stack.

   [TO BE REMOVED: Code demonstrating this specification is, or will
   soon be, available on http://devel.0cpm.org/6bed4/ -- please contact
   the author for details, information and feedback]


2.  Definitions

   The following definitions will be used throughout this document.

   A 6bed4 Router is a network node connected to both IPv4 and IPv6
   networks, which supports the translation of a particular IPv6 /64
   prefix to 6bed4 and back.  The IPv6 prefix forms a pair with the
   router's IPv4 address and UDP port for 6bed4.  A 6bed4 Router may
   translate traffic bidirectionally, or in the case of more advanced
   routing topologies, it could rest on the assumption that another
   6bed4 Router to perform the reverse translation for the same pair of
   IPv6 prefix and IPv4/UDP coordinates.

   A 6bed4 Peer is a communication endpoint that uses 6bed4 to embed
   IPv6 packets in UDP and IPv4.  It has a relationship to one 6bed4
   Router which serves as its default router and as a fallback for
   remote 6bed4 Peers that cannot be connected to directly.

   A bypass or bypass route is a connection between two 6bed4 Peers that



Van Rein               Expires September 12, 2012               [Page 5]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   does not run through a 6bed4 Router.

   A 6bed4 Network comprises of the 6bed4 Router(s) and all 6bed4 Peers.
   This may include bypass routes that connect over a local network,
   even using private IPv4 addresses [RFC1918].  The identity of a 6bed4
   Network is its IPv6 /64 prefix as supplied by its 6bed4 Router(s).

   A 6bed4 Link is a (virtual) network interface that is offered to an
   IPv6 stack that wants to use it to link to IPv6 nodes.  This term is
   non-normative; it is introduced below as part of the conceptual model
   for a 6bed4 Peer.

   A 6bed4 Tunnel is the connection between a 6bed4 Link and the 6bed4
   Network.  This term is non-normative; it is introduced below as part
   of the conceptual model for a 6bed4 Peer.

   A 6bed4 Address is a pair of an IPv4 address and UDP port that can be
   used as an endpoint on the 6bed4 Network, at the very least to its
   6bed4 Router and possibly through Bypass Routes from other 6bed4
   Peers as well.  The IPv4 address and UDP port are the values as seen
   by the public Internet.  This is a conceptual notion, free from any
   representation in network packets.

   A 6bed4 Link-Local Address is a particular representation of a 6bed4
   Address.  It is employed in network packets for Neighbor Discovery,
   Router Discovery and Redirect messages.

   Plain traffic is defined as IPv6 traffic that is not one of the
   special ICMPv6 [RFC4443] types Router Solicitation, Router
   Advertisement, Neighbor Solicitation, Neighbor Advertisement or
   Redirect.

   The Metric, or Communication Cost Metric, of communicating to a given
   6bed4 Address is an indication of the relative cost of a number of
   possible routes; a bypass route to a local subnet ranks as Low, a
   bypass route directly to the UDP port and IPv4 address of a remote
   6bed4 Peer ranks as Medium and a route to the 6bed4 Router ranks as
   High.

   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 RFC 2119 [RFC2119].


3.  Conceptual Model for a 6bed4 node

   A 6bed4 node is a network node that acts as a 6bed4 Router or a 6bed4
   Peer.  This conceptual model for a 6bed4 nodes is non-normative; the



Van Rein               Expires September 12, 2012               [Page 6]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   terms and layers it introduces are intended for illustration
   purposes, but any equivalent implementation would be equally
   suitable.

   The conceptual model of the internal structure of a 6bed4 node is
   based on what is called a tunnel in many operating systems; this is a
   structure which acts as a network interface on one end, and gives
   programmatic control over packet handling on the other end.  An IPv6
   stack can access the 6bed4 services through a 6bed4 Link.

   The 6bed4 Link is the network side of a 6bed4 Tunnel.  This 6bed4
   Link acts as a level 2 service to an IPv6 stack.  The programmatic
   side of the 6bed4 Tunnel uses the level 4 service of a UDP/IPv4
   stack.  The function of the 6bed4 Tunnel is to translate packets
   between these two interfaces.

      :                :
      |   IPv6 stack   |
      +-------++-------+
              ||  <-- 6bed4 Link
              ||  Layer 2 transport: IPv6 over a link-layer protocol
              \/
      +-------++-------+
      |  6bed4 Tunnel  |
      +-------++-------+
              ||
              ||  Layer 4 transport: IPv6 over UDP/IPv4
              \/
      +-------++-------+
      | UDP/IPv4 stack |  <--  6bed4 Network
      :                :

   The translation of plain traffic is a matter of adding or removing
   headers into which an IPv6 packet is embedded.  On the IPv6 end, some
   form of header information revealing the 6bed4 Link-Local Address of
   the next-hop destination must be present, and on the IPv4 end there
   are UDP/IPv4 headers.  Since 6bed4 Link-Local Addresses incorporate
   the destination's UDP port and IPv4 address, a complete translation
   between these two prefixed headers is possible.  This is what is done
   with plain traffic.

   An exception is made for Router Discovery, Neighbor Discovery and
   Redirect messages.  These were designed for local use, and should
   therefore be treated differently; the messages are exchanged between
   the IPv6 stack and the 6bed4 Tunnel, and somewhat independently
   between the 6bed4 Tunnel and the 6bed4 Network.  relayed through a
   tunnel.  These messages are therefore handled explicitly by the 6bed4
   Tunnel.



Van Rein               Expires September 12, 2012               [Page 7]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   The link-layer address of a 6bed4 Link is not normally known as soon
   as the 6bed4 Link is created, as it relies on observations made on
   the Public Internet.  To obtain this link-layer address, the 6bed4
   Tunnel will send a Router Solicitation to its 6bed4 Router.  The
   6bed4 Router responds with a Router Advertisement containing the
   6bed4 Peer's Interface Identifier as the IPv6 destination address.
   From this address, the 6bed4 Peer's link-layer address is derived and
   assigned to the 6bed4 Link; this also serves as the 6bed4 Link-Layer
   Address when communicating on the 6bed4 Network.  This information is
   usually be exchanged prior to bringing up the 6bed4 Link.

   The prefix information from the Router Advertisement is held back
   until the IPv6 stack on top of the 6bed4 Link sends a Router
   Solicitation.  In response to that, a Router Advertisement is sent to
   the IPv6 stack that holds the prefix.  The IPv6 stack is assumed to
   reconstruct the Interface Identifier from the link-layer address,
   prefix it with the Router Solicitation's prefix and assign the
   resulting address to the 6bed4 Link.  Any attempts to perform
   Neighbor Discovery on its own address should be dropped in the 6bed4
   Tunnel, as it is safe to assume that no competition for the link-
   layer address and its derived full address exists.

   The 6bed4 Link is now configured with a /64 prefix and a default
   route through the 6bed4 Router.  Any IPv6 addresses starting with the
   /64 prefix handled by the 6bed4 Router are treated by the IPv6 stack
   as local traffic to be contacted through the 6bed4 Link, and any
   other IPv6 traffic may be forwarded to the 6bed4 Router.

   Whenever the IPv6 stack needs to find either the 6bed4 Router or a
   6bed4 Peer with the same /64 prefix, it will perform Neighbor
   Discovery on the 6bed4 Link.  The 6bed4 Tunnel handles these
   especially, in an attempt to create a bypass when possible.  To this
   end, it will first try one or more bypasses before falling back to
   the 6bed4 Router.

   The 6bed4 Tunnel will first try a few times to send Neighbor
   Solicitation messages with the targeted IPv6 address to the direct
   IPv4 address and UDP port of the remote 6bed4 Peer.  When this
   results in a matching Neighbor Advertisement, it will relay that
   knowledge through Neighbor Advertisement to the IPv6 stack, which
   will note it in its Neighbor Cache.  If it fails to receive such a
   response, but before the IPv6 stack times out on its Neighbor
   Solicitation, the 6bed4 Tunnel will instead send back a Neighbor
   Advertisement announcing the 6bed4 Link-Local Address of the 6bed4
   Router.

   Among the possibly found direct routes may be Pinholes, which relay
   the traffic back to the local network.  These Pinholes, as well as



Van Rein               Expires September 12, 2012               [Page 8]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   any other bypass routes through a hole in a Network Address
   Translator or Firewall, are subject to timeouts.  It is useful to
   realize that Neighbor Caches tend to hold a Link-Local Address for
   "tens of seconds" [RFC4861] and then either drop it or revitalize it
   through another Neighbor Discovery attempt.  These delays are smaller
   than common expiration times of holes in NAT or Firewalls, so no
   Neighbor Cache parameter changes should normally be needed to sustain
   a connection between 6bed4 Peers communicating through any of these
   bypasses.

   It is even find a better bypass than a Pinhole if a direct connection
   to a locally connected 6bed4 Peer is possible.  This may be
   considered for contact between 6bed4 Peers that exhibit the same
   public IPv4 address.  Those may be sought through multicasting a
   Neighbor Solicitation over 6bed4 on the local IPv4 network, by
   sending to the address for all IPv4 nodes on the current subnet, or
   224.0.0.1, using the standard UDP port TBD1 to select 6bed4 Peers.

   To keep a hole in a Firewall or NAT open while it is in active use,
   it is generally useful to pass traffic in both directions; this means
   that two 6bed4 Peers must use the same route to pass traffic between
   each other.  In exceptional cases however, asymmetric routes may be
   learnt.  This may be remedied with a Redirect message that requests a
   6bed4 Peer to change to a more efficient bypass.  Redirect messages
   will never be sent to request changing to a route with a higher
   Metric, but only to a bypass with a lower Metric.  In order of rising
   Metric, the available bypass mechanisms are:


    o Low: Traffic sent to locally attached private addresses [RFC1918]
      (Optionally supported)

    o Medium: Traffic sent to the IPv4 address and UDP port in the 6bed4
      Link-Local Address

    o High: Traffic sent through the 6bed4 Router

   Note that these variations can be distinguished easily by observing
   the IPv4 address targeted.  Also note that the third routing mecha-
   nism would not add anything to local networks by supporting publicly
   routed addresses, as the second mechanism provides sufficient support
   for optimal bypasses on such networks.


4.  Link-Local Profile for 6bed4

   Each 6bed4 Link-Local Address contains the UDP port and IPv4 address
   as observed on the public Internet.  This means that it is 6 bytes in



Van Rein               Expires September 12, 2012               [Page 9]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   size.  The format is as follows:

       0                                            47
      +-------+-------+-------+-------+-------+-------+
      | UDP.1 | UDP.0 |IPv4.0 |IPv4.1 |IPv4.2 |IPv4.3 |
      +-------+-------+-------+-------+-------+-------+

   The UDP port is encoded in two bytes, where UDP.0 UDP.1 would be the
   network byte order; note that the bytes in the 6bed4 Link-Local
   Address are included in the reverse of network byte order.  The IPv4
   address bytes are represented in the network byte order, IPv4.0
   IPv4.1 IPv4.2 IPv4.3.

   The UDP port MUST be an even number.  The lowest-valued bit of UDP.1
   is reserved to indicate a multicast address, when it is set.  In sit-
   uations where multicast addresses are known to be impossible, the bit
   may alternately be interpreted as an error indication.

   The 64 bits of Interface Identifier to follow a /64 prefix can be
   derived from the 6bed4 Link-Local Address as it is done for 6-byte
   Ethernet addresses, as follows:

       0                                                            63
      +-------+-------+-------+-------+-------+-------+-------+-------+
      | UDP.1'| UDP.0 |IPv4.0 | 0xff  | 0xfe  |IPv4.1 |IPv4.2 |IPv4.3 |
      +-------+-------+-------+-------+-------+-------+-------+-------+

   In this representation UDP.1' is UDP.1, bitwise xor-ed with 0x02.
   The result is the EUI-64 address derivation that is also used for
   Ethernet Networks [RFC2464].

   Multicast addresses for IPv6 are also constructed as for Ethernet,
   resulting in the following format:

       0                                            47
      +-------+-------+-------+-------+-------+-------+
      | 0x33  | 0x33  |IPv6.12|IPv6.13|IPv6.14|IPv6.15|
      +-------+-------+-------+-------+-------+-------+

   The bytes IPv6.12 through IPv6.15 are the last four bytes of the IPv6
   address sought over multicast.


5.  6bed4 Router Behavior

   The 6bed4 Router services 6bed4 Peers with Router Solicitation
   requests, and by relaying any traffic that it cannot automatically
   direct.  The following definitions specify the behavior in detail.



Van Rein               Expires September 12, 2012              [Page 10]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   The description below assumes that the 6bed4 Router acts bidirection-
   ally; note that a split of this function over multiple network nodes
   is thinkable, in which case their combined behavior should match
   these specifications.

5.1.  Address Information

   A 6bed4 Router offers its services on an IPv4 address and the UDP
   port TBD1.  The IPv4 address varies between 6bed4 Routers, and may be
   found through various means; it may be hard-coded into 6bed4 Tunnel
   software, it may be an Anycast address [RFC4786], or it may be found
   through IPv4 application protocols such as DNS [RFC1034] or DHCP
   [RFC2131].  The combined IPv4 address and UDP port form its 6bed4
   Address, which will sometimes be represented as its 6bed4 Link-Local
   Address.

   Traffic arriving at this UDP/IPv4 combination is said to have arrived
   from the 6bed4 Network.  Similarly, whenever the 6bed4 Router sends
   traffic over the 6bed4 Network, so when addressing a 6bed4 Peer, it
   MUST send from that same IPv4 address and UDP port.

   The IPv4 address and UDP port are paired with a IPv6 /64 prefix for
   which the 6bed4 Router serves as a router.  The prefix is assumed to
   be assigned indefinitely to the 6bed4 Router.

5.2.  Relaying Plain Unicast Traffic

   The 6bed4 Router relays plain unicast traffic between 6bed4 Peers, as
   well as between 6bed4 Peers and the general IPv6 Internet.  This sec-
   tion describes how this is done.

   Upon arrival of plain unicast traffic over the 6bed4 Network, the
   6bed4 Router MUST validate that the sender's IPv6 address is correct;
   this means that the /64 prefix MUST match the prefix serviced by the
   6bed4 Router, and that the IPv4 address and UDP port as shown in the
   Interface Identifier MUST match the parameters of the incoming 6bed4
   message.  This certifies the IPv6 address of the 6bed4 Peer as well
   as its IPv4 address is certified.  The value of the bytes 0xff and
   0xfe in the default Interface Identifier MUST NOT be validated, as
   these may vary when the sending 6bed4 Peer acts as a local router.

   If only the Interface Identifier fails validation, then the 6bed4
   Router MUST proceed as if it had received a Router Solicitation over
   the 6bed4 Network.  The 6bed4 Router MUST drop all other 6bed4 traf-
   fic that fails validation.  The remainder of this section applies
   only to plain unicast traffic that passed validation.

   When the destination address starts with the /64 prefix that the



Van Rein               Expires September 12, 2012              [Page 11]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   6bed4 Router announces to 6bed4 Peers, then the destination is con-
   sidered to be on the 6bed4 Network.  Otherwise, it is considered a
   general IPv6 address, and MUST be routed through a general IPv6 net-
   work to which the 6bed4 Router is connected.

   To route a network packet to the 6bed4 Network, the 6bed4 Router MUST
   extract the IPv4 address and UDP port from the Interface Identifier
   part of the IPv6 destination address, and forward the packet over UDP
   and IPv4 to those coordinates.

   When relaying traffic to the IPv6 network, the Differentiated Ser-
   vices field [RFC2474], contained in the Traffic Class in the IPv6
   header, SHOULD be retained inasfar as it cannot interfere with normal
   network operation.  When relaying traffic to the 6bed4 network, the
   Differentiated Services field in the Traffic Class in the IPv6 header
   SHOULD be used to fill the Type Of Service field in the IPv4 header,
   inasfar as normal network operation permits.

5.3.  Relaying Plain Multicast Traffic

   This specification places no restrictions on handling of plain multi-
   cast traffic.  As a result, a 6bed4 Router MAY drop all plain multi-
   cast traffic, but extensions to this specification MAY be implemented
   to support carrying multicast across uncooperative networks.

   When relaying traffic to the IPv6 network, the Differentiated Ser-
   vices field [RFC2474], contained in the Traffic Class in the IPv6
   header, SHOULD be retained inasfar as it cannot interfere with normal
   network operation.  When relaying traffic to the 6bed4 network, the
   Differentiated Services field in the Traffic Class in the IPv6 header
   SHOULD be used to fill the Type Of Service field in the IPv4 header,
   inasfar as normal network operation permits.

5.4.  Handling Router Solicitation from the 6bed4 Network

   The 6bed4 Router MUST accept Router Solicitation messages from the
   6bed4 Network.  In addition, certain validation errors on the origin
   of plain unicast messages are handled as if a Router Solicitation had
   been received.

   In response to a Router Solicitation, the 6bed4 Router MUST send a
   Router Advertisement, which is sent back to the originator over the
   6bed4 Network, so to the IPv4 address and UDP port over which the
   incoming message arrived.  The Router Advertisement sent MUST at
   least include the Neighbor Discovery Option for Prefix.

   The Prefix Option communicates the /64 prefix that the 6bed4 Router
   has paired to the IPv4 address and UDP port combination over which



Van Rein               Expires September 12, 2012              [Page 12]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   the incoming message was received; the Valid and Preferred Lifetime
   fields are set to infinite by setting all bits to 1.

   The IPv6 destination address of the Router Advertisement MUST be set
   to fe80::/64 plus an Interface Identifier constructed from the UDP
   port and IPv4 address from which the Router Solicitation was
   received.

   If the UDP port from which the Router Solicitation was received is an
   odd number, then the lowest-value bit of the first byte in the Inter-
   face Identifier of the IPv6 destination address of the Router Adver-
   tisement MUST be set as an error indication.  This informs the 6bed4
   Peer that its UDP port is invalid, and that it should try again from
   another port.  Note that an odd UDP port number on a private address
   [RFC1918] makes it more likely that an odd UDP port number is
   assigned on the public Internet, and also that an odd UDP port number
   can find its way into a 6bed4 Link-Local Address on a bypass route
   over the local network; for these reason, an odd UDP port number
   SHOULD be rejected when it is assigned locally, even in a private
   address range.

5.5.  Handling Router Advertisement from the 6bed4 Network

   The 6bed4 Router MUST drop all Router Advertisements arriving over
   the 6bed4 Network.

5.6.  Handling Neighbor Solicitation from the 6bed4 Network

   The 6bed4 Router accepts Neighbor Solicitation messages over the
   6bed4 Network.  Incoming packets are subject to the same validation
   as before relaying plain unicast traffic, and will be dropped if the
   validation fails.

   The only validating Neighbor Solicitation messages to which the 6bed4
   Router responds are those directed at its IPv6 address composed of
   the /64 prefix used for 6bed4 plus its Interface Identifier, its IPv6
   address composed of fe80::/64 plus its Interface Identifier, and
   finally its IPv6 address fe80::/128.  To all these, it will respond
   with a Neighbor Advertisement that provides its 6bed4 Link-Local
   Address in a Target Link-Local Address Neighbor Discovery Option.

5.7.  Handling Neighbor Advertisement from the 6bed4 Network

   The 6bed4 Router MUST drop all Neighbor Advertisements arriving over
   the 6bed4 Network.

5.8.  Handling Redirect from the 6bed4 Network




Van Rein               Expires September 12, 2012              [Page 13]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   A 6bed4 Router MUST drop all Redirect messages arriving over the
   6bed4 Network.

5.9.  Handling Empty UDP Packets from the 6bed4 Network

   Packets arriving over the 6bed4 Network may consist of nothing but an
   IPv4 header and a UDP header, so without any UDP data.  Such messages
   may have been sent to keep an open connection to the 6bed4 Router,
   especially by 6bed4 Peers behind Network Address Translators and/or
   Firewalls.  For this purpose, it is usually the outgoing traffic that
   keeps a hole open, and no return traffic is required.  Therefore,
   such packets MAY be dropped.

5.10.  Dealing with Packet Fragmentation

   The IPv6 specifications define a minimal MTU that exceeds that of
   IPv4; as a result, it is always possible for packets on the 6bed4
   Network to be subjected to fragmentation.  The 6bed4 Router SHOULD
   NOT set the Don't Fragment flag [RFC0791] on IPv4 traffic and it
   SHOULD be prepared to reconstruct packets from fragments.

   The 6bed4 Router MAY reject packets in excess of the 1280 byte MTU
   for IPv6 traffic; it MUST then respond with an ICMPv6 message of type
   2, Packet Too Big.


6.  6bed4 Peer Behavior

   Every 6bed4 Peer has a single 6bed4 Router that it uses as its gate-
   way to the general IPv6 network, and possibly to other 6bed4 Peers on
   the same 6bed4 Network to which it cannot create a bypass route.  The
   6bed4 Router has a fixed IPv6 /64 prefix setup for its 6bed4 Network.
   The following details the behavior of the 6bed4 Peer over the 6bed4
   Network defined by that prefix, both in its relation to its 6bed4
   Router and to other 6bed4 Peers.

   The following gives some background information about a possible
   implementation of a 6bed4 Tunnel from the aforementioned conceptual
   model.  This involves the behavior of the 6bed4 Tunnel and its link
   to the IPv6 stack over the 6bed4 Link.  All such information should
   be considered as non-normative illustrations; any equivalent imple-
   mentation is acceptable.  This specification is normative where it
   concerns the behavior of the 6bed4 Peer over the 6bed4 Network.

6.1.  Filtering Incoming Traffic

   As a general precaution against spurious senders, the 6bed4 Peer MUST
   filter traffic reaching it over the 6bed4 Network.  The IPv4 address



Van Rein               Expires September 12, 2012              [Page 14]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   and UDP port over which traffic originates should arrive over an
   approved (bypass) route:


    o Traffic from the 6bed4 Router's IPv4 address and UDP port TBD1 are
      always acceptable;

    o Traffic with an IPv6 source address under the /64 prefix that is
      either fe80::/64 or the 64 prefix of the 6bed4 Network is accept-
      able, provided that the IPv4 address and UDP port from which the
      6bed4 Network traffic originated match the Interface Identifier of
      the IPv6 source address.

    o Traffic that originated from a directly attached IPv4 subnet MAY
      be accepted if the implementation and configuration of the 6bed4
      Peer support it.  Note that the destination address MAY in this
      case be the multicast address 224.0.0.1 for all nodes on the local
      subnet, provided that it is used with UDP port TBD1.

   Any other incoming traffic over the 6bed4 Network MUST be dropped.

   Since other 6bed4 Peers also implement these tests, sending behavior
   must match it.  Any traffic that a 6bed4 Peer sends over the 6bed4
   Network MUST originate from the 6bed4 Link-Local Address, even the
   Router Solicitation sent to the 6bed4 Router.  Normal sending of
   UDP/IPv4 traffic from a socket would implement that automatically,
   even if the 6bed4 Peer does not know its origin yet.  IPv6 traffic
   that is not a Router Solicitation MUST additionally use an IPv6
   source address comprising of the IPv6 /64 prefix for the 6bed4 Net-
   work, plus an Interface Identifier derived from the 6bed4 Link-Local
   Address of the 6bed4 Peer.

6.2.  6bed4 Tunnel and Link-Layer Address Setup

   Every 6bed4 Peer MUST have an assigned 6bed4 Router that it can use
   as its default route to the general IPv6 network.  This 6bed4 Router
   MAY be configured, or it MAY be determined using some automated mech-
   anism during initialization of the 6bed4 Peer.  Furthermore, the
   6bed4 Peer MAY iterate over a number of options until it finds one
   that it finds acceptable.  It SHOULD not change its 6bed4 Router
   after it has decided to join its 6bed4 Network.

   To be able to communicate on the 6bed4 Network attached to its 6bed4
   Router, the 6bed4 Peer MUST obtain a 6bed4 Link-Local Address.  To
   obtain one, it sends a Router Solicitation to its 6bed4 Router.  The
   6bed4 Router responds with a Router Advertisement that is processed
   as specified below, among others to derive the 6bed4 Link-Local
   Address for the 6bed4 Peer.  If this response is not received for



Van Rein               Expires September 12, 2012              [Page 15]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   some time, then another Router Advertisement SHOULD be attempted,
   observing an exponential fallback scheme to avoid overloading the
   6bed4 Network.

   In terms of the non-normative conceptual model, an accepted 6bed4
   Link-Local Address can be assigned to the 6bed4 Tunnel, and the 6bed4
   Link can be brought online.

   When bringing the 6bed4 Peer online, he 6bed4 Peer MAY setup a
   default route over the 6bed4 Network with the 6bed4 Router as a
   default router; in terms of the non-normative conceptual model, the
   router's address may be setup as fe80::/128 or as fe80::/64 plus the
   Interface Identifier of the 6bed4 Router.

   In addition to listening for traffic on the UDP port and IPv4 address
   from which the 6bed4 Peer sends its traffic, it MAY also subscribe to
   multicast traffic sent to IPv4 address 224.0.0.1 for all hosts on
   local subnets, and UDP port TBD1.  Subscribing to this port and pro-
   cessing messages on it as though they arrived over the usual UDP port
   and IPv4 address is optional, but for reasons of symmetric routing it
   MUST be done if the 6bed4 Peer wants to be able to setup bypass
   routes with the Low Metric.

6.3.  Relaying Plain Unicast Traffic

   The 6bed4 Peer relays between the 6bed4 Network and IPv6 stack, such
   as over the 6bed4 Link proposed in the non-normative conceptual
   model.

   When plain unicast traffic passes from IPv6 to the 6bed4 Network, it
   is assumed that a 6bed4 Link-Local Address is provided as the next
   hop destination.  From this next hop address, the IPv4 address and
   UDP port are retrieved, and the IPv6 packet is sent to those coordi-
   nates over the 6bed4 Network.

   When relaying traffic to the 6bed4 network, the Differentiated Ser-
   vices field in the Traffic Class in the IPv6 header SHOULD be used to
   fill the Type Of Service field in the IPv4 header, inasfar as normal
   network operation permits.

6.4.  Relaying Plain Multicast Traffic

   This specification places no restrictions on handling of plain multi-
   cast traffic.  As a result, a 6bed4 Router MAY drop all plain multi-
   cast traffic, but extensions to this specification MAY be implemented
   to support carrying multicast across uncooperative networks.

   When plain multicast traffic arrives over the 6bed4 Network, the



Van Rein               Expires September 12, 2012              [Page 16]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   6bed4 Peer MAY accept it for processing; in terms of the non-norma-
   tive conceptual model, that would mean to relay it over the 6bed4
   Link to the IPv6 stack.

   A 6bed4 Peer MAY also support sending plain multicast traffic; to
   that end, it MAY utilize the destination address 224.0.0.1 to reach
   all IPv4 hosts on the local subnet, with UDP port TBD1 to select
   6bed4 Peers.  Multicast through the 6bed4 Router and to remote 6bed4
   Peers are not covered by this specification.

   When relaying traffic to the 6bed4 network, the Differentiated Ser-
   vices field in the Traffic Class in the IPv6 header SHOULD be used to
   fill the Type Of Service field in the IPv4 header, inasfar as normal
   network operation permits.

6.5.  Handling Router Solicitation from the 6bed4 Network

   The 6bed4 Peer is normally not a router, because that would require a
   /64 prefix under which to offer addresses.  Therefore, incoming
   attempts of Router Solicitation over the 6bed4 Network are usually a
   mistake and SHOULD be dropped.

   There is one possible exception though.  A 6bed4 Peer MAY provide
   leases over an additional protocol, such as DHCPv6.  To that end, it
   would substitute the middle two bytes of the Interface Identifier
   with other values than the default 0xff,0xfe values and offer a
   thusly constructed address; it would also serve as a router for any
   such traffic.  To make this possible, the 6bed4 Peer MAY send back
   Router Advertisements with the Managed Address Configuration flag
   set.

6.6.  Handling Router Advertisement from the 6bed4 Network

   Incoming Router Advertisement from the 6bed4 Network MUST be dropped
   if its origin 6bed4 Address is not that of the 6bed4 Router assigned
   to the 6bed4 Peer.

   To be accepted, a Router Advertisement must have been sent by the
   6bed4 Router, it MUST NOT have a set Managed Address Configuration
   flag [RFC4861], it MUST have a Prefix Option with a /64 prefix, and
   it MUST have an IPv6 destination address that starts with fe80::/64
   and that has bytes 0xff,0xfe in the middle of the Interface Identi-
   fier.  This Interface Identifier MUST NOT have the lowest-value bit
   in the first byte set, as that would indicate an error condition;
   this is usually due to an odd UDP port as seen by the public Inter-
   net.  Since this is not permitted, the 6bed4 Peer SHOULD retry the
   Router Solicitation if that happens, after switching to another UDP
   port.  It MUST NOT continue to communicate on the 6bed4 Network with



Van Rein               Expires September 12, 2012              [Page 17]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   an UDP port that flagged this error.

   If no MTU settings are provided as part of the Router Advertisement,
   then the 6bed4 Peer MUST not assume more than the guaranteed minimum
   MTU of 1280 for IPv6 networks without performing Path MTU Discovery.

   When sent by the 6bed4 Router, the message MUST be treated as a new
   announcement of a prefix and a 6bed4 Link-Local Address, possibly
   replacing previously set values.  The 6bed4 Peer MUST either remove
   any old settings that do not match the new announcement, or deprecate
   them and then it SHOULD remove them at a later time.  When the 6bed4
   Link-Local Address changed, then the hole punched in Network Address
   Translators and/or Firewalls appears to have changed, so connections
   through the 6bed4 Router are not likely to be able to continue; but
   some connections through bypass routes may continue to work.

6.7.  Handling Router Solicitation from the 6bed4 Link

   This subsection is an illustration of a possible implementation; it
   is non-normative.

   The assumption in the conceptual model is that the 6bed4 Link has
   been setup with a 6bed4 Link-Local Address before it is brought
   online; this information is obtained with Router Discovery initiated
   by the 6bed4 Peer.  As a result, the 6bed4 Link's attempts to Router
   Discovery are a bit late, but should nonetheless be handled.

   When a Router Solicitation enters over the 6bed4 Link, it could be
   responded to with a Router Advertisement holding a Prefix Option with
   the /64 prefix obtained from the 6bed4 Router.  The Default Router
   Preference Field [RFC4191] may be set to Low, so as to prefer default
   routing over native links, except for traffic targeted at the /64
   prefix offered in this Router Advertisement.

6.8.  Handling Router Advertisement from the 6bed4 Link

   This subsection is an illustration of a possible implementation; it
   is non-normative.

   Any Router Advertisement arriving over the 6bed4 Link must be
   dropped.

6.9.  Handling Neighbor Solicitation from the 6bed4 Network

   When a Neighbor Solicitation destined for one of its IPv6 addresses
   enters a 6bed4 Peer over the 6bed4 Network, then a reply MUST be for-
   mulated in the form of a Neighbor Advertisement.  In terms of the
   non-normative conceptual model, the message could be replicated to



Van Rein               Expires September 12, 2012              [Page 18]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   the IPv6 stack through the 6bed4 Link.

6.10.  Handling Neighbor Advertisement from the 6bed4 Network

   When a Neighbor Advertisement arrives over the 6bed4 Network, then
   the message will be normally processed; in terms of the non-normative
   conceptual model, the message would be replicated to the IPv6 stack
   over the 6bed4 Link.

   Any work scheduled to find the target in the received Neighbor Adver-
   tisement MUST be descheduled as a result of processing the Neighbor
   Advertisement.

6.11.  Handling Neighbor Solicitation from the 6bed4 Link

   This subsection is an illustration of a possible implementation; it
   is non-normative.

   Neighbor Solicitation can be used by the IPv6 stack to avoid colli-
   sions.  This is not required on the 6bed4 Network, where addresses
   are already unique if they are assigned through 6bed4 Link-Local
   Addresses.  Therefore, an attempt to verify the prior existence of an
   IPv6 address based on this is not required.  In terms of the non-nor-
   mative conceptual model, this means that a Neighbor Solicitation
   arriving over the 6bed4 Link and inquiring after the 6bed4 Network's
   /64 prefix plus the Interface Identifier of the 6bed4 Peer should be
   dropped.

   In general however, Neighbor Solicitation serves attempts to contact
   a remote 6bed4 Peer with an unknown 6bed4 Link-Local Address.  In
   terms of the non-normative conceptual model, that could be recognized
   if the IPv6 stack sent a Neighbor Solicitation through the 6bed4
   Link.

   If the request is for an address that starts with fe80::/10 or
   fe80::/64, then a Neighbor Advertisement must be provided by retriev-
   ing the 6bed4 Link-Local Address from the Interface Identifier.  The
   only exception would be for address fe80::/128, which should be
   interpreted as a reference to the 6bed4 Router; if it is requested,
   then the 6bed4 Link-Layer Address of the 6bed4 Router must be pro-
   vided in a Neighbor Advertisement sent back over the 6bed4 Link.

   What remains is to process Neighbor Solicitation for remote 6bed4
   Peers on the 6bed4 Network.  The process run to obtain the 6bed4
   Link-Local Address for these IPv6 addresses is to attempt all candi-
   date bypasses in turn, by sending a Neighbor Solicitation to the can-
   didate 6bed4 Address of the bypass.  There may be a few attempts for
   each candidate bypass to compensate for network losses.  When a



Van Rein               Expires September 12, 2012              [Page 19]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   Neighbor Advertisement is received in reply to one of these Neighbor
   Solicitations, then the 6bed4 Link-Local Address is accepted as the
   way to contact the requested target address, which is then relayed
   back in the form of a Neighbor Advertisement to the IPv6 stack over
   the 6bed4 Link.

   Multiple bypass routes may be candidates for a single IPv6 target.
   The search starts with the nearest-by targets, and ends with the far-
   thest away.

   The first bypass route is only useful if the local and remote 6bed4
   Peers exhibit the same IPv4 address, and if the 6bed4 Peer subscribes
   to (and also sends to) the multicast address 224.0.0.1 and UDP port
   TBD1 for all 6bed4 nodes on the local network.  If these conditions
   apply, then the first candidate bypass to consider is found by send-
   ing a Neighbor Solicitation for the target IPv6 address to this mul-
   ticast address and port.

   The second bypass route can be used anywhere, even if the local and
   remote 6bed4 Peer exhibit the same IPv4 address.  It is tried by
   sending a Neighbor Solicitation to the IPv4 address and UDP port as
   found in the 6bed4 Link-Local Address of the remote 6bed4 Peer.  This
   may work through a Pinhole or a direct connection, but in general it
   would attempt contact through the outside of any Network Address
   Translation device used by the remote 6bed4 Peer.  Whether this works
   depends on the types of NAT and Firewall in the path between the
   6bed4 Peers.  If both use symmetric NAT, then it will never work; if
   only the remote side is symmetrical, then the initiative to find a
   direct route must be initiated by the remote 6bed4 Peer, and a future
   Redirect would be needed to restart the Neighbor Solicitation from
   the local 6bed4 peer.  But in many other situations, the direct con-
   nection is likely to work.

   Neighbor Advertisements sent in reply are handled as described above;
   plus, they would cancel the search for bypass routes for the adver-
   tised target, since a bypass appears to have been found.

   Only if all bypass routes fail to respond within a reasonable time,
   would it be necessary for the 6bed4 Peer to fallback to the 6bed4
   Router.  In terms of the non-normative conceptual model, it would
   send a Neighbor Advertisement over the 6bed4 Link mentioning the
   6bed4 Link-Local Address of the 6bed4 Router for the targeted remote
   6bed4 Peer; in terms of that same model, the success in one of the
   foregoing steps would result in sending a Neighbor Advertisement with
   the succeeded 6bed4 Link-Layer Address for the targeted remote 6bed4
   Peer.

   Depending on the original Neighbor Solicitation, the bypass routes



Van Rein               Expires September 12, 2012              [Page 20]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   attempted and reporting on it may be varied; for instance, for uni-
   cast versions it may suffice to attempt only the bypass routes up to
   and including the nearness of the requested form, and there is no
   need to report the 6bed4 Router's address.

6.12.  Handling Neighbor Advertisement from the 6bed4 Link

   This subsection is an illustration of a possible implementation; it
   is non-normative.

   If the IPv6 stack relays a unicast Neighbor Advertisement message
   over the 6bed4 Link, then the packet must be replicated and sent over
   the 6bed4 Network.  If it is a multicast version, then it may be
   dropped.

6.13.  Handling Redirect from the 6bed4 Network

   It is necessary to send and receive 6bed4 traffic between two 6bed4
   Peers over the same route; so either both send over the local net-
   work, or both send to direct 6bed4 Link-Local Addresses, or both send
   through the 6bed4 Router.  This can be achieved by ensuring that the
   same Metric applies in both directions.

   If a route is established by one 6bed4 Peer, it knows that traffic
   can pass bidirectionally, so it can safely assume that the remote
   6bed4 Peer can use it also.  If it receives traffic from a remote
   6bed4 Peer over a bypass with a higher cost metric, then it SHOULD
   send a Redirect message to the 6bed4 Peer, instructing it to continue
   sending over the more direct route.  In this Redirect message, it
   MUST include as much of the causing message as it can fit in.  The
   Destination Address included MUST be made from the fe80::/64 prefix
   plus the Interface Identifier of the 6bed4 Peer.  The message MUST be
   sent to the 6bed4 Peer over the bypass for which it indicates a pref-
   erence.

   Upon receiving a Redirect, as much as possible MUST be verified; the
   causing packet if possible, the match between the 6bed4 Address over
   which the packet arrived and the Interface Identifier of the Destina-
   tion Address; whether the target is currently known to the local
   6bed4 Peer; and whether the 6bed4 Link-Local Address in the Interface
   Identifier would actually have been considered as a candidate 6bed4
   Link-Local Address for the target.  If any of these tests fails, then
   the Redirect MUST be dropped.  Otherwise, its processing SHOULD con-
   sist of sending a Neighbor Solicitation to the proposed 6bed4
   Address.  If this leads to a Neighbor Advertisement that would also
   have been acceptable to the normal process of Neighbor Discovery,
   then it MUST be accepted as a replacement of the current 6bed4 Link-
   Local Address for the target.  In terms of the non-normative



Van Rein               Expires September 12, 2012              [Page 21]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


   conceptual model, this may be implemented with a Neighbor Advertise-
   ment over the 6bed4 Link that has its Override flag set.

6.14.  Handling Redirect from the 6bed4 Link

   The 6bed4 Link is part of the non-normative conceptual model.  If
   this interface would generate a Redirect message, it must be ignored.

6.15.  Dealing with Packet Fragmentation

   The IPv6 specifications define a minimal MTU that exceeds that of
   IPv4; as a result, it is always possible for packets on the 6bed4
   Network to be subjected to fragmentation.  The 6bed4 Peer SHOULD NOT
   set the Don't Fragment flag [RFC791] on IPv4 traffic and it SHOULD be
   prepared to reconstruct packets from fragments.

   The 6bed4 Peer MAY reject packets in excess of the 1280 byte MTU for
   IPv6 traffic; it MUST then respond with an ICMPv6 message of type 2,
   Packet Too Big.


7.  Impact of Firewalls and Network Address Translation

   The 6bed4 mechanism has been carefully designed to work behind any
   sequence of Firewalls or Network Address Translators.  The reason
   that it handles these well has two causes: First, it uses UDP, which
   is an opaque carrier that is generally supported by these devices.
   Second, the traffic is internally initiated, by sending a Router
   Solicitation to a 6bed4 Router.  This is the direction in which both
   Firewalls and NAT open a hole that permits return traffic.

   Since UDP is stateless, all holes in Firewalls and NAT are subject to
   timeouts, and therefore regular traffic is needed to keep such holes
   open.  To this end, a message may be sent to the 6bed4 Router at a
   regular interval, if no other traffic has been sent.  In cases where
   this fails, an outgoing message will be corrected with a new Router
   Advertisement revealing the new 6bed4 Link-Local Address of the 6bed4
   Peer.  If this happens, any communication partners would conclude
   that the 6bed4 Peer had gone offline; regular traffic may be pre-
   ferred to avoid this.

   It may be beneficial to support 6bed4 on servers or routers, even if
   they are connected through native IPv6.  This could help to have more
   direct connectivity to popular 6bed4 Networks.  If server nodes are
   located behind a sequence of Firewalls and/or NAT, then Port Forward-
   ing may be setup explicitly to fixate an IPv6 address, by avoiding
   UDP port changes.  When this is done, the IPv6 address could safely
   be entered in DNS as a server address.



Van Rein               Expires September 12, 2012              [Page 22]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


8.  Security Considerations

   The 6bed4 protocol uses configuration packets that were designed for
   local network use, but it employs them on the public Internet.  This
   is not a change to be made lightly.  Furthermore, 6bed4 is a tunnel
   protocol, which itself implies certain responsibilities.

   All tunnel protocols should reject forged inner addresses; the 6bed4
   Peer and 6bed4 Router tackle this by validating the address informa-
   tion upon entry; the IPv6 source address must match with the IPv4
   address and UDP port from which the packet originated.  The only
   exception is the Router Advertisement sent to the 6bed4 Router, but
   this is a mindful choice, and the packet is not permitted to travel
   beyond the 6bed4 Router.

   The link between an IPv4 address (which is hopefully subjected to
   egress filtering) and the tunnel's inner IPv6 address means that it
   is not easier to forge an IPv6 address than it is to forge an IPv4
   address.  Furthermore, the use of an IPv4 address as part of the IPv6
   address means that network attackers are as traceable on a 6bed4 Net-
   work as they are on the IPv4 network.

   This specification does not introduce anything that could cause a
   6bed4 Peer to contact a wrong 6bed4 Router; the mechanism for deter-
   mining the IPv4 address for that service falls outside the scope of
   this specification.

   Special attention is warranted for the Neighbor Advertisement and
   Router Advertisement messages, as these announce information that
   influences message redirection of a 6bed4 Peer.  These concerns are
   addressed by the precaution to validate source addresses.  In addi-
   tion, the information claimed is validated as per the behavioral
   specifications given above.

   Another specific concern relates to the ability to send Redirect
   packets.  Once again, validation on source addresses addresses these
   concerns.  In addition, the packet is only a hint and not an update
   instruction.  When it is received, a Neighbor Solicitation process
   will only commence if the targeted 6bed4 Peer is already known to the
   6bed4 Peer.  This process is predictable, so a Neighbor Advertisement
   could be crafted ahead of time; however, these Neighbor Advertise-
   ments are also subject to matching of the source address.

   In summary, the risks caused by the tunneling technique and the use
   of Neighbor Discovery style packets on the 6bed4 Network are limited
   to situations where it is possible to send traffic from forged IPv4
   address.  In such situations, the problems are much more general and
   serious.



Van Rein               Expires September 12, 2012              [Page 23]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


9.  IANA Considerations

   This specification allocates one resources from one existing reg-
   istry.

9.1.  Registered UDP port: 6bed4

   The registered port for the 6bed4 protocol is TBD1.  This port is
   used to select 6bed4 traffic sent to a 6bed4 Router, as well as to
   the multicast address 224.0.0.1 for all nodes on the local subnet.

   [TO BE REMOVED: This UDP-only port number registration should take
   place at the following location: http://www.iana.org/assign-
   ments/port-numbers -- The port number MUST be an even number.  I
   would like to request port number 25788 because it shows up in IPv6
   addresses as a recognizable ...:be64:...]



































Van Rein               Expires September 12, 2012              [Page 24]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


10.  References

10.1.  Normative References

   [RFC4862]  Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless
              Address Autoconfiguration", RFC 4862, September 2007.

   [RFC4861]  Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
              "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
              September 2007.

   [RFC4443]  Conta, A., Deering, S., and M. Gupta, Ed., "Internet Con-
              trol Message Protocol (ICMPv6) for the Internet Protocol
              Version 6 (IPv6) Specification", RFC 4443, March 2006.

   [RFC4291]  Hinden, R. and S. Deering, "IP Version 6 Addressing Archi-
              tecture", RFC 4291, February 2006.

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

   [RFC3022]  Srisuresh, P. and K. Egevang, "Traditional IP Network
              Address Translator (Traditional NAT)", RFC 3022, January
              2001.

   [RFC2474]  Nichols, K., Blake, S., Baker, F., and D. Black, "Defini-
              tion of the Differentiated Services Field (DS Field) in
              the IPv4 and IPv6 Headers", RFC 2474, December 1998.

   [RFC1918]  Rekhter, Y., Moskowitz, B., Karrenberg, D., de Groot, G.,
              and E. Lear, "Address Allocation for Private Internets",
              BCP 5, RFC 1918, February 1996.

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

   [RFC2464]  Crawford, M., "Transmission of IPv6 Packets over Ethernet
              Networks", RFC 2464, December 1998.

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

   [RFC4191]  Draves, R. and D. Thaler, "Default Router Preferences and
              More-Specific Routes", RFC 4191, November 2005.







Van Rein               Expires September 12, 2012              [Page 25]





INTERNET DRAFT          6bed4: Peer-to-Peer IPv6          March 11, 2012


10.2.  Informative References

   [RFC4786]  Abley, J. and K. Lindqvist, "Operation of Anycast Ser-
              vices", BCP 126, RFC 4786, December 2006.

   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",
              STD 13, RFC 1034, November 1987.

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



Author's Address

   Rick van Rein
   OpenFortress Digital signatures
   Haarlebrink 5
   7544 WP  Enschede
   The Netherlands

   email: rick@openfortress.nl





























Van Rein               Expires September 12, 2012              [Page 26]