< draft-ietf-babel-rfc6126bis-08.txt   draft-ietf-babel-rfc6126bis-09.txt >
Network Working Group J. Chroboczek Network Working Group J. Chroboczek
Internet-Draft IRIF, University of Paris-Diderot Internet-Draft IRIF, University of Paris-Diderot
Obsoletes: 6126,7557 (if approved) D. Schinazi Obsoletes: 6126,7557 (if approved) D. Schinazi
Intended status: Standards Track Google LLC Intended status: Standards Track Google LLC
Expires: September 28, 2019 March 27, 2019 Expires: November 8, 2019 May 7, 2019
The Babel Routing Protocol The Babel Routing Protocol
draft-ietf-babel-rfc6126bis-08 draft-ietf-babel-rfc6126bis-09
Abstract Abstract
Babel is a loop-avoiding distance-vector routing protocol that is Babel is a loop-avoiding distance-vector routing protocol that is
robust and efficient both in ordinary wired networks and in wireless robust and efficient both in ordinary wired networks and in wireless
mesh networks. This document describes the Babel routing protocol, mesh networks. This document describes the Babel routing protocol,
and obsoletes RFCs 6126 and 7557. and obsoletes RFCs 6126 and 7557.
Status of This Memo Status of This Memo
skipping to change at page 1, line 34 skipping to change at page 1, line 34
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 September 28, 2019. This Internet-Draft will expire on November 8, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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
skipping to change at page 2, line 10 skipping to change at page 2, line 10
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
1.1. Features . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Features . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Limitations . . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Limitations . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Specification of Requirements . . . . . . . . . . . . . . 4 1.3. Specification of Requirements . . . . . . . . . . . . . . 5
2. Conceptual Description of the Protocol . . . . . . . . . . . 5 2. Conceptual Description of the Protocol . . . . . . . . . . . 5
2.1. Costs, Metrics and Neighbourship . . . . . . . . . . . . 5 2.1. Costs, Metrics and Neighbourship . . . . . . . . . . . . 5
2.2. The Bellman-Ford Algorithm . . . . . . . . . . . . . . . 5 2.2. The Bellman-Ford Algorithm . . . . . . . . . . . . . . . 5
2.3. Transient Loops in Bellman-Ford . . . . . . . . . . . . . 6 2.3. Transient Loops in Bellman-Ford . . . . . . . . . . . . . 6
2.4. Feasibility Conditions . . . . . . . . . . . . . . . . . 7 2.4. Feasibility Conditions . . . . . . . . . . . . . . . . . 7
2.5. Solving Starvation: Sequencing Routes . . . . . . . . . . 8 2.5. Solving Starvation: Sequencing Routes . . . . . . . . . . 8
2.6. Requests . . . . . . . . . . . . . . . . . . . . . . . . 10 2.6. Requests . . . . . . . . . . . . . . . . . . . . . . . . 10
2.7. Multiple Routers . . . . . . . . . . . . . . . . . . . . 10 2.7. Multiple Routers . . . . . . . . . . . . . . . . . . . . 10
2.8. Overlapping Prefixes . . . . . . . . . . . . . . . . . . 11 2.8. Overlapping Prefixes . . . . . . . . . . . . . . . . . . 11
3. Protocol Operation . . . . . . . . . . . . . . . . . . . . . 12 3. Protocol Operation . . . . . . . . . . . . . . . . . . . . . 12
3.1. Message Transmission and Reception . . . . . . . . . . . 12 3.1. Message Transmission and Reception . . . . . . . . . . . 12
3.2. Data Structures . . . . . . . . . . . . . . . . . . . . . 12 3.2. Data Structures . . . . . . . . . . . . . . . . . . . . . 13
3.3. Acknowledgments and acknowledgment requests . . . . . . . 16 3.3. Acknowledgments and acknowledgment requests . . . . . . . 17
3.4. Neighbour Acquisition . . . . . . . . . . . . . . . . . . 17 3.4. Neighbour Acquisition . . . . . . . . . . . . . . . . . . 17
3.5. Routing Table Maintenance . . . . . . . . . . . . . . . . 20 3.5. Routing Table Maintenance . . . . . . . . . . . . . . . . 20
3.6. Route Selection . . . . . . . . . . . . . . . . . . . . . 24 3.6. Route Selection . . . . . . . . . . . . . . . . . . . . . 24
3.7. Sending Updates . . . . . . . . . . . . . . . . . . . . . 25 3.7. Sending Updates . . . . . . . . . . . . . . . . . . . . . 25
3.8. Explicit Requests . . . . . . . . . . . . . . . . . . . . 27 3.8. Explicit Requests . . . . . . . . . . . . . . . . . . . . 28
4. Protocol Encoding . . . . . . . . . . . . . . . . . . . . . . 31 4. Protocol Encoding . . . . . . . . . . . . . . . . . . . . . . 32
4.1. Data Types . . . . . . . . . . . . . . . . . . . . . . . 32 4.1. Data Types . . . . . . . . . . . . . . . . . . . . . . . 32
4.2. Packet Format . . . . . . . . . . . . . . . . . . . . . . 33 4.2. Packet Format . . . . . . . . . . . . . . . . . . . . . . 33
4.3. TLV Format . . . . . . . . . . . . . . . . . . . . . . . 34 4.3. TLV Format . . . . . . . . . . . . . . . . . . . . . . . 34
4.4. Sub-TLV Format . . . . . . . . . . . . . . . . . . . . . 34 4.4. Sub-TLV Format . . . . . . . . . . . . . . . . . . . . . 35
4.5. Parser state . . . . . . . . . . . . . . . . . . . . . . 35 4.5. Parser state . . . . . . . . . . . . . . . . . . . . . . 35
4.6. Details of Specific TLVs . . . . . . . . . . . . . . . . 36 4.6. Details of Specific TLVs . . . . . . . . . . . . . . . . 36
4.7. Details of specific sub-TLVs . . . . . . . . . . . . . . 46 4.7. Details of specific sub-TLVs . . . . . . . . . . . . . . 47
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 47 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 48
6. Security Considerations . . . . . . . . . . . . . . . . . . . 48 6. Security Considerations . . . . . . . . . . . . . . . . . . . 49
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 49 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 49
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 49 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 50
8.1. Normative References . . . . . . . . . . . . . . . . . . 49 8.1. Normative References . . . . . . . . . . . . . . . . . . 50
8.2. Informative References . . . . . . . . . . . . . . . . . 50 8.2. Informative References . . . . . . . . . . . . . . . . . 50
Appendix A. Cost and Metric Computation . . . . . . . . . . . . 51 Appendix A. Cost and Metric Computation . . . . . . . . . . . . 51
A.1. Maintaining Hello History . . . . . . . . . . . . . . . . 51 A.1. Maintaining Hello History . . . . . . . . . . . . . . . . 51
A.2. Cost Computation . . . . . . . . . . . . . . . . . . . . 52 A.2. Cost Computation . . . . . . . . . . . . . . . . . . . . 52
A.3. Metric Computation . . . . . . . . . . . . . . . . . . . 53 A.3. Metric Computation . . . . . . . . . . . . . . . . . . . 54
Appendix B. Constants . . . . . . . . . . . . . . . . . . . . . 54 Appendix B. Constants . . . . . . . . . . . . . . . . . . . . . 54
Appendix C. Considerations for protocol extensions . . . . . . . 55 Appendix C. Considerations for protocol extensions . . . . . . . 55
Appendix D. Stub Implementations . . . . . . . . . . . . . . . . 57 Appendix D. Stub Implementations . . . . . . . . . . . . . . . . 57
Appendix E. Software Availability . . . . . . . . . . . . . . . 57 Appendix E. Software Availability . . . . . . . . . . . . . . . 58
Appendix F. Changes from previous versions . . . . . . . . . . . 58 Appendix F. Changes from previous versions . . . . . . . . . . . 58
F.1. Changes since RFC 6126 . . . . . . . . . . . . . . . . . 58 F.1. Changes since RFC 6126 . . . . . . . . . . . . . . . . . 58
F.2. Changes since draft-ietf-babel-rfc6126bis-00 . . . . . . 58 F.2. Changes since draft-ietf-babel-rfc6126bis-00 . . . . . . 58
F.3. Changes since draft-ietf-babel-rfc6126bis-01 . . . . . . 58 F.3. Changes since draft-ietf-babel-rfc6126bis-01 . . . . . . 58
F.4. Changes since draft-ietf-babel-rfc6126bis-02 . . . . . . 59 F.4. Changes since draft-ietf-babel-rfc6126bis-02 . . . . . . 59
F.5. Changes since draft-ietf-babel-rfc6126bis-03 . . . . . . 59 F.5. Changes since draft-ietf-babel-rfc6126bis-03 . . . . . . 59
F.6. Changes since draft-ietf-babel-rfc6126bis-03 . . . . . . 60 F.6. Changes since draft-ietf-babel-rfc6126bis-03 . . . . . . 60
F.7. Changes since draft-ietf-babel-rfc6126bis-04 . . . . . . 60 F.7. Changes since draft-ietf-babel-rfc6126bis-04 . . . . . . 60
F.8. Changes since draft-ietf-babel-rfc6126bis-05 . . . . . . 60 F.8. Changes since draft-ietf-babel-rfc6126bis-05 . . . . . . 60
F.9. Changes since draft-ietf-babel-rfc6126bis-06 . . . . . . 60 F.9. Changes since draft-ietf-babel-rfc6126bis-06 . . . . . . 60
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 60 F.10. Changes since draft-ietf-babel-rfc6126bis-07 . . . . . . 60
F.11. Changes since draft-ietf-babel-rfc6126bis-08 . . . . . . 60
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 61
1. Introduction 1. Introduction
Babel is a loop-avoiding distance-vector routing protocol that is Babel is a loop-avoiding distance-vector routing protocol that is
designed to be robust and efficient both in networks using prefix- designed to be robust and efficient both in networks using prefix-
based routing and in networks using flat routing ("mesh networks"), based routing and in networks using flat routing ("mesh networks"),
and both in relatively stable wired networks and in highly dynamic and both in relatively stable wired networks and in highly dynamic
wireless networks. wireless networks.
1.1. Features 1.1. Features
skipping to change at page 9, line 49 skipping to change at page 10, line 8
| |
| FD(A) = (137, 1) | FD(A) = (137, 1)
S |1 S |1
\ | D(B) = (138, 2) \ | D(B) = (138, 2)
2 \| FD(B) = (138, 2) 2 \| FD(B) = (138, 2)
B B
at which point the route through B becomes feasible again. at which point the route through B becomes feasible again.
Note that while sequence numbers are used for determining Note that while sequence numbers are used for determining
feasibility, they are not necessarily used in route selection: a node feasibility, they are not used in route selection: a node ignores the
will normally ignore the sequence number when selecting the best sequence number when selecting the best route to a given destination
route to a given destination (Section 3.6). (Section 3.6). Doing otherwise would cause route oscillation while a
seqno propagates through the network, and might even cause persistent
blackholes with some exotic metrics.
2.6. Requests 2.6. Requests
In DSDV, the sequence number of a source is increased periodically. In DSDV, the sequence number of a source is increased periodically.
A route becomes feasible again after the source increases its A route becomes feasible again after the source increases its
sequence number, and the new sequence number is propagated through sequence number, and the new sequence number is propagated through
the network, which may, in general, require a significant amount of the network, which may, in general, require a significant amount of
time. time.
Babel takes a different approach. When a node detects that it is Babel takes a different approach. When a node detects that it is
skipping to change at page 25, line 14 skipping to change at page 25, line 34
o switching router-ids should be avoided; o switching router-ids should be avoided;
o routes through stable neighbours should be preferred to routes o routes through stable neighbours should be preferred to routes
through unstable ones; through unstable ones;
o stable routes should be preferred to unstable ones; o stable routes should be preferred to unstable ones;
o switching next hops should be avoided. o switching next hops should be avoided.
Route selection MUST NOT take seqnos into account: a route MUST NOT
be preferred just because it carries a higher (more recent) seqno.
Doing otherwise would cause route oscillation while a new seqno
propagates through the network, possibly following multiple paths of
different latency, and might even create persistent blackholes if the
metric being used is not left-distributive Section 3.5.2.
A simple but useful strategy is to choose the feasible route with the A simple but useful strategy is to choose the feasible route with the
smallest metric, with a small amount of hysteresis applied to avoid smallest metric, with a small amount of hysteresis applied to avoid
switching router-ids too often. switching router-ids too often.
After the route selection procedure is run, triggered updates After the route selection procedure is run, triggered updates
(Section 3.7.2) and requests (Section 3.8.2) are sent. (Section 3.7.2) and requests (Section 3.8.2) are sent.
3.7. Sending Updates 3.7. Sending Updates
A Babel speaker advertises to its neighbours its set of selected A Babel speaker advertises to its neighbours its set of selected
skipping to change at page 46, line 10 skipping to change at page 46, line 43
Plen The length of the requested prefix. Plen The length of the requested prefix.
Seqno The sequence number that is being requested. Seqno The sequence number that is being requested.
Hop Count The maximum number of times that this TLV may be forwarded, Hop Count The maximum number of times that this TLV may be forwarded,
plus 1. This MUST NOT be 0. plus 1. This MUST NOT be 0.
Reserved Sent as 0 and MUST be ignored on reception. Reserved Sent as 0 and MUST be ignored on reception.
Router Id The Router-Id that is being requested. This MUST NOT Router-Id The Router-Id that is being requested. This MUST NOT
consist of all zeroes or all ones. consist of all zeroes or all ones.
Prefix The prefix being requested. This field's size is Plen/8 Prefix The prefix being requested. This field's size is Plen/8
rounded upwards. rounded upwards.
A Seqno Request TLV prompts the receiving node to send a finite- A Seqno Request TLV prompts the receiving node to send a finite-
metric Update for the prefix specified by the AE, Plen, and Prefix metric Update for the prefix specified by the AE, Plen, and Prefix
fields, with either a router-id different from what is specified by fields, with either a router-id different from what is specified by
the Router-Id field, or a Seqno no less (modulo 2^16) than what is the Router-Id field, or a Seqno no less (modulo 2^16) than what is
specified by the Seqno field. If this request cannot be satisfied specified by the Seqno field. If this request cannot be satisfied
skipping to change at page 49, line 29 skipping to change at page 49, line 46
When carried over IPv6, Babel packets are ignored unless they are When carried over IPv6, Babel packets are ignored unless they are
sent from a link-local IPv6 address; since routers don't forward sent from a link-local IPv6 address; since routers don't forward
link-local IPv6 packets, this provides protection against spoofed link-local IPv6 packets, this provides protection against spoofed
Babel packets being sent from the global Internet. No such natural Babel packets being sent from the global Internet. No such natural
protection exists when Babel packets are carried over IPv4. protection exists when Babel packets are carried over IPv4.
7. Acknowledgments 7. Acknowledgments
A number of people have contributed text and ideas to this A number of people have contributed text and ideas to this
specification. The authors are particularly indebted to Matthieu specification. The authors are particularly indebted to Matthieu
Boutier, Gwendoline Chouasne, Margaret Cullen, Donald Eastlake and Boutier, Gwendoline Chouasne, Margaret Cullen, Donald Eastlake, Toke
Toke Hoiland-Jorgensen. Earlier versions of this document greatly Hoiland-Jorgensen and Joao Sobrinho. Earlier versions of this
benefited from the input of Joel Halpern. The address compression document greatly benefited from the input of Joel Halpern. The
technique was inspired by [PACKETBB]. address compression technique was inspired by [PACKETBB].
8. References 8. References
8.1. Normative References 8.1. Normative References
[BABEL-DTLS] [BABEL-DTLS]
Decimo, A., Schinazi, D., and J. Chroboczek, "Babel Decimo, A., Schinazi, D., and J. Chroboczek, "Babel
Routing Protocol over Datagram Transport Layer Security", Routing Protocol over Datagram Transport Layer Security",
Internet Draft draft-ietf-babel-dtls-04, February 2019. Internet Draft draft-ietf-babel-dtls-04, February 2019.
skipping to change at page 50, line 32 skipping to change at page 51, line 5
February 1993. February 1993.
[EIGRP] Albrightson, B., Garcia Luna Aceves, J., and J. Boyle, [EIGRP] Albrightson, B., Garcia Luna Aceves, J., and J. Boyle,
"EIGRP -- a Fast Routing Protocol Based on Distance "EIGRP -- a Fast Routing Protocol Based on Distance
Vectors", Proc. Interop 94, 1994. Vectors", Proc. Interop 94, 1994.
[ETX] De Couto, D., Aguayo, D., Bicket, J., and R. Morris, "A [ETX] De Couto, D., Aguayo, D., Bicket, J., and R. Morris, "A
high-throughput path metric for multi-hop wireless high-throughput path metric for multi-hop wireless
networks", Proc. MobiCom 2003, 2003. networks", Proc. MobiCom 2003, 2003.
[IS-IS] Standardization, I. O. F., "Information technology -- [IS-IS] "Information technology -- Telecommunications and
Telecommunications and information exchange between information exchange between systems -- Intermediate
systems -- Intermediate System to Intermediate System System to Intermediate System intra-domain routeing
intra-domain routeing information exchange protocol for information exchange protocol for use in conjunction with
use in conjunction with the protocol for providing the the protocol for providing the connectionless-mode network
connectionless-mode network service (ISO 8473)", ISO/ service (ISO 8473)", ISO/IEC 10589:2002, 2002.
IEC 10589:2002, 2002.
[JITTER] Floyd, S. and V. Jacobson, "The synchronization of [JITTER] Floyd, S. and V. Jacobson, "The synchronization of
periodic routing messages", IEEE/ACM Transactions on periodic routing messages", IEEE/ACM Transactions on
Networking 2, 2, 122-136, April 1994. Networking 2, 2, 122-136, April 1994.
[OSPF] Moy, J., "OSPF Version 2", RFC 2328, April 1998. [OSPF] Moy, J., "OSPF Version 2", RFC 2328, April 1998.
[PACKETBB] [PACKETBB]
Clausen, T., Dearlove, C., Dean, J., and C. Adjih, Clausen, T., Dearlove, C., Dean, J., and C. Adjih,
"Generalized Mobile Ad Hoc Network (MANET) Packet/Message "Generalized Mobile Ad Hoc Network (MANET) Packet/Message
skipping to change at page 60, line 30 skipping to change at page 60, line 42
F.8. Changes since draft-ietf-babel-rfc6126bis-05 F.8. Changes since draft-ietf-babel-rfc6126bis-05
o Added information about the packet trailer, now that it is used by o Added information about the packet trailer, now that it is used by
draft-ietf-babel-hmac. draft-ietf-babel-hmac.
F.9. Changes since draft-ietf-babel-rfc6126bis-06 F.9. Changes since draft-ietf-babel-rfc6126bis-06
o Added references to security documents. o Added references to security documents.
F.10. Changes since draft-ietf-babel-rfc6126bis-07
o Added list of obsoleted drafts to the abstract.
o Updated references.
F.11. Changes since draft-ietf-babel-rfc6126bis-08
o Added recommendation that route selection should not take seqnos
into account.
Authors' Addresses Authors' Addresses
Juliusz Chroboczek Juliusz Chroboczek
IRIF, University of Paris-Diderot IRIF, University of Paris-Diderot
Case 7014 Case 7014
75205 Paris Cedex 13 75205 Paris Cedex 13
France France
Email: jch@irif.fr Email: jch@irif.fr
 End of changes. 18 change blocks. 
32 lines changed or deleted 53 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/