Internet DRAFT - draft-hsmit-lsr-isis-flooding-over-tcp
draft-hsmit-lsr-isis-flooding-over-tcp
Link-State Routing H. Smit, Ed.
Internet-Draft
Intended status: Standards Track G. Van de Velde
Expires: April 15, 2019 Nokia
October 12, 2018
IS-IS Flooding over TCP
draft-hsmit-lsr-isis-flooding-over-tcp-00
Abstract
This document proposes a solution to use TCP for IS-IS flooding. The
proposed solution is a relative simple extension to implement. IS-IS
flooding over TCP brings BGP's property of scalable transport via TCP
to Link-State protocols.
This proposal defines a new TLV in point-to-point IIHs to signal the
intent of a router to do flooding over TCP, and it defines a small
header to encapsulate IS-IS PDUs in the TCP byte-stream.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [1].
Status of This Memo
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 April 15, 2019.
Smit & Van de Velde Expires April 15, 2019 [Page 1]
Internet-Draft IS-IS Flooding over TCP October 2018
Copyright Notice
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. General scaling factors of IS-IS . . . . . . . . . . . . . . 3
2.1. Current scaling limitations of IS-IS flooding . . . . . . 4
2.1.1. Packet pacing and throughput . . . . . . . . . . . . 4
2.1.2. Reliable flooding on point-to-point interfaces . . . 4
2.1.3. Unreliability of CSNPs . . . . . . . . . . . . . . . 5
3. Improvements for IS-IS flooding . . . . . . . . . . . . . . . 6
3.1. Using TCP to do IS-IS flooding . . . . . . . . . . . . . 6
4. Negotiating Flooding over TCP . . . . . . . . . . . . . . . . 7
4.1. The new TLV to indicate that a router wants to flood over
TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5. Format of messages over TCP . . . . . . . . . . . . . . . . . 8
6. New behaviour of IS-IS flooding . . . . . . . . . . . . . . . 9
6.1. Establishing a new IS-IS adjacency . . . . . . . . . . . 9
6.2. Behaviour during the existence of an IS-IS adjacency . . 10
7. Considerations regarding IS-IS flooding over TCP . . . . . . 11
7.1. Flooding over TCP is only done on point-to-point
interfaces . . . . . . . . . . . . . . . . . . . . . . . 11
7.2. Unnumbered interfaces and reachability of the interface
ip-address . . . . . . . . . . . . . . . . . . . . . . . 11
7.3. Multiple levels of hierarchy on one interface . . . . . . 12
7.4. Downsides of using TCP for IS-IS flooding . . . . . . . . 12
7.5. What to do if the TCP connection breaks . . . . . . . . . 12
7.6. What to do if the TCP connection can not be set up . . . 13
8. Security Considerations . . . . . . . . . . . . . . . . . . . 13
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13
10. Contributor Addresses . . . . . . . . . . . . . . . . . . . . 13
11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 14
12.1. Normative References . . . . . . . . . . . . . . . . . . 14
12.2. Informative References . . . . . . . . . . . . . . . . . 14
Smit & Van de Velde Expires April 15, 2019 [Page 2]
Internet-Draft IS-IS Flooding over TCP October 2018
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction
IP Fabric Networks in data-centers are growing larger and larger.
The number of routers in such fabrics are pushing the boundaries of
routing protocols. Therefor new ideas are explored, and existing
protocols are being enhanced (RFC 7938 [2], RIFT [5] and LSVR [4]).
This document improves an existing protocol, IS-IS. One of the
scaling limitations of IS-IS is its flooding algorithm. BGP is known
to be a routing protocol of high scale. A key property and important
benefit of BGP is the fact that BGP uses TCP as transport mechanism.
Introducing TCP to IS- IS flooding would bring a major positive
scaling property from BGP to IS-IS.
2. General scaling factors of IS-IS
IS-IS is a highly scalable Interior Gateway Protocol (IGP). IS-IS is
defined in ISO-10589 [3]. Networks with thousands of routers have
been deployed. When bigger networks are build, certain parts of the
algorithm become a limitation to the scalability of IS-IS.
Several sub-components of the IS-IS protocol have an impact on its
scalability.
o The number of adjacenies. For each adjacency periodic IIHs have
to be exchanged. Each adjacency has to be included in the
router's Link-State PDU (LSP). When building a dynamic routing
protocol, this work has to be done in some form or another. Not
much can be done to improve the scalability of this effort.
o Flooding has a large impact on scalability of IS-IS. Obviously
the number of LSPs in an area has an impact on the operation of
IS-IS. Also the number of interfaces over which a router must
flood has an impact on the operation of IS-IS. But the flooding
algorithm itself has elements that limit scalability. Improving
these sub-algorithms will have a positive impact on scalability.
o Dijkstra's Shortest-Path First algorithm. This algorithm is at
the heart of Link-State protocols. This algorithm is
computationally reasonably efficient. One could build better
implementations, that do partial route-computation and do
incremental SPF. Or that check the bi-directionality of each link
in advance of running the SPF. One could run the regular SPF and
the computations for LFA and rLFA in parallel. But the SPF
algorithm itself can not be improved upon easily.
Smit & Van de Velde Expires April 15, 2019 [Page 3]
Internet-Draft IS-IS Flooding over TCP October 2018
2.1. Current scaling limitations of IS-IS flooding
With current implementations of the IS-IS protocol, the flooding
algorithms have the largest impact on protocol scalability. Three
issues are particularly of concern.
2.1.1. Packet pacing and throughput
The first issue is packet pacing of LSPs. If routers would send
large bursts of routing protocol packets to other routers, there is a
risk that the receiving router might drop those packets. This risks
increases when a router has multiple neighbors that might all be
sending large amount of routing-protocol packets at the same time.
Dropped packets cause re-transmissions, delays in convergence, or
even worse things. The solution is packet pacing.
ISO-10589 suggests a router should wait 30 milliseconds between
sending of two consecutive LSPs. This will give the receiving router
time to process pending incoming packets, before input-queues get
overwhelmed. This means that two routers can exchange at most 33
LSPs per second. If a router boots, and has an empty LSDB, in a
network with 10000 routers (and thus at least 10000 LSPs), it will
take up to 300 seconds before the new router has acquired the full
LSDB.
Decreasing the inter-packet gap will speed this up, but it might have
a negative impact on overall network stability. More dynamic or
adaptive packet-pacing algorithms could be envisioned, but those are
not public nor standardized. If such algorithms would be developed,
they would probably end up including many aspects of the existing TCP
protocol.
2.1.2. Reliable flooding on point-to-point interfaces
The second issue is implementing reliable flooding over point-to-
point interfaces. The following algorithm is used when a LSP needs
to be flooded:
o When a new LSP is received, the router sets the SRM-bits for this
LSP for all interfaces (except the interface on which the new LSP
was received).
o For each interface a pacing-timer is started (if not running yet).
o When that pacing-timer expires, the router will find an LSP with
its SRM-bit set for that interface. It will transmit the LSP out
over the interface.
Smit & Van de Velde Expires April 15, 2019 [Page 4]
Internet-Draft IS-IS Flooding over TCP October 2018
o The router will then clear the SRM-bit for that LSP. It will set
a bit indicating that this LSP has not been acknowledged yet. And
it will start a retransmit-timer for that LSP/interface
combination.
o When a PSNP is received for this LSP on this interface, the router
will clear the bit that indicates that no acknowledgement was
received yet.
o When the retransmit-timer fires, the router will check whether the
retransmit-it has been cleared yet. If so, the router stops the
retransmit-timer and is done. If the retransmit-bit has not been
cleared, then the router sets the SRM-bit for this interface/LSP
combination again, and start the pacing-timer for the interface
(if not still running).
Note that when flooding LSPs, the router needs to keep a retransmit-
timer per LSP/interface combination. These timers run typically for
5 seconds, or until an acknowledgement (PSNP) is received. In a
network with only a few hunderd LSPs, then 5 seconds * 33 LSPs/second
results in only 165 LSPs being flooded. If the router has 100
interfaces, this can cause the router to have 16500 simultanously
running timers. If a router falls behind processing PSNPs, or when
PSNPs are being dropped, this number could increase to even larger
numbers. The conclusion is that reliability of flooding LSPs over
point-to-point interfaces does not come free. And in networks under
stress, the cost can become even higher.
2.1.3. Unreliability of CSNPs
The third issue of concern is the unreliability of CNSPs. CSNPs are
used when flooding over multi-point interfaces. But CSNPs are also
used to synchronize LSDBs over adjacencies on point-to-point
interfaces. This happens right after a new adjacency over a point-
to-point interface is established. The algorithm used after a new
adjacency comes up is:
o The router sets the SRM-bit for this interface on all LSPs in its
LSDB.
o The router creates CSNPs describing all LSPs in its LSDB. It
sends these CSNPs to the new neighbor.
o The router waits a limited amount of time, hoping to receive all
the CSNPs from its new neighbors.
o For every LSP in every CSNP received from its new neighbor, the
router checks to compare its version of the LSP with its neighbors
Smit & Van de Velde Expires April 15, 2019 [Page 5]
Internet-Draft IS-IS Flooding over TCP October 2018
version of the LSP. If the versions are the same, the router
clears the SRM-bit for that LSP/interface. Versions are compared
using the LSP sequence-number (and checksum, TTL, etc).
o The router starts the packet-pacing timer, and starts sending to
the new neighbor, LSPs that still have the SRM-bit set for that
interface.
When the number of LSPs in the LSDB grows to large numbers, the
number of CSNPs needed increases to large numbers as well. There can
be only descriptions of 91 LSPs in a typical CSNP. If a network has
10000 routers, and thus 10000+ LSPs, it takes 110 CNSPs to describe
the whole LSDB. If any of the CSNPs that get exchanged during
adjacency synchronization gets dropped, the sending router will
transmit 91 LSPs per dropped CNSPs, regardless whether that was
necessary or not.
3. Improvements for IS-IS flooding
BGP is considered to be a highly scaleable routing protocol. It is
used to carry all routes in the Global Internet. It is used to carry
large numbers of customer routes in Provider networks that supply
VPN-services. But BGP has downsides too. BGP typically requires
extra configuration, and in dense topologies routing-churn can be
experienced, because BGP does so-called path-hunting.
The main property of BGP that contributes to good scaling is the fact
that BGP uses TCP for its transport. Using TCP has certain benefits
for a routing protocol. TCP supplies reliability through
retransmissions and acknowledgements. TCP supplies high throughput
through its windowing mechanism and by potentially packing small
chunks of user-data into larger TCP segments. TCP supplies a crude
form of multi-threading by separating transmission and retransmission
of data from the user process, and letting other tasks or the kernel
take care of that. When a routing protocol uses TCP, it does not
need to burden itself anymore with tasks like retransmission,
acknowledgements, flow-control, or seeking high bandwidth and
throughput. It also doesn't need to do extras to use multi-threading
for reliable transmission.
3.1. Using TCP to do IS-IS flooding
This document proposes a relatively simple way to do IS-IS flooding
over TCP.
Routers remain to establish new adjacencies using IIHs via the
classic IS-IS mechanism. When using IS-IS TCP extensions Routers
remain sending periodic IIHs via the classic mechanism to maintain
Smit & Van de Velde Expires April 15, 2019 [Page 6]
Internet-Draft IS-IS Flooding over TCP October 2018
adjacencies. However, after establishing a new adjacency and
successfully establish a corresponding TCP-connection, LSPs and SNPs
are sent only over the TCP-connection.
4. Negotiating Flooding over TCP
Before two routers can start flooding over TCP, they need to agree on
this new way of transport. Negotiating is done via a new TLV in the
IS-to-IS Hello PDUs (IIH). When a router intends to do flooding over
TCP, it includes this new TLV in its p2p IIHs. The existence of the
TLV in the IIHs is an indication to the other router that it wants to
use TCP for flooding.
The size of the TLV is variable. The value field contains the IP
address and TCP port-number on which the router is accepting a new
TCP connection for flooding. The router with the lowest System-ID
initiates the TCP connection to the other router. The router with
the highest System-ID never tries to set up a new connection. It
just listens on its advertised TCP port-number and accepts the TCP
connection from the router with the lower System-ID.
If only one, or neither of both routers include the new TLV in their
IIHs, then flooding will not be done over TCP. Instead the classic
IS-IS flooding algorithm is used, as described in ISO-10589.
Flooding over TCP is only supported on point-2-point interfaces.
4.1. The new TLV to indicate that a router wants to flood over TCP
This document proposes a new TLV for IIH messages. The existence of
this TLV in an IIH signals the receiving router that the sending
router is willing to do flooding over TCP.
The content of the TLV are 2 or more sub-TLVs. These sub-TLVs
indicate the TCP port-number on which the advertising router is
listening to accept new TCP-connections, and 1 or more sub-TLVs that
indicate the IPv4- or IPv6-address on which the router is listening
to accept new TCP-connections.
The new TLV consists of:
o 1 octet of TLV-Type,
o 1 octet of TLV-Length,
o 10 to 255 octets of TLV-Value, containing sub-TLVs.
The defined sub-TLVs are:
Smit & Van de Velde Expires April 15, 2019 [Page 7]
Internet-Draft IS-IS Flooding over TCP October 2018
o TLV type 1, Length 2 octets. TCP port number.
o TLV type 2, Length 4 octets. IPv4 address. The sending router is
listening on this IPv4-address to open a TCP-connection for IS-IS
flooding.
o TLV type 3, Length 16 octets. IPv6 address. The sending router
is listening on this IPv6-address to open a TCP-connection for IS-
IS flooding.
Example of the layout of the new Flooding-over-TCP TLV. This example
advertises an IPv4-address to connect to.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Sub-TLV 1 | Sub-TLV-Len 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TCP port-number | Sub-TLV 2 | Sub-TLV-Len 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4 Octets of IPv4-address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1
The new TLV is to be included only once in each IIH. A router MUST
NOT include more than one TCP port number sub-TLV. A router MAY
include multiple IPv4- or IPv6-address sub-TLVs. The destination IP-
address(es) SHOULD be addresses that are also included in the IP-
Interface-Addresses TLVs (TLV 132 for IPv4 or TLV 233 for IPv6).
5. Format of messages over TCP
The content of the messages that are transmitted over the TCP
connection are traditional IS-IS PDUs. IIHs, SNPs and LSPs can all
be transmitted over the TCP connection. No TLV-format or other
extensible format is needed, because new information is to be
included inside IIHs, SNPs or LSPs themselves. Therefor the format
of messages over TCP itself does not need to be changed, and does not
need to be extensible.
Each IS-IS PDU that is sent over TCP is to be preceeded by a header,
functionaing as a marker. This header consists of:
o Four octets of marker. The content of this marker is always 0x69
0x73 0x69 0x73. This marker has the same function as the marker
Smit & Van de Velde Expires April 15, 2019 [Page 8]
Internet-Draft IS-IS Flooding over TCP October 2018
in a BGP-header. It enables the receiver to check whether
messages inside the TCP-bytestream have gone out of sync.
o Two octets of message-length. The IS-IS PDU itself also has a
length-field, inside the message-specific header. The length-
field here can be used to verify no octets are missing and that
there are no extra trailing octets.
The type of IS-IS PDU can be derived from the PDU itself, by looking
at the "PDU Type" field in the common IS-IS PDU header.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Marker: 0x69 | 0x73 | 0x69 | 0x73 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length field | IS-IS PDU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IS-IS PDU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| .......
Figure 2
6. New behaviour of IS-IS flooding
When IS-IS does its flooding over TCP, the algorithms to transmit and
receive LSPs change slightly. The biggest difference with the
standard algorithms from ISO-10589 are the facts that the sending
router does not need to do retransmission and that the receiving
router does not need to send PSNPs to acknowledge receipt of LSPs.
6.1. Establishing a new IS-IS adjacency
Initially the Router looks for the new TLV in the IIH. If the other
router included this TLV in its IIH, flooding over TCP is initiated.
The router with the lowest System-ID initiates a TCP-connection to
the other router. The TCP port-number and destination IP-address is
learned from the new TLV in the IIH.
After the TCP session is established, a router will:
o Send a regular IIH over the TCP connection. The IIH is the same
as when it would have been encapsulated straight into a layer-2
header. This IIH allows the other router to verify the identity
and authentication of the remote router.
Smit & Van de Velde Expires April 15, 2019 [Page 9]
Internet-Draft IS-IS Flooding over TCP October 2018
o Wait for receipt of an IIH from the remote router. This IIH is
used to verify the identity and authentication of the remote
router.
o Set the SRM-bit for this interface on all the LSPs in the LSDB.
o Send a number of CSNPs over the TCP connection. These CNSPs MUST
describe the whole LSDB of the sending router. The last CSNP
should desribe the last lexographical LSP in the LSDB. The end-id
in the CSNP would be FFFF.FFFF.FFFF.FF-FF.
o Process all incoming CSNPs from the remote router. When a CSNP is
received, check your own LSDB, and clear the SRM-bits on LSPs that
both routers have in common. If the remote router has a version
of the LSP that is newer, do not set the SSN-bit. It is not
necessary to explicitely request for the newer LSP. The remote
router will send it anyway.
o When the last CSNP has been received, walk the LSDB and send any
LSPs that still have the SRM-bit set for this interface.
o No retransmission needs to be one by either router. TCP will take
care of retransmission.
6.2. Behaviour during the existence of an IS-IS adjacency
The actions that a router has to take when receiving a new LSP are
simplified compared to classic flooding.
o When a router receives an LSP, it checks if it has that LSP
already in its LSDB. And it checks whether the version of the
received LSP is newer or not.
o If the version is the same, the router does nothing.
o If the version of the received LSP is older than the LSP in the
LSDB, the router sets the SRM-bit for the LSP. At some point in
time, the router will then send its own LSP back to the other
router.
o If the version of the recieved LSP is newer than the LSP in the
LSDB, the router sets the SRM-bits for this LSP for all
interfaces, except the interface it received the newer version of
the LSP from.
o The receiving router does not set the SSN-bit and does not send an
acknowledgement (PSNP).
Smit & Van de Velde Expires April 15, 2019 [Page 10]
Internet-Draft IS-IS Flooding over TCP October 2018
o Periodically, or event driven, the router will check its LSDB for
LSPs with the SRM-bit set. When it finds such LSPs, it will send
as many of those LSPs to neighbors, via TCP. There is no packet-
pacing. All flow-control is handled by TCP. After sending one or
more LSPs, the router does not set any state to indicate that the
LSP needs retransmission. The router does not expect an
acknowledgement (PSNP). No retransmission-timer needs to be
started. Just sending the LSPs is enough.
7. Considerations regarding IS-IS flooding over TCP
7.1. Flooding over TCP is only done on point-to-point interfaces
Flooding over TCP is not supported for multi-point interfaces. The
nature of classic flooding between multiple routers on a LAN is too
complex to simply replace by TCP connections. Therefor the new
flooding-over-TCP TLV should only be included in point-to-point IIH.
Care must be taken that when a large network consists mostly of
point-to-point interfaces, there are no multi-point between routers
left in the network. Doing classic flooding over those multi-point
interfaces might require substantial more resources than flooding on
routers with only point-to-point interfaces.
7.2. Unnumbered interfaces and reachability of the interface ip-address
When a router tries to open a TCP connection to another router, it
uses the TCP port-number and an IP-address is has learned from the
new flooding-over-TCP TLV. This destination address can be any
advertised IP-address that is from a prefix shared between the two
routers.
However, it is possible that both routers use "ip unnumbered" on the
point-to-point interface. In that case, the remote destination ip-
address might not appear in the sender's routing table. Typically
routes are installed in the routing table only after doing an SPF
computation and learning how to reach all IP-prefixes that are
included in LSPs. Typically routers do not install routes in the
routing table for IP-addresses learned from the IP-Interface-
Addresses TLV in IIHs. When a router is planning to do flooding over
TCP, and does not have opened a TCP connection yet, it will not have
all the LSPs in its LSDB necessary to learn how to reach the IP-
address from the new Flooding-over-TCP TLV, or from the IP-Interface-
Addresses TVL.
Therefor it is recommended that when a router does flooding over TCP,
and one of its interfaces is configured as "unnumbered", that router
SHOULD install host-routes (/32s or /128s) in its routing table, so
Smit & Van de Velde Expires April 15, 2019 [Page 11]
Internet-Draft IS-IS Flooding over TCP October 2018
that TCP will be able to open a connection to the router on the other
end of an adjacency. These host-routes can be interface-routes for
the IP-address(es) learned from the new Flooding-over-TCP TLV in the
p2p IIHs.
7.3. Multiple levels of hierarchy on one interface
IS-IS flooding over TCP is only defined for point-to-point
interfaces. Over point-to-point interfaces, only one type of IIH PDU
is sent, even when the interface is used by both level-1 and level-2
routing. This means that IS-IS flooding over TCP is negotiated in
only one location (inside the p2p IIH). Two routers use a single
TCP-connection, even when doing both level-1 and level-2 routing over
that interface.
The packet-types of LSPs and SNPs identify whether the packet is
level-1 or level-2. Therefor no confusion can occur when receiving
both level-1 and level-2 PDUs over the same TCP connection.
7.4. Downsides of using TCP for IS-IS flooding
When TCP-segments are dropped, TCP will retransmit those segments a
little while later. In the mean time, new versions might arrive of
the LSPs that are in the TCP buffers. Therefor TCP might retransmit
stale LSPs. Which it would not have done if flooding was done via
the standard way. This causes only a slight inefficient use of
resources. Ultimately the current versions of those LSPs will be
transmitted. To protect against this, it is recommended to not make
the TCP window-size larger than the default.
7.5. What to do if the TCP connection breaks
If a TCP connection gets closed or reset, the router with the lowest
System-ID MUST periodically try to re-open the TCP connection. Both
routers MUST NOT declare the adjacency down. An existing adjacency
must stay established as long as IIHs are exchanged and the holding-
time timer doesn't expire.
The benefit of this behaviour is that it allows IS-IS implementations
a certain flexibility. E.g. when an IS-IS process on a router is
restarted, and the TCP connection is re-established, this will not
bring down the adjacency. Or a router can switch over to the Hot
Standby Control Plane, or do In-Service Software-Upgrades (ISSU)
without causing adjacencies to go down.
Smit & Van de Velde Expires April 15, 2019 [Page 12]
Internet-Draft IS-IS Flooding over TCP October 2018
7.6. What to do if the TCP connection can not be set up
It could happen that two routers can exchange IS-IS PDUs fine, but
they can not set up a TCP connection. What needs to be done in this
case is open for discussion.
8. Security Considerations
IS-IS as defined in ISO-10589 encapsulates IS-IS PDUs straight into a
layer-2 header. One of the benefits of this is that remote attackers
can not send IS-IS messages to a targeted router that is several ip-
hops away. Using TCP for IS-IS flooding would potentially open up
IS-IS routers to these forms of attacks.
The common way for a protocol to protect itself against these remote
attack is using the TTL-field in the IP-header of TCP-segments.
When a router send a TCP-segment with IS-IS flooding data, it MUST
set the TTL of the IP-header to 255. When a router receives a TCP-
segment with IS-IS flooding data, it MUST check to see if the TTL is
still 255. If a router receives a TCP-segment with IS-IS flooding
data, and the TTL is less than 255, the router MUST ignore and drop
the TCP-segment.
Identification and Authentication. When a new TCP-session is
established to flood over, each router MUST first send a regular IIH
over the TCP-session. This allows each router to verify that the
other side of the TCP-connection is who they expect it to be. The
IIH has the System-ID and the Interface-ID of the sending router.
Regular authentication methods will place an authentication-TLV
inside the IIH. Regardless of the fact whether routers flood over
layer-2 or flood over TCP, these authentication mechanisms can be
used to verify the other side of the TCP-connection. Sending a
regular IIH for verification and authentication, instead of having
our own new method, guaranteees that Flooding-over-TCP will use new
authentication mechanisms when those get developed in the future.
9. Acknowledgements
The authors would like to express thanks to Filip Martin, Dirk
Goethals and Koen Leclerq for their suggestions and comments.
10. Contributor Addresses
Below is a list of other contributing authors in alphabetical order:
Smit & Van de Velde Expires April 15, 2019 [Page 13]
Internet-Draft IS-IS Flooding over TCP October 2018
Figure 3
11. IANA Considerations
This document requests one new TLV code-point, to be used in IIHs
12. References
12.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997,
<http://xml.resource.org/public/rfc/html/rfc2119.html>.
[2] Lapukhov, P., Premji, A., and J. Mitchell, Ed., "Use of
BGP for Routing in Large-Scale Data Centers", RFC 7938,
DOI 10.17487/RFC7938, August 2016,
<https://www.rfc-editor.org/info/rfc7938>.
12.2. Informative References
[3] International Standard 10589, "Intermediate System to
Intermediate System intra- domain routeing information
exchange protocol for use in conjunction with the protocol
for providing the connectionless-mode network service (ISO
8473), Second Edition.", 2002.
[4] Patel, K., Lindem, A., and W. Henderickx, "Link State
Vector Routing (LSVR)", August 2018.
[5] Przygienda, T., Sharma, A., Thubert, P., Atlas, A., and J.
Drake, "Routing in Fat Trees (RIFT)", June 2018.
Authors' Addresses
Henk Smit (editor)
Email: hhw.smit@xs4all.nl
Gunter Van de Velde
Nokia
Copernicuslaan 50
2018 Antwerp
Belgium
Email: gunter.van_de_velde@nokia.com
Smit & Van de Velde Expires April 15, 2019 [Page 14]