RFC 3509
Alternative Implementations of OSPF Area Border Routers
RFC 3509: Alternative Implementations of OSPF Area Border Routers β¨
This one's from April 2003 and it's Informational, so it's a "here's how some real routers do it" doc, not a rule book π. The authors are A. Zinin (Alcatel), A. Lindem (Redback Networks), and D. Yeung (Procket Networks), all from the Network Working Group. It doesn't list anything it obsoletes or updates π¦.
Status of this Memo π
This memo gives info to the Internet community π«Ά. It does not specify an Internet standard of any kind, and distribution is unlimited.
Copyright Notice Β©οΈ
Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract πΈ
Okay so, OSPF (Open Shortest Path First) is a link-state intra-domain routing protocol that routes IP networks π. The OSPF spec's definition of an Area Border Router (ABR) doesn't require a router with multiple attached areas to have a backbone connection, BUT it's actually necessary for routing to inter-area and external destinations to work π. If that's not met, all traffic headed to areas that aren't connected to that ABR, or outside the OSPF domain, gets dropped π. This doc describes alternative ABR behaviors that Cisco and IBM routers implement π₯.
1 Overview π
1.1 Introduction π§
An OSPF routing domain can be split into smaller subdomains called areas, which limit how far LSA flooding goes β¨. According to [Ref1], a router attached to multiple areas is called an "area border router" (ABR) π. An ABR's main job is giving its attached areas Type-3 and Type-4 LSAs, which describe routes and AS boundary routers (ASBRs) in other areas, and doing the actual inter-area routing π .
1.2 Motivation π
In OSPF domains, the area layout is restricted: there has to be a backbone area (area 0), and every other area needs either a physical or virtual connection to the backbone πΈ. Why the star shape? OSPF inter-area routing uses the distance-vector approach, and a strict area hierarchy helps avoid the "counting to infinity" problem π. OSPF stops inter-area routing loops with a split-horizon mechanism. That lets ABRs inject into the backbone only Summary-LSAs derived from the intra-area routes, and it limits the ABRs' SPF calculation to only consider Summary-LSAs in the backbone area's link-state database π§ .
That last restriction causes a problem when an ABR has no backbone connection (in OSPF, an ABR doesn't need to be attached to the backbone) π¬. Here's a sample OSPF domain, Figure 1:
. .
. Area 0 .
+--+ +--+
..|R1|.. ..|R2|..
. +--+ .. +--+ .
. .. .
. +--+ .
. Area1 |R3| Area2 .
. +--+ +--+ .
. .. |R4| .
. . . +--+ .
....... .......
Figure 1. ABR dropping transit traffic
In this example, R1, R2, and R3 are ABRs. R1 and R2 have backbone connections, but R3 doesn't π¦.
Following section 12.4.1 of [Ref1], R3 identifies itself as an ABR by setting the B bit in its router-LSA. Since it's an ABR, R3 can only consider summary-LSAs from the backbone when building its routing table (per section 16.2 of [Ref1]). So it has no inter-area routes, just intra-area routes from both Area 1 and Area 2 π. As a result, per section 12.4.3 of [Ref1], R3 only originates summary-LSAs into Areas 1 and 2 for destinations in the directly attached areas. That means Area 2 gets the summary-LSAs for Area 1, and Area 1 gets the summary-LSAs for Area 2 π.
Meanwhile, R2 is an ABR connected to the backbone, so it injects summary-LSAs into Area 2 describing destinations in Area 0 (the backbone), Area 1, and other areas reachable through the backbone π.
Here's where it gets messy π. Internal router R4 calculates its routes to the backbone and to areas other than Area 1 via R2. But the topology of Area 2 could make the best path from R4 to R2 go through R3. So all traffic headed to the backbone and backbone-attached areas goes through R3 π§. R3 only has intra-area routes for Areas 1 and 2, so it drops all traffic not destined for the areas directly attached to it π. The same thing can happen when a backbone-connected ABR loses all its adjacencies in the backbone. Even if other ABRs in the attached areas are working fine, all traffic going to the backbone (whether it's destined for the backbone or for other areas) gets dropped π.
In a standard OSPF implementation, you can fix this with Virtual Links (see section 15 of [Ref1] for more details). In that case, R3 gets a virtual backbone connection, forms an adjacency over it, receives all LSAs directly from a backbone-attached router (R1 or R2, or both, in our example), and installs intra- or inter-area routes π«Ά.
Virtual links are an unavoidable technique for repairing a partitioned backbone area, BUT in this situation they add extra configuration headaches and system traffic overhead π©.
Standard ABR behavior also falls short in another case: when you need redundant connectivity to an ASBR through several different OSPF areas. This lets a provider aggregate all their customers that connect through one access point into a single area, while still offering a redundant connection through another access point in a different area, as in Figure 2 π.
. .
. Area 0 .
+--+ +--+
..|R1|.. ..|R2|..
. +--+ .. +--+ .
. .. .
. .. .
. Area1 .. Area2 .
. .. .
. .. .
. +--+ .
.......|R3|.......
ASBR+--+
/..\
--+- -+--
CN1 CNx
Customer Networks (CN1--CNx) Advertised
as AS External or NSSA External Routes
Figure 2. Dual Homed Customer Router
This technique is already used in a number of networks, including one from a major provider π’.
The next section describes the alternative ABR behaviors implemented in Cisco and IBM routers π . The changes are only in the ABR definition and inter-area route calculation. Every other part of standard OSPF stays the same πΈ.
These solutions target the case where an ABR has no backbone connection. They assume a router attached to multiple areas without a backbone connection is not an ABR, and should function as a router internal to every attached area π§. It's basically emulating separate OSPF processes running for each area, each supplying routes to the routing table β¨. This fixes the examples above by not dropping transit traffic π. Just note that a router doing this isn't a real border router, since it doesn't originate summary-LSAs π. Still, this behavior might be desirable in certain situations π.
Also, the proposed solutions don't get rid of the need for virtual link configuration when an area has no physical backbone connection at all π. These methods only improve things for a router connecting two or more backbone-attached areas π.
2 Changes to ABR Behavior π
2.1 Definitions π
These are the definitions this doc uses to describe the new ABR behaviors:
Configured area: An area counts as configured if the router has at least one interface, in any state, assigned to that area.
Actively Attached area: An area counts as actively attached if the router has at least one interface in that area whose state is something other than Down.
Active Backbone Connection: A router counts as having an active backbone connection if the backbone area is actively attached AND there's at least one fully adjacent neighbor in it π¦.
Area Border Router (ABR):
- Cisco Systems Interpretation: A router counts as an ABR if it has more than one area Actively Attached and one of them is the backbone area π.
- IBM Interpretation: A router counts as an ABR if it has more than one Actively Attached area and the backbone area is Configured π₯.
2.2. Implementation Details
okay so these are the changes to base OSPF from [Ref1] that make the whole thing work π β¨
- The algorithm for Type 1 LSA (router-LSA) origination is changed to prevent a multi-area connected router from identifying itself as an ABR by the bit B (as described in section 12.4.1 of [Ref1]) until it considers itself as an ABR according to the definitions given in section 2.1. π¦
- The algorithm for the routing table calculation is changed to allow the router to consider the summary-LSAs from all attached areas if it is not an ABR, but has more than one attached area, or it does not have an Active Backbone Connection. Definitions of the terms used in this paragraph are given in section 2.1. πΈ
So, the paragraph 1 of section 16.2 of [Ref1] should be interpreted as follows:
"The inter-area routes are calculated by examining summary-LSAs. If the router is an ABR and has an Active Backbone Connection, only backbone summary-LSAs are examined. Otherwise (either the router is not an ABR or it has no Active Backbone Connection), the router should consider summary-LSAs from all Actively Attached areas..."
- For Cisco ABR approach, the algorithm for the summary-LSAs origination is changed to prevent loops of summary-LSAs in situations where the router considers itself an ABR but doesn't have an Active Backbone Connection (and, consequently, examines summaries from all attached areas). The algorithm is changed to allow an ABR to announce only intra-area routes in such a situation. π₯
So, the paragraph 2 of subsection 12.4.3 of [Ref1] should be interpreted as follows:
"Summary-LSAs are originated by area border routers. The precise summary routes to advertise into an area are determined by examining the routing table structure (see Section 11) in accordance with the algorithm described below. Note that while only intra-area routes are advertised into the backbone, if the router has an Active Backbone Connection, both intra-area and inter-area routes are advertised into the other areas; otherwise, the router only advertises intra-area routes into non-backbone areas."
For this policy to be applied we change steps 6 and 7 in the summary origination algorithm to be as follows:
Step 6:
"Else, if the destination of this route is an AS boundary router, a summary-LSA should be originated if and only if the routing table entry describes the preferred path to the AS boundary router (see Step 3 of Section 16.4). If so, a Type 4 summary-LSA is originated for the destination, with Link State ID equal to the AS boundary router's Router ID and metric equal to the routing table entry's cost. If the ABR performing this algorithm does not have an Active Backbone Connection, it can originate Type 4 summary-LSA only if the type of the route to the ASBR is intra-area. Note: Type 4 summary-LSAs should not be generated if Area A has been configured as a stub area."
Step 7:
"Else, the Destination type is network. If this is an inter-area route and the ABR performing this algorithm has an Active Backbone Connection, generate a Type 3 summary-LSA for the destination, with Link State ID equal to the network's address (if necessary, the Link State ID can also have one or more of the network's host bits set; see Appendix E for details) and metric equal to the routing table cost."
The changes in the ABR behavior described in this section allow a multi-area connected router to successfully route traffic destined for the backbone and other areas. Note that if the router does not have a backbone area Configured it does not actively attract inter-area traffic, because it does not consider itself an ABR and does not originate summary-LSAs. It still can forward traffic from one attached area to another along intra-area routes in case other routers in corresponding areas have the best inter-area paths over it, as described in section 1.2. this part is lowkey the most important bit π
By processing all summaries when the backbone is not active, we prevent the ABR, which has just lost its last backbone adjacency, from dropping any packets going through the ABR in question to another ABR and destined towards the backbone or other areas not connected to the ABR directly. π«Ά
3. Virtual Link Treatment β¨
The Cisco ABR approach described in this document requires an ABR to have at least one active interface in the backbone area. This requirement may cause problems with virtual links in those rare situations where the backbone area is purely virtual, as shown in Figure 3, and the state of the VL is determined as in [Ref1].
....... ........... ......
. . . .
+--+ VL +--+
|R1|***********|R2|
+--+ +--+
Area 1 . . Area 2 . . Area 3
....... ........... ......
Figure 3. Purely Virtual Backbone
If R1 and R2 treat virtual links as in [Ref1], their virtual links will never go up, because their router-LSAs do not contain the B-bit, which is, in turn, because the routers do not have active interfaces (virtual links) in the backbone and do not consider themselves ABRs. π
Note that this problem does not appear if one of the routers has a real interface in the backbone, as it usually is in real networks. π
Though the situation described is deemed to be rather rare, implementations supporting Cisco ABR behavior may consider changing VL-specific code so that a virtual link is reported up (an InterfaceUp event is generated) when a router with corresponding router-ID is seen via Dijkstra, no matter whether its router-LSA indicates that it is an ABR or not. This means that checking of configured virtual links should be done not in step 4 of the algorithm in 16.1 of [Ref1] when a router routing entry is added, but every time a vertex is added to the SPT in step 3 of the same algorithm. π§
4. Compatibility β¨
Hmm, not quite: the original numbering puts Compatibility at top level, so the heading is below.
4. Compatibility β¨
The changes of the OSPF ABR operations do not influence any aspects of the router-to-router cooperation and do not create routing loops, and hence are fully compatible with standard OSPF. Proof of compatibility is outside the scope of this document. π
5. Deployment Considerations π
This section discusses the deployments details of the ABR behaviors described in this document. Note that this approach is fully compatible with standard ABR behavior, so ABRs acting as described in [Ref1] and in this document can coexist in an OSPF domain and will function without problems. π
Deployment of ABRs using the alternative methods improves the behavior of a router connected to multiple areas without a backbone attachment, but can lead to unexpected routing asymmetry, as described below. π
Consider an OSPF domain depicted in Figure 4.
. Backbone .
. .
. --------------------- .
. |1 1| .
..+--+.............+--+..
..|R1|..... ....|R4|..
. +--+ . . +--+ .
. 1| . . /4 .
. | 8 +--+ 4 / .
. | +-|R3|---+ .
. 1| / +--+\4 .
. +--+ / . . \ 4 +--+ .
. |R2|/8 . . +--|R5| .
. +--+ . . +--+ .
. | . . | .
. --------- . . -------- .
. net N . . net M .
. . . .
. Area 1 . . Area 2 .
........... ..........
Figure 4. Inter-area routing asymmetry
Assume that R3 uses the approach described in this document. In this case R2 will have inter-area routes to network M via ABR R1 only. R5 in turn will have its inter-area route to network N via R4, but as far as R4 is only reachable via R3, all traffic destined to network N will pass through R3. R3 will have an intra-area route to network N via R2 and will, of course, route it directly to it (because intra-area routes are always preferred over inter-area ones). Traffic going back from network N to network M will pass through R2 and will be routed to R1, as R2 will not have any inter-area routes via R3. So, traffic from N to M will always go through the backbone while traffic from M to N will cross the areas directly via R3 and, in this example, will not use a more optimal path through the backbone. π€―
Note that this problem is not caused by the fact that R3 uses the alternative approach. The reason for attracting the attention to it is that R3 is not really functioning as an ABR in case this new behavior is used, i.e., it does not inject summary-LSAs into the attached areas, but inter-area traffic can still go through it. this is the asymmetry plot twist, bestie π
6. Security Considerations π
The alternative ABR behaviors specified in this document do not raise any security issues that are not already covered in [Ref1]. π‘οΈ
7. Acknowledgements π
Authors would like to thank Alvaro Retana, Russ White, and Liem Nguyen for their review of the document. π
8. Disclaimer π·
This document describes OSPF ABR implementations of respective vendors "as is", only for informational purposes, and without any warranties, guarantees or support. These implementations are subject to possible future changes. For the purposes of easier deployment, information about software versions where described behavior was integrated is provided below.
Initial Cisco ABR implementation (slightly different from the one described in this memo, requiring non-backbone areas to be configured, and not necessarily actively attached in the ABR definition) was introduced in Cisco IOS (tm) version 11.1(6). Cisco ABR behavior described in this document was integrated in Cisco IOS (tm) in version 12.1(3)T.
The ABR behavior described as IBM ABR approach was implemented by IBM in IBM Nways Multiprotocol Routing Services (MRS) 3.3.
Note that the authors do not intend to keep this document in sync with actual implementations. π«
10. References π
[Ref1] Moy, J., "OSPF version 2", STD 54, RFC 2328, April 1998.
11. Authors' Addresses π¦
Alex Zinin
Alcatel
EMail: zinin@psg.com
Derek M. Yeung
Procket Networks
1100 Cadillac Ct
Milpitas, CA 95035
Phone: 408-635-7911
EMail: myeung@procket.com
Acee Lindem
Redback Networks
102 Carric Bend Court
Cary, NC 27519 USA
Phone: 919-387-6971
EMail: acee@redback.com
12. Full Copyright Statement π
π okay bestie, this part is legal boilerplate, so I'm keeping every word exactly as written. Nothing gets paraphrased, so the permissions and the disclaimer mean exactly what they meant. π
Copyright (C) The Internet Society (2003). All Rights Reserved. β¨
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. π¦
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. π
Acknowledgement π«Ά
Funding for the RFC Editor function is currently provided by the Internet Society. πΈ
π¦ where this page comes from
- ietf: rfc3509 2003-04
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms