| < draft-mrw-homenet-rtg-comparison-00.txt | draft-mrw-homenet-rtg-comparison-01.txt > | |||
|---|---|---|---|---|
| Homenet Working Group M. Wasserman | Homenet Working Group M. Wasserman | |||
| Internet-Draft Painless Security | Internet-Draft Painless Security | |||
| Intended status: Standards Track C. Hopps | Intended status: Informational C. Hopps | |||
| Expires: August 13, 2015 Deutsche Telekom | Expires: August 19, 2015 Deutsche Telekom | |||
| J. Chroboczek | J. Chroboczek | |||
| University of Paris-Diderot (Paris 7) | University of Paris-Diderot (Paris 7) | |||
| February 9, 2015 | February 15, 2015 | |||
| HOMENET IS-IS and Babel Comparison | HOMENET IS-IS and Babel Comparison | |||
| draft-mrw-homenet-rtg-comparison-00.txt | draft-mrw-homenet-rtg-comparison-01.txt | |||
| Abstract | Abstract | |||
| This document is intended to provide information to members of the | This document is intended to provide information to members of the | |||
| IETF Home Networks Working Group (HOMENET WG), so that we can make an | IETF Home Networks Working Group (HOMENET WG), so that we can make an | |||
| informed decision regarding which routing protocol to use in home | informed decision regarding which routing protocol to use in home | |||
| networks. The routing protocols compared in this document are: The | networks. The routing protocols compared in this document are: The | |||
| Babel Routing Protocol (Babel) and The Intermediate System to | Babel Routing Protocol (Babel) and The Intermediate System to | |||
| Intermediate System Intra-Domain Routing Protocol (IS-IS). | Intermediate System Intra-Domain Routing Protocol (IS-IS). | |||
| skipping to change at page 1, line 38 ¶ | skipping to change at page 1, line 38 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 13, 2015. | This Internet-Draft will expire on August 19, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2015 IETF Trust and the persons identified as the | Copyright (c) 2015 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Protocols and Extensions Included in Comparison . . . . . . . 3 | 2. Protocols and Extensions Included in Comparison . . . . . . . 4 | |||
| 2.1. IS-IS Protocol and Extensions . . . . . . . . . . . . . . 3 | 2.1. IS-IS Protocol and Extensions . . . . . . . . . . . . . . 5 | |||
| 2.2. Babel Protocol and Extensions . . . . . . . . . . . . . . 4 | 2.2. Babel Protocol and Extensions . . . . . . . . . . . . . . 5 | |||
| 3. Routing Algorithms . . . . . . . . . . . . . . . . . . . . . 4 | 3. Routing Algorithms . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1. Link State Algorithm . . . . . . . . . . . . . . . . . . 4 | 3.1. Link State Algorithm . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. Distance-Vector Algorithm (Babel) . . . . . . . . . . . . 4 | 3.2. Loop-Avoiding Distance-Vector Algorithm (Babel) . . . . . 6 | |||
| 3.3. Algorithm Comparison . . . . . . . . . . . . . . . . . . 4 | 3.3. Algorithm Comparison . . . . . . . . . . . . . . . . . . 6 | |||
| 4. Support for Source-Specific Routing . . . . . . . . . . . . . 5 | 4. Convergence Times . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.1. Source Specific Routing in IS-IS . . . . . . . . . . . . 5 | 4.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.2. Source Specific Routing in Babel . . . . . . . . . . . . 5 | 4.2. Babel . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.3. Discussion . . . . . . . . . . . . . . . . . . . . . . . 5 | 4.3. Discussion . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Support for Link Metrics . . . . . . . . . . . . . . . . . . 6 | 5. Autoconfiguration . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5.1. Link Metrics in IS-IS . . . . . . . . . . . . . . . . . . 6 | 5.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5.2. Link Metrics in Babel . . . . . . . . . . . . . . . . . . 6 | 5.2. Babel . . . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. Support for Attached Stub Networks . . . . . . . . . . . . . 6 | 5.3. Discussion . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6.1. IS-IS Support for Stub Networks . . . . . . . . . . . . . 6 | 6. Support for Source-Specific Routing . . . . . . . . . . . . . 8 | |||
| 6.2. Babel Supportt for Stub Networks . . . . . . . . . . . . 6 | 6.1. Source-Specific Routing in IS-IS . . . . . . . . . . . . 8 | |||
| 7. Security Features . . . . . . . . . . . . . . . . . . . . . . 6 | 6.2. Source-Specific Routing in Babel . . . . . . . . . . . . 8 | |||
| 7.1. Security Features in IS-IS . . . . . . . . . . . . . . . 6 | 6.3. Discussion . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 7.2. Security Features in Babel . . . . . . . . . . . . . . . 7 | 7. Support for Link Metrics . . . . . . . . . . . . . . . . . . 8 | |||
| 8. Support for Multicast . . . . . . . . . . . . . . . . . . . . 7 | 7.1. Link Metrics in IS-IS . . . . . . . . . . . . . . . . . . 9 | |||
| 8.1. Multicast Routing in IS-IS . . . . . . . . . . . . . . . 7 | 7.2. Link Metrics in Babel . . . . . . . . . . . . . . . . . . 9 | |||
| 8.2. Multicast Routing in Babel . . . . . . . . . . . . . . . 7 | 8. Support for Attached Stub Networks . . . . . . . . . . . . . 9 | |||
| 9. Implementation Status . . . . . . . . . . . . . . . . . . . . 7 | 8.1. IS-IS Support for Stub Networks . . . . . . . . . . . . . 9 | |||
| 10. Code and State Size . . . . . . . . . . . . . . . . . . . . . 7 | 8.2. Babel Support for Stub Networks . . . . . . . . . . . . . 10 | |||
| 10.1. IS-IS Code and State Size . . . . . . . . . . . . . . . 7 | 9. Security Features . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 10.2. Babel Code and State Size . . . . . . . . . . . . . . . 8 | 9.1. Security Features in IS-IS . . . . . . . . . . . . . . . 10 | |||
| 11. Scalablity on IEEE 802.11 Wireless Networks . . . . . . . . . 9 | 9.2. Security Features in Babel . . . . . . . . . . . . . . . 10 | |||
| 11.1. IS-IS Scalability on 802.11 . . . . . . . . . . . . . . 9 | 10. Support for Multicast . . . . . . . . . . . . . . . . . . . . 10 | |||
| 11.2. Babel Scalability on 802.11 . . . . . . . . . . . . . . 9 | 10.1. Multicast Routing in IS-IS . . . . . . . . . . . . . . . 10 | |||
| 12. Standardization Status . . . . . . . . . . . . . . . . . . . 9 | 10.2. Multicast Routing in Babel . . . . . . . . . . . . . . . 10 | |||
| 12.1. IS-IS Standardization . . . . . . . . . . . . . . . . . 9 | 11. Implementation Status . . . . . . . . . . . . . . . . . . . . 10 | |||
| 12.2. Babel Standardization Status . . . . . . . . . . . . . . 10 | 12. Code and State Size . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 13. Evaluation of RFC 5218 Criteria . . . . . . . . . . . . . . . 10 | 12.1. IS-IS Code and State Size . . . . . . . . . . . . . . . 11 | |||
| 13.1. Critical Success Factors . . . . . . . . . . . . . . . . 10 | 12.2. Babel Code and State Size . . . . . . . . . . . . . . . 12 | |||
| 13.1.1. IS-IS Success Factors . . . . . . . . . . . . . . . 10 | 12.3. Comparison . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 13.1.2. Babel Success Factos . . . . . . . . . . . . . . . . 11 | 13. Performance on IEEE 802.11 Wireless Networks . . . . . . . . 13 | |||
| 13.2. Willing Implementors . . . . . . . . . . . . . . . . . . 11 | 13.1. IS-IS Performance on 802.11 . . . . . . . . . . . . . . 13 | |||
| 13.2.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 11 | 13.2. Babel Performance on 802.11 . . . . . . . . . . . . . . 13 | |||
| 13.2.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 12 | 14. Standardization Status . . . . . . . . . . . . . . . . . . . 13 | |||
| 14.1. IS-IS Standardization . . . . . . . . . . . . . . . . . 13 | ||||
| 13.3. Willing Customers . . . . . . . . . . . . . . . . . . . 12 | 14.2. Babel Standardization Status . . . . . . . . . . . . . . 13 | |||
| 13.3.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 12 | 15. Evaluation of RFC 5218 Criteria . . . . . . . . . . . . . . . 14 | |||
| 13.3.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 12 | 15.1. Critical Success Factors . . . . . . . . . . . . . . . . 14 | |||
| 13.4. Potential Niches . . . . . . . . . . . . . . . . . . . . 12 | 15.1.1. IS-IS Success Factors . . . . . . . . . . . . . . . 14 | |||
| 13.4.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 12 | 15.1.2. Babel Success Factos . . . . . . . . . . . . . . . . 15 | |||
| 13.4.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 12 | 15.2. Willing Implementors . . . . . . . . . . . . . . . . . . 15 | |||
| 13.5. Complexity Removal . . . . . . . . . . . . . . . . . . . 13 | 15.2.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 13.5.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 13 | 15.2.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 13.5.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 13 | 15.3. Willing Customers . . . . . . . . . . . . . . . . . . . 16 | |||
| 13.6. Killer App . . . . . . . . . . . . . . . . . . . . . . . 13 | 15.3.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 13.6.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 13 | 15.3.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 13.6.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 13 | 15.4. Potential Niches . . . . . . . . . . . . . . . . . . . . 16 | |||
| 13.7. Extensible . . . . . . . . . . . . . . . . . . . . . . . 13 | 15.4.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 13.7.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 14 | 15.4.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 13.7.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 14 | 15.5. Complexity Removal . . . . . . . . . . . . . . . . . . . 16 | |||
| 13.8. Success Predictable . . . . . . . . . . . . . . . . . . 14 | 15.5.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 13.8.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 14 | 15.5.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 13.8.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 14 | 15.6. Killer App . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 14. Informative References . . . . . . . . . . . . . . . . . . . 14 | 15.6.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | 15.6.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 15.7. Extensible . . . . . . . . . . . . . . . . . . . . . . . 17 | ||||
| 15.7.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 17 | ||||
| 15.7.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
| 15.8. Success Predictable . . . . . . . . . . . . . . . . . . 18 | ||||
| 15.8.1. IS-IS . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
| 15.8.2. Babel . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
| 16. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
| 17. Informative References . . . . . . . . . . . . . . . . . . . 18 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
| 1. Introduction | 1. Introduction | |||
| This document compares IS-IS (ISO/IEC 10589:2002) [RFC1142] and Babel | This document compares IS-IS (ISO/IEC 10589:2002) [RFC1142] and Babel | |||
| [RFC6126] across several criteria related to their use in home | [RFC6126] according to several criteria related to their use in home | |||
| networks, as defined by the HOMENET WG (HOMENETs). | networks (HOMENETs), as defined by the HOMENET WG. | |||
| Although there are substantial differences between the IS-IS and | Please note that this document does not represent the consenus of any | |||
| Babel routing protocols, both routing protocols work well, and either | group, not even the authors. It is an organized collection of facts | |||
| of them could be used in a home network. There are many | and well-informed opinions provided by experts on Babel and IS-IS | |||
| characteristics of these protocols that make them more or less | that may be useful to the HOMENET WG in choosing a routing protocol. | |||
| suitable for use in HOMENETs, as defined in (reference homenet | ||||
| architecture and HNCP documents), and those characteristics are | The HOMENET environment is different from the environment of a | |||
| explored in this document. | professionally administered network. The most obvious difference is | |||
| that a HOMENET is not administered: any protocols used must be robust | ||||
| and fully self-configuring, and any tuning knobs that they provide | ||||
| will be unused in the vast majority of deployments. | ||||
| Another difference is that HOMENETs are usually built out of a | ||||
| specific class of cheap device, the "Plastic Home Router". A Plastic | ||||
| Home Router's firmware is installed at the factory, and is most | ||||
| likely never updated. Additionally, experience shows that home | ||||
| routers are often used way beyond their warranty period, and even | ||||
| after their manufacturer leaves the router business. This, again, | ||||
| argues in favour of simple, robust protocols that are easy to | ||||
| implement and can be expected to keep functioning without software | ||||
| updates. | ||||
| HOMENETs are built and grow organically, and often end up consisting | ||||
| of multiple link technologies with widely different performance | ||||
| characteristics (twisted-pair Ethernet, IEEE 802.11 and its multiple | ||||
| variants, Powerline Ethernet, etc.). It is desirable for a HOMENET | ||||
| routing protocol to be able to dynamically optimise paths according | ||||
| to the link characteristics. | ||||
| Contrary to popular perception, the Plastic Home Router is usually | ||||
| equipped with a reasonably fast CPU and reasonable amounts of flash | ||||
| and RAM; at the time of writing, a (non-superscalar) 700MHz MIPS CPU | ||||
| with 16MB of flash and 64MB of RAM is typical. However, we expect | ||||
| smaller devices to participate in the HOMENET protocols, at least as | ||||
| stub routers. The ability to scale down the HOMENET protocols is | ||||
| therefore likely to encourage their wider adoption. | ||||
| [Isn't it also the case that the HOMENET routing protocol will be | ||||
| implemented on lower-end embedded devices, such as nodes in a low- | ||||
| power wireless network? What is considered to be a reasonable low- | ||||
| end system requirement for a HOMENET router? -- mrw] | ||||
| Experts appear to disagree on the expected size of a HOMENET; we have | ||||
| heard estimates ranging from just one router up to 250 routers. In | ||||
| any case, while scaling beyond a few thousand nodes is not likely to | ||||
| be relevant to HOMENET in the foreseeable future, the HOMENET | ||||
| protocols, if successful, will be repurposed to larger networks, | ||||
| whether we like it or not, and using a protocol that scales well from | ||||
| the outset may be desirable. | ||||
| 2. Protocols and Extensions Included in Comparison | 2. Protocols and Extensions Included in Comparison | |||
| Both IS-IS and Babel are living protocols that are updated and | Both IS-IS and Babel are living protocols that are updated and | |||
| extended over time. This section lists the extensions that were | extended over time. This section lists the extensions that were | |||
| considered in this comparison. Additional protocol extensions could | considered in this comparison. Additional protocol extensions could | |||
| affect some of the information included in this document. | affect some of the information included in this document. | |||
| 2.1. IS-IS Protocol and Extensions | 2.1. IS-IS Protocol and Extensions | |||
| In addition to the base IS-IS protocol specification (ISO/IEC | In addition to the base IS-IS protocol specification (ISO/IEC | |||
| 10589:2002), this comparison considers the following IS-IS | 10589:2002), this comparison considers the following IS-IS | |||
| extensions: | extensions: | |||
| o ISIS Auto-Configuration [ISIS-AUTOCONF]; | ||||
| o Source-Specific routing in IS-IS [ISIS-SS]. | ||||
| 2.2. Babel Protocol and Extensions | 2.2. Babel Protocol and Extensions | |||
| In addition to the base Babel Protocol specification (RFC 6126), this | In addition to the base Babel Protocol specification (RFC 6126), this | |||
| comparison considers the following Babel extensions: | comparison considers the following Babel extensions: | |||
| Source-Specific Routing [BABEL-SS], described in more detail in | o Extension Mechanism for the Babel Routing Protocol [BABEL-EXT]; | |||
| [SS-ROUTING]. | ||||
| Extension Mechanism for the Babel Routing Protocol[BABEL-EXT] | o Source-Specific Routing [BABEL-SS], described in more detail in | |||
| [SS-ROUTING]. | ||||
| 3. Routing Algorithms | 3. Routing Algorithms | |||
| IS-IS is a Link State routing protocol, and Babel is a Loop-avoiding | IS-IS is a Link State routing protocol, and Babel is a Loop-Avoiding | |||
| Distance Vector routing protocol. There are some differences between | Distance Vector routing protocol. There are some differences between | |||
| these algorithms, particularly in terms of scalability, how much | these algorithms, particularly in terms of scalability, how much | |||
| information is exchanged when the routing topology changes, and how | information is exchanged when the routing topology changes, and how | |||
| far topology changes are propagated. [chopps: Perhaps we should see | far topology changes are propagated. | |||
| if we can find an external reference for comparing DVRP to link-state | ||||
| RPs for this section]. | ||||
| 3.1. Link State Algorithm | 3.1. Link State Algorithm | |||
| Link state algorithms distribute information for each node to compute | Link state algorithms distribute information for each node to all | |||
| a tree representing the entire network. | other nodes in the network using a flooding algorithm. This database | |||
| of information is then used by each node to compute the best path to | ||||
| the other nodes in the network. | ||||
| Link state algorithms scale well in both very large and very dense | One benefit of this algorithm is that each node contains the full | |||
| networks. | knowledge of the topology of the network. This information can be | |||
| used by other applications outside the routing protocol itself. | ||||
| 3.2. Distance-Vector Algorithm (Babel) | Additionally the flooding algorithm has been found as an efficient | |||
| method for other applications to distribute node-specific application | ||||
| data, although some care must be taken with this use so as not to | ||||
| disrupt the fundamental routing function. | ||||
| 3.2. Loop-Avoiding Distance-Vector Algorithm (Babel) | ||||
| Distance-vector algorithms distribute information about the path | Distance-vector algorithms distribute information about the path | |||
| length to reach each destination through a given neighbor. Packets | length to reach each destination through a given neighbor. Packets | |||
| are forwarded to the neighbor who is advertising the shortest path to | are forwarded to the neighbor who is advertising the best path | |||
| reach the destination. | towards the destination. | |||
| Babel, like EIGRP, DSDV, and to a certain extent BGP, uses a loop- | ||||
| avoiding distance-vector algorithm: it avoids creating a loop even | ||||
| during reconvergence (there is no "counting to infinity", and even | ||||
| short-lived "microloops" are avoided in most cases). | ||||
| 3.3. Algorithm Comparison | 3.3. Algorithm Comparison | |||
| Loop-avoiding Distance Vector scales beautifully to very large | Loop-Avoiding Distance Vector scales to very large networks -- the | |||
| networks -- the amount of state is linear in the number of nodes, and | amount of state is linear in the number of nodes, and, due to the | |||
| does not need to be propagated in a timely manner. It scales badly | absence of pathologies during reconvergence, does not need to be | |||
| in extremely dense deployments, where a single node has thousands of | propagated in a timely manner. It scales badly in extremely dense | |||
| direct neighbours; such deployments are unlikely, and clearly outside | deployments, where a single node has thousands of direct neighbours; | |||
| the scope of Homenet. | such deployments are unlikely, and clearly outside the scope of | |||
| HOMENET. | ||||
| Naive link state has somewhat worse scaling properties, since it has | Link state algorithms scales to very large, very dense networks. | |||
| state that is proportional to the number of edges in the network | ||||
| graph, and requires strict state synchronisation between nodes. | ||||
| Real-world link-state protocols work around that issue by splitting | ||||
| the network into multiple "areas", and performing distance-vector | ||||
| routing between areas. It is unclear whether this workaround is | ||||
| suitable for Homenet. | ||||
| 4. Support for Source-Specific Routing | IS-IS distributes link and prefix information for each node in a | |||
| single Logical LSP (possibly fragmented). It uses these LSPs to | ||||
| compute a tree representing the entire network. There is no | ||||
| duplication of state based on the number of adjacencies or unique | ||||
| paths to a given prefix. | ||||
| 4. Convergence Times | ||||
| Convergence time is defined as the amount of time after a link | ||||
| failure is detected during which the network is not fully | ||||
| operational. It does not include the time necessary to detect a link | ||||
| failure. | ||||
| 4.1. IS-IS | ||||
| Given fast flooding of any change in the network, IS-IS has been | ||||
| shown to acheive sub 200ms end-to-end convergence even in very large | ||||
| provider networks (single area 900+ nodes). Basically the time for | ||||
| convergence is the time to propagate a new LSP from one end of the | ||||
| network to the other plus the SPF (tree computation interval) and FIB | ||||
| loading time. The flooding is done without delay and prior to | ||||
| running the SPF (tree-calculation) algorithm. Thus is roughly | ||||
| proportional to propagation delay across the diameter of the network. | ||||
| The tree calculation is sub 20ms on modern CPUs. FIB load time | ||||
| depends on the FIB hardware and design and not the routing protocol | ||||
| choice. | ||||
| We easily should expect sub-second convergence for any change in | ||||
| reachability (addition or subtraction) in any conceivable homenet | ||||
| deployment. | ||||
| 4.2. Babel | ||||
| Since Babel maintains a redundant routing table, it is most often | ||||
| able to reconverge almost instantaneously after a link failure (this | ||||
| is similar to e.g. EIGRP). In the case where no feasible routes are | ||||
| available, Babel reconverges in 20ms per hop to the source. | ||||
| 4.3. Discussion | ||||
| Both protocols enjoy fast convergence. However, unless there is a | ||||
| high level of integration between the routing protocol and the link | ||||
| layer, the time needed to reconverge is dwarfed by the amount of time | ||||
| needed to detect a link failure, which is the hold time in IS-IS (30s | ||||
| by default), and two hello intervals on Babel wired links (8s by | ||||
| default). (Babel performs link quality estimation on wireless links, | ||||
| so the delay is somewhat more difficult to quantify there.) | ||||
| 5. Autoconfiguration | ||||
| Home networks are not administered, so a routing protocol needs to be | ||||
| entirely self-configuring in order to be suitable for HOMENETs. | ||||
| 5.1. IS-IS | ||||
| The only required configuration for IS-IS is a unique area/system | ||||
| identifier. The HOMENET implementation of IS-IS uses an | ||||
| autoconfiguration extension defined in an Internet Draft | ||||
| [ISIS-AUTOCONF], to set this value. | ||||
| 5.2. Babel | ||||
| Babel is a fully self-configuring protocol -- the standard | ||||
| implementation of Babel only requires a list of interfaces in order | ||||
| to start routing. | ||||
| 5.3. Discussion | ||||
| 6. Support for Source-Specific Routing | ||||
| Source-Specific Routing is a hard requirement for HOMENETs, as it | Source-Specific Routing is a hard requirement for HOMENETs, as it | |||
| will allow traffic to be routed to the correct outbound network based | will allow traffic to be routed to the correct outbound network based | |||
| on host source address selection. Routing packets to the wrong | on host source address selection. Routing packets to the wrong | |||
| outbound network could result in packets being dropped due to ISP | outbound network could result in packets being dropped due to ISP | |||
| ingress filtering rules. | ingress filtering rules. | |||
| Both Babel and IS-IS have extensions for source-specific routing. | Both Babel and IS-IS have extensions for source-specific routing. | |||
| 4.1. Source Specific Routing in IS-IS | 6.1. Source-Specific Routing in IS-IS | |||
| [XXX: chopps] | ||||
| Reports indicate that IS-IS has critical issues (routing loops) in a | IS-IS support for source specific routing is implemented with the | |||
| mixed environment where some routers support Source-Specific Routing, | addition of a sub-TLV to a reachability (prefix) TLV. The | |||
| and some routers do not. However, this is not likely to be a problem | implementation assumes that all IS-IS routers have support for the | |||
| for Homenet, as we will require Source-Specific Routing on all | sub-TLV. This assumption is safe to make due to the requirement that | |||
| routers. | all homenet IS-IS routers also use a homenet specific area ID and | |||
| cleartext password. Mixing in IS-IS routers without support for | ||||
| source specific routing is not supported as it may cause routing | ||||
| loops. | ||||
| 4.2. Source Specific Routing in Babel | 6.2. Source-Specific Routing in Babel | |||
| The Source-specific extension to the Babel routing protocol | The Source-specific extension to the Babel routing protocol | |||
| [BABEL-SS] has been implemented for over a year, has been made widely | [BABEL-SS] has been implemented for over a year, has been made widely | |||
| available and has seen a fair amount deployment as part of OpenWRT | available and has seen a fair amount deployment as part of OpenWRT | |||
| and CeroWRT. The implementation is currently being merged into the | and CeroWRT. The source-specific code is currently in the process of | |||
| standard Babel implementation, and is scheduled to be included in | being merged into the standard Babel implementation, and is scheduled | |||
| version 1.6 (planned for March 2015). | to be included in version 1.6 (planned for March 2015). | |||
| 4.3. Discussion | ||||
| Babel's source-specific extensions were carefully designed so that | Babel's source-specific extensions were carefully designed so that | |||
| source-specific and ordinary (non-specific) routers can coexist in a | source-specific and ordinary (non-specific) routers can coexist in a | |||
| single routing domain, without routing pathologies such as routing | single routing domain, without causing routing loops. However, | |||
| loops. Interoperability between plain Babel and Source-Specific | unless there is a connected backbone of source-specific routers, any | |||
| non-specific routers present in the HOMENET may experience | ||||
| blackholes. Interoperability between plain Babel and Source-Specific | ||||
| Babel is described in detail in Section VI.A of [SS-ROUTING]. | Babel is described in detail in Section VI.A of [SS-ROUTING]. | |||
| Reports indicate that source-specific IS-IS has critical issues | 6.3. Discussion | |||
| (routing loops) in a mixed environment where some routers support | ||||
| Source-Specific Routing, and some routers do not. However, this is | ||||
| not likely to be a problem for Homenet, as we will require Source- | ||||
| Specific Routing on all routers. | ||||
| [How will we enforce that? -- jch] | 7. Support for Link Metrics | |||
| 5. Support for Link Metrics | Typical HOMENETs are built out of multiple link technologies with | |||
| very different performance characteristics -- Gigabit Ethernet can | ||||
| easily have three orders of magnitude higher throughput than a | ||||
| marginal wireless link. Both IS-IS and Babel quantify the | ||||
| desirability of a link by assigning a metric to it. | ||||
| 5.1. Link Metrics in IS-IS | 7.1. Link Metrics in IS-IS | |||
| IS-IS supports 2 types of link metrics a legacy link metric (which | The HOMENET implementation of IS-IS uses the wide-metric (24-bit) | |||
| should probably not be considered for HOMENET use) and a modern | link metric. Additionally IS-IS includes multi-topology support | |||
| extended (24-bit) link metric. Additionally multi-topology support | allowing for a variable number of metrics per link, as well as per- | |||
| allows for a variable number of metrics per link. | link and per-prefix tags allowing for coloring of links and | |||
| reachability, and finally per-link and per-prefix sub-tlv's allowing | ||||
| for any future additional extensions. | ||||
| 5.2. Link Metrics in Babel | 7.2. Link Metrics in Babel | |||
| In Babel, metrics are unsigned 16-bit integers, which means that | Since Babel was originally designed for heterogeneous networks, it is | |||
| metrics are arbitrary integers between 0 and 65534 (the value 65535 | able to dynamically assign metrics to links depending on their lower- | |||
| is reserved to mean "infinity"); this has been found to be sufficient | layer characteristics. In practice, Babel assigns lower (better) | |||
| even in the chaotic environment of wireless mesh networks. If | metrics to wired links than to wireless ones, dynamically measures | |||
| needed, the Babel extension mechanism can be used to extend the | loss rates in order to favour lossless wireless links, favours routes | |||
| metric space in arbitrary ways (not just integers), which has already | with non-interfering radio frequencies, and avoids high-latency | |||
| been done by the radio interference extensions to Babel [BABEL-Z]. | tunnels. | |||
| 6. Support for Attached Stub Networks | Obviously, such a wealth of information can lead to contradictory | |||
| data in edge cases; however, Babel's loop-avoidance mechanisms ensure | ||||
| that the network remains in a consistent state in all cases, and a | ||||
| hysteresis mechanism ensures that, should a feedback loop occur, the | ||||
| frequency of oscillations remains bounded [DELAY-BASED]. | ||||
| [I don't understand why this issue is important for Homenet. -- jch] | 8. Support for Attached Stub Networks | |||
| 6.1. IS-IS Support for Stub Networks | A stub network is one that is attached to a HOMENET, possibly through | |||
| multiple HOMENET routers, but must not be used for transit. For | ||||
| example, a stub network could be a sensor network which would | ||||
| collapse under the HOMENET traffic should it ever be used for | ||||
| transit. | ||||
| A stub network in IS-IS is supported by the advertisement of | In the following example, if the dotted link between C and D is a | |||
| reachability to a prefix by a router in its LSP. [How does this | stub network, then it must not be used for transit even if the link | |||
| prevent the network from being used for transit? -- jch] | between A and B fails: | |||
| 6.2. Babel Supportt for Stub Networks | ---- A ----- B ----- | |||
| | | | ||||
| | | | ||||
| C ..... D | ||||
| 8.1. IS-IS Support for Stub Networks | ||||
| In IS-IS reachability (prefixes) and topology (links/adjacencies) are | ||||
| separate things. IS-IS supports stub-networks as defined above | ||||
| simply by advertising the prefix associated with a link, but not the | ||||
| link itself. This is sometimes referred to as a "passive link". | ||||
| 8.2. Babel Support for Stub Networks | ||||
| Babel supports flexible filtering of routes, and a stub network can | Babel supports flexible filtering of routes, and a stub network can | |||
| be designated by simply setting up the necessary filtering rules. | be designated by simply setting up the necessary filtering rules. | |||
| For resource-limited deployments, a minimalistic, stub-only | For resource-limited deployments, a minimalistic, stub-only | |||
| implementation of Babel is available. | implementation of Babel is available. | |||
| 7. Security Features | 9. Security Features | |||
| 7.1. Security Features in IS-IS | [I think this section is badly written. We should just state whether | |||
| each protocol supports auth or encryption, and whether it supports | ||||
| symmetric or something more exciting. -- jch] | ||||
| 9.1. Security Features in IS-IS | ||||
| IS-IS offers multiple levels of security from none, to simple clear- | IS-IS offers multiple levels of security from none, to simple clear- | |||
| text (password) authentication, to fully generic cryptographic | text (password) authentication, to fully generic cryptographic | |||
| authentication using any number of hashing algorithms (e.g., HMAC- | authentication using any number of hashing algorithms (e.g., HMAC- | |||
| MD5, HMAC-SHA1, ... HMAC-SHA512) based on security associations | MD5, HMAC-SHA1, ... HMAC-SHA512). Currently, the HOMENET | |||
| (link, area and domain scoped). | implementation of IS-IS uses the cleartext password set to a | |||
| predefined value for auto-configuration purposes. | ||||
| [What does that mean? Just support for HMAC-based authentication, or | ||||
| am I missing something? -- jch] | ||||
| 7.2. Security Features in Babel | 9.2. Security Features in Babel | |||
| Babel supports an extensible HMAC-based cryptographic authentication | Babel supports symmetric key authentication using an extensible HMAC- | |||
| mechanism [RFC7298]. | based cryptographic authentication mechanism [RFC7298]. | |||
| 8. Support for Multicast | 10. Support for Multicast | |||
| Although the HOMENET WG has not yet determined how/if to support | Although the HOMENET WG has not yet determined whether to support | |||
| multicast in HOMENET Networks, it might be desirable to pick a | multicast in HOMENET Networks, it might be desirable to pick a | |||
| routing protocol that supports multicast, so that it will be easier | routing protocol that supports multicast, so that it will be easier | |||
| to add multicast support in the future. | to add multicast support in the future. | |||
| 8.1. Multicast Routing in IS-IS | 10.1. Multicast Routing in IS-IS | |||
| The IS-IS protocol supports multicast routing. However, none of the | The IS-IS protocol supports multicast routing. However, none of the | |||
| available implementations include support for multicast. [XXX: | available implementations include support for multicast. | |||
| chopps: what do we mean by supporting multicast routing?] | ||||
| [Does the Homenet implementation support multicast? Does any open | ||||
| source implementation support multicast? -- jch] | ||||
| 8.2. Multicast Routing in Babel | 10.2. Multicast Routing in Babel | |||
| There is no support for multicast routing in Babel. | There is no support for multicast routing in Babel. | |||
| 9. Implementation Status | 11. Implementation Status | |||
| There are Homenet implementations of both IS-IS and Babel. | There are HOMENET implementations of both IS-IS and Babel. | |||
| Only the Homenet implementation of IS-IS supports source-specific | The HOMENET implementation of IS-IS is the only IS-IS implementation | |||
| routing, which is a hard requirement for Homenet. If source-specific | that supports source-specific routing, which is a hard requirement | |||
| routing is not required, there are several independent, interoperable | for HOMENET. If source-specific routing is not required, there are | |||
| implementations of IS-IS (all major router vendors implement IS-IS), | several independent, interoperable proprietary implementations of IS- | |||
| including some open source implementations. | IS (all major router vendors implement IS-IS). We are not aware of | |||
| any production-quality open-source implementation of IS-IS other than | ||||
| the HOMENET one. | ||||
| There are multiple open source implementations of Babel, two of which | There are multiple open source implementations of Babel, two of which | |||
| support source-specific routing. However, they were both originally | support source-specific routing. All implementations (except the | |||
| derived from the same codebase. | stub-only version) were originally derived from the same codebase. | |||
| 10. Code and State Size | 12. Code and State Size | |||
| 10.1. IS-IS Code and State Size | 12.1. IS-IS Code and State Size | |||
| The Homenet implementation of IS-IS consists of 7000 lines of Erlang | The HOMENET implementation of IS-IS consists of 7000 lines of Erlang | |||
| code and has an installed size of over 11MB. Its initial memory | code and has an installed size of over 11MB. Its initial memory | |||
| usage (as reported by the operating system) is 22MB, and its working | usage (as reported by the operating system) is 22MB, and its working | |||
| set increases by XXX bytes for each new edge in the network graph. | set increases by XXX bytes for each new edge in the network graph. | |||
| To put these numbers into perspective, in a network with XXX nodes | To put these numbers into perspective, in a network with XXX nodes | |||
| each of which has XXX neighbours, the Homenet implementation of IS-IS | each of which has XXX neighbours, the HOMENET implementation of IS-IS | |||
| requires XXX bytes for its data structures. | requires XXX bytes for its data structures. | |||
| [I suggest removing the rest of this section, since it consists of | ||||
| unsubstantiated, vague claims depending on a not-yet-implemented | ||||
| version of a not-yet-specified subset of a large protocol. -- jch] | ||||
| The code size of IS-IS depends greatly on what aspects of the | The code size of IS-IS depends greatly on what aspects of the | |||
| protocol have been implemented. IS-IS supports multiple address | protocol have been implemented. IS-IS supports multiple address | |||
| families as well as completely different protocol stacks (OSI and | families as well as completely different protocol stacks (OSI and | |||
| IP), multiple area hierachical operation with automatic virtual link | IP), multiple area hierachical operation with automatic virtual link | |||
| support for repairing area partitions, and multiple link types. | support for repairing area partitions, and multiple link types. | |||
| Additionally many other protocol features have been added over time | Additionally many other protocol features have been added over time | |||
| to augment the protocol or replace previous behavior. The protocol | to augment the protocol or replace previous behavior. The protocol | |||
| lends itself well to not only extension, but pairing down of | lends itself well to not only extension, but pairing down of | |||
| features. | features. | |||
| For HOMENET we could use a very simple level-2 only implementation | For HOMENET we need a level-1 only implementation supporting a common | |||
| supporting a common topology supporting IPv4 and IPv6 over broadcast | topology for IPv4 and IPv6 over broadcast (i.e., ethernet) link | |||
| (i.e., ethernet) link types. Additionally, we would need only | types. Additionally, we only require support of the latest extended | |||
| support the latest extended metric TLV (i.e., not implement legacy | metric TLVs (i.e., not implement legacy metric support). | |||
| metric support). Implemented as such the code size should be very | ||||
| manageable. | ||||
| The state actually required by IS-IS is not large, and primarily | The operational state required by IS-IS is proportional to the number | |||
| correlates to the number of routers in the network (for LSP storage). | of routers, links, and prefixes in the network. Each router in the | |||
| The protocol stores it's own link and adjacency data which is | network generates and advertises a Link State Protocol Data Unit | |||
| expected to be negligible. Additionally, the protocol stores | (LSP) that describes it's attached links and prefixes. A copy of | |||
| received and generated LSPs, and typically an SPF tree with prefix | each of these LSPs is stored by each router in the network. IS-IS | |||
| information attached. This state correlates directly to the number | uses these LSPs to construct a shortest-path-first (SPF) tree with | |||
| of routers and prefixes in the network. Each router in the network | attached prefix information from which routes to the prefixes are | |||
| generates, a single LSP (possibly fragmented into segments) with | created. | |||
| prefix information, a single copy of these LSPs is stored by each | ||||
| router in the network regardless of the number of links, adjacencies | ||||
| or the distance (or number of hops) from the storing router to the | ||||
| advertising router. | ||||
| 10.2. Babel Code and State Size | Concrete numbers lacking. | |||
| 12.2. Babel Code and State Size | ||||
| The source-specific implementation of Babel, which implements many | The source-specific implementation of Babel, which implements many | |||
| non-Homenet extensions to the protocol, consists of roughly 10000 | non-HOMENET extensions to the protocol, consists of roughly 10000 | |||
| lines of C and has an installed size of less than 130kB on AMD-64. | lines of C and has an installed size of less than 130kB on AMD-64. | |||
| Its initial memory usage (as reported by the operating system) is | Its initial memory usage (as reported by the operating system) is | |||
| 300kB. | 300kB. | |||
| The amount of state stored by a Babel router is at worst one routing | The amount of state stored by a Babel router is at worst one routing | |||
| table entry for each destination through each neighbour. In the | table entry for each destination through each neighbour. In the | |||
| source-specific implementation, one routing entry occupies roughly | source-specific implementation, one routing entry occupies roughly | |||
| 100 bytes of memory. To put these figures into perspective, in a | 100 bytes of memory. To put these figures into perspective, in a | |||
| network with 1000 nodes, a Babel router with 10 neighbours needs | network with 1000 nodes, a Babel router with 10 neighbours needs | |||
| roughly a megabyte of memory to store its routing table (not counting | roughly a megabyte of memory to store its routing table (not counting | |||
| malloc overhead). | malloc overhead). | |||
| The stub-only implementation of Babel consists of 900 lines of C and | The stub-only implementation of Babel consists of 900 lines of C and | |||
| compiles to 12kB (dynamically linked). Its memory usage (as reported | compiles to 12kB (dynamically linked). Its memory usage (as reported | |||
| by the operating system) is 200kB, and remains constant (it doesn't | by the operating system) is 200kB, and remains constant (it doesn't | |||
| perform any dynamic memory allocation). | perform any dynamic memory allocation). | |||
| 11. Scalablity on IEEE 802.11 Wireless Networks | 12.3. Comparison | |||
| [I suggest renaming this section to "Performance on 802.11 wireless | Table 1 summarises the sizes of the available HOMENET routing | |||
| networks. Are we trying to get homenets to scale to millions of | protocol implementations. (Data courtesy of Steven Barth and Markus | |||
| nodes? -- jch] | Stenberg.) | |||
| 11.1. IS-IS Scalability on 802.11 | +----------------+--------------------+----------------+------------+ | |||
| | | babeld (source- | sbabeld (stub- | AutoISIS | | ||||
| | | specific) | only) | | | ||||
| +----------------+--------------------+----------------+------------+ | ||||
| | Version | 2598774 | cc7d681 | 0.8.0 | | ||||
| | Date | 2014-09-08 | 2014-11-21 | 2014-08-26 | | ||||
| | License | MIT | MIT | Apache 2.0 | | ||||
| | Lines of Code | 10.000 (C) | 1.000 (C) | 7.000 | | ||||
| | | | | (Erlang) | | ||||
| | Installed size | 129kB | 13kB | 11,385kB | | ||||
| | (AMD64) | | | | | ||||
| | Total | 129kB | 13kB | 14,155kB | | ||||
| | installed size | | | | | ||||
| | Baseline RSS | ~300kB | ~200kB | ~22,000kB | | ||||
| +----------------+--------------------+----------------+------------+ | ||||
| Table 1: Comparison of HOMENET implementation size | ||||
| In this table, "Installed size" is the size reported by the package | ||||
| manager for the routing daemon's package(s) (including the 1.6MB of | ||||
| the "Beam" Erlang VM in the case of IS-IS), while "Total installed | ||||
| size" is the sum of the size of the deamon's packages and all its | ||||
| dependencies, excluding the C library. | ||||
| 13. Performance on IEEE 802.11 Wireless Networks | ||||
| 13.1. IS-IS Performance on 802.11 | ||||
| IS-IS is in active use in in the Internet in large non-hierachical | IS-IS is in active use in in the Internet in large non-hierachical | |||
| (i.e., level-2 or single area level-1) deployments with hundreds of | (i.e., level-2 or single area level-1) deployments with hundreds of | |||
| nodes. The protocol has proven to be very scalable. | nodes. The protocol has proven to be very scalable. | |||
| Do we have any information about the scaling of IS-IS on 802.11 | [Do we have any information about the performance of IS-IS on 802.11 | |||
| networks, in particular? | networks, in particular? -- mrw] | |||
| 11.2. Babel Scalability on 802.11 | 13.2. Babel Performance on 802.11 | |||
| Babel was carefully optimised for 802.11 networks. In particular, it | Babel has been carefully optimised for 802.11 networks. In | |||
| has (optional) provisions for link quality estimation and (optional) | particular, it performs link quality estimations of wireless links in | |||
| provisions for radio-interference sensitive routing. | a manner that works well with the 802.11 MAC. In addition, Babel has | |||
| provisions for estimating radio interference [BABEL-Z], which is | ||||
| essential for providing decent throughput on multi-hop radio routes. | ||||
| Babel was designed to work well on pure mesh networks (networks where | Babel was designed to work well on pure mesh networks (networks where | |||
| a packet might exit through the same interface as the one it came | a packet might exit through the same interface as the one it came | |||
| from), but this is probably out of scope for Homenet. | from), but this is probably out of scope for HOMENET. | |||
| 12. Standardization Status | 14. Standardization Status | |||
| 12.1. IS-IS Standardization | 14.1. IS-IS Standardization | |||
| IS-IS is an ISO Standard documented in ISO/IEC 10589:2002. There is | IS-IS is an ISO Standard documented in ISO/IEC 10589:2002. There is | |||
| an active IETF IS-IS Working Group (ISIS) that maintains and extends | an active IETF IS-IS Working Group (ISIS) that maintains and extends | |||
| the IS-IS protocol, and the IS-IS protocol has been extended in | the IS-IS protocol, and the IS-IS protocol has been extended in | |||
| several ISIS Working Group documents. | several ISIS Working Group documents. | |||
| The source-specific extension to IS-IS is standardized as XXX. [Will | The autoconfiguration and source-specific extensions to IS-IS, which | |||
| it require a downref? -- jch] | are both hard requirements for HOMENET, are documented in (non-WG) | |||
| Internet Drafts [ISIS-AUTOCONF] [ISIS-SS]. | ||||
| 12.2. Babel Standardization Status | 14.2. Babel Standardization Status | |||
| Babel is documented in an Experimental RFC (RFC 6126) published in | Babel is documented in an Experimental RFC (RFC 6126) published in | |||
| 2011, and it has been updated in several individual-submission RFCs | 2011, and it has been updated in several individual-submission RFCs | |||
| and Internet Drafts. | and Internet Drafts. An Internet Draft establishing an IANA registry | |||
| of Babel extensions has been submitted for publication as an RFC | ||||
| [BABEL-EXT]. | ||||
| The use of Babel in a Standards Track HOMENET RFC would require a | The use of Babel in a Standards Track HOMENET RFC would require a | |||
| "downref" to non-Standards Track documents. It would also be | "downref" to non-Standards Track documents. It would also be | |||
| necessary to publish the extensions that are needed for the HOMENET | necessary to finish publishing the extensions that are needed for the | |||
| use case as RFCs. | HOMENET use case as RFCs. | |||
| 13. Evaluation of RFC 5218 Criteria | 15. Evaluation of RFC 5218 Criteria | |||
| 13.1. Critical Success Factors | 15.1. Critical Success Factors | |||
| Does the protocol exhibit one or more of the critical initial success | Does the protocol exhibit one or more of the critical initial success | |||
| factors as defined in RFC 5218? | factors as defined in RFC 5218? | |||
| 13.1.1. IS-IS Success Factors | 15.1.1. IS-IS Success Factors | |||
| IS-IS exhibits the following critical initial success factors: | IS-IS exhibits the following critical initial success factors: | |||
| Positive Net Value: | Positive Net Value: | |||
| Hardware cost: None. | Hardware cost: None. | |||
| Operational interface: Existing and extensive. | Operational interface: Existing and extensive. | |||
| Retraining: None. | Retraining: None. | |||
| Business dependencies: None. | Business dependencies: None. | |||
| Incremental Deployment: Yes. | Incremental Deployment: Yes. | |||
| Open Code Availability: Yes. Multiple implementations. | Open Code Availability: Yes. One implementation of the HOMENET | |||
| extensions, multiple proprietary implementations of the base | ||||
| protocol. | ||||
| Freedom from Usage Restrictions: Yes. | Freedom from Usage Restrictions: Yes. | |||
| Open Specification Availability: Yes. | Open Specification Availability: Yes. | |||
| Open Maintenance Processes: Yes. | Open Maintenance Processes: Yes. | |||
| Good Technical Design: Proven with extensive deployment and | Good Technical Design: Proven with extensive deployment and | |||
| experience. | experience with the base protocol, little deployment of the | |||
| HOMENET extensions. | ||||
| Extensible: Yes. | Extensible: Yes. | |||
| No Hard Scalability bound: Yes. | No Hard Scalability bound: Yes. | |||
| Threats Sufficiently Mitigated: Yes. | Threats Sufficiently Mitigated: Yes. | |||
| 13.1.2. Babel Success Factos | 15.1.2. Babel Success Factos | |||
| Babel exhibits the following critical initial success factors: | Babel exhibits the following critical initial success factors: | |||
| Positive Net Value: | Positive Net Value: | |||
| Hardware cost: None. | Hardware cost: None. | |||
| Operational interface: ??. | Operational interface: tcpdump and wireshark support, dedicated | |||
| monitoring software. | ||||
| Retraining: None. | Retraining: None. | |||
| Business dependencies: None. | Business dependencies: None. | |||
| Incremental Deployment: Yes. | Incremental Deployment: Yes. | |||
| Open Code Availability: Yes. One implementation. | Open Code Availability: Yes. Multiple implementations derived | |||
| from a common source. | ||||
| Freedom from Usage Restrictions: Yes. | Freedom from Usage Restrictions: Yes. | |||
| Open Specification Availability: Yes. | Open Specification Availability: Yes. | |||
| Open Maintenance Processes: No. | Open Maintenance Processes: IANA registry in the process of being | |||
| created. | ||||
| Good Technical Design: Yes, but less widely deployed/proven than | Good Technical Design: Yes. | |||
| IS-IS. | ||||
| Extensible: Yes. | Extensible: Yes. | |||
| No Hard Scalability bound: No. | No Hard Scalability bound: Yes. | |||
| Threats Sufficiently Mitigated: ??. | Threats Sufficiently Mitigated: probably. | |||
| 13.2. Willing Implementors | 15.2. Willing Implementors | |||
| Are there implementers who are ready to implement the technology in | Are there implementers who are ready to implement the technology in | |||
| ways that are likely to be deployed? | ways that are likely to be deployed? | |||
| 13.2.1. IS-IS | 15.2.1. IS-IS | |||
| There is only one implementation of source-specific routing for IS- | There is only one implementation of autoconfiguration and source- | |||
| IS. [Has it ever been extended by people who are not the authors? | specific routing for IS-IS. There are some other open source | |||
| If so, who? -- jch] | implementations of the base protocol, but they are incomplete (as of | |||
| February 2015). | ||||
| [I suggest the rest of this section should be removed. -- jch] | As all major routing vendors have (proprietary) IS-IS | |||
| As all major routing vendors have IS-IS implementations as well as | implementations, the barrier for implmeneting IS-IS for HOMENET use | |||
| the existence of for sale and open source implementations, the | is probably manageable, assuming that the willingness to implement | |||
| barrier for implmeneting IS-IS for homenet use is quite low. Given | modifications needed for HOMENET use is present. | |||
| this we can assume that willingness to implement modifications (if | ||||
| any) for homenet use is present and strong. | ||||
| 13.2.2. Babel | 15.2.2. Babel | |||
| The Babel implementation is open source software (MIT licensed, non- | The Babel implementation is open source software (MIT licensed), and | |||
| copyleft), and the codebase has proven of sufficiently high quality | the codebase has proven of sufficiently high quality to be easily | |||
| to be easily extended by people who were not in direct contact with | extended by people who were not in direct contact with the author | |||
| the author [RFC7298]. | [RFC7298]. | |||
| 13.3. Willing Customers | 15.3. Willing Customers | |||
| Are there customers (especially high-profile customers) who are ready | Are there customers (especially high-profile customers) who are ready | |||
| to deploy the technology? | to deploy the technology? | |||
| 13.3.1. IS-IS | 15.3.1. IS-IS | |||
| Yes. IS-IS is already widely deployed in operational networks. | Yes. IS-IS is already widely deployed in operational networks. | |||
| [I suggest more details should be given. Recall that we're speaking | 15.3.2. Babel | |||
| of source-specific IS-IS here. -- jch] | ||||
| 13.3.2. Babel | ||||
| Babel is currently deployed as part of the OpenWRT and CeroWRT | Source-Specific Babel is currently deployed as part of the OpenWRT | |||
| operating systems. Additionally, the current version is used as a | and CeroWRT operating systems. Additionally, the current version is | |||
| testbed for the Homenet configuration protocol. | used as a testbed for the HOMENET configuration protocol. | |||
| 13.4. Potential Niches | 15.4. Potential Niches | |||
| Are there potential niches where the technology is compelling? | Are there potential niches where the technology is compelling? | |||
| 13.4.1. IS-IS | 15.4.1. IS-IS | |||
| 13.4.2. Babel | 15.4.2. Babel | |||
| Babel is a simple and flexible routing protocol. Like most distance- | Babel is a simple and flexible routing protocol. Like most distance- | |||
| vector protocols, it requires little to no configuration in most | vector protocols, it requires little to no configuration in most | |||
| topologies, and has proved popular in scenarios where competent | topologies, and has proved popular in scenarios where competent | |||
| network administration was not available. In addition, it has been | network administration was not available. In addition, it has been | |||
| shown to be particularly useful in scenarios where non-standard | shown to be particularly useful in scenarios where non-standard | |||
| metrics were needed, notably wireless mesh networks and overlay | dynamically computed metrics are beneficial, notably wireless mesh | |||
| networks. | networks and overlay networks. | |||
| 13.5. Complexity Removal | 15.5. Complexity Removal | |||
| If so, can complexity be removed to reduce cost? | If so, can complexity be removed to reduce cost? | |||
| 13.5.1. IS-IS | 15.5.1. IS-IS | |||
| As mentioned previously IS-IS can be significantly and easily paired | ||||
| down to fit the more limited scope of homenet use. | ||||
| [Any actual implementations the reader can examine? -- jch] | As mentioned previously IS-IS can be significantly and easily pared | |||
| down to fit the more limited scope of homenet use. However, no such | ||||
| pared down implementation exists, and the subset of the protocol that | ||||
| needs to be implemented has never been formally defined. | ||||
| 13.5.2. Babel | 15.5.2. Babel | |||
| Babel is a fairly simple protocol -- RFC 6126 is just 40 pages long | Babel is a fairly simple protocol -- RFC 6126 is just 40 pages long | |||
| (not counting informative appendices), and it has been successfully | (not counting informative appendices), and it has been successfully | |||
| explained to fourth year university students in less than two hours. | explained to fourth year university students in less than two hours. | |||
| The stub-only implementation of Babel consists of 900 lines of C | The stub-only implementation of Babel consists of 900 lines of C | |||
| code, and has deliberately been kept as simple as possible. We | code, and has deliberately been kept as simple as possible. We | |||
| expect a competent engineer to get up to speed with it within hours. | expect a competent engineer to get up to speed with it within hours. | |||
| 13.6. Killer App | 15.6. Killer App | |||
| Is there a potential killer app? Or can the technology work | Is there a potential killer app? Or can the technology work | |||
| underneath existing unmodified applications? | underneath existing unmodified applications? | |||
| 13.6.1. IS-IS | 15.6.1. IS-IS | |||
| As IS-IS already qualifies as successful (bordering on wildly) a | As IS-IS already qualifies as successful (bordering on wildly) a | |||
| killer app is not particularly relevant. | killer app is not particularly relevant. | |||
| 13.6.2. Babel | 15.6.2. Babel | |||
| Since Babel requires virtually no configuration, it is particularly | Since Babel requires virtually no configuration, it is particularly | |||
| suitable to scenarios where a dedicated network administrator is not | suitable to scenarios where a dedicated network administrator is not | |||
| available. Additionally, its support for link quality sensing and | available. Additionally, its support for dynamically computed non- | |||
| non-standard metrics makes it particularly appealing in highly | standard metrics makes it particularly appealing in highly | |||
| heterogeneous networks, (networks built on multiple link-layer | heterogeneous networks, (networks built on multiple link-layer | |||
| technologies with widely varying performance characteristics). | technologies with widely varying performance characteristics). | |||
| 13.7. Extensible | 15.7. Extensible | |||
| Is the protocol sufficiently extensible to allow potential | Is the protocol sufficiently extensible to allow potential | |||
| deficiencies to be addressed in the future? | deficiencies to be addressed in the future? | |||
| 13.7.1. IS-IS | 15.7.1. IS-IS | |||
| IS-IS has been shown to be incredibly extensible, originally designed | IS-IS has been shown to be incredibly extensible, originally designed | |||
| for a completely different protocol stack (OSI) it was easily adapted | for a completely different protocol stack (OSI) it was easily adapted | |||
| for IP use, then to multiple address families (IPv4, IPv6) and multi- | for IP use, then to multiple address families (IPv4, IPv6) and multi- | |||
| topology. Indeed one of the major drivers of IS-IS's success is its | topology. Indeed one of the major drivers of IS-IS's success is its | |||
| extensibility and adaptability. | extensibility and adaptability. | |||
| 13.7.2. Babel | 15.7.2. Babel | |||
| The extension mechanisms built into the Babel protocol [BABEL-EXT] | The extension mechanisms built into the Babel protocol [BABEL-EXT] | |||
| have been shown to be a solid basis on which many backwards- | have been shown to be a solid basis on which many backwards- | |||
| compatible extensions have been built, including one that | compatible extensions have been built, including one that | |||
| fundamentally changes the structure of announcements [BABEL-SS] and | fundamentally changes the structure of announcements [BABEL-SS] and | |||
| one that needed a non-trivial extension to the space of metrics | one that needs a non-trivial extension to the space of metrics | |||
| [BABEL-Z]. | [BABEL-Z]. | |||
| 13.8. Success Predictable | 15.8. Success Predictable | |||
| If it is not known whether the protocol will be successful, should | If it is not known whether the protocol will be successful, should | |||
| the market decide first? Or should the IETF work on multiple | the market decide first? Or should the IETF work on multiple | |||
| alternatives and let the market decide among them? Are there factors | alternatives and let the market decide among them? Are there factors | |||
| listed in this document that may predict which is more likely to | listed in this document that may predict which is more likely to | |||
| succeed? | succeed? | |||
| 13.8.1. IS-IS | 15.8.1. IS-IS | |||
| For IS-IS the market has already decided that the protocol is | For IS-IS the market has already decided that the protocol is | |||
| successful in a fairly wide variety of deployments. | successful in a fairly wide variety of deployments. [We're speaking | |||
| of source-specific, autoconfiguring IS-IS here? And are we speaking | ||||
| of small, unadministered networks? -- jch] | ||||
| 13.8.2. Babel | 15.8.2. Babel | |||
| Source-specific Babel is probably the only source-specific routing | Source-specific Babel is probably the only source-specific routing | |||
| protocol that has seen a fair amount of deployment and is being used | protocol that has seen deployment and is being used in production. | |||
| in production. | ||||
| Plain Babel has seen a modest amount of deployment, most notably for | Plain Babel has seen a modest amount of deployment, most notably for | |||
| routing over wireless mesh networks and large-scale overlay networks. | routing over wireless mesh networks and large-scale overlay networks. | |||
| However, it remains a young protocol, certainly much younger than IS- | However, it remains a young protocol, certainly much younger than IS- | |||
| IS. | IS. | |||
| 14. Informative References | 16. Acknowledgments | |||
| The authors are grateful for the input of Steven Barth, Denis | ||||
| Ovsienko and Mark Townsley. | ||||
| 17. Informative References | ||||
| [BABEL-EXT] | [BABEL-EXT] | |||
| Chroboczek, J., "Extension Mechanism for the Babel Routing | Chroboczek, J., "Extension Mechanism for the Babel Routing | |||
| Protocol", Internet Draft draft-chroboczek-babel- | Protocol", Internet Draft draft-chroboczek-babel- | |||
| extension-mechanism-03, June 2013. | extension-mechanism-03, June 2013. | |||
| [BABEL-SS] | [BABEL-SS] | |||
| Boutier, M. and J. Chroboczek, "Source-Specific Routing in | Boutier, M. and J. Chroboczek, "Source-Specific Routing in | |||
| Babel", Internet Draft draft-boutier-babel-source- | Babel", Internet Draft draft-boutier-babel-source- | |||
| specific-00, November 2014. | specific-00, November 2014. | |||
| [BABEL-Z] Chroboczek, J., "Diversity Routing for the Babel Routing | [BABEL-Z] Chroboczek, J., "Diversity Routing for the Babel Routing | |||
| Protocol", Internet Draft draft-chroboczek-babel- | Protocol", Internet Draft draft-chroboczek-babel- | |||
| diversity-routing-00, July 2014. | diversity-routing-00, July 2014. | |||
| [DELAY-BASED] | ||||
| Jonglez, B. and M. Boutier, "A delay-based routing | ||||
| metric", March 2014, <http://arxiv.org/abs/1403.3488>. | ||||
| [ISIS-AUTOCONF] | ||||
| Liu, B., "ISIS Auto-Configuration", Internet Draft draft- | ||||
| liu-isis-auto-conf-03, October 2014. | ||||
| [ISIS-SS] Baker, F. and D. Lamparter, "IPv6 Source/Destination | ||||
| Routing using IS-IS", Internet Draft draft-baker-ipv6- | ||||
| isis-dst-src-routing-02, October 2014. | ||||
| [RFC1142] Oran, D., "OSI IS-IS Intra-domain Routing Protocol", RFC | [RFC1142] Oran, D., "OSI IS-IS Intra-domain Routing Protocol", RFC | |||
| 1142, February 1990. | 1142, February 1990. | |||
| [RFC6126] Chroboczek, J., "The Babel Routing Protocol", RFC 6126, | [RFC6126] Chroboczek, J., "The Babel Routing Protocol", RFC 6126, | |||
| April 2011. | April 2011. | |||
| [RFC7298] Ovsienko, D., "Babel Hashed Message Authentication Code | [RFC7298] Ovsienko, D., "Babel Hashed Message Authentication Code | |||
| (HMAC) Cryptographic Authentication", RFC 7298, July 2014. | (HMAC) Cryptographic Authentication", RFC 7298, July 2014. | |||
| [SS-ROUTING] | [SS-ROUTING] | |||
| skipping to change at page 15, line 38 ¶ | skipping to change at page 20, line 4 ¶ | |||
| Margaret Wasserman | Margaret Wasserman | |||
| Painless Security | Painless Security | |||
| 356 Abbott Street | 356 Abbott Street | |||
| North Andover, MA 01845 | North Andover, MA 01845 | |||
| USA | USA | |||
| Phone: +1 781 405-7464 | Phone: +1 781 405-7464 | |||
| Email: mrw@painless-security.com | Email: mrw@painless-security.com | |||
| URI: http://www.painless-security.com | URI: http://www.painless-security.com | |||
| Christian E. Hopps | Christian E. Hopps | |||
| Deutsche Telekom | Deutsche Telekom | |||
| Email: chopps@rawdofmt.org | Email: chopps@chopps.org | |||
| Juliusz Chroboczek | Juliusz Chroboczek | |||
| University of Paris-Diderot (Paris 7) | University of Paris-Diderot (Paris 7) | |||
| Email: jch@pps.univ-paris-diderot.fr | Email: jch@pps.univ-paris-diderot.fr | |||
| End of changes. 119 change blocks. | ||||
| 290 lines changed or deleted | 481 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||