GROBJ BOF                                              B. Carpenter, Ed.
Internet-Draft                                         Univ. of Auckland
Intended status: Informational                          January 20, 2010
Expires: July 24, 2010


        Problem Statement and Requirements for Generic Referrals
                     draft-carpenter-grobj-reqts-00

Abstract

   The purpose of a referral is to enable a given entity in a multiparty
   Internet application to pass information to another party.  This memo
   discusses the problems involved and describes requirements for a
   generic referral mechanism.

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/ietf/1id-abstracts.txt.

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

   This Internet-Draft will expire on July 24, 2010.

Copyright Notice

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

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



Carpenter                 Expires July 24, 2010                 [Page 1]


Internet-Draft            Referral Requirements             January 2010


   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the BSD License.


Table of Contents

   1.  Introduction and Problem Statement . . . . . . . . . . . . . .  3
     1.1.  Terminology  . . . . . . . . . . . . . . . . . . . . . . .  7
   2.  The additional problem of scope  . . . . . . . . . . . . . . .  7
   3.  The additional problem of path selection . . . . . . . . . . . 10
   4.  Summary of Requirements  . . . . . . . . . . . . . . . . . . . 10
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 12
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 13
   7.  Contributing authors . . . . . . . . . . . . . . . . . . . . . 13
   8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13
   9.  Change log . . . . . . . . . . . . . . . . . . . . . . . . . . 14
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 14
     10.2. Informative References . . . . . . . . . . . . . . . . . . 14
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 15




























Carpenter                 Expires July 24, 2010                 [Page 2]


Internet-Draft            Referral Requirements             January 2010


1.  Introduction and Problem Statement

   A frequently occurring situation is that one entity A connected to
   the Internet (or to some private network using the Internet protocol
   suite) needs to inform another entity B how to reach either A itself
   or some third-party entity C. This is known as a referral.

   In the original design of the Internet, IP addresses were global,
   unique, and quasi-permanent.  Also any differentiation beyond that
   provided by an IP address was done by protocol and port numbers.
   Referrals were therefore performed simply by passing an IP address
   and possibly protocol and port numbers.  In fact simple referrals
   (the first case above, sometimes called first-party referrals) were
   never needed since B could simply use A's address.  Third-party
   referrals were trivial: A would tell B about C's address.  Thus, it
   became common practice to pass raw addresses between entities.  A
   classical example is the FTP PORT command [RFC0959].

   Unfortunately, this simple approach to referrals often fails in
   today's Internet.  As has been known for some time [RFC2101],
   addresses no longer all have global scope, often have limited
   reachability, and may have limited lifetime.  It is no longer
   reasonable to assume that a host with a fixed location has a fixed
   address, or even a stable address.

   We also encounter multi-interfaced hosts whose reachability is bound
   to a particular (logical/physical) interface.  Furthermore, in the
   context of IPv4 address exhaustion, several solutions have emerged to
   share a single public IPv4 address between several customers
   simultaneously.  Consequently, an IPv4 address often no longer
   identifies a single customer/user/host.  Other information (e.g.,
   port range) is required to identify unambiguously a given customer/
   user/host.

   Both addresses and port numbers may be different on either side of a
   NAT or some other middlebox [RFC3234], and firewalls may block them.
   It is no longer reasonable to assume that an address for host H,
   which allows a given peer to reach that host in one location, also
   works from a different location - even if H is reachable from the
   second location.  Also, the Internet now has two co-existing address
   formats for IPv4 and IPv6.  Having the address of the source and
   destination in the same IP version does not necessarily mean that the
   path will be using that IP version.  Simple approaches may cause
   unnecessary double translation [I-D.boucadair-softwire-cgn-bypass].
   Some addresses may even be the result of translation between IPv4 and
   IPv6, with severe limitations on their scope and lifetime.  Sending
   an out-of-scope or expired address, or one of the wrong format, as a
   referral will fail.



Carpenter                 Expires July 24, 2010                 [Page 3]


Internet-Draft            Referral Requirements             January 2010


   IP addresses today may have an implied "context" (VPN, VoIP VC, IP
   TV, etc.): the reachability of such an address depends on that
   context.

   In some cases, this problem may be readily solved by passing a Fully
   Qualified Domain Name (FQDN) instead of an IP address.  Indeed, that
   is an architecturally preferred solution [RFC1958].  However, it is
   not sufficient in many cases of dynamic referrals.  Experience shows
   that an application cannot use a domain name in order to reliably
   find useable address(es) of an arbitrary peer.  Domain names work
   fairly well to find the addresses of public servers, as in web
   servers or SMTP servers, because operators of such servers take pains
   to make sure that their domain names work.  But DNS records are not
   as reliably maintained for arbitrary hosts such as might need to be
   contacted in peer-to-peer applications, or for servers within
   corporate networks.  Many small networks do not even maintain DNS
   entries for their hosts, and for some networks that do list local
   hosts in DNS, the listings may well be unusable from a remote
   location, because of two-faced DNS, or because the A record contains
   a private address.  These cases may even be intentional as part of a
   security ring-fence, where w3.example.com only resolves within the
   corporate boundary, and/or resolves to IP addresses which are only
   reachable within the corporate administrative boundaries.  In such
   contexts, incoming connections are usually filtered by the corporate
   firewall.

   An additional issue with FQDNs is the very common situation where
   multiple hosts are hidden behind a NAT, but they share one FQDN which
   is in fact a dummy name, created automatically by the ISP so that
   reverse DNS lookup will succeed for the NAT's public IPv4 address.
   Such FQDNs are useless for identifying specific hosts.

   Furthermore, an FQDN may not be sufficient to establish successful
   communications involving heterogeneous peers (i.e., IPv4 and IPv6)
   since A and AAAA records may not be consistently provisioned.  There
   are known cases where a server has one name that produces an A record
   (e.g., www.example.com) and another name that produces an AAAA record
   (e.g., ipv6.example.com).  An additional complication is that some
   answers from DNS may be synthetic IP addresses, e.g., AAAA records
   sent by DNS64.  The host may have no means to detect that such an
   address represents an IPv4 host.  These addresses should not be
   interpreted as native IPv6 address.

   In such cases, an IP address either cannot be derived from an FQDN,
   or if so derived, cannot be accessed from an arbitrary location in
   the Internet.

   A related problem is that an application does not have a reliable way



Carpenter                 Expires July 24, 2010                 [Page 4]


Internet-Draft            Referral Requirements             January 2010


   of knowing its own domain name - or to be more precise, a way of
   knowing a domain name that will allow the application to be reached
   from another location.

   There are wider systemic problems with the DNS as a reliable way to
   find a useable address, which are somewhat out of scope here, but can
   be summarised:
   o  In large networks, it is now quite common that the DNS
      administrator is out of touch with the applications user or
      administrator, and as a result, that the DNS is out of sync with
      reality.
   o  DNS was never designed to accommodate mobile or roaming hosts,
      whose locator may change rapidly.
   o  DNS has never been satisfactorily adapted to isolated,
      transiently-connected, or ad hoc networks.
   o  It is no longer reasonable to assume that all addresses associated
      with a DNS name are bound to a single host.  One result is that
      the DNS name might suffice for an initial connection, but a
      specific address is needed to rebind to the same peer, say, to
      recover from a broken connection.
   o  It is no longer reasonable to assume that a DNS query will return
      all usable addresses for a host.
   o  Hosts may be identified by a different URI per service: no unique
      URI scheme, meaning no single FQDN, will apply.

   For all the above reasons, the problem of address referrals cannot be
   solved simply by recommending the use of FQDNs instead.  The
   guideline in [RFC1958] is in fact too simple for today's network.
   Something more elaborate than an IP address or an FQDN appears to be
   needed in the general case of application referrals.

   The first problem motivating this draft is the observation that
   unless the parties involved have reached an understanding about the
   scope, lifetime, and format of the elements in a referral through
   some other means, that information must be passed with the referral.
   This is required so that the receiving entity can determine whether
   or not the referral is useful.  The referral therefore needs to
   consist of a fully-fledged data structure, or to be made using a
   mutually agreed referral protocol.

   When a referral fails, good design suggests that the receiving entity
   should attempt to correct the situation.  For example, if
   communication fails to be established using an IP address, it would
   often be appropriate to attempt a DNS lookup, despite the
   difficulties mentioned above.  The second motivating problem is that
   it may be helpful to the entity receiving a referral to also receive
   information about the source of the referral, such as an FQDN, if
   that is known to the sender of the referral.  The receiving entity



Carpenter                 Expires July 24, 2010                 [Page 5]


Internet-Draft            Referral Requirements             January 2010


   can then attempt to recover a valid address (and possibly port
   number) for the referred entity.

   The third motivating problem is to allow a referral to contain
   alternatives to an IP address or an FQDN, when any such alternatives
   exist.

   Additional arguments for a generic referral mechanism include:
   1.  Allow for general mechanisms that can be used by any application
       to handle referrals and understand the meaning of referral
       information, such as IP address, possibly protocol and port
       numbers.  However, there is an open question whether this
       standard referral design should be used for new applications
       only, or extended to existing applications.
   2.  Simplify ALG design during middlebox traversal.  There are
       middleboxes, like firewalls and translators, especially in the
       mobile network, which require application layer gateways ALG.
       The cost of ALG functions is huge for the mobile operator in
       terms of implementation, performance.  Standard referrals could
       simplify ALG implementation during middlebox traversal in the
       mobile network.
   3.  Simplify packet inspection.  Operators sometimes need to inspect
       information or details during communication for administration
       reasons.  If referral mechanism is standardized, it is easier for
       an operator to capture and investigate the required information.

   We observe that we have identified two general requirements: the need
   to define address scope more precisely, and the need to communicate
   referrals in a generic way.

   It should be noted that partial or application-specific solutions to
   these problems abound, because any multi-party distributed
   application must solve them.  The best documented example is ICE
   [I-D.ietf-mmusic-ice], which is an active protocol specific to
   applications mediated by SDP [RFC4566].  ICE "works by including a
   multiplicity of IP addresses and ports in SDP offers and answers,
   which are then tested for connectivity by peer-to-peer connectivity
   checks."  The question raised here is whether we can define
   requirements for a generic solution that can be used by future
   applications, and possibly be retro-fitted to existing applications.

   One approach could be a "SuperICE" designed to be completely general
   and not tied to the SDP model.  Another approach, considered here, is
   the idea of a generic referral object, defined below.  Such an object
   could be passed between the entities of a multi-party application,
   but without defining a specific protocol for that purpose.  Some
   applications might choose to send it in-band as a raw binary object,
   others might use a simple ASCII encoding, and still others might



Carpenter                 Expires July 24, 2010                 [Page 6]


Internet-Draft            Referral Requirements             January 2010


   prefer to encode it in XML, for example.  Finally, it might also be
   used as part of SuperICE.

1.1.  Terminology

   This document makes use of the following terms:
   o  "Entity": we use this rather than "application" to describe any
      software component embedded in an Internet host, not just a
      specific application, that sends, receives or makes use of
      referrals.  Also, in case of dynamic load sharing or failover, an
      entity might even migrate between hosts.
   o  "Referral": the act of one entity informing another entity how to
      contact a specific entity.
   o  "Generic Referral Object (GRO)": a data object expressed in an
      application-independent format that can be passed between entities
      to communicate referrals.
   o  "Reference": the actual data (name, address, identitifier,
      locator, pointer, etc.) that is the basis of a referral.  The
      reference(s) contained in a GRO provide an entity with sufficient
      information to utilise one or more methods to attempt to reach
      another entity.
   o  "Qualifier": a data item that gives additional information about a
      Reference, such as lifetime, port numbers, etc.
   o  "Referring entity": the entity that sends a referral.
   o  "Receiving entity": the entity that receives a referral.
   o  "Referenced entity": the entity described in a GRO; the target of
      a reference.
   o  "Scope": the region or regions of the Internet within which a
      given reference is applicable to reach the referenced entity.  See
      further discussion in the next section.
   o  "Scope Identifier" (ScopeID): an identifier in an unambiguous
      namespace for the scope of a reference.  Used as a Qualifier.
   o  "Limited Scope": whatever set of referring and receiving entities
      have been configured (statically or dynamically) to accept a given
      Scope Identifier.


2.  The additional problem of scope

   The principal purpose of a referral is to enable one entity in a
   multi-party application to pass information to another party involved
   in the same application.  This document makes no assumptions about
   whether the entities are acting as clients, servers, peers, super-
   nodes, relays, proxies, etc., as far as the application is concerned.
   Neither does it take a position as to how the various entities become
   aware of the need to send a referral; this depends entirely on the
   structure of the application.




Carpenter                 Expires July 24, 2010                 [Page 7]


Internet-Draft            Referral Requirements             January 2010


   Since the most fundamental quantity likely to be conveyed in a GRO is
   an IP address, (and possibly a port number) its scope is a key
   question.  Address scope is not a simple concept, as shown by the
   discussion in [RFC4007] and the practical difficulties caused by
   [RFC3484].  Even the concept of link-local scope is complicated by
   the existence of multi-link subnets [RFC4903].  For the purpose of
   referrals, it seems that previous formalisations of the concept of
   scope are inadequate.  Assuming that a GRO is trustworthy, one
   question that a receiving entity must answer is: "can the address in
   this GRO be reached from here?"  That question is not answered by
   knowing only the scope (in the sense of [RFC4007]) as defined at the
   location of the referring entity.  For that reason, scope needs to be
   represented in a new way in GROs.  Firstly, the effective scope (to
   the best of the referring entity's knowledge) could be any of the
   following:
   o  Null.  The address is known not to be applicable outside the
      referring host (e.g., a loopback address).  This option is
      mentioned mainly for completeness; it has no value in a GRO, and
      for privacy reasons it should not be communicated anyway.
   o  Link.  Apart from the standard Ethernet-like view of link
      locality, this scope would also apply to point-to-point links and
      to fragments of a multi-link subnet.  Although on-link referrals
      should be trivial, this case is included to allow for uniform
      design of applications utilising GROs, so that link-local does not
      become a special case.
   o  Limited.  The address has applicability beyond the link, but it is
      known not to have global applicability.  Examples include IPv4
      private addresses [RFC1918] and IPv6 Unique Local Addresses
      (ULAs)[RFC4193].  Other cases include addresses on subnets which
      the referring entity knows to be obstructed by firewalls, network
      address translators, or other barriers to transparency [RFC2775].
      A typical case is the set of subnets sharing a single set of
      border routers connecting them to the Internet.
   o  Global.  The address has applicability beyond the link, and is
      believed to have global applicability within its address family.

   However, particularly in the case of limited scope, this is
   insufficient for the receiving entity to decide whether the address
   is applicable in the receiving entity's context.  The scopes above
   are described as if they were a set of concentric circles, but
   reality is more complex, and limited scopes might overlap each other
   in an arbitrary way, for example when multiple VPNs are formed.  A
   case in point is a VPN constructed between two independent sites,
   over which only those two sites' ULAs are routed.  This would allow a
   complex pattern of overlapping scopes.  For example, hosts in site A
   might potentially have addresses in three different scopes (global,
   Site_A_only, ULA_A+B).  Similarly, site B might also recognize three
   scopes (global, Site_B_only, ULA_A+B).  Which hosts can send packets



Carpenter                 Expires July 24, 2010                 [Page 8]


Internet-Draft            Referral Requirements             January 2010


   to each other will depend on the combination of addresses and scopes
   available.  For example, a host which only has an address in scope
   Site_A_only cannot send a packet to a host which only has an address
   in scope ULA_A+B. Hosts in scope ULA_A+B can send packets between
   sites A and B over the VPN.  This can readily be encoded in routing
   configurations, but application software is generally unaware of it.

   Thus, a referring entity may or may not be aware that the receiving
   entity and the referenced entity are within a link scope or limited
   scope that does not contain the referring entity.

   The delimiter of a limited scope will in many cases be the device
   (firewall or NAT) that obstructs transparency.  A tempting solution
   would be to use some unique identifier of that device as the unique
   ScopeID.  Unfortunately, this cannot be an IP address of the device,
   since in the case of nested NATs, all its addresses may be ambiguous.
   Neither can we rely on such a device having its own FQDN, or on that
   FQDN being known to all entities within the scope concerned.
   Finally, some limited scopes may not be hidden behind a single such
   device; for example, a limited scope might consist of a company's
   network and selected VPN connections to subsets of several business
   partners' networks.  Alternatively, multiple limited scopes might be
   hidden behind the same device.  Device addresses are therefore not
   suitable as ScopeIDs.

   Methods for configuring, advertising and discovering ScopeIDs are not
   discussed in this document.  However, in their absence, it is
   extremely hard for receiving entities to interpret and use
   information about limited scopes.  To the extent possible, all
   entities involved in referrals should determine what scope is shared
   between the referred entity and the receiving entity, by any means.
   Those means are not covered in this document, but may include use of
   external services, agreement on scope identifiers, or direct
   negotiation.

   In general, the referring entity cannot know the scope in which the
   GRO will be interpreted.  For example, the initial receiving entity
   may itself be behind a NAT, unknown to the referring entity, or the
   receiving entity may send the GRO onwards to another host in yet
   another scope.  In practice, we have to leave the receiver to decide
   whether certain information is useful or not.  In the case of a
   ScopeID in particular, the referring entity is not able to know which
   ScopeIDs apply to the receiving entity.

   Discovery or negotiation of ScopeIDs between referring, referenced
   and receiving entities is certainly a possibility, but may be
   expensive, and is not assumed by this document.




Carpenter                 Expires July 24, 2010                 [Page 9]


Internet-Draft            Referral Requirements             January 2010


   A referring entity may obtain the address and port number for the
   referenced entity in various ways, and knowledge about this may help
   the receiving entity when combined with scope information.  For
   example, if the receiving entity is aware that the address has been
   translated, and that it has global scope, it may choose to use it
   without further checks.  If it is not marked as translated, and has
   limited scope, the receiving entity may then verify whether it has a
   suitable ScopeID.

   To enable such logic, a GRO may describe the source of an address or
   port number.  How knowledge of this source is obtained is outside the
   scope of the present document, but ICE [I-D.ietf-mmusic-ice] is an
   example method.  It is also out of scope here to describe exactly how
   the receiving entity uses the information; for example GRO semantics
   do not include or imply preferences or priorities when multiple
   addresses are provided.  The receiving entity may choose to use a
   predefined policy, apply general logic as sketched in the previous
   paragraph, or follow application-specific logic, all based on the
   data provided in a GRO.

   Finally we note that theoretical scope does not guarantee actual
   reachability.  A receiving entity should always be prepared for
   reachability failures and associated retry and failover mechanisms.


3.  The additional problem of path selection

   We note that theoretical scope does not guarantee actual
   reachability.  A receiving entity should always be prepared for
   reachability failures and associated retry and failover mechanisms.

   A GRO might carry multiple references for the same target.  These may
   lead to multiple paths from the receiving entity to the referenced
   entity.  The referring entity is not likely to know which path is
   best.  The receiving entity will need to make a choice, possibly by
   policy (e.g.  [RFC3484]) or possibly by trial and error (e.g.
   [RFC4038], [RFC5534]).  Even if a reference is in scope, and within
   its defined lifetime, it may have become unreachable since it was
   sent.  The whole problem of path selection is quite complex in
   itself, and is not discussed further in this document.


4.  Summary of Requirements

   R1: A GRO should contain all available information that the referring
   entity can provide (subject to security policy) about the scope,
   lifetime, format and source of the referral.  It is the
   responsibility of the referring entity to construct a GRO on the



Carpenter                 Expires July 24, 2010                [Page 10]


Internet-Draft            Referral Requirements             January 2010


   basis of information in its possession.

   [[ Discussion invited: Another view is that a GRO should contain the
   minimum information required to establish connectivity.  The problem
   is that the referring entity may not know enough about the context of
   the receiving entity to determine what that minimum is. ]]

   R2: It is the responsibility of the receiving entity to interpret and
   check this information by testing reachability.  Due to the barriers
   to connectivity in today's Internet, the referring entity cannot
   guarantee that the referenced entity can be reached by any specific
   reference.  This can only be checked by the receiving entity.  In the
   event of a reachability problem, the alternative information in the
   GRO may assist the receiving entity to find a working path.

   R3: A GRO must contain at least one Reference.  One option would be
   to make the presence of at least one IP address mandatory.  However,
   there are alternatives, the most obvious one being an FQDN.  Any form
   of identifier-locator separation, with HIP [RFC5201] as an example,
   may also offer an alternative.  Therefore, we do not require a GRO to
   include an IP address, even though its inclusion is a very likely
   case.

   R4: A GRO should be self-contained in a context-independent format.
   Even if it is forwarded several times across the network, the
   ultimate receiving entity should be able to extract and interpret all
   the information inserted by the original referring entity.

   R5: A GRO should be compact and designed for efficient processing.

   R6: The GRO format must not be specific to a given IP version.

   R7: The GRO format should be extensible with well-defined backwards
   compatibility.

   R8: A GRO must be able to contain any reasonable number of References
   of mixed types.

   R9: Each Reference may carry any reasonable number of Qualifiers.

   R10: To maintain efficiency, intrinsic error detection or correction
   for GROs should not be mandatory.  Therefore, GROs should be sent
   over a channel supporting error detection or correction.

   R11: To maintain efficiency, intrinsic cryptographic authentication
   of GROs should not be mandatory.  The use of an authenticated channel
   to transmit GROs is recommended.




Carpenter                 Expires July 24, 2010                [Page 11]


Internet-Draft            Referral Requirements             January 2010


   R12: To maintain efficiency, intrinsic encryption of GROs should not
   be mandatory.  The use of an encrypted channel to transmit GROs is
   recommended.

   R13: A GRO must be able to include a lifetime as a Qualifier for each
   Reference.

   R14: A GRO must be able to include a scope identifier (ScopeID) as a
   Qualifier for each Reference.

   R15: There needs to be a high level of assurance that ScopeIDs are
   unique, or at least that a GRO will never be forwarded outside a
   region in which ScopeIDs are unique.

   R16: All referring and receiving entities need to be aware of the
   ScopeID(s) that apply to them.  However, it is clearly undesirable to
   create a new global registration scheme for ScopeIDs.

   R17: If shared scope (or set of scopes) is determined between the
   referring and receiving entities, a referral should ideally only
   include information useful in that scope or set of scopes.  If shared
   scope is uncertain, a referral should include all information that
   might be useful, taking privacy considerations into account.

   [[ Discussion invited: Should we also require optional preference
   information for each reference in a GRO, or alternatively require
   that references be listed in order of preference?  Here is some
   tentative text. ]]

   Rxx: A preference order (or reachability trust level?) may be
   associated with references.

   Ryy: The receiving entity will interpret the preferences in
   accordance with local policies (sometimes on per interface basis).


5.  Security Considerations

   It should be noted that GROs cannot function as a way to nullify the
   effect of a firewall or any other security mechanism.  If the
   receiving entity chooses a particular reference in the GRO and
   attempts to send packets to the corresponding IP address, whether
   they are delivered or not will depend on the existing security
   mechanisms, whatever they may be.

   Nevertheless, if a site security policy requires it, certain
   references may be excluded from GROs sent to certain destinations.
   This would require a security policy mechanism to be added to the



Carpenter                 Expires July 24, 2010                [Page 12]


Internet-Draft            Referral Requirements             January 2010


   process of generating GROs.

   Forged or intercepted GROs would enable a wide variety of attacks.
   Although not fundamentally different from attacks based on forged or
   observed IP addresses or FQDNs, no doubt GROs would allow such
   attacks to be more ingenious, simply because they provide more
   information than an address or FQDN alone.  As noted in Section 4,
   GROs should be transmitted through authenticated and encrypted
   channels.  Since this is a requirement of the channel and not of the
   GRO, and the channel used depends on a specific use case, it is not
   further elaborated here.

   Conceivably, an extension to the GRO format could be defined which
   would allow it to carry security information (for example, some sort
   of handle or nonce to authorise firewall penetration).  Any such
   extension must be adequately encrypted, in such a way that only a
   receiving entity in possession of a given key can decrypt it.  This
   is necessary even if the GRO is transmitted through a secure channel.

   GROs raise potential privacy issues, which are not explored in this
   document.  For example, in the SIP context, mechanisms such as
   [RFC3323] and [I-D.ietf-sip-ua-privacy] are available to hide
   information that might identify end-points.  Usage scenarios for GROs
   must ensure that they do not unintentionally defeat privacy
   solutions.


6.  IANA Considerations

   This document requests no action by IANA.


7.  Contributing authors

   At the moment, one editor is shown for this document.  Authors of two
   preceding drafts whose text has been used were: Mohamed Boucadair,
   Joel Halpern, Sheng Jiang, Keith Moore and Bo Zhou.


8.  Acknowledgements

   This document was requested by the GROBJ BOF at IETF76.  Valuable
   comments and contributions were made by Scott Brim, Alan Ford, Simon
   Perreault, Andrew Sullivan, Dan Wing, and others.

   This document was produced using the xml2rfc tool [RFC2629].





Carpenter                 Expires July 24, 2010                [Page 13]


Internet-Draft            Referral Requirements             January 2010


9.  Change log

   draft-carpenter-grobj-reqts-00: original version, 2010-01-20


10.  References

10.1.  Normative References

   [RFC4193]  Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast
              Addresses", RFC 4193, October 2005.

10.2.  Informative References

   [I-D.boucadair-softwire-cgn-bypass]
              Boucadair, M., "Procedure to bypass DS-lite AFTR",
              draft-boucadair-softwire-cgn-bypass-00 (work in progress),
              December 2009.

   [I-D.ietf-mmusic-ice]
              Rosenberg, J., "Interactive Connectivity Establishment
              (ICE): A Protocol for Network Address Translator (NAT)
              Traversal for Offer/Answer Protocols",
              draft-ietf-mmusic-ice-19 (work in progress), October 2007.

   [I-D.ietf-sip-ua-privacy]
              Munakata, M., Schubert, S., and T. Ohba, "UA-Driven
              Privacy Mechanism for SIP", draft-ietf-sip-ua-privacy-08
              (work in progress), May 2009.

   [RFC0959]  Postel, J. and J. Reynolds, "File Transfer Protocol",
              STD 9, RFC 959, October 1985.

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

   [RFC1958]  Carpenter, B., "Architectural Principles of the Internet",
              RFC 1958, June 1996.

   [RFC2101]  Carpenter, B., Crowcroft, J., and Y. Rekhter, "IPv4
              Address Behaviour Today", RFC 2101, February 1997.

   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
              June 1999.

   [RFC2775]  Carpenter, B., "Internet Transparency", RFC 2775,
              February 2000.



Carpenter                 Expires July 24, 2010                [Page 14]


Internet-Draft            Referral Requirements             January 2010


   [RFC3234]  Carpenter, B. and S. Brim, "Middleboxes: Taxonomy and
              Issues", RFC 3234, February 2002.

   [RFC3323]  Peterson, J., "A Privacy Mechanism for the Session
              Initiation Protocol (SIP)", RFC 3323, November 2002.

   [RFC3484]  Draves, R., "Default Address Selection for Internet
              Protocol version 6 (IPv6)", RFC 3484, February 2003.

   [RFC4007]  Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and
              B. Zill, "IPv6 Scoped Address Architecture", RFC 4007,
              March 2005.

   [RFC4038]  Shin, M-K., Hong, Y-G., Hagino, J., Savola, P., and E.
              Castro, "Application Aspects of IPv6 Transition",
              RFC 4038, March 2005.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, July 2006.

   [RFC4903]  Thaler, D., "Multi-Link Subnet Issues", RFC 4903,
              June 2007.

   [RFC5201]  Moskowitz, R., Nikander, P., Jokela, P., and T. Henderson,
              "Host Identity Protocol", RFC 5201, April 2008.

   [RFC5534]  Arkko, J. and I. van Beijnum, "Failure Detection and
              Locator Pair Exploration Protocol for IPv6 Multihoming",
              RFC 5534, June 2009.


Author's Address

   Brian Carpenter (editor)
   Department of Computer Science
   University of Auckland
   PB 92019
   Auckland,   1142
   New Zealand

   Email: brian.e.carpenter@gmail.com










Carpenter                 Expires July 24, 2010                [Page 15]