This section introduces the problem space and outlines the solution. Some of the terms may be unfamiliar to readers without extensive IS-IS background; for such readers, the terminology is provided in
Section 2.1.
Due to the inherent properties of link-state protocols, the number of IS-IS routers within a flooding domain is limited by processing and flooding overhead on each node. While that number can be maximized by well-written implementations and techniques such as exponential backoffs, IS-IS will still reach a saturation point where no further routers can be added to a single flooding domain. In some L2 backbone deployment scenarios, this limit presents a significant challenge.
The standard approach to increasing the scale of an IS-IS deployment is to break it up into multiple L1 flooding domains and a single L2 backbone. This works well for designs where an L2 backbone connects L1 access topologies, but it is limiting where a single, flat L2 domain is supposed to span large number of routers. In such scenarios, an alternative approach could be to consider multiple L2 flooding domains that are connected together via L1 flooding domains. In other words, L2 flooding domains are connected by "L1/L2 lanes" through the L1 areas to form a single L2 backbone again. Unfortunately, in its simplest implementation, this requires the inclusion of most, or all, of the transit L1 routers as L1/L2 to allow traffic to flow along optimal paths through those transit areas. Consequently, such an approach fails to reduce the number of L2 routers involved and, with that, fails to increase the scalability of the L2 backbone as well.
Figure 1 is an example of a network where a topologically rich L1 area is used to provide transit between six different L2-only routers (R1-R6). Note that the six L2-only routers do not have connectivity to one another over L2 links. To take advantage of the abundance of paths in the L1 transit area, all the intermediate systems could be placed into both L1 and L2, but this essentially combines the separate L2 flooding domains into a single one, again triggering the maximum L2 scale limitation we were trying to address in first place.
+====+ +=======+ +=======+ +======-+ +====+
I R1 I I R10 +-------------+ R20 +---------------+ R30 I I R4 I
I L2 +--+ L1/L2 I I L1 I I L1/L2 +--+ L2 I
I I I + +--+ I +------------+ I I I
+====+ ++====+=+ | +===+===+ | +=+==+=++ +====+
| | | | | | |
| | | | | +-----------+ |
| +-------+ | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
+====+ ++=====-+ | | +===+===+--+ | +======++ +====+
I R2 I I R11 I | | I R21 I | I R31 I I R5 I
I L2 +--+ L1/L2 +-------------+ L1 +---------------+ L1/L2 +--+ L2 I
I I I I | | I I | +-------+ I I I
+====+ ++=====-+ | | ++==+==++ | | +======++ +====+
| | | | | | | | |
| +---------------+ | | | | | |
| | | | | | | | |
| | +----------------+ | +-----------------+ |
| | | | | | | | |
+====+ ++=+==+=+ +-------+===+===+-----+ | ++=====++ +====+
I R3 I I R12 I I R22 I | + R32 I I R6 I
I L2 +--+ L1/L2 I I L1 +-------+ I L1/L2 +--+ L2 I
I I I +-------------+ +---------------+ I I I
+====+ +=======+ +=======+ +=======+ +====+
A more effective solution would allow the reduction of the number of links and routers exposed in L2, while still utilizing the full L1 topology when forwarding through the network.
[
RFC 8099] describes Topology Transparent Zones (TTZ) for OSPF. The TTZ mechanism represents a group of OSPF routers as a full mesh of adjacencies between the routers at the edge of the group. A similar mechanism could be applied to IS-IS as well. However, a full mesh of adjacencies between edge routers (or L1/L2 nodes) significantly limits the practically achievable scale of the resulting topology. The topology in
Figure 1 has six L1/L2 nodes.
Figure 2 illustrates a full mesh of L2 adjacencies between the six L1/L2 nodes, resulting in (5 * 6)/2 = 15 L2 adjacencies. In a somewhat larger topology containing 20 L1/L2 nodes, the number of L2 adjacencies in a full mesh rises to 190.
+----+ +-------+ +-------------------------------+-------+ +----+
| R1 | | R10 | | | R30 | | R4 |
| L2 +--+ L1/L2 +------------------------------------+ L1/L2 +--+ L2 |
| | | | | | | | |
+----+ ++-+-+--+-+ | +-+--+---++ +----+
| | | | | | | |
| +----------------------------------------------+ |
| | | | | | | |
| +-----------------------------------+ | | | |
| | | | | | | |
| +----------------------------------------+ | |
| | | | | | | |
+----+ ++-----+- | | | | -----+-++ +----+
| R2 | | R11 | | | | | | R31 | | R5 |
| L2 +--+ L1/L2 +------------------------------------+ L1/L2 +--+ L2 |
| | | | | | | | | | | |
+----+ ++------+------------------------------+ | | +----+-++ +----+
| | | | | | | |
| | | | | | | |
| +-------------------------------------------+ |
| | | | | | | |
| | | | +----------+ |
| | | | | | | |
| | | | +-----+ | |
| | | | | | | |
+----+ ++----+-+-+ | +-+-+--+-++ +----+
| R3 | | R12 | | L2 adjacency | R32 | | R6 |
| L2 +--+ L1/L2 +------------------------------------+ L1/L2 +--+ L2 |
| | | | | | | | |
+----+ +-------+----+ +-------+ +----+
BGP, as specified in [
RFC 4271], faced a similar scaling problem, which has been solved in many networks by deploying BGP route reflectors [
RFC 4456]. We note that BGP route reflectors do not necessarily have to be in the forwarding path of the traffic. This non-congruity of forwarding and control path for BGP route reflectors allows the control plane to scale independently of the forwarding plane and represents an interesting degree of freedom in network architecture.
We propose in this document a similar solution for IS-IS and call it "flood reflection" in a fashion analogous to "route reflection". A simple example of what a flood reflector control plane approach would look like is shown in
Figure 3, where router R21 plays the role of a flood reflector. Each L1/L2 ingress/egress router builds a tunnel to the flood reflector, and an L2 adjacency is built over each tunnel. In this solution, we need only six L2 adjacencies, instead of the 15 needed for a full mesh. In a somewhat larger topology containing 20 L1/L2 nodes, this solution requires only 20 L2 adjacencies, instead of the 190 needed for a full mesh. Multiple flood reflectors can be used, allowing the network operator to balance between resilience, path utilization, and state in the control plane. The resulting L2 adjacency scale is R*n, where R is the number of flood reflectors used and n is the number of L1/L2 nodes. This compares quite favorably with n*(n-1)/2 L2 adjacencies required in a topologically fully meshed L2 solution.
+----+ +-------+ +-------+ +----+
| R1 | | R10 | | R30 | | R4 |
| L2 +--+ L1/L2 +--------------+ +-----------------+ L1/L2 +--+ L2 |
| | | | L2 adj | | L2 adj | | | |
+----+ +-------+ over | | over +-------+ +----+
tunnel | | tunnel
+----+ +-------+ +--+---+--+ +-------+ +----+
| R2 | | R11 | | R21 | | R31 | | R5 |
| L2 +--+ L1/L2 +-----------+ L1/L2 +--------------+ L1/L2 +--+ L2 |
| | | | L2 adj | flood | L2 adj | | | |
+----+ +-------+ over |reflector| over +-------+ +----+
tunnel +--+---+--+ tunnel
+----+ +-------+ | | +-------+ +----+
| R3 | | R12 +--------------+ +-----------------+ R32 | | R6 |
| L2 +--+ L1/L2 | L2 adj L2 adj | L1/L2 +--+ L2 |
| | | | over over | | | |
+----+ +-------+ tunnel tunnel +-------+ +----+
As illustrated in
Figure 3, when R21 plays the role of flood reflector, it provides L2 connectivity among all of the previously disconnected L2 islands by reflooding all L2 Link State Protocol Data Unit (LSPs). At the same time, R20 and R22 in
Figure 1 remain L1-only routers. L1-only routers and L1-only links are not visible in L2. In this manner, the flood reflector allows us to provide L2 control plane connectivity in a manner more scalable than a flat L2 domain.
As described so far, the solution illustrated in
Figure 3 relies only on currently standardized IS-IS functionality. Without new functionality, however, the data traffic will traverse only R21. This will unnecessarily create a bottleneck at R21 since there is still available capacity in the paths crossing the L1-only routers R20 and R22 in
Figure 1.
Hence, additional functionality is compulsory to allow the L1/L2 edge nodes (R10-12 and R30-32 in
Figure 3) to recognize that the L2 adjacency to R21 should not be used for forwarding. The L1/L2 edge nodes should forward traffic that would normally be forwarded over the L2 adjacency to R21 over L1 links instead. This would allow the forwarding within the L1 area to use the L1-only nodes and links shown in
Figure 1 as well. It allows networks that use the entire forwarding capacity of the L1 areas to be built, while at the same time it introduces control plane scaling benefits that are provided by L2 flood reflectors.
It is expected that deployment at scale, and suitable time in operation, will provide sufficient evidence to either put this extension into a Standards Track document or suggest necessary modifications to accomplish that.
The remainder of this document defines the remaining extensions necessary for a complete flood reflection solution:
-
It defines a special "flood reflector adjacency" built for the purpose of reflecting flooding information. These adjacencies allow "flood reflectors" to participate in the IS-IS control plane without necessarily being used in the forwarding plane. Maintenance of such adjacencies is a purely local operation on the L1/L2 ingress and flood reflectors; it does not require replacing or modifying any routers not involved in the reflection process. In practical deployments, it is far less tricky to just upgrade the routers involved in flood reflection rather than have a flag day for the whole IS-IS domain.
-
It specifies an (optional) full mesh of tunnels between the L1/L2 ingress routers, ideally load-balancing across all available L1 links. This harnesses all forwarding paths between the L1/L2 edge nodes without injecting unneeded state into the L2 flooding domain or creating "choke points" at the "flood reflectors" themselves. The specification is agnostic as to the tunneling technology used but provides enough information for automatic establishment of such tunnels if desired. The discussion of IS-IS adjacency formation and/or liveness discovery on such tunnels is outside the scope of this specification and is largely a choice of the underlying implementation. A solution without tunnels is also possible by introducing the correct scoping of reachability information between the levels. This is described in more detail later.
-
Finally, this document defines support of reflector redundancy and an (optional) way to auto-discover and annotate flood reflector adjacencies on advertisements. Such additional information in link advertisements allows L2 nodes outside the L1 area to recognize a flood reflection cluster and its adjacencies.