Table Of Contents
Table Of Contents

Step 18c. AS-External LSAs of ‘type 2 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-2 metrics.

When multiple ASBRs advertise the same destination with Type-2 metrics, the selection process is:

  1. Primary: Compare external costs - lowest wins

  2. Tiebreaker (if external costs are equal): Use internal cost to ASBR - lowest wins

Configuration

This configuration is based on Step 18b. Multiple ASBRs advertise the same external destination with Type-2 metrics.

../../../_images/OSPF_Area_External.png

The configuration in omnetpp.ini is the following:

[Config Step18c]
description = "AS-External LSAs of 'type 2 metric' with the same advertised destination"
extends = Step18
network = OSPF_Area_External_Same_Dest

*.R*.ospf.ospfConfig = xmldoc("ASConfig_Area_ExternalRoute_Type2_Dest.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="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="R3>N1" advertisedExternalNetworkMask="255.255.255.0" externalInterfaceOutputCost="10" externalInterfaceOutputType="Type2" />
  </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="R5>N1" advertisedExternalNetworkMask="255.255.255.0" externalInterfaceOutputCost="5" externalInterfaceOutputType="Type2" />
  </Router>

</OSPFASConfig>

Results

With multiple ASBRs using Type-2 metrics for the same destination:

  1. Each router compares the external costs from all ASBRs.

  2. The ASBR with the lowest external cost is preferred.

  3. If external costs are equal, the ASBR with the lowest internal cost (closest to the router) is selected.

  4. All routers in the network see the same external cost, but may select different ASBRs based on internal costs if external costs are equal.

This demonstrates Type-2’s preference for external cost over internal topology, while still using internal cost for intelligent ASBR selection when needed.

Sources: omnetpp.ini, OSPF_Area_External.ned, ASConfig_Area_ExternalRoute_Type2_Dest.xml

Discussion

Use this page in the GitHub issue tracker for commenting on this tutorial.