Step 17a. Make R3 an ABR - advertise its loopback to backbone¶
Goals¶
The goal of this step is to demonstrate one solution to connectivity issues in disconnected areas: making a router an ABR by assigning one of its interfaces (e.g., a loopback) to the backbone area.
When an area is not directly connected to Area 0, connectivity problems arise. One solution is to create an ABR by assigning one of the router’s interfaces to Area 0, effectively connecting the isolated area to the backbone.
Configuration¶
This configuration is based on Step 17. Router R3 is made an ABR by advertising its loopback interface in Area 0.
The configuration in omnetpp.ini is the following:
[Config Step17a]
description = "Make R3 an ABR - advertise its loopback to backbone"
extends = Step17
*.R*.ospf.ospfConfig = xmldoc("ASConfig_Area_Loop_ABR.xml")
The OSPF configuration:
<?xml version="1.0"?>
<OSPFASConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="OSPF.xsd">
<!-- Areas -->
<Area id="0.0.0.0">
<AddressRange address="R1>R2" mask="R1>R2" />
<AddressRange address="R2>R1" mask="R2>R1" />
<AddressRange address="127.0.0.1" mask="255.0.0.0" />
</Area>
<Area id="0.0.0.1">
<AddressRange address="R1>R5" mask="R1>R5" />
<AddressRange address="R1>switch1" mask="R1>switch1" />
<AddressRange address="R5>R1" mask="R5>R1" />
<AddressRange address="R5>R3" mask="R5>R3" />
<AddressRange address="R5>switch5" mask="R5>switch5" />
<AddressRange address="R3>R5" mask="R3>R5" />
<AddressRange address="R3>switch3" mask="R3>switch3" />
</Area>
<Area id="0.0.0.2">
<AddressRange address="R2>switch2" mask="R2>switch2" />
<AddressRange address="R2>R4" mask="R2>R4" />
<AddressRange address="R2>R3" mask="R2>R3" />
<AddressRange address="R4>switch4" mask="R4>switch4" />
<AddressRange address="R4>R2" mask="R4>R2" />
<AddressRange address="R4>R3" mask="R4>R3" />
<AddressRange address="R3>R2" mask="R3>R2" />
<AddressRange address="R3>R4" mask="R3>R4" />
<AddressRange address="R3>switch6" mask="R3>switch6" />
</Area>
<!-- Routers -->
<Router name="R1" RFC1583Compatible="true">
<BroadcastInterface ifName="eth0" areaID="0.0.0.1" interfaceMode="Passive" />
<BroadcastInterface ifName="eth1" areaID="0.0.0.1" />
<BroadcastInterface ifName="eth2" areaID="0.0.0.0" />
</Router>
<Router name="R2" RFC1583Compatible="true">
<BroadcastInterface ifName="eth1" areaID="0.0.0.2" interfaceMode="Passive" />
<BroadcastInterface ifName="eth0" areaID="0.0.0.2" />
<BroadcastInterface ifName="eth2" areaID="0.0.0.2" />
<BroadcastInterface ifName="eth3" areaID="0.0.0.0" />
</Router>
<Router name="R3" RFC1583Compatible="true">
<BroadcastInterface ifName="eth0" areaID="0.0.0.2" />
<BroadcastInterface ifName="eth1" areaID="0.0.0.2" />
<BroadcastInterface ifName="eth2" areaID="0.0.0.1" />
<BroadcastInterface ifName="eth3" areaID="0.0.0.1" interfaceMode="Passive" />
<BroadcastInterface ifName="eth4" areaID="0.0.0.2" interfaceMode="Passive" />
<LoopbackInterface ifName="lo0" areaID="0.0.0.0" />
</Router>
<Router name="R4" RFC1583Compatible="true">
<BroadcastInterface ifName="eth0" areaID="0.0.0.2" />
<BroadcastInterface ifName="eth1" areaID="0.0.0.2" />
<BroadcastInterface ifName="eth2" areaID="0.0.0.2" interfaceMode="Passive" />
</Router>
<Router name="R5" RFC1583Compatible="true">
<BroadcastInterface ifName="eth0" areaID="0.0.0.1" interfaceMode="Passive" />
<BroadcastInterface ifName="eth1" areaID="0.0.0.1" />
<BroadcastInterface ifName="eth2" areaID="0.0.0.1" />
</Router>
</OSPFASConfig>
Results¶
By making R3 an ABR (with presence in both Area 0 and another area):
R3 now has interfaces in the backbone area (its loopback) and in another area.
R3 can generate Summary LSAs for both areas, providing inter-area connectivity.
Routes that were previously unreachable or suboptimal are now properly computed.
This solves some connectivity issues but may not be the optimal solution for all topologies.
This demonstrates one approach to connecting areas, though virtual links (shown in later steps) are often more appropriate for complex topologies.
Sources:
omnetpp.ini,
OSPF_LoopAvoidance.ned,
ASConfig_Area_Loop_ABR.xml
Discussion¶
Use this page in the GitHub issue tracker for commenting on this tutorial.