Table Of Contents
Table Of Contents

Step 5a. Mismatched Parameters between two OSPF neighbors

Goals

The goal of this step is to demonstrate that OSPF routers will not form a full adjacency if certain parameters are mismatched.

For OSPF neighbors to successfully form an adjacency, several parameters must match:

  • Area ID: Must be the same on both sides of the link.

  • Hello interval and Dead interval: Must match.

  • Authentication: Type and keys must match.

  • Network type: While not always required to match exactly, mismatches can prevent proper adjacency formation.

  • Stub area flag: Must match if the area is configured as a stub.

When these parameters mismatch, routers may get stuck in states like 2-Way or Init, unable to reach the Full state.

Configuration

This configuration is based on Step 5. The OSPF configuration file introduces a parameter mismatch:

  • R1 and R2: Mismatched Hello intervals

../../../_images/InterfaceNetworkType.png

The configuration in omnetpp.ini is the following:

[Config Step5a]
description = "Mismatched Parameters between two OSPF neighbor"
network = InterfaceNetworkType

# R1 and R2 will not establish full adjacency because of mismatch Hello interval

*.configurator.configureIsolatedNetworksSeparatly = true

*.configurator.config = xml("<config> \
                                <interface hosts='**' address='10.x.x.x' netmask='255.x.x.x'/> \
                                <route hosts='host*' destination='*' netmask='0.0.0.0' interface='eth0' /> \
                             </config>")

**.visualizer.interfaceTableVisualizer.displayInterfaceTables = true
**.visualizer.interfaceTableVisualizer.nodeFilter = "not *.N*"

*.visualizer.routingTableVisualizer[0].destinationFilter = "host5"
*.visualizer.routingTableVisualizer[1].destinationFilter = "host0"

*.R*.ospf.ospfConfig = xmldoc("ASConfig_mismatch.xml")


# application parameters
*.host8.numApps = 1
*.host8.app[0].typename = "PingApp"
*.host8.app[0].destAddr = "host11"
*.host8.app[0].startTime = 60s

# TODO: full adjacency forms when it shouln't: R4 and R5 will not establish full adjacency because of mismatch OSPF network type

The OSPF configuration:

<?xml version="1.0"?>
<OSPFASConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="OSPF.xsd">
  
  <Router name="R1" RFC1583Compatible="true">
    <PointToPointInterface ifName="ppp0" interfaceOutputCost='0' helloInterval="10" />
    <BroadcastInterface ifName="eth0" interfaceOutputCost='0' />
  </Router>
  
  <Router name="R2" RFC1583Compatible="true">
    <PointToPointInterface ifName="ppp0" interfaceOutputCost='0' helloInterval="15" />
    <PointToPointInterface ifName="ppp1" interfaceOutputCost='0' />
  </Router>
  
  <Router name="R4" RFC1583Compatible="true">
    <BroadcastInterface ifName="eth0" interfaceOutputCost='0' />
    <BroadcastInterface ifName="eth1" interfaceOutputCost='0' />
  </Router>
  
  <Router name="R5" RFC1583Compatible="true">
    <BroadcastInterface ifName="eth0" interfaceOutputCost='0' />
<!--     <PointToPointInterface ifName="eth1" interfaceOutputCost='0' /> TODO: this should prevent full adjacency, but it doesn't-->
    <BroadcastInterface ifName="eth1" interfaceOutputCost='0' />
  </Router>
  
  <Router name="**" RFC1583Compatible="true">
     <BroadcastInterface ifName='eth[*]' areaID='0.0.0.0' interfaceOutputCost='0' />
     <PointToPointInterface ifName='ppp[*]' areaID='0.0.0.0' interfaceOutputCost='0' />
  </Router>

</OSPFASConfig>

Results

The simulation demonstrates adjacency formation failures:

  1. R1 and R2: Because they have different Hello intervals, they cannot properly synchronize their neighbor discovery. They may detect each other but fail to maintain a stable adjacency or have timing issues.

The OSPF module logs show the routers detecting neighbors but failing to reach the Full state. The routing tables reflect the missing adjacencies - routes that would normally use these links are either absent or use alternative paths.

This step highlights the importance of consistent OSPF configuration across interfaces forming an adjacency.

Sources: omnetpp.ini, InterfaceNetworkType.ned, ASConfig_mismatch.xml

Discussion

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