Network Working Group | B. Carpenter |
Internet-Draft | Univ. of Auckland |
Intended status: Informational | B. Liu |
Expires: June 15, 2019 | Huawei Technologies |
December 12, 2018 |
Limited Domains and Internet Protocols
draft-carpenter-limited-domains-05
There is a noticeable trend towards network requirements, behaviours and semantics that are specific to a limited region of the Internet and a particular set of requirements. Policies, default parameters, the options supported, the style of network management and security requirements may vary. This document reviews examples of such limited domains, also known as controlled environments, and emerging solutions, and develops a related taxonomy. It then briefly discusses the standardization of protocols for limited domains. Finally, it shows the needs for a precise definition of limited domain membership and for mechanisms to allow nodes to join a domain securely and to find other members, including boundary nodes.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on June 15, 2019.
Copyright (c) 2018 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 (https://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. 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 Simplified BSD License.
As the Internet continues to grow and diversify, with a realistic prospect of tens of billions of nodes being connected directly and indirectly, there is a noticeable trend towards local requirements, behaviours and semantics. The word "local" should be understood in a special sense, however. In some cases it may refer to geographical and physical locality - all the nodes in a single building, on a single campus, or in a given vehicle. In other cases it may refer to a defined set of users or nodes distributed over a much wider area, but drawn together by a single virtual network over the Internet, or a single physical network running partially in parallel with the Internet. We expand on these possibilities below. To capture the topic, this document refers to such networks as "limited domains".
Some people have concerns about splintering of the Internet along political or linguistic boundaries by mechanisms that block the free flow of information across the network. That is not the topic of this document, which does not discuss filtering mechanisms and does not apply to protocols that are designed for use across the whole Internet. It is only concerned with domains that have specific technical requirements.
The word "domain" in this document does not refer to naming domains in the DNS, although in some cases a limited domain might incidentally be congruent with a DNS domain.
Another term that has been used in some contexts is "controlled environment". For example, [RFC8085] uses this to delimit the scope within which a particular tunnel encapsulation might be used. A specific example is GRE-in-UDP encapsulation [RFC8086] which explicitly states that "The controlled environment has less restrictive requirements than the general Internet." For example, non-congestion-controlled traffic might be acceptable within the controlled environment. The same phrase has been used to delimit the scope of quality of service or security protocols, e.g. [RFC6398], [RFC6455]. In this document, we assume that "limited domain" and "controlled environment" mean the same thing.
The requirements of limited domains will be different in different scenarios. Policies, default parameters, and the options supported may vary. Also, the style of network management may vary, between a completely unmanaged network, one with fully autonomic management, one with traditional central management, and mixtures of the above. Finally, the requirements and solutions for security and privacy may vary.
This documents analyses and discusses some of the consequences of this trend, and how it impacts the idea of universal interoperability in the Internet. Firstly we list examples of limited domain scenarios and of technical solutions for limited domains, with the main focus being the Internet layer of the protocol stack. Then we develop a taxonomy of the features to be found in limited domains. With this background, we discuss the resulting challenge to the idea that all Internet standards must be universal in scope and applicability. To the contrary, we assert that some protocols need to be specifically limited in their applicability. This implies that the concepts of a limited domain, and of its membership, need to be formalised and supported by secure mechanisms. While this document does not propose a design for such mechanisms, it does outline some resulting functional requirements.
Today, the Internet does not have a well-defined concept of limited domains. One result of this is that certain protocols and features fail on certain paths. Earlier analyses of this topic have focused either on the loss of transparency of the Internet [RFC2775], [RFC4924] or on the middleboxes responsible for that loss [RFC3234], [RFC7663], [I-D.dolson-plus-middlebox-benefits]. Unfortunately the problems persist, both in application protocols, and even in very fundamental mechanisms. For example, the Internet is not transparent to IPv6 extension headers [RFC7872], and Path MTU Discovery has been unreliable for many years [RFC2923], [RFC4821]. IP fragmentation is also unreliable [I-D.ietf-intarea-frag-fragile], and problems in TCP MSS negotiation have been reported [I-D.andrews-tcp-and-ipv6-use-minmtu].
On the security side, the widespread insertion of firewalls at domain boundaries that are perceived by humans but unknown to protocols results in arbitrary failure modes as far as the application layer is concerned. There are operational recommendations and practices that effectively guarantee arbitrary failures in realistic scenarios [I-D.ietf-opsec-ipv6-eh-filtering].
The recent discussions about the unreliability of IP fragmentation and the filtering of IPv6 extension headers have clearly shown that at least for some protocol elements, transparency is a lost cause and middleboxes are here to stay. In summary, some application environments require protocol features that cannot cross the whole Internet. Ignoring this during protocol design is not an option.
This section describes various examples where limited domain requirements can easily be identified, either based on an application scenario or on a technical imperative. It is of course not a complete list, and it is presented in an arbitrary order, loosely from smaller to bigger.
Three other aspects, while not tied to specific network types, also strongly depend on the concept of limited domains:
While it is clearly desirable to use common solutions, and therefore common standards, wherever possible, it is increasingly difficult to do so while satisfying the widely varying requirements outlined above. However, there is a tendency when new protocols and protocol extensions are proposed to always ask the question "How will this work across the open Internet?" This document suggests that this is not always the right question. There are protocols and extensions that are not intended to work across the open Internet. On the contrary, their requirements and semantics are specifically limited (in the sense defined above).
A common argument is that if a protocol is intended for limited use, the chances are very high that it will in fact be used (or misused) in other scenarios including the so-called open Internet. This is undoubtedly true and means that limited use is not an excuse for bad design or poor security. In fact, a limited use requirement potentially adds complexity to both the protocol and its security design, as discussed later.
Nevertheless, because of the diversity of limited domainss with specific requirements that is now emerging, specific standards (and ad hoc standards) will probably emerge for different types of domain. There will be attempts to capture each market sector, but the market will demand standardised solutions. In addition, operational choices will be made that can in fact only work within a limited domain. The history of RSVP illustrates that a standard defined as if it could work over the open Internet may not in fact do so. In general we cannot assume that a protocol designed according to classical Internet guidelines will in fact work reliably across the network as a whole. However, the "open Internet" must remain as the universal method of interconnection. Reconciling these two aspects is a major challenge.
This section lists various examples of specific limited domain solutions that have been proposed or defined. It intentionally does not include Layer 2 technology solutions, which by definition apply to limited domains.
All of these suggestions are only viable within a specified domain. The case of the extension header is particularly interesting, since its existence has been a major "selling point" for IPv6, but it is notorious that new extension headers are virtually impossible to deploy across the whole Internet
[RFC7045], [RFC7872]. It is worth noting that extension header filtering is considered as an important security issue [I-D.ietf-opsec-ipv6-eh-filtering]. There is considerable appetite among vendors or operators to have flexibility in defining extension headers for use in limited or specialised domains, e.g. [I-D.voyer-6man-extension-header-insertion] and [BIGIP].This section develops a taxonomy for describing limited domains. Several major aspects are considered in this taxonomy:
The following sub-sections analyse each of these aspects.
This taxonomy could be used to design or analyse a specific type of limited domain. For the present document, it is intended to form a background to the following two sections, concerning the scope of protocols used in limited domains, and mechanisms reuqired to securely define domain membership and properties.
One consequence of the deployment of limited domains in the Internet is that some protocols will be designed, extended or configured so that they only work correctly between end systems in such domains. This is to some extent encouraged by some existing standards and by the assignment of code points for local or experimental use. In any case it cannot be prevented. Also, by endorsing efforts such as Service Function Chaining, Segment Routing and Deterministic Networking, the IETF is in effect encouraging such deployments. Furthermore, it seems inevitable, if the "Internet of Things" becomes reality, that millions of edge networks containing completely novel types of node will be connected to the Internet; each one of these edge networks will be a limited domain.
It is therefore appropriate to discuss whether protocols or protocol extensions should sometimes be standardised to interoperate only within a Limited Domain Boundary. Such protocols would not be required to interoperate across the Internet as a whole. Several possibly overlapping scenarios could then arise:
To provide an existing example, consider Differentiated Services [RFC2474]. A packet containing any value whatever in the 6 bits of the Differentiated Service Code Point (DSCP) is well-formed and falls into scenario A. However, because the semantics of DSCP values are locally significant, the packet also falls into scenario D. In fact, differentiated services are only interoperable across domain boundaries if there is a corresponding agreement between the operators; otherwise a specific gateway function is required for meaningful interoperability. Much more detailed discussion is to be found in [RFC2474] and [RFC8100].
To provide a provocative example, consider the proposal in [I-D.voyer-6man-extension-header-insertion] that the restrictions in [RFC8200] should be relaxed to allow IPv6 extension headers to be inserted on the fly in IPv6 packets. If this is done in such a way that the affected packets can never leave the specific limited domain in which they were modified, scenario C applies. If the semantic content of the inserted headers is locally defined, scenario D also applies. In neither case is the Internet disturbed.
We conclude that it is reasonable to explicitly define limited-domain protocols, either as standards or as proprietary mechanisms, as long as they describe which of the above scenarios apply and they clarify how the domain is defined. As long as all relevant standards are respected outside the domain boundary, a well-specified limited-domain protocol is not harmful to the Internet. However, as described in the next section, mechanisms are needed to support domain membership operations.
As the preceding taxonomy shows, there are very numerous aspects to a domain, so the common features are not immediately obvious. It would be possible, but tedious, to apply the taxonomy to each of the domain types described in Section 3. However, we can deduce some generally required features and functions without doing so.
A basic assumption is that domains should be created and managed as automatically as possible, with minimal human configuration required. We therefore investigate protocol requirements for automating domain creation and management.
Firstly, if we drew a topology map, any domain -- virtual or physical -- will have a well defined boundary between "inside" and "outside". However, that boundary in itself has no technical meaning. What matters in reality is whether a node is a member of the domain, and whether it is at the boundary between the domain and the rest of the Internet. Thus the boundary in itself does not need to be identified. However, a sending node needs to know whether it is sending to an inside or outside destination; a receiving node needs to know whether a packet originated inside or outside; and a boundary node needs to know which of its interfaces are inward-facing or outward-facing. It is irrelevant whether the interfaces involved are physical or virtual.
With this perspective, we can list some general functional requirements. An underlying assumption here is that domain membership operations should be cryptographically secured; a domain without such security cannot be reliably protected from attack.
These requirements could form the basis for further analysis and solution design.
Another aspect is whether individual packets within a limited domain need to carry any sort of indicator that they belong to that domain, or whether this information will be implicit in the IP addresses of the packet. A related question is whether individual packets need cryptographic authentication. This topic is for further study.
Clearly, the boundary of a limited domain will almost always also act as a security boundary. In particular, it will serve as a trust boundary, and as a boundary of authority for defining capabilities. Within the boundary, limited-domain protocols or protocol features will be useful, but they will be meaningless if they enter or leave the domain.
The security model for a limited-scope protocol must allow for the boundary, and in particular for a trust model that changes at the boundary. Typically, credentials will need to be signed by a domain-specific authority.
This document makes no request of the IANA.
Sheng Jiang made important contributions to this document.
Useful comments were received from Amelia Andersdotter, Edward Birrane, David Black, Ron Bonica, Tim Chown, Darren Dukes, Tom Herbert, John Klensin, Michael Richardson, Rick Taylor, Niels ten Oever, and other members of the ANIMA and INTAREA WGs.
[BIGIP] | Li, R., "HUAWEI - Big IP Initiative.", 2018. |
[I-D.andrews-tcp-and-ipv6-use-minmtu] | Andrews, M., "TCP Fails To Respect IPV6_USE_MIN_MTU", Internet-Draft draft-andrews-tcp-and-ipv6-use-minmtu-04, October 2015. |
[I-D.dolson-plus-middlebox-benefits] | Dolson, D., Snellman, J., Boucadair, M. and C. Jacquenet, "Beneficial Functions of Middleboxes", Internet-Draft draft-dolson-plus-middlebox-benefits-03, March 2017. |
[I-D.fioccola-v6ops-ipv6-alt-mark] | Fioccola, G., Velde, G., Cociglio, M. and P. Muley, "IPv6 Performance Measurement with Alternate Marking Method", Internet-Draft draft-fioccola-v6ops-ipv6-alt-mark-01, June 2018. |
[I-D.geng-netslices-architecture] | 67, 4., Dong, J., Bryant, S., kiran.makhijani@huawei.com, k., Galis, A., Foy, X. and S. Kuklinski, "Network Slicing Architecture", Internet-Draft draft-geng-netslices-architecture-02, July 2017. |
[I-D.herbert-fast] | Herbert, T., "Firewall and Service Tickets", Internet-Draft draft-herbert-fast-03, September 2018. |
[I-D.ietf-6man-segment-routing-header] | Filsfils, C., Previdi, S., Leddy, J., Matsushima, S. and d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header (SRH)", Internet-Draft draft-ietf-6man-segment-routing-header-15, October 2018. |
[I-D.ietf-anima-autonomic-control-plane] | Eckert, T., Behringer, M. and S. Bjarnason, "An Autonomic Control Plane (ACP)", Internet-Draft draft-ietf-anima-autonomic-control-plane-17, August 2018. |
[I-D.ietf-anima-reference-model] | Behringer, M., Carpenter, B., Eckert, T., Ciavaglia, L. and J. Nobre, "A Reference Model for Autonomic Networking", Internet-Draft draft-ietf-anima-reference-model-10, November 2018. |
[I-D.ietf-detnet-architecture] | Finn, N., Thubert, P., Varga, B. and J. Farkas, "Deterministic Networking Architecture", Internet-Draft draft-ietf-detnet-architecture-09, October 2018. |
[I-D.ietf-detnet-dp-sol] | Korhonen, J., Andersson, L., Jiang, Y., Finn, N., Varga, B., Farkas, J., Bernardos, C., Mizrahi, T. and L. Berger, "DetNet Data Plane Encapsulation", Internet-Draft draft-ietf-detnet-dp-sol-04, March 2018. |
[I-D.ietf-detnet-use-cases] | Grossman, E., "Deterministic Networking Use Cases", Internet-Draft draft-ietf-detnet-use-cases-19, October 2018. |
[I-D.ietf-homenet-simple-naming] | Lemon, T., Migault, D. and S. Cheshire, "Homenet Naming and Service Discovery Architecture", Internet-Draft draft-ietf-homenet-simple-naming-03, October 2018. |
[I-D.ietf-intarea-frag-fragile] | Bonica, R., Baker, F., Huston, G., Hinden, R., Troan, O. and F. Gont, "IP Fragmentation Considered Fragile", Internet-Draft draft-ietf-intarea-frag-fragile-04, November 2018. |
[I-D.ietf-ipwave-vehicular-networking] | Jeong, J., "IP Wireless Access in Vehicular Environments (IPWAVE): Problem Statement and Use Cases", Internet-Draft draft-ietf-ipwave-vehicular-networking-07, November 2018. |
[I-D.ietf-opsec-ipv6-eh-filtering] | Gont, F. and W. LIU, "Recommendations on the Filtering of IPv6 Packets Containing IPv6 Extension Headers", Internet-Draft draft-ietf-opsec-ipv6-eh-filtering-06, July 2018. |
[I-D.ietf-spring-segment-routing] | Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., Litkowski, S. and R. Shakir, "Segment Routing Architecture", Internet-Draft draft-ietf-spring-segment-routing-15, January 2018. |
[I-D.irtf-nfvrg-gaps-network-virtualization] | Bernardos, C., Rahman, A., Zuniga, J., Contreras, L., Aranda, P. and P. Lynch, "Network Virtualization Research Challenges", Internet-Draft draft-irtf-nfvrg-gaps-network-virtualization-10, September 2018. |
[I-D.jiang-semantic-prefix] | Jiang, S., Qiong, Q., Farrer, I., Bo, Y. and T. Yang, "Analysis of Semantic Embedded IPv6 Address Schemas", Internet-Draft draft-jiang-semantic-prefix-06, July 2013. |
[I-D.moulchan-nmrg-network-intent-concepts] | Sivakumar, K. and M. Chandramouli, "Concepts of Network Intent", Internet-Draft draft-moulchan-nmrg-network-intent-concepts-00, October 2017. |
[I-D.voyer-6man-extension-header-insertion] | daniel.voyer@bell.ca, d., Leddy, J., Filsfils, C., Dukes, D., Previdi, S. and S. Matsushima, "Insertion of IPv6 Segment Routing Headers in a Controlled Domain", Internet-Draft draft-voyer-6man-extension-header-insertion-04, June 2018. |
[RFC2205] | Braden, R., Zhang, L., Berson, S., Herzog, S. and S. Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification", RFC 2205, DOI 10.17487/RFC2205, September 1997. |
[RFC2474] | Nichols, K., Blake, S., Baker, F. and D. Black, "Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers", RFC 2474, DOI 10.17487/RFC2474, December 1998. |
[RFC2775] | Carpenter, B., "Internet Transparency", RFC 2775, DOI 10.17487/RFC2775, February 2000. |
[RFC2923] | Lahey, K., "TCP Problems with Path MTU Discovery", RFC 2923, DOI 10.17487/RFC2923, September 2000. |
[RFC3234] | Carpenter, B. and S. Brim, "Middleboxes: Taxonomy and Issues", RFC 3234, DOI 10.17487/RFC3234, February 2002. |
[RFC4821] | Mathis, M. and J. Heffner, "Packetization Layer Path MTU Discovery", RFC 4821, DOI 10.17487/RFC4821, March 2007. |
[RFC4838] | Cerf, V., Burleigh, S., Hooke, A., Torgerson, L., Durst, R., Scott, K., Fall, K. and H. Weiss, "Delay-Tolerant Networking Architecture", RFC 4838, DOI 10.17487/RFC4838, April 2007. |
[RFC4924] | Aboba, B. and E. Davies, "Reflections on Internet Transparency", RFC 4924, DOI 10.17487/RFC4924, July 2007. |
[RFC6294] | Hu, Q. and B. Carpenter, "Survey of Proposed Use Cases for the IPv6 Flow Label", RFC 6294, DOI 10.17487/RFC6294, June 2011. |
[RFC6398] | Le Faucheur, F., "IP Router Alert Considerations and Usage", BCP 168, RFC 6398, DOI 10.17487/RFC6398, October 2011. |
[RFC6455] | Fette, I. and A. Melnikov, "The WebSocket Protocol", RFC 6455, DOI 10.17487/RFC6455, December 2011. |
[RFC7045] | Carpenter, B. and S. Jiang, "Transmission and Processing of IPv6 Extension Headers", RFC 7045, DOI 10.17487/RFC7045, December 2013. |
[RFC7228] | Bormann, C., Ersue, M. and A. Keranen, "Terminology for Constrained-Node Networks", RFC 7228, DOI 10.17487/RFC7228, May 2014. |
[RFC7368] | Chown, T., Arkko, J., Brandt, A., Troan, O. and J. Weil, "IPv6 Home Networking Architecture Principles", RFC 7368, DOI 10.17487/RFC7368, October 2014. |
[RFC7381] | Chittimaneni, K., Chown, T., Howard, L., Kuarsingh, V., Pouffary, Y. and E. Vyncke, "Enterprise IPv6 Deployment Guidelines", RFC 7381, DOI 10.17487/RFC7381, October 2014. |
[RFC7556] | Anipko, D., "Multiple Provisioning Domain Architecture", RFC 7556, DOI 10.17487/RFC7556, June 2015. |
[RFC7663] | Trammell, B. and M. Kuehlewind, "Report from the IAB Workshop on Stack Evolution in a Middlebox Internet (SEMI)", RFC 7663, DOI 10.17487/RFC7663, October 2015. |
[RFC7665] | Halpern, J. and C. Pignataro, "Service Function Chaining (SFC) Architecture", RFC 7665, DOI 10.17487/RFC7665, October 2015. |
[RFC7788] | Stenberg, M., Barth, S. and P. Pfister, "Home Networking Control Protocol", RFC 7788, DOI 10.17487/RFC7788, April 2016. |
[RFC7872] | Gont, F., Linkova, J., Chown, T. and W. Liu, "Observations on the Dropping of Packets with IPv6 Extension Headers in the Real World", RFC 7872, DOI 10.17487/RFC7872, June 2016. |
[RFC8085] | Eggert, L., Fairhurst, G. and G. Shepherd, "UDP Usage Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, March 2017. |
[RFC8086] | Yong, L., Crabbe, E., Xu, X. and T. Herbert, "GRE-in-UDP Encapsulation", RFC 8086, DOI 10.17487/RFC8086, March 2017. |
[RFC8100] | Geib, R. and D. Black, "Diffserv-Interconnection Classes and Practice", RFC 8100, DOI 10.17487/RFC8100, March 2017. |
[RFC8151] | Yong, L., Dunbar, L., Toy, M., Isaac, A. and V. Manral, "Use Cases for Data Center Network Virtualization Overlay Networks", RFC 8151, DOI 10.17487/RFC8151, May 2017. |
[RFC8200] | Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", STD 86, RFC 8200, DOI 10.17487/RFC8200, July 2017. |
[RFC8300] | Quinn, P., Elzur, U. and C. Pignataro, "Network Service Header (NSH)", RFC 8300, DOI 10.17487/RFC8300, January 2018. |
draft-carpenter-limited-domains-00, 2018-06-11:
Initial version
draft-carpenter-limited-domains-01, 2018-07-01:
Minor terminology clarifications
draft-carpenter-limited-domains-02, 2018-08-03:
Additions following IETF102 discussions
Updated authorship/contributors
draft-carpenter-limited-domains-03, 2018-09-12:
First draft of taxonomy
Editorial improvements
draft-carpenter-limited-domains-04, 2018-10-14:
Reorganized section 3
Newly written sections 6 and 7
Editorial improvements
draft-carpenter-limited-domains-05, 2018-12-12:
Added discussion of transparency/filtering debates
Added discussion of "controlled environment"
Modified assertion about localized standards
Editorial improvements