Step 18a. AS-External LSAs of ‘type 1 metric’ with the same advertised destination¶
Goals¶
The goal of this step is to demonstrate how OSPF selects between multiple ASBRs advertising the same external destination with Type-1 metrics.
When multiple ASBRs advertise the same external network using Type-1 metrics, each router selects the best ASBR based on the total cost (external cost + internal cost to ASBR).
Configuration¶
This configuration is based on Step 18. Multiple ASBRs advertise the same external destination.
The configuration in omnetpp.ini is the following:
[Config Step18a]
description = "AS-External LSAs of 'type 1 metric' with the same advertised destination"
extends = Step18
network = OSPF_Area_External_Same_Dest
*.R*.ospf.ospfConfig = xmldoc("ASConfig_Area_ExternalRoute_Type1_Dest.xml")
*.configurator.config = xml("<config> \
<interface hosts='R3' towards='R4' address='192.168.0.x' netmask='255.255.255.x' /> \
<interface hosts='R4' towards='R3' address='192.168.0.x' netmask='255.255.255.x' /> \
\
<interface hosts='R3' towards='N1.*' address='192.168.9.x' netmask='255.255.255.x' /> \
<interface hosts='R5' towards='N1.*' address='192.168.10.x' netmask='255.255.255.x' /> \
\
<interface among='host1 host2 R1 R2 R3' address='192.168.11.x' netmask='255.255.255.x' /> \
<interface among='R3 R4 R5 host3' address='192.168.22.x' netmask='255.255.255.x' /> \
<interface hosts='N1.host[*]' address='120.100.90.20' netmask='255.255.255.x' /> \
\
<route hosts='host*' destination='*' netmask='0.0.0.0' interface='eth0' /> \
</config>")
*.host*.app[0].destAddresses = "N1.host[0]"
*.configurator.assignDisjunctSubnetAddresses = false
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="R3>R4" mask="R3>R4" />
<AddressRange address="R4>R3" mask="R4>R3" />
</Area>
<Area id="0.0.0.1">
<AddressRange address="R1>switch1" mask="R1>switch1" />
<AddressRange address="R1>R2" mask="R1>R2" />
<AddressRange address="R1>R3" mask="R1>R3" />
<AddressRange address="R2>switch2" mask="R2>switch2" />
<AddressRange address="R2>R1" mask="R2>R1" />
<AddressRange address="R2>R3" mask="R2>R3" />
<AddressRange address="R3>R1" mask="R3>R1" />
<AddressRange address="R3>R2" mask="R3>R2" />
</Area>
<Area id="0.0.0.2">
<AddressRange address="R4>R5" mask="R4>R5" />
<AddressRange address="R5>R4" mask="R5>R4" />
<AddressRange address="R5>switch3" mask="R5>switch3" />
</Area>
<!-- Routers -->
<Router name="R1" RFC1583Compatible="true">
<BroadcastInterface ifName="eth0" areaID="0.0.0.1" interfaceMode="Passive" />
<PointToPointInterface ifName="ppp0" areaID="0.0.0.1" />
<PointToPointInterface ifName="ppp1" areaID="0.0.0.1" />
</Router>
<Router name="R2" RFC1583Compatible="true">
<BroadcastInterface ifName="eth0" areaID="0.0.0.1" interfaceMode="Passive" />
<PointToPointInterface ifName="ppp0" areaID="0.0.0.1" />
<PointToPointInterface ifName="ppp1" areaID="0.0.0.1" />
</Router>
<Router name="R3" RFC1583Compatible="true">
<PointToPointInterface ifName="ppp0" areaID="0.0.0.1" />
<PointToPointInterface ifName="ppp1" areaID="0.0.0.1" />
<PointToPointInterface ifName="ppp2" areaID="0.0.0.0" />
<ExternalInterface toward="N1" advertisedExternalNetworkAddress="120.100.90.0" advertisedExternalNetworkMask="255.255.255.0" externalInterfaceOutputCost="10" externalInterfaceOutputType="Type1" />
</Router>
<Router name="R4" RFC1583Compatible="true">
<PointToPointInterface ifName="ppp0" areaID="0.0.0.2" />
<PointToPointInterface ifName="ppp1" areaID="0.0.0.0" />
</Router>
<Router name="R5" RFC1583Compatible="true">
<BroadcastInterface ifName="eth0" areaID="0.0.0.2" interfaceMode="Passive" />
<PointToPointInterface ifName="ppp0" areaID="0.0.0.2" />
<ExternalInterface toward="N1" advertisedExternalNetworkAddress="120.100.90.0" advertisedExternalNetworkMask="255.255.255.0" externalInterfaceOutputCost="5" externalInterfaceOutputType="Type1" />
</Router>
</OSPFASConfig>
Results¶
With multiple ASBRs advertising the same destination:
Each ASBR originates an AS-External LSA for the same network prefix.
The LSAs may have different external costs.
Each router calculates the total cost to reach the destination via each ASBR: Total Cost via ASBR_X = External Cost (ASBR_X) + Internal Cost to ASBR_X
The router selects the ASBR with the lowest total cost.
Routers in different parts of the topology may select different ASBRs based on their internal costs to each ASBR.
This demonstrates OSPF’s ability to perform intelligent load balancing and path selection for external routes when using Type-1 metrics.
Sources:
omnetpp.ini,
OSPF_Area_External.ned,
ASConfig_Area_ExternalRoute_Type1_Dest.xml
Discussion¶
Use this page in the GitHub issue tracker for commenting on this tutorial.