7

To make my question as simple as possible, I put together a quick scenario:

  1. Area 0 spans two data centers with multiple routers/networks in each.

  2. Area 0 has two ABR's connected to area 1 that connect to the same router in area 1. One area 0,1 ABR is in each data center. These ABR's also happen to be WAN routers, so they are used to interconnect the data centers as well in area 0. Area 1 is a standard area.

  3. Area 0 becomes partitioned (split) due to WAN/MAN link(s) between the data centers going down.

See diagram:

Area 0 Split

Based on reading the OSPFv2 RFC and a lot of other info on the Internet, I assume the following:

A. A partitioned backbone acts as two separate area 0's and they no longer know about each other.

B. Each area 0 is fully functional for intra-area routing within its own partition.

C. Functionality between each area 0 and area 1 is fully functional. Area 1 gets area 0 summaries from each partition and the ABR's send area 1 summaries into each area 0 partition. External routes from each area 0 partition also flood into area 1, along with type 4 LSA's for ASBR's.

D. Routers in area 0 A can't get to networks in area 0 B, and vice versa because there is no virtual link through area 1. Since there is no virtual link, no routing information from area 0 A will be shared with area 0 B that an ABR learns in area 1 (and vice versa).

Am I correct, or am I misunderstanding something? My assumptions are based on the distance vector / split-horizon behavior between areas. In the quick drawing I did, that means that R1 will flood area 0 summaries into area 1, which R4 will learn in area 1, but R4 will assume the area 0 it is directly connected to is the only area 0, so it won't even think about sending any routing info from those summaries "back into area 0".

Obviously this isn't desired behavior for a working design, but if I'm understanding correctly, then this is how I want my network to fail if my two data centers lose connectivity between each other. I've inherited a single area OSPF domain and I want to break all branch site routers off into a separate area so that if area 0 splits, traffic between data centers won't traverse branch site WAN links through routers that are connected to both data centers.

I also do some OSPF to BGP redistribution and I don't want an ASBR at one data center redistributing routes from networks at the other data center if its only path to them requires it to transit a dual homed branch office on a slow link.

Thanks for any insight.

  • Have you considered what will happen if the link between R1 and R7 fails? Do you want traffic to traverse the data center link to get to the left data center? – Ron Trunk Apr 11 '15 at 1:29
  • Yes - if the link between R1 and R7 goes down, I do want traffic to use the backup data center to gain access to the primary data center. In my real life scenario, they located within a few miles and have high bandwidth links connecting them, but there is still a service provider involved, so I want to account for what happens if connectivity between them goes down - although that connectivity is extremely redundant. – mdm Apr 13 '15 at 15:24
  • If you really want to know what will happen, I recommend you simulate on a lab. (gns3 will do). – pulsar12 Jun 14 '15 at 9:33
  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer. – Ron Maupin Aug 11 '17 at 15:00
  • What if you add a PWE R1-R7-R4 with a high OSPF cost? – Augustin-Dan Almasan Feb 2 '18 at 10:02
3

After more thoroughly combing through the RFC, I'm certain that the expected behavior I mentioned in my post is accurate.

Intra-area routing within each area (area 1, area 0(a), and area 0(b)) will work as expected.

Area 0 summaries will still flood to area 1 from each area 0 partition, giving area 1 all necessary routing information for both area 0 partitions.

Area 1 summaries will still flood to both area 0 partitions from area 1, allowing both area 0 partitions to know about area 1 routes.

Area 1 will not send area 0 summaries back into area 0, so split area 0 partitions will no longer know about each other and will not try to transit area 1 to get to each other (unless a virtual link through area 1 is created).

This is my desired behavior for a failure scenario based on my circumstances. If all of the redundant links between my data centers go down, or I need to perform certain types of maintenance, I don't want data center to data center traffic (mostly backups / off-site replication) saturating my branch site WAN links. I could apply policing on the WAN links for transit traffic between data centers, but the little bit of bandwidth I could give that traffic would be useless anyway - and that would require my team to maintain more config.

If anyone has any questions about this, feel free to comment and I will try to find the answers.

  • So I'm just going to ask, why would Area 1 not send summaries to a split Area 0? The split horizon rule wouldn't necessarily apply since the 2 split area 0s are on separate interfaces of R7. I'm just curious what would be preventing that? – Robert May 14 '15 at 17:08
  • Edit - sorry, I just went and re-read and looked at the scenario again. R1 and R4 are the ABR's between Area 0 and 1. R7 is connected to both ABR's and will flood the summaries (in area 1). R1 and R4, won't, however flood summaries back into Area 0 that it did not generate, and it is only going to generate summaries for Area 1 to flood into Area 0. It will also flood summaries learned in Area 0 to Area 1 as well as summaries it generates for Area 0. – mdm May 15 '15 at 17:50
  • OSPF v2 RFC 12.4.3 - "Note that only intra-area routes are advertised into the backbone, while both intra-area and inter-area routes are advertised into the other areas." – mdm May 15 '15 at 17:59
1

I think you're correct. The key point is ABR (R1 and R4), since they decide the flooding between areas and exchange area information in backbone area. However, the idea can be easier to understand. In RFC2328:

3.1. The backbone of the Autonomous System

The OSPF backbone is the special OSPF Area 0 (often written as Area 0.0.0.0, since OSPF Area ID’s are typically formatted as IP addresses). The OSPF backbone always contains all area border routers. The backbone is responsible for distributing routing information between non-backbone areas. The backbone must be contiguous. However, it need not be physically contiguous; backbone connectivity can be established/maintained through the configuration of virtual links.

3.7. Partitions of areas

However, in order to maintain full routing after the partition, an address range must not be split across multiple components of the area partition. Also, the backbone itself must not partition. If it does, parts of the Autonomous System will become unreachable. Backbone partitions can be repaired by configuring virtual links (see Section 15).

So we know an OSPF autonomous system can only have a backbone area. Based on the scenario you presented, after backbone area is splited, it's no longer a single OSPF autonomous system, but two OSPF autonomous systems [Area 0(a), Area 1] and [Area 0(b), Area 1]. So both autonomous systems have routing information of Area 1, which is the behavior you desired.

  • Your explanation regarding looking at it as having two separate AS's and both connecting to the same area 1 and having the same area 1 routing information is very good. I like that since it makes things really easy to grasp. Thanks! – mdm Dec 16 '15 at 0:32
0

In short ABR will not pass type 3 LSAs to any other area unless it is received over the area 0. So here in this case, R1 or R4 are receiving the split area 0's type 3 LSAs, and they don't pass it back to area0s or any other area. This is the original loop avoidance of OSPF.

Thanks, Madhu

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.