<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Ethernet Labs]]></title><description><![CDATA[Your blueprint for mastering network architecture. In-depth technical content and practical labs that bridge theory with real-world implementation designed for every stage of your networking career.]]></description><link>https://www.blog.ethernetlabs.io</link><image><url>https://substackcdn.com/image/fetch/$s_!3NgX!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda77d034-3f53-4f3e-af23-be6b2b428484_500x500.png</url><title>Ethernet Labs</title><link>https://www.blog.ethernetlabs.io</link></image><generator>Substack</generator><lastBuildDate>Sun, 10 May 2026 11:22:31 GMT</lastBuildDate><atom:link href="https://www.blog.ethernetlabs.io/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Ethernet Labs]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[ethernetlabs@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[ethernetlabs@substack.com]]></itunes:email><itunes:name><![CDATA[Ethernet Labs]]></itunes:name></itunes:owner><itunes:author><![CDATA[Ethernet Labs]]></itunes:author><googleplay:owner><![CDATA[ethernetlabs@substack.com]]></googleplay:owner><googleplay:email><![CDATA[ethernetlabs@substack.com]]></googleplay:email><googleplay:author><![CDATA[Ethernet Labs]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Part 10: OSPF Adjacency State Machine]]></title><description><![CDATA[Open Shortest Path First Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-10-ospf-adjacency-state-machine</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-10-ospf-adjacency-state-machine</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Sun, 31 Aug 2025 16:01:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JC4t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JC4t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JC4t!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!JC4t!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!JC4t!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!JC4t!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JC4t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:637695,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164425150?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JC4t!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!JC4t!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!JC4t!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!JC4t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1309c04c-7f77-4002-acd9-5bbf61c000a0_2000x1125.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The OSPF Adjacency State Machine (ASM) defines the states a router transitions through to form a fully adjacent neighbor relationship in Open Shortest Path First (OSPF). These states, outlined in <strong>RFC 2328</strong> (Section 10.1), are Down, Attempt, Init, 2-Way, Exstart, Exchange, Loading, and Full. This post details each state, transition triggers, and troubleshooting tips.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>OSPF Neighbor States</h2><p>OSPF routers progress through the following states to establish adjacency:</p><ol><li><p><strong>Down</strong>:</p><ul><li><p>Initial state; no Hello packets received from the neighbor.</p></li><li><p>Hello packets can be sent, but no response has been received.</p></li><li><p><strong>Transitions to</strong>:</p><ul><li><p><strong>Init</strong>: Upon receiving a Hello packet from the neighbor.</p></li><li><p><strong>Attempt</strong>: In NBMA environments for manually configured neighbors.</p></li></ul></li><li><p><strong>Reverts to Down from Full if</strong>:</p><ul><li><p>No Hello packets are received within the <strong>Router Dead Interval</strong></p></li><li><p>The neighbor is manually removed from the configuration.<br></p></li></ul></li></ul></li><li><p><strong>Attempt</strong> (NBMA only):</p><ul><li><p>Applies to manually configured neighbors in Non-Broadcast Multi-Access (NBMA) networks (e.g., Frame Relay).</p></li><li><p>Router sends unicast Hello packets at the poll interval to neighbors from which no Hellos have been received within the dead interval.</p></li><li><p><strong>Transitions to</strong> <strong>Init</strong> upon receiving a Hello packet.<br></p></li></ul></li><li><p><strong>Init (Initialize)</strong>:</p><ul><li><p>Router has received a Hello packet from the neighbor, but its own Router ID is not listed in the neighbor&#8217;s Hello packet.</p></li><li><p>Indicates one-way communication; the neighbor has not yet acknowledged the local router.</p></li><li><p><strong>Transitions to</strong> <strong>2-Way</strong> when the local router&#8217;s Router ID is seen in the neighbor&#8217;s Hello packet.<br></p></li></ul></li><li><p><strong>2-Way</strong>:</p><ul><li><p>Bi-directional communication established; each router sees its own Router ID in the neighbor&#8217;s Hello packet.</p></li><li><p>Decision point for adjacency:</p><ul><li><p><strong>Broadcast/NBMA</strong>: Routers form full adjacency only with the Designated Router (DR) and Backup Designated Router (BDR); DROTHERs remain in 2-Way with other DROTHERs (normal state).</p></li><li><p><strong>Point-to-Point/Point-to-Multipoint</strong>: Routers proceed to full adjacency with all neighbors.</p></li></ul></li><li><p><strong>Transitions to</strong> <strong>Exstart</strong> for neighbors selected for full adjacency (e.g., DR/BDR on broadcast, all neighbors on point-to-point).</p></li><li><p><strong>Note</strong>: Receiving a Database Descriptor (DBD) packet in Init can also trigger a transition to 2-Way, though this is rare.<br></p></li></ul></li><li><p><strong>Exstart (Exchange Start)</strong>:</p><ul><li><p>Initiates link-state database (LSDB) exchange between routers forming full adjacency (e.g., with DR/BDR on broadcast networks, P2P, P2MP).</p></li><li><p>Establishes a <strong>master-slave</strong> relationship:</p><ul><li><p>Router with the <strong>higher Router ID</strong> becomes the master, controlling DBD sequence numbers.</p></li><li><p>Master/slave is per-neighbor and independent of DR/BDR roles</p></li></ul></li><li><p>MTU is compared; a mismatch prevents DBD exchange and stalls the process.</p></li><li><p><strong>Configuration to Ignore MTU</strong>:</p><ul><li><p><strong>IOS/IOS XE</strong>:</p></li></ul></li></ul></li></ol><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf mtu-ignore</code></code></pre><ol><li><ul><li><ul><li><p><strong>IOS XR</strong>:</p></li></ul></li></ul></li></ol><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# mtu-ignore enable
XR(config-ospf-ar-if)# commit</code></code></pre><ol><li><ul><li><p><strong>Transitions to</strong> <strong>Exchange</strong> once the master-slave relationship and initial DBD sequence number are agreed upon.<br></p></li></ul></li><li><p><strong>Exchange</strong>:</p><ul><li><p>Routers exchange Database Descriptor (DBD) packets containing <strong>LSA headers</strong> to describe their LSDB.</p></li><li><p>The master increments DBD sequence numbers, acknowledged by the slave.</p></li><li><p>Routers compare received DBDs with their LSDB to identify missing or newer LSAs.</p></li><li><p><strong>Transitions to</strong> <strong>Loading</strong> if LSAs need to be requested; otherwise, to <strong>Full</strong> if databases are synchronized.<br></p></li></ul></li><li><p><strong>Loading</strong>:</p><ul><li><p>Routers exchange full LSAs based on DBD comparison.</p></li><li><p>Link-State Request packets are sent for missing or outdated LSAs.</p></li><li><p>Link-State Update packets deliver the requested LSAs, which are acknowledged.</p></li><li><p><strong>Transitions to</strong> <strong>Full</strong> once all requested LSAs are received and the LSDB is synchronized.</p></li></ul></li><li><p><strong>Full</strong>:</p><ul><li><p>Routers are fully adjacent, with synchronized LSDBs.</p></li><li><p>Normal state for:</p><ul><li><p>DR/BDR with all routers on broadcast/NBMA networks.</p></li><li><p>All neighbors on point-to-point/point-to-multipoint networks.</p></li></ul></li></ul></li></ol><h2>State Transition Summary</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YtDa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YtDa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png 424w, https://substackcdn.com/image/fetch/$s_!YtDa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png 848w, https://substackcdn.com/image/fetch/$s_!YtDa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png 1272w, https://substackcdn.com/image/fetch/$s_!YtDa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YtDa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png" width="1092" height="758" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:758,&quot;width&quot;:1092,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:176160,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164425150?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YtDa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png 424w, https://substackcdn.com/image/fetch/$s_!YtDa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png 848w, https://substackcdn.com/image/fetch/$s_!YtDa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png 1272w, https://substackcdn.com/image/fetch/$s_!YtDa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c1a1fa-f8d5-4d82-ab93-09cd3a8f746d_1092x758.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>Troubleshooting Stuck States</h2><ul><li><p><strong>Down</strong>: Check interface status, OSPF configuration, or Hello packet reachability (e.g., ACLs, unicast issues in NBMA).</p></li><li><p><strong>Init</strong>: Verify Hello packet contents (Router ID, area ID, authentication, network type compatibility).</p></li><li><p><strong>2-Way</strong>: Normal for DROTHERs in broadcast/NBMA; if unexpected, check DR/BDR election or network type.</p></li><li><p><strong>Exstart</strong>: Check MTU mismatch (show ip ospf interface)</p></li><li><p><strong>Exchange/Loading</strong>: Verify LSA request/update issues (debug ip ospf packet), network congestion, or LSDB inconsistencies.</p></li><li><p><strong>Not Reaching Full</strong>: Check for authentication mismatches, duplicate Router IDs, or LSA flooding issues.</p></li></ul><h2>Verification Commands</h2><p>Use the following Cisco IOS/IOS XE commands to monitor and troubleshoot adjacency states:</p><ul><li><p><strong>Show IP OSPF Neighbor</strong>:</p></li></ul><pre><code><code>R1# show ip ospf neighbor</code></code></pre><ul><li><ul><li><p>Displays neighbor state (e.g., Full, 2-Way), role (DR/BDR/DROTHER), and Router ID.<br></p></li></ul></li><li><p><strong>Show IP OSPF Interface</strong>:</p></li></ul><pre><code><code>R1# show ip ospf interface [type number]</code></code></pre><ul><li><ul><li><p>Shows interface settings (e.g., Hello/Dead intervals, MTU, network type).<br></p></li></ul></li><li><p><strong>Debug OSPF Adjacency</strong>:</p></li></ul><pre><code><code>R1# debug ip ospf adj</code></code></pre><ul><li><ul><li><p>Displays state transitions and adjacency issues (use cautiously in production).<br></p></li></ul></li><li><p><strong>Debug OSPF Packet</strong>:</p></li></ul><pre><code><code>R1# debug ip ospf packet</code></code></pre><ul><li><ul><li><p>Shows packet-level details (e.g., Hello, DBD, LSA mismatches).</p></li></ul></li></ul><p><strong>IOS XR Equivalents</strong>:</p><ul><li><p>show ospf neighbor</p></li><li><p>show ospf interface [type number]</p></li><li><p>debug ospf adj</p></li><li><p>debug ospf packet</p></li></ul><h2>Key Considerations</h2><ul><li><p><strong>2-Way</strong>: 2-Way is normal for DROTHER-to-DROTHER relationships in broadcast/NBMA networks.</p></li><li><p><strong>MTU Mismatch</strong>: Critical in Exstart; use mtu-ignore only as a last resort, as it risks packet fragmentation.</p></li><li><p><strong>Master-Slave</strong>: Determined by Router ID, not DR/BDR role, ensuring orderly DBD exchange.</p></li></ul><div class="poll-embed" data-attrs="{&quot;id&quot;:322543}" data-component-name="PollToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-10-ospf-adjacency-state-machine/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-10-ospf-adjacency-state-machine/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Part 9: OSPF Routes Preference]]></title><description><![CDATA[Open Shortest Path First Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-9-ospf-routes-preference</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-9-ospf-routes-preference</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Wed, 27 Aug 2025 16:00:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!D_8P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D_8P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D_8P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!D_8P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!D_8P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!D_8P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D_8P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/deed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:635072,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164424744?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!D_8P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!D_8P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!D_8P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!D_8P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdeed2cf0-5363-4a92-b413-251c258874e8_2000x1125.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In Open Shortest Path First (OSPF), route types determine the preference order for path selection in the routing table. Since Cisco IOS release 15.1(2)S (and equivalent IOS XE/XR versions), OSPF follows <strong>RFC 3101</strong> (obsoleting RFC 1587), which prioritizes Not-So-Stubby Area (NSSA) routes (N1, N2) over external routes (E1, E2).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>OSPF Route Types</h2><p>OSPF routes are categorized based on their origin and LSA type:</p><ol><li><p><strong>Intra-Area Routes (O)</strong>:</p><ul><li><p>Derived from Type 1 (Router) and Type 2 (Network) LSAs within the same area.</p></li><li><p>Represent networks directly connected to the router&#8217;s area.</p></li><li><p>Example: O 10.0.1.0/24 in the routing table.<br></p></li></ul></li><li><p><strong>Inter-Area Routes (O IA)</strong>:</p><ul><li><p>Derived from Type 3 (Summary) LSAs advertised by Area Border Routers (ABRs).</p></li><li><p>Represent networks in other areas within the OSPF domain.</p></li><li><p>Example: O IA 10.0.2.0/24.<br></p></li></ul></li><li><p><strong>NSSA External Type 1 (N1)</strong>:</p><ul><li><p>Derived from Type 7 LSAs in NSSA areas, translated to Type 5 LSAs by ABRs.</p></li><li><p>Metric includes the external cost (set by the ASBR) plus the internal OSPF cost to the ASBR.</p></li><li><p>Example: O N1 192.168.1.0/24 [110/25].<br></p></li></ul></li><li><p><strong>External Type 1 (E1)</strong>:</p><ul><li><p>Derived from Type 5 LSAs for routes redistributed from external protocols.</p></li><li><p>Metric includes the external cost plus the internal OSPF cost to the ASBR.</p></li><li><p>Example: O E1 192.168.2.0/24 [110/25].<br></p></li></ul></li><li><p><strong>NSSA External Type 2 (N2)</strong>:</p><ul><li><p>Derived from Type 7 LSAs in NSSA areas, translated to Type 5 LSAs by ABRs.</p></li><li><p>Metric is the external cost only; internal cost to the ASBR is used as a tiebreaker (forwarding metric).</p></li><li><p>Example: O N2 192.168.3.0/24 [110/20].<br></p></li></ul></li><li><p><strong>External Type 2 (E2)</strong>:</p><ul><li><p>Derived from Type 5 LSAs for external routes.</p></li><li><p>Metric is the external cost only (default 20 for redistributed routes); internal cost to the ASBR is a tiebreaker.</p></li><li><p>Example: O E2 192.168.4.0/24 [110/20].</p></li></ul></li></ol><h2>Route Preference Order</h2><p>Since Cisco IOS 15.1(2)S, OSPF follows RFC 3101, with the preference order:<br><strong>O &gt; O IA &gt; N1 &gt; E1 &gt; N2 &gt; E2</strong></p><ul><li><p><strong>Intra-Area (O)</strong>: Preferred due to direct connectivity within the area.</p></li><li><p><strong>Inter-Area (O IA)</strong>: Next, as they remain within the OSPF domain but cross areas.</p></li><li><p><strong>N1 over E1</strong>: N1 routes (from NSSA areas) are preferred over E1 routes because RFC 3101 prioritizes NSSA routes, which are translated to Type 5 LSAs by ABRs, ensuring optimal path selection in NSSA designs.</p></li><li><p><strong>N2 over E2</strong>: N2 routes are preferred over E2 routes for similar reasons, as they originate from NSSA areas and are translated, providing better control in NSSA environments.</p></li><li><p><strong>E1 and N1</strong>: Both include internal and external costs, making them more accurate than E2/N2, which use only external costs.</p></li><li><p><strong>E2 and N2</strong>: Use external cost with internal cost as a tiebreaker; E2 is least preferred due to its broader scope outside NSSA.</p></li></ul><p><strong>Pre-15.1(2)S Behavior (RFC 1587)</strong>:</p><ul><li><p>Older IOS versions followed RFC 1587, preferring E1 over N1 and E2 over N2, which could lead to suboptimal paths in NSSA areas.</p></li><li><p>RFC 3101&#8217;s change ensures NSSA routes are prioritized, improving efficiency.</p></li></ul><h2>Tiebreakers</h2><ul><li><p><strong>Equal Route Types</strong>: If multiple paths exist for the same route type (e.g., two E2 routes), OSPF selects the path with the lowest metric. For E2/N2 routes, the forwarding metric (internal cost to the ASBR) breaks ties.</p></li><li><p><strong>Equal-Cost Load Balancing</strong>: If metrics and forwarding metrics are equal, OSPF load-balances across paths (up to the maximum-paths limit, default 4 or 8).</p></li></ul><h2>Verification Commands</h2><p>Use the following Cisco IOS/IOS XE commands to verify route preferences:</p><ul><li><p><strong>Show IP Route OSPF</strong>:</p></li></ul><pre><code><code>R1# show ip route ospf</code></code></pre><ul><li><ul><li><p>Displays OSPF routes with types (O, O IA, N1, E1, N2, E2) and metrics.<br></p></li></ul></li><li><p><strong>Show OSPF Database</strong>:</p></li></ul><pre><code><code>R1# show ip ospf database</code></code></pre><ul><li><ul><li><p>Shows LSAs (Type 3, 5, 7) and their metrics.<br></p></li></ul></li><li><p><strong>Show OSPF Border-Routers</strong>:</p></li></ul><pre><code><code>R1# show ip ospf border-routers</code></code></pre><ul><li><ul><li><p>Displays costs to ABRs and ASBRs, useful for N1/E1/N2/E2 path selection.<br></p></li></ul></li></ul><p><strong>IOS XR Equivalents</strong>:</p><ul><li><p>show ip route ospf</p></li><li><p>show ospf database</p></li><li><p>show ospf border-routers</p></li></ul><div class="poll-embed" data-attrs="{&quot;id&quot;:322540}" data-component-name="PollToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-9-ospf-routes-preference/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-9-ospf-routes-preference/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Part 8: OSPF Metric]]></title><description><![CDATA[Open Shortest Path First Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-8-ospf-metric</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-8-ospf-metric</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Sat, 23 Aug 2025 16:00:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!51ex!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!51ex!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!51ex!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!51ex!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!51ex!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!51ex!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!51ex!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:624417,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164421862?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!51ex!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!51ex!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!51ex!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!51ex!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffce75136-fb16-4f19-9f29-79519bdb4bd4_2000x1125.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In Open Shortest Path First (OSPF), the metric, referred to as <strong>cost</strong>, determines the best path to a destination. The cost is derived from interface bandwidth, reflecting the monetary cost of higher-bandwidth links. This post details OSPF cost calculation, methods to adjust the cost, and how metrics are handled for intra-area, inter-area, and external routes.</p><h2>OSPF Cost Calculation</h2><p>OSPF calculates the cost for an interface using the formula:</p><pre><code><code>Cost = Reference Bandwidth / Interface Bandwidth</code></code></pre><ul><li><p><strong>Reference Bandwidth</strong>: Default is 100 Mbps (10^8 bits per second) in Cisco implementations.</p></li><li><p><strong>Interface Bandwidth</strong>: Determined by the interface type (e.g., Ethernet, FastEthernet, GigabitEthernet, etc.).</p></li><li><p><strong>Rounding</strong>: The result is rounded down to the nearest integer, with a minimum cost of 1.</p></li></ul><h3>Example Calculations</h3><ul><li><p><strong>Ethernet (10 Mbps)</strong>: 100 Mbps / 10 Mbps = 10</p></li><li><p><strong>FastEthernet (100 Mbps)</strong>: 100 Mbps / 100 Mbps = 1</p></li><li><p><strong>Serial T1 (1.544 Mbps)</strong>: 100 Mbps / 1.544 Mbps &#8776; 64.76, rounded to 64</p></li><li><p><strong>GigabitEthernet (1000 Mbps)</strong>: 100 Mbps / 1000 Mbps = 0.1, rounded to 1</p></li><li><p><strong>10GigabitEthernet (10000 Mbps)</strong>: 100 Mbps / 10000 Mbps = 0.01, rounded to 1</p></li></ul><p><strong>Issue with higher BW interfaces</strong>: The default reference bandwidth of 100 Mbps causes interfaces faster than 100 Mbps (e.g., GigabitEthernet, 10GigabitEthernet) to have the same cost (1), making OSPF unable to differentiate between them. This issue arose as network speeds exceeded the reference bandwidth defined in OSPF&#8217;s original design (RFC 2328, 1998).</p><h2>Adjusting OSPF Cost</h2><p>To address the issue with higher bandwidth interfaces or customize path selection, OSPF cost can be adjusted in three ways:</p><ol><li><p><strong>Change Reference Bandwidth</strong>:</p><ul><li><p>Increases the reference bandwidth to differentiate faster interfaces (e.g., 1000 Mbps or higher).</p></li><li><p><strong>Requirement</strong>: Must be configured consistently across all OSPF routers in the domain to ensure correct path selection.</p></li><li><p><strong>Configuration</strong>:</p><ul><li><p><strong>IOS/IOS XE</strong>:</p></li></ul></li></ul></li></ol><pre><code><code>R1(config)# router ospf 1
R1(config-router)# auto-cost reference-bandwidth 10000</code></code></pre><ul><li><p>Sets reference bandwidth to 10 Gbps (10000 Mbps).</p></li><li><p>Example: GigabitEthernet (1000 Mbps) cost = 10000 Mbps / 1000 Mbps = 10; 10GigabitEthernet (10000 Mbps) cost = 1.<br></p></li><li><p><strong>IOS XR</strong>:</p></li></ul><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# auto-cost reference-bandwidth 10000
XR(config-ospf)# commit</code></code></pre><p>Range: 1&#8211;4294967 Mbps.<br></p><ol start="2"><li><p><strong>Change Interface BWv </strong></p></li></ol><ul><li><p>Modifies the interface&#8217;s bandwidth value to influence OSPF cost.</p></li><li><p><strong>Not Recommended</strong>: Affects other protocols (e.g., QoS, EIGRP) that rely on interface bandwidth.</p></li><li><p><strong>Configuration</strong>:</p></li></ul><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# bandwidth 100000  ! In Kbps (100 Mbps)</code></code></pre><p>Example: Sets interface bandwidth to 100 Mbps, resulting in cost = 100 Mbps / 100 Mbps = 1.<br></p><ol start="3"><li><p><strong>Manually Set OSPF Cost</strong>:</p></li></ol><ul><li><p>Directly assigns a cost to an interface, overriding the bandwidth-based calculation.</p></li><li><p><strong>Recommended</strong>: Allows precise control but requires a planned cost assignment strategy for consistency.</p></li><li><p><strong>Configuration</strong>:</p><ul><li><p><strong>IOS/IOS XE</strong>:</p></li></ul></li></ul><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf cost 10</code></code></pre><ol><li><ul><li><ul><li><p><strong>IOS XR</strong>:</p></li></ul></li></ul></li></ol><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# cost 10
XR(config-ospf-ar-if)# commit</code></code></pre><p>Range: 1&#8211;65535.</p><h2>Path Cost Calculation</h2><p>To calculate the total cost to a destination network:</p><ol><li><p>Identify the destination network and the path(s) to reach it.</p></li><li><p>Sum the OSPF costs of all outgoing interfaces along the path, including the local router&#8217;s egress interface.</p></li><li><p><strong>Note</strong>: When you are calculating the cost to reach a destination network that is a loopback interface, make sure to count the loopback interface cost as part of the accumulated path cost, and your local outgoing interface as well.</p></li></ol><p><strong>SPF Algorithm</strong>:</p><ul><li><p>OSPF uses the Dijkstra Shortest Path First (SPF) algorithm to compute the best path.</p></li><li><p>The local router is placed as the root of a shortest-path tree, and costs are calculated to all destinations by summing the costs of outgoing interfaces.</p></li><li><p>The process is repeated for each router in the area, building a consistent LSDB.</p></li></ul><h2>Metrics for Different LSA Types</h2><p>The OSPF metric behaves differently depending on the LSA type and route type:</p><ol><li><p><strong>Intra-Area Routes (Type 1 Router LSA, Type 2 Network LSA)</strong>:</p><ul><li><p>Cost is the sum of the interface costs along the path to the destination within the same area.</p></li><li><p>Example: To reach a network in Area 0, sum the costs of all outgoing interfaces from the local router to the destination.<br></p></li></ul></li><li><p><strong>Inter-Area Routes (Type 3 Summary LSA)</strong>:</p><ul><li><p>Generated by Area Border Routers (ABRs) to advertise prefixes from one area to another.</p></li><li><p>Cost is the sum of:</p><ul><li><p>The intra-area cost from the ABR to the destination network in the originating area.</p></li><li><p>The cost from the local router to the ABR (via intra-area path in the local area).</p></li></ul></li><li><p>Example: If an ABR advertises a Type 3 LSA for 10.0.1.0/24 with a cost of 10, and the cost to reach the ABR is 5, the total cost is 15.<br></p></li></ul></li><li><p><strong>External Routes (Type 5 External LSA)</strong>:</p><ul><li><p>External routes are redistributed into OSPF from another protocol (e.g., BGP, static) or a default route.</p></li><li><p><strong>Sub-Type 2 (E2, Default)</strong>:</p><ul><li><p>Uses the external metric set by the Autonomous System Boundary Router (ASBR), defaulting to 20 for redistributed routes.</p></li><li><p>Internal OSPF costs (to reach the ASBR) are <strong>not added</strong> to the metric.</p></li><li><p><strong>Forwarding Metric</strong>: If multiple ASBRs advertise the same E2 route with equal external metrics, the internal OSPF cost to each ASBR is used as a tiebreaker for path selection.</p></li><li><p>Example: Two ASBRs advertise 192.168.1.0/24 with metric 20. The path with the lower internal cost to the ASBR is chosen.</p></li><li><p>Supports equal-cost load balancing if internal costs are equal.</p></li></ul></li><li><p><strong>Sub-Type 1 (E1)</strong>:</p><ul><li><p>Combines the external metric (e.g., 20) with the internal OSPF cost to reach the ASBR.</p></li><li><p>Preferred over E2 routes because it accounts for the full path cost.</p></li><li><p>Example: If the external metric is 20 and the cost to the ASBR is 5, the total cost is 25.<br></p></li></ul></li><li><p><strong>Configuration</strong> (set during redistribution):</p></li></ul></li></ol><pre><code><code>R1(config)# router ospf 1
R1(config-router)# redistribute static metric 20 metric-type 1</code></code></pre><h2>Verification Commands</h2><p>To verify OSPF costs and metrics, use the following Cisco IOS/IOS XE commands:</p><ul><li><p><strong>Show OSPF Interface</strong>:</p></li></ul><pre><code><code>R1# show ip ospf interface [type number]</code></code></pre><ul><li><ul><li><p>Displays interface cost, bandwidth, and OSPF settings.<br></p></li></ul></li><li><p><strong>Show OSPF Database</strong>:</p></li></ul><pre><code><code>R1# show ip ospf database</code></code></pre><ul><li><ul><li><p>Shows LSA types and their metrics (e.g., Type 3 Summary, Type 5 External).<br></p></li></ul></li><li><p><strong>Show IP Route OSPF</strong>:</p></li></ul><pre><code><code>R1# show ip route ospf</code></code></pre><ul><li><ul><li><p>Displays OSPF routes with their total costs and route types (O, O IA, O E1, O E2).<br></p></li></ul></li><li><p><strong>Debug OSPF SPF</strong> (use with caution in production):</p></li></ul><pre><code><code>R1# debug ip ospf spf</code></code></pre><ul><li><ul><li><p>Shows SPF calculations and cost assignments.</p></li></ul></li></ul><p><strong>IOS XR Equivalents</strong>:</p><ul><li><p>show ospf interface [type number]</p></li><li><p>show ospf database</p></li><li><p>show ip route ospf</p></li><li><p>debug ospf spf</p></li></ul><h2>Key Considerations</h2><ul><li><p><strong>Reference Bandwidth Consistency</strong>: Changing the reference bandwidth must be applied uniformly across all OSPF routers to avoid inconsistent path selection.</p></li><li><p><strong>Manual Cost Override</strong>: Use ip ospf cost for precise control, but maintain a consistent cost assignment strategy (e.g., 10 for GigabitEthernet, 1 for 10GigabitEthernet).</p></li><li><p><strong>External Route Preference</strong>: E1 routes are preferred over E2 routes due to their inclusion of internal costs, providing a more accurate path cost.</p></li><li><p><strong>Loopback Interfaces</strong>: Loopback prefixes (/32) have a default cost of 1.</p></li><li><p><strong>SPF Algorithm</strong>: The Dijkstra algorithm ensures optimal path selection by summing interface costs, prioritizing the lowest total cost.</p></li><li><p><strong>Forwarding Metric</strong>: For E2 routes, the internal cost to the ASBR acts as a tiebreaker, not a proportional load-balancing factor.</p></li></ul><div class="poll-embed" data-attrs="{&quot;id&quot;:322538}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-8-ospf-metric?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-8-ospf-metric?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-8-ospf-metric?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-8-ospf-metric/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-8-ospf-metric/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Part 7: OSPF OSPF DR & BDR]]></title><description><![CDATA[Open Shortest Path First Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-7-ospf-ospf-dr-and-bdr</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-7-ospf-ospf-dr-and-bdr</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Tue, 19 Aug 2025 16:01:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zmFE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zmFE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zmFE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!zmFE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!zmFE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!zmFE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zmFE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:625211,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164421086?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zmFE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!zmFE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!zmFE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!zmFE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e3b2ced-56a6-4811-9563-c0a2764cbfdb_2000x1125.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>In Open Shortest Path First (OSPF), the Designated Router (DR) and Backup Designated Router (BDR) optimize operations on multi-access network segments by reducing Link-State Advertisement (LSA) flooding and adjacency requirements. This post details the purpose of DR/BDR, their election process, operational mechanics, network types where they apply, and verification commands.</p><h2>Purpose of DR and BDR</h2><p>In multi-access networks (e.g., Ethernet, Frame Relay), OSPF routers without a DR would form a full-mesh adjacency with every other router, resulting in<strong> N(N-1)/2 adjacencies for N routers</strong>. This leads to excessive LSA flooding, consuming bandwidth and router resources.<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RaYV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RaYV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RaYV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RaYV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RaYV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RaYV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg" width="996" height="271" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:271,&quot;width&quot;:996,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38782,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164421086?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RaYV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RaYV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RaYV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RaYV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0163d4d0-99ab-4ef8-9eb6-e96686aaefe8_996x271.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br></p><ul><li><p><strong>DR Role</strong>: The DR acts as a central point (hub) for the multi-access segment, forming full adjacencies with all routers and managing LSA exchanges. Non-DR/BDR routers (DROTHERs) maintain full adjacency only with the DR and BDR, staying in the Two-Way state with other DROTHERs, reducing the number of full adjacencies.</p></li><li><p><strong>BDR Role</strong>: The BDR mirrors the DR&#8217;s LSDB and listens to the same multicast address, ready to take the DR role if the DR fails. A new BDR is elected upon DR failure.</p></li><li><p><strong>Benefits</strong>:</p><ul><li><p>Minimizes LSA flooding by centralizing updates through the DR.</p></li><li><p>Reduces full adjacency count, improving scalability and resource efficiency.</p></li><li><p>Simplifies topology representation via a hub-and-spoke model.</p></li></ul></li></ul><h2>DR/BDR Election Process</h2><p>The DR and BDR are elected when routers initialize on a multi-access segment. The election process is as follows:</p><ol><li><p><strong>Router Priority</strong> (Highest Priority Wins):</p><ul><li><p>Configured per interface:</p></li></ul></li></ol><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf priority 100</code></code></pre><ol><li><ul><li><p>Range: 0&#8211;255 (default: 1).</p></li><li><p>Priority 0 excludes the router from becoming DR or BDR.</p></li><li><p>Higher priority wins; if priorities are equal, the tiebreaker is used.<br></p></li></ul></li><li><p><strong>Router ID (RID)</strong> (Highest RID Wins):</p><ul><li><p>If priorities are equal (e.g., default 1), the router with the highest Router ID becomes the DR, and the second-highest becomes the BDR.</p></li><li><p>Router ID is a 32-bit identifier, typically set manually or derived from the highest loopback or physical interface IP address.<br></p></li></ul></li><li><p><strong>Non-Preemptive Election</strong>:</p><ul><li><p>Once elected, the DR and BDR roles are stable. A router with a higher priority or RID does not preempt the existing DR/BDR unless the OSPF process is cleared:</p></li></ul></li></ol><pre><code><code>R1# clear ip ospf process</code></code></pre><ol><li><ul><li><p>Clearing the OSPF process disrupts adjacencies and triggers SPF recalculation, so use cautiously in production.</p></li></ul></li></ol><p><strong>Note</strong>: If a single router boots first and sends Hello packets, it may temporarily assume the DR role until other routers join, triggering a full election based on priority and RID.</p><h2>DR/BDR Operational Mechanics</h2><p>The DR and BDR streamline LSA exchange and topology representation on multi-access segments:</p><ol><li><p><strong>Multicast Addresses</strong>:</p><ul><li><p><strong>224.0.0.5 (AllSPFRouters)</strong>: Used by all OSPF routers to send Hello packets and by the DR to flood LSAs to all routers.</p></li><li><p><strong>224.0.0.6 (AllDRouters)</strong>: Used by DROTHERs to send updates to the DR/BDR and by the DR/BDR to receive updates.<br></p></li></ul></li><li><p><strong>LSA Exchange Process</strong>:</p><ul><li><p>DROTHERs send LSAs (via Link-State Update packets) to 224.0.0.6, targeting the DR/BDR.</p></li><li><p>The DR floods these LSAs to 224.0.0.5, ensuring all routers on the segment receive the update.</p></li><li><p>The originating router receives its own LSA and discards it.</p></li><li><p>Routers acknowledge LSAs via Link-State Acknowledgment packets. If no acknowledgment is received, the DR unicasts the LSA to the non-responding router.<br></p></li></ul></li><li><p><strong>Network LSA (Type 2)</strong>:</p><ul><li><p>The DR generates a Type 2 Network LSA to represent the multi-access segment (similar to a &#8220;pseudo-node&#8221; in IS-IS).</p></li><li><p>This LSA lists all routers attached to the segment, including their Router IDs.</p></li></ul></li><li><p><strong>BDR Failover</strong>:</p><ul><li><p>The BDR maintains an identical LSDB to the DR by listening to 224.0.0.6.</p></li><li><p>If the DR fails, the BDR assumes the DR role, and a new BDR is elected among DROTHERs.</p></li></ul></li></ol><h2>Network Types and DR/BDR Usage</h2><p>DR/BDR roles are used only in specific OSPF network types:</p><ul><li><p><strong>Broadcast</strong>: Default for Ethernet interfaces. Uses multicast (224.0.0.5, 224.0.0.6) for Hello and LSA exchanges. Requires DR/BDR.</p></li><li><p><strong>Non-Broadcast Multi-Access (NBMA)</strong>: Default for Frame Relay. Uses unicast for Hello packets but still requires DR/BDR due to multi-access nature.</p></li><li><p><strong>Point-to-Multipoint Broadcast/Non-Broadcast</strong>: Treated as a collection of point-to-point links, so DR/BDR is not used.</p></li><li><p><strong>Point-to-Point</strong>: Default for HDLC/PPP interfaces. No DR/BDR, as only two routers exist per link.</p></li></ul><p><strong>Hub-and-Spoke Design Note</strong>: In a hub-and-spoke topology (e.g., Frame Relay), ensure the hub router is the DR by setting a high priority (e.g., 100) and DROTHERs (spokes) to a lower priority (e.g., 1) or 0 to prevent them from becoming DR/BDR:</p><pre><code><code>R1(config)# interface Serial0/0
R1(config-if)# ip ospf priority 100  ! Hub
R2(config)# interface Serial0/0
R2(config-if)# ip ospf priority 0    ! Spoke</code></code></pre><h2>Verification Commands</h2><p>To verify DR/BDR status and roles, use the following Cisco IOS/IOS XE commands:</p><ul><li><p><strong>Show OSPF Neighbors</strong>:</p></li></ul><pre><code><code>R1# show ip ospf neighbor</code></code></pre><ul><li><ul><li><p>Displays neighbor roles (DR, BDR, DROTHER), Router ID, and adjacency state.<br></p></li></ul></li><li><p><strong>Show OSPF Interface Brief</strong>:</p></li></ul><pre><code><code>R1# show ip ospf interface brief</code></code></pre><ul><li><ul><li><p>Shows local router&#8217;s role (DR, BDR, DROTHER) and interface details.<br></p></li></ul></li><li><p><strong>Show OSPF Interface Details</strong>:</p></li></ul><pre><code><code>R1# show ip ospf interface [type number] | include State</code></code></pre><ul><li><ul><li><p>Confirms the local router&#8217;s role (e.g., DR, BDR, DROTHER) for a specific interface.<br></p></li></ul></li><li><p><strong>Debug OSPF Adjacency</strong> (use with caution in production):</p></li></ul><pre><code><code>R1# debug ip ospf adj</code></code></pre><ul><li><ul><li><p>Displays DR/BDR election events and adjacency issues.<br></p></li></ul></li></ul><p><strong>IOS XR Equivalents</strong>:</p><ul><li><p>show ospf neighbor</p></li><li><p>show ospf interface brief</p></li><li><p>show ospf interface [type number] | include State</p></li><li><p>debug ospf adj</p></li></ul><h2>Key Considerations</h2><ul><li><p><strong>Adjacency Efficiency</strong>: The DR reduces adjacencies from N(N-1)/2 to approximately N, significantly lowering resource usage.</p></li><li><p><strong>Non-Preemptive Election</strong>: DR/BDR roles are stable; changes require clear</p><p>ing the OSPF process, which disrupts routing.</p></li><li><p><strong>Hub-and-Spoke Design</strong>: Always configure the hub as the DR to optimize LSA flooding and adjacency management.</p></li><li><p><strong>Network Type Impact</strong>: DR/BDR is only relevant for Broadcast and NBMA networks; point-to-point and point-to-multipoint networks do not use DR/BDR.</p></li><li><p><strong>LSA Type 2</strong>: The DR&#8217;s generation of Network LSAs simplifies multi-access segment representation in the LSDB.</p></li><li><p><strong>BDR Failover</strong>: The BDR ensures continuity by taking over if the DR fails, minimizing disruption.</p></li></ul><div class="poll-embed" data-attrs="{&quot;id&quot;:322518}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-7-ospf-ospf-dr-and-bdr?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-7-ospf-ospf-dr-and-bdr?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-7-ospf-ospf-dr-and-bdr?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-7-ospf-ospf-dr-and-bdr/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-7-ospf-ospf-dr-and-bdr/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Part 6: OSPF Router ID]]></title><description><![CDATA[Open Shortest Path First Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-6-ospf-router-id</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-6-ospf-router-id</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Fri, 15 Aug 2025 16:01:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!B8_P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B8_P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B8_P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!B8_P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!B8_P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!B8_P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B8_P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:625208,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164420694?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!B8_P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!B8_P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!B8_P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!B8_P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a3e5bfa-f763-4915-8f7b-71a64887d2f9_2000x1125.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The OSPF Router ID (RID) is a critical component of the Open Shortest Path First (OSPF) protocol, uniquely identifying a router within the OSPF topology and Link-State Database (LSDB). This post details the Router ID&#8217;s purpose, election process, configuration, stability considerations, and its impact on OSPF operations.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>What is the Router ID?</h2><p>The Router ID is a 32-bit identifier represented in dotted-decimal notation (e.g., 1.1.1.1), resembling an IP address but not required to be an assigned IP address. It serves as the unique name of an OSPF router in the topology and LSDB.</p><ul><li><p><strong>Purpose</strong>: Identifies the router in OSPF Link-State Advertisements (LSAs), neighbor relationships, and virtual link configurations.</p></li><li><p><strong>Requirement</strong>: OSPF cannot start without a Router ID. If no RID is assigned, the OSPF process fails to initialize, generating an error:</p></li></ul><pre><code><code>*Jul 19 12:00:40.926: %OSPF-4-NORTRID: OSPF process 1 failed to allocate unique router-id and cannot start</code></code></pre><h2>Router ID Election Process</h2><p>The Router ID is determined through a hierarchical election process, executed when the OSPF process starts:</p><ol><li><p><strong>Manually Configured Router ID</strong> (Highest Priority):</p><ul><li><p>Explicitly set under the OSPF process.</p></li><li><p>Configuration:</p></li></ul></li></ol><pre><code><code>R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1</code></code></pre><ul><li><p>Takes precedence over all other methods.<br></p></li></ul><ol><li><p><strong>Highest Loopback Interface IP Address</strong>:</p><ul><li><p>If no Router ID is manually configured, OSPF selects the highest IP address among active loopback interfaces.</p></li><li><p>Loopback interfaces are preferred because they are always up unless the router crashes, ensuring stability.</p></li><li><p>Administratively down loopback interfaces are excluded from the election.<br></p></li></ul></li><li><p><strong>Highest Physical Interface IP Address</strong>:</p><ul><li><p>If no loopback interfaces exist, OSPF selects the highest IP address among active physical interfaces.</p></li><li><p>Physical interfaces are less preferred due to their susceptibility to link failures.</p></li></ul></li></ol><p><strong>Note</strong>: The election occurs only at OSPF process initialization or after a process reset, ensuring the RID remains stable during normal operation.</p><h2>Router ID Stability and Change Behavior</h2><p>Once elected, the Router ID is non-preemptive, meaning a better candidate (e.g., a higher IP address or new manual configuration) does not automatically take effect. The behavior depends on the router&#8217;s state:</p><ul><li><p><strong>No Neighbors</strong>:</p><ul><li><p>If the router has no OSPF neighbors, a new Router ID (configured via router-id) takes effect immediately.</p></li><li><p>Example:</p></li></ul></li></ul><pre><code><code>R1(config)# router ospf 1
R1(config-router)# router-id 2.2.2.2</code></code></pre><ul><li><p><strong>Existing Neighbors</strong>:</p><ul><li><p>If the router has active OSPF neighbors, changing the Router ID requires clearing the OSPF process to take effect:</p></li></ul></li></ul><pre><code><code>R1# clear ip ospf process</code></code></pre><ul><li><ul><li><p>Clearing the OSPF process triggers a full Shortest Path First (SPF) recalculation and temporarily disrupts adjacencies, recomputing the OSPF topology tree.</p></li><li><p><strong>Caution</strong>: Avoid frequent OSPF process resets in production networks, as they can cause routing instability.</p></li></ul></li></ul><h2>Implications of Duplicate Router IDs</h2><p>Duplicate Router IDs in an OSPF domain cause significant issues, as the RID must be unique to identify routers in the LSDB:</p><ul><li><p><strong>Directly Connected Routers</strong>:</p><ul><li><p>Two routers with the same Router ID cannot form a neighbor relationship if directly connected, as OSPF detects the conflict during Hello packet exchange.</p></li><li><p>Adjacency remains in the Down or Init state.<br></p></li></ul></li><li><p><strong>Same Area, Separated by Another Router</strong>:</p><ul><li><p>Two routers with the same Router ID in the same area, but not directly connected, may form neighbor relationships with intermediate routers.</p></li><li><p>However, this causes LSDB inconsistencies, as LSAs from both routers are indistinguishable, leading to incorrect SPF calculations.</p></li></ul></li><li><p><strong>Different Areas</strong>:</p><ul><li><p>Duplicate Router IDs in different areas trigger an LSA flooding war, where routers continuously reflood conflicting LSAs, destabilizing the OSPF domain.</p></li></ul></li><li><p><strong>Virtual Links</strong>:</p><ul><li><p>Router IDs are critical for virtual link configuration, as they identify the endpoints of the link (e.g., area &lt;transit-area&gt; virtual-link &lt;remote-RID&gt;).</p></li><li><p>Duplicate RIDs prevent proper virtual link establishment.</p></li></ul></li></ul><h2>Best Practices</h2><ul><li><p><strong>Explicit Configuration</strong>: Always configure the Router ID manually under the OSPF process to ensure predictability and consistency:</p></li></ul><pre><code><code>R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1</code></code></pre><ul><li><p><strong>Naming Convention</strong>: Use a Router ID format tied to the router&#8217;s name or role (e.g., 1.1.1.1 for R1) for easy identification in the topology.</p></li><li><p><strong>Uniqueness</strong>: Ensure each router has a unique Router ID to avoid LSDB conflicts and adjacency failures.</p></li><li><p><strong>Loopback Preference</strong>: When not manually configured, assign IP addresses to loopback interfaces to leverage their stability for RID election.</p></li><li><p><strong>Minimize Process Resets</strong>: Plan Router ID changes carefully to avoid unnecessary OSPF process resets, especially in production environments.</p></li></ul><h2>Verification Commands</h2><p>To verify the Router ID and troubleshoot related issues, use the following Cisco IOS/IOS XE commands:</p><ul><li><p><strong>Show OSPF Process</strong>:</p></li></ul><pre><code><code>R1# show ip ospf</code></code></pre><ul><li><ul><li><p>Displays the Router ID, OSPF process details, and area information.<br></p></li></ul></li><li><p><strong>Show OSPF Interface</strong>:</p></li></ul><pre><code><code>R1# show ip ospf interface [type number]</code></code></pre><ul><li><ul><li><p>Confirms interface IP addresses and their role in RID election (if not manually set).</p></li></ul></li><li><p><strong>Show Running Configuration</strong>:</p></li></ul><pre><code><code>R1# show running-config | section ospf</code></code></pre><ul><li><ul><li><p>Verifies manual Router ID configuration.</p></li></ul></li><li><p><strong>Debug OSPF Adjacency</strong> (use with caution in production):</p></li></ul><pre><code><code>R1# debug ip ospf adj</code></code></pre><ul><li><ul><li><p>Identifies adjacency failures due to duplicate Router IDs or other issues.</p></li></ul></li></ul><p><strong>IOS XR Equivalents</strong>:</p><ul><li><p>show ospf</p></li><li><p>show ospf interface [type number]</p></li><li><p>show running-config router ospf</p></li><li><p>debug ospf adj</p></li></ul><h2>Key Considerations</h2><ul><li><p><strong>Mandatory RID</strong>: OSPF requires a Router ID to start; failure to allocate one prevents process initialization.</p></li><li><p><strong>Non-Preemptive</strong>: The Router ID remains stable unless the OSPF process is cleared, ensuring topology consistency.</p></li><li><p><strong>Duplicate RID Issues</strong>: Duplicate Router IDs cause severe LSDB and adjacency problems, particularly in the same area or across virtual links.</p></li><li><p><strong>Loopback Advantage</strong>: Loopback interfaces are preferred for RID election due to their always-up state, reducing the risk of RID changes due to link failures.</p></li><li><p><strong>Virtual Links</strong>: The Router ID is used to identify virtual link endpoints, making uniqueness critical.</p></li></ul><div class="poll-embed" data-attrs="{&quot;id&quot;:322514}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-6-ospf-router-id?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-6-ospf-router-id?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-6-ospf-router-id?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-6-ospf-router-id/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-6-ospf-router-id/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Part 5: OSPFv2 Authentication]]></title><description><![CDATA[Open Shortest Path First Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-3-ospfv2-authentication</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-3-ospfv2-authentication</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Mon, 11 Aug 2025 16:01:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0bSY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0bSY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0bSY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!0bSY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!0bSY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!0bSY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0bSY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:633964,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164419553?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0bSY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!0bSY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!0bSY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!0bSY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc93cdf9b-e700-4fa3-9844-d87fa8587df3_2000x1125.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Open Shortest Path First (OSPF) authentication secures neighbor relationships by ensuring that only trusted routers exchange routing information. Authentication is configured in two steps: specifying the authentication type and defining the authentication key. This post covers OSPF authentication types, configuration methods for Cisco IOS/IOS XE and IOS XR, key chain usage, virtual link authentication, and verification commands.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Authentication Types</h2><p>OSPF supports the following authentication types, identified in the OSPF common header:</p><ol><li><p><strong>Null (Type 0)</strong>:</p><ul><li><p>No authentication (default).</p></li><li><p>Packets are sent without authentication checks.</p></li></ul></li><li><p><strong>Simple Password (Type 1)</strong>:</p><ul><li><p>Uses a clear-text password included in OSPF packets.</p></li><li><p>Less secure due to unencrypted transmission.</p></li></ul></li><li><p><strong>Message Digest (MD5, Type 2)</strong>:</p><ul><li><p>Uses MD5 cryptographic hashing with a key ID and password.</p></li><li><p>Provides stronger security through encrypted authentication.</p></li></ul></li></ol><p><strong>Note</strong>: The authentication type is specified in the OSPF common header, which is always present, defaulting to Null (Type 0) unless configured otherwise.</p><h2>Configuration Steps</h2><p>OSPF authentication is configured in two steps:</p><ol><li><p><strong>Specify Authentication Type</strong>:</p><ul><li><p>Configured at the area level (applies to all interfaces in the area) or interface level (overrides area configuration).</p></li></ul></li><li><p><strong>Define Authentication Key</strong>:</p><ul><li><p>Configured per interface or via a key chains</p></li></ul></li></ol><h3>Authentication Type Configuration</h3><h4>IOS/IOS XE</h4><ul><li><p><strong>Area-Level Configuration</strong>:</p></li></ul><pre><code><code>R1(config)# router ospf 1
R1(config-router)# area 0 authentication null
R1(config-router)# area 0 authentication
R1(config-router)# area 0 authentication message-digest</code></code></pre><ul><li><ul><li><p>null: Disables authentication (Type 0).</p></li><li><p>authentication: Enables clear-text authentication (Type 1).</p></li><li><p>authentication message-digest: Enables MD5 authentication (Type 2).<br></p></li></ul></li><li><p><strong>Interface-Level Configuration</strong> (overrides area configuration):</p></li></ul><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf authentication null
R1(config-if)# ip ospf authentication
R1(config-if)# ip ospf authentication message-digest</code></code></pre><p><strong>Priority</strong>: Interface-level authentication settings take precedence over area-level settings. For example, if Area 0 is configured for clear-text authentication but an interface in Area 0 is set to MD5, the interface uses MD5, while other interfaces in the area use clear-text.</p><h4>IOS XR</h4><ul><li><p><strong>Process-Level Configuration</strong> (applies to all areas):</p></li></ul><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# authentication null
XR(config-ospf)# authentication
XR(config-ospf)# authentication message-digest
XR(config-ospf)# commit</code></code></pre><ul><li><p><strong>Area-Level Configuration</strong>:</p></li></ul><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# authentication null
XR(config-ospf-ar)# authentication
XR(config-ospf-ar)# authentication message-digest
XR(config-ospf-ar)# commit</code></code></pre><ul><li><p><strong>Interface-Level Configuration</strong> (overrides process or area):</p></li></ul><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# authentication null
XR(config-ospf-ar-if)# authentication
XR(config-ospf-ar-if)# authentication message-digest
XR(config-ospf-ar-if)# commit</code></code></pre><p><strong>Priority</strong>: Interface-level settings override area-level settings, which override process-level settings.</p><h3>Authentication Key Configuration</h3><h4>IOS/IOS XE</h4><ul><li><p><strong>Clear-Text Key (Type 1)</strong>:</p></li></ul><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf authentication-key 0 TestPass</code></code></pre><ul><li><ul><li><p>The 0 specifies the password is entered in clear text.</p></li><li><p>Omitting 0 may cause compatibility issues (e.g., Cisco IOS may interpret the password as encrypted, leading to mismatches).<br></p></li></ul></li><li><p><strong>MD5 Key (Type 2)</strong>:</p></li></ul><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf message-digest-key 1 md5 0 TestPass</code></code></pre><ul><li><ul><li><p>1 is the key ID, which must match between neighbors.</p></li><li><p>0 indicates clear-text password input; 7 indicates encrypted input (Type 7 encryption).</p></li><li><p>Example with encrypted password:</p></li></ul></li></ul><pre><code><code>R1(config-if)# ip ospf message-digest-key 1 md5 7 &lt;encrypted-password&gt;</code></code></pre><h4>IOS XR</h4><ul><li><p><strong>Clear-Text Key (Type 1)</strong>:</p></li></ul><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# authentication-key TestPass
XR(config-ospf-ar-if)# commit</code></code></pre><ul><li><p>MD5 Key:</p></li></ul><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# message-digest-key 1 md5 TestPass
XR(config-ospf-ar-if)# commit</code></code></pre><h3>Key Chain Configuration</h3><p>Newer IOS versions (15.x and later) support key chains for OSPF authentication.</p><h4>IOS/IOS XE</h4><pre><code><code>R1(config)# key chain OSPF_AUTH
R1(config-keychain)# key 1
R1(config-keychain-key)# key-string TestPass
R1(config-keychain-key)# cryptographic-algorithm hmac-sha-256
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf authentication key-chain OSPF_AUTH</code></code></pre><ul><li><p><strong>Key ID</strong>: Must match between neighbors.</p></li><li><p><strong>Algorithm</strong>: Options include MD5, HMAC-SHA-1, HMAC-SHA-256, etc., depending on IOS version.</p></li><li><p><strong>Advantages</strong>: Key chains support key rotation and stronger cryptographic algorithms compared to traditional MD5.</p></li></ul><h4>IOS XR</h4><pre><code><code>XR(config)# key chain OSPF_AUTH
XR(config-keychain)# key 1
XR(config-keychain-key)# key-string TestPass
XR(config-keychain-key)# cryptographic-algorithm hmac-sha-256
XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# authentication key-chain OSPF_AUTH
XR(config-ospf-ar-if)# commit</code></code></pre><h2>Virtual Link Authentication</h2><p>Virtual links are virtual interfaces in Area 0, used to connect discontiguous areas to the backbone or extend Area 0 across a transit area (more about virtual links in separate note). By default, virtual links inherit the authentication settings of Area 0.</p><h3>Configuration</h3><p>Virtual link authentication configuration overrides Area 0 settings and is configured with the transit area ID and the remote router&#8217;s Router ID.</p><h4>IOS/IOS XE</h4><ul><li><p><strong>Authentication Type</strong>:</p></li></ul><pre><code><code>R1(config)# router ospf 1
R1(config-router)# area 1 virtual-link 2.2.2.2 authentication null
R1(config-router)# area 1 virtual-link 2.2.2.2 authentication
R1(config-router)# area 1 virtual-link 2.2.2.2 authentication message-digest</code></code></pre><ul><li><p><strong>Authentication Key</strong>:</p></li></ul><pre><code><code>R1(config-router)# area 1 virtual-link 2.2.2.2 authentication-key TestPass
R1(config-router)# area 1 virtual-link 2.2.2.2 message-digest-key 1 md5 TestPass</code></code></pre><ul><li><p><strong>Combined Command</strong>:</p></li></ul><pre><code><code>R1(config-router)# area 1 virtual-link 2.2.2.2 authentication authentication-key TestPass
R1(config-router)# area 1 virtual-link 2.2.2.2 authentication message-digest message-digest-key 1 md5 TestPass</code></code></pre><h4>IOS XR</h4><ul><li><p><strong>Authentication Type and Key</strong>:</p></li></ul><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 1
XR(config-ospf-ar)# virtual-link 2.2.2.2
XR(config-ospf-ar-vl)# authentication null
XR(config-ospf-ar-vl)# authentication
XR(config-ospf-ar-vl)# authentication message-digest
XR(config-ospf-ar-vl)# authentication-key INE
XR(config-ospf-ar-vl)# message-digest-key 1 md5 INE
XR(config-ospf-ar-vl)# commit</code></code></pre><p><strong>Note</strong>: Virtual link authentication settings take precedence over Area 0 settings, allowing customized authentication for specific virtual links.</p><h2>Verification Commands</h2><p>To confirm OSPF authentication configuration and troubleshoot issues, use the following commands:</p><h4>IOS/IOS XE</h4><ul><li><p><strong>Interface Details</strong>:</p></li></ul><pre><code><code>R1# show ip ospf interface [type number]</code></code></pre><ul><li><ul><li><p>Displays authentication type and key settings for the interface.<br></p></li></ul></li><li><p><strong>OSPF Process Details</strong>:</p></li></ul><pre><code><code>R1# show ip ospf</code></code></pre><ul><li><ul><li><p>Shows area-level authentication settings and summary information.<br></p></li></ul></li><li><p><strong>Running Configuration</strong>:</p></li></ul><pre><code><code>R1# show running-config | section ospf</code></code></pre><ul><li><ul><li><p>Displays OSPF and interface authentication configurations.<br></p></li></ul></li><li><p><strong>Debug Authentication Issues</strong> (use with caution in production):</p></li></ul><pre><code><code>R1# debug ip ospf packet
R1# debug ip ospf adj</code></code></pre><ul><li><ul><li><p>debug ip ospf packet: Shows packet-level details, including authentication mismatches.</p></li><li><p>debug ip ospf adj: Displays adjacency formation issues, such as key or type mismatches.</p></li></ul></li></ul><h4>IOS XR</h4><ul><li><p>Equivalent commands:</p></li></ul><pre><code><code>XR# show ospf interface [type number]
XR# show ospf
XR# show running-config router ospf
XR# debug ospf packet
XR# debug ospf adj</code></code></pre><h2>Key Considerations</h2><ol><li><p><strong>Interface Priority</strong>: Interface-level authentication settings override area-level settings, which override process-level settings (IOS XR only).</p></li><li><p><strong>Password Format</strong>: For clear-text authentication in IOS/IOS XE, always use 0 to specify clear-text input to avoid mismatches (e.g., ip ospf authentication-key 0 TestPass).</p></li><li><p><strong>MD5 Key ID</strong>: The key ID must match between neighbors for MD5 authentication to succeed.</p></li><li><p><strong>Type Mismatch</strong>: If authentication types mismatch between neighbors (e.g., clear-text vs. MD5), the adjacency will fail, even if keys are not yet configured.</p></li><li><p><strong>Virtual Links</strong>: Virtual links inherit Area 0 authentication unless explicitly overridden.</p></li><li><p><strong>Troubleshooting</strong>: Authentication mismatches are a common cause of adjacency failures. Use debug ip ospf adj to identify issues like key ID or password mismatches.</p></li></ol><div class="poll-embed" data-attrs="{&quot;id&quot;:322507}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-3-ospfv2-authentication?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-3-ospfv2-authentication?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-3-ospfv2-authentication?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-3-ospfv2-authentication/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-3-ospfv2-authentication/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Part 4: OSPF Packet Types]]></title><description><![CDATA[Open Shortest Path First Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-3-ospf-packets-types</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-3-ospf-packets-types</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Thu, 07 Aug 2025 16:02:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BHbp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BHbp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BHbp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!BHbp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!BHbp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!BHbp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BHbp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:630487,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164419184?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BHbp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!BHbp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!BHbp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!BHbp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ddd946-be0f-49cb-95ec-8d6d873594fd_2000x1125.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Open Shortest Path First (OSPF) uses five distinct packet types to establish and maintain neighbor relationships, exchange routing information, and ensure reliable communication. These packets are carried within an OSPF common header, which identifies the packet type. This document details the OSPF packet types, their roles in the adjacency state machine, the parameters required for neighbor formation, and verification commands.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>OSPF Packet Types</h2><p>OSPF employs five packet types, each identified by a type code in the OSPF common header:</p><ol><li><p><strong>Hello (Type 1)</strong>:</p><ul><li><p>Discovers and maintains neighbor relationships.</p></li><li><p>Sent periodically to verify neighbor reachability.</p></li><li><p>Contains parameters critical for adjacency formation (see below).<br></p></li></ul></li><li><p><strong>Database Description (DBD, Type 2)</strong>:</p><ul><li><p>Summarizes the Link-State Database (LSDB) during the initial adjacency formation.</p></li><li><p>Exchanged in the Exchange state to describe LSA headers, enabling routers to identify missing or outdated LSAs.<br></p></li></ul></li><li><p><strong>Link-State Request (LSR, Type 3)</strong>:</p><ul><li><p>Requests specific LSAs identified during DBD exchange.</p></li><li><p>Sent in the Loading state to retrieve complete LSA information from a neighbor.<br></p></li></ul></li><li><p><strong>Link-State Update (LSU, Type 4)</strong>:</p><ul><li><p>Carries one or more LSAs to update the neighbor&#8217;s LSDB.</p></li><li><p>Used during initial synchronization and for topology changes (e.g., link failures).<br></p></li></ul></li><li><p><strong>Link-State Acknowledgment (LSAck, Type 5)</strong>:</p><ul><li><p>Acknowledges receipt of LSAs to ensure reliable delivery.</p></li><li><p>Sent in response to LSUs to confirm successful processing.<br></p></li></ul></li></ol><p><strong>Note</strong>: All OSPF packets use IP protocol number <strong>89</strong> and are encapsulated in IP packets. The OSPF common header includes the packet type (1&#8211;5), Router ID, Area ID, and authentication fields.</p><h2>Parameters for Neighbor Adjacency</h2><p>For two routers to form an OSPF neighbor relationship (reaching the Two-Way or Full state), the following parameters in the Hello packet and OSPF common header must match:</p><ul><li><p><strong>Hello Interval</strong>: Time between Hello packets (e.g., 10 seconds for Broadcast networks).</p></li><li><p><strong>Dead Interval</strong>: Time before declaring a neighbor down (e.g., 40 seconds for Broadcast networks).</p></li><li><p><strong>Area ID and Type</strong>: The OSPF area ID and type (e.g., normal, stub, NSSA). Stub/NSSA flags must match.</p></li><li><p><strong>Subnet ID and Mask</strong>: The interface&#8217;s subnet and mask must be identical.</p></li><li><p><strong>Authentication Type</strong>: If enabled, the authentication method (e.g., null, plaintext, MD5).</p></li><li><p><strong>Authentication Key ID and Key</strong>: For MD5 authentication, the key ID and password must match.</p></li><li><p><strong>List of Seen Neighbors</strong>: In multi-access networks, Hello packets include neighbors&#8217; Router IDs to confirm bidirectional communication.</p></li><li><p><strong>Router ID</strong>: Must be unique for each router.</p></li><li><p><strong>Network Type</strong>: The OSPF network type (e.g., Broadcast, Point-to-Point) must be compatible.</p></li><li><p><strong>MTU</strong>: The Maximum Transmission Unit must match to ensure successful DBD exchange.</p></li></ul><p><strong>Key Requirement</strong>: If any parameter mismatches, the neighbor relationship remains in the Down or Init state, preventing adjacency formation.</p><h2>Packet Transmission Details</h2><ul><li><p><strong>IP Protocol</strong>: All OSPF packets use IP protocol number 89.</p></li><li><p><strong>Hello Packet Transmission</strong>:</p><ul><li><p>On multi-access networks supporting multicast (e.g., Ethernet), Hello packets are sent to the multicast address <strong>224.0.0.5</strong> (All_OSPF_Routers).</p></li><li><p>On non-multicast networks (e.g., NBMA, Point-to-Point), Hello packets are sent as unicast to specific neighbor addresses.</p></li></ul></li><li><p><strong>Other Packets</strong>: DBD, LSR, LSU, and LSAck packets are typically unicast, except in specific cases (e.g., LSU flooding in Broadcast networks may use multicast).</p></li></ul><h2>Verification Commands</h2><p>To verify OSPF neighbor states, packet parameters, and interface settings, use the following Cisco IOS/IOS XE commands:</p><ul><li><p><strong>Show Neighbor Status</strong>:</p></li></ul><pre><code><code>R1# show ip ospf neighbor</code></code></pre><ul><li><ul><li><p>Displays neighbor Router ID, state (e.g., Full, Two-Way), interface, and timers.<br></p></li></ul></li><li><p><strong>Show Interface OSPF Details</strong>:</p></li></ul><pre><code><code>R1# show ip ospf interface [type number]</code></code></pre><ul><li><ul><li><p>Shows interface-specific OSPF settings, including timers, network type, and authentication.<br></p></li></ul></li><li><p><strong>Show OSPF Process Details</strong>:</p></li></ul><pre><code><code>R1# show ip ospf</code></code></pre><ul><li><ul><li><p>Provides OSPF process information, including Router ID, area configuration, and summary statistics.<br></p></li></ul></li><li><p><strong>Debug OSPF Packets</strong> (use with caution in production):</p></li></ul><pre><code><code>R1# debug ip ospf packet</code></code></pre><ul><li><ul><li><p>Displays real-time OSPF packet details, useful for troubleshooting mismatches.</p></li></ul></li></ul><p><strong>IOS XR Equivalents</strong>:</p><ul><li><p>show ospf neighbor</p></li><li><p>show ospf interface [type number]</p></li><li><p>show ospf</p></li><li><p>debug ospf packet</p></li></ul><h2>Key Considerations</h2><ul><li><p><strong>Adjacency Failures</strong>: Mismatched parameters (e.g., Hello Interval, MTU) are a common cause of neighbor adjacency issues. Use debug ip ospf adj to diagnose.</p></li><li><p><strong>Multicast vs. Unicast</strong>: Understand the network type&#8217;s impact on packet transmission. For example, NBMA networks require manual neighbor configuration for unicast Hellos.</p></li><li><p><strong>Packet Efficiency</strong>: Hello packets are lightweight but frequent, while LSU packets can be resource-intensive during topology changes.</p></li><li><p><strong>State Machine</strong>: The progression from Init to Full state relies on the sequential use of packet types, making their understanding critical for troubleshooting.</p></li></ul><div class="poll-embed" data-attrs="{&quot;id&quot;:322506}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-3-ospf-packets-types?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-3-ospf-packets-types?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-3-ospf-packets-types?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-3-ospf-packets-types/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-3-ospf-packets-types/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Part 3: OSPF Timers]]></title><description><![CDATA[Open Shortest Path First Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-3-ospf-timers</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-3-ospf-timers</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Sun, 03 Aug 2025 16:00:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1QC5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1QC5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1QC5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!1QC5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!1QC5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!1QC5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1QC5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:623726,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164418687?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1QC5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!1QC5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!1QC5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!1QC5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F185dd1b4-ae37-452b-98da-11fa3147cfe6_2000x1125.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Open Shortest Path First (OSPF) relies on timers to manage neighbor relationships, Link-State Advertisement (LSA) retransmissions, and LSA refresh intervals. These timers ensure reliable communication, detect neighbor failures, and maintain the Link-State Database (LSDB). This post covers the configuration and behavior of OSPF timers (Hello Interval, Dead Interval, Retransmit Interval, and LSA Refresh Timer) on Cisco IOS/IOS XE and IOS XR platforms, with emphasis on their impact on neighbor adjacency and network performance.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h2>Hello Interval</h2><p>The Hello Interval defines the time between consecutive OSPF Hello packet transmissions on an interface. Hello packets are used to discover and maintain neighbor relationships.</p><ul><li><p><strong>Default Values</strong>:</p><ul><li><p><strong>Fast Network Types</strong>: 10 seconds for Broadcast (e.g., Ethernet) and Point-to-Point (e.g., HDLC, PPP) networks.</p></li><li><p><strong>Slow Network Types</strong>: 30 seconds for Non-Broadcast Multi-Access (NBMA) and Point-to-Multipoint (P2MP, both Broadcast and Non-Broadcast) networks.</p></li></ul></li><li><p><strong>Network Type Dependency</strong>: The network type is determined by the Layer 2 encapsulation and physical interface type (e.g., Ethernet defaults to Broadcast, Frame Relay defaults to NBMA).</p></li><li><p><strong>Impact</strong>: A shorter Hello Interval allows faster neighbor discovery and failure detection but increases CPU and bandwidth usage.</p></li></ul><h3>Configuration</h3><h4>IOS/IOS XE</h4><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf hello-interval 5</code></code></pre><ul><li><p>Sets the Hello Interval to 5 seconds on the specified interface.</p></li></ul><h4>IOS XR</h4><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# hello-interval 5
XR(config-ospf-ar-if)# commit</code></code></pre><ul><li><p>Configured under the OSPF process, area, and interface hierarchy.</p></li></ul><h2>Dead Interval</h2><p>The Dead Interval is the time OSPF waits without receiving a Hello packet from a neighbor before declaring the neighbor down, tearing down the adjacency.</p><ul><li><p><strong>Default Values</strong>:</p><ul><li><p><strong>Fast Network Types</strong>: 40 seconds (4 &#215; Hello Interval of 10 seconds) for Broadcast and Point-to-Point networks.</p></li><li><p><strong>Slow Network Types</strong>: 120 seconds (4 &#215; Hello Interval of 30 seconds) for NBMA and P2MP networks.</p></li></ul></li><li><p><strong>Behavior</strong>: If no Hello packet is received within the Dead Interval, the router removes the neighbor from its adjacency table, triggers a topology update, and runs the Shortest Path First (SPF) algorithm.</p></li><li><p><strong>Requirement</strong>: The Hello and Dead Intervals <strong>must match</strong> between neighboring routers for adjacency to form. Mismatched timers cause the neighbor relationship to fail (unlike EIGRP, which does not enforce timer matching).</p></li></ul><h3>Configuration</h3><h4>IOS/IOS XE</h4><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf dead-interval 20</code></code></pre><ul><li><p>Sets the Dead Interval to 20 seconds.</p></li></ul><h4>IOS XR</h4><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# dead-interval 20
XR(config-ospf-ar-if)# commit</code></code></pre><ul><li><p>Configured under the OSPF process, area, and interface.</p></li></ul><h2>Minimal Dead Interval with Hello Multiplier</h2><p>To achieve the fastest possible neighbor failure detection, OSPF supports a minimal Dead Interval of 1 second, with multiple Hello packets sent within that second using a hello-multiplier.</p><ul><li><p><strong>IOS/IOS XE</strong>:</p><ul><li><p>The minimal keyword sets the Dead Interval to 1 second.</p></li><li><p>The hello-multiplier specifies the number of Hello packets sent per second.</p></li><li><p>Example: A hello-multiplier of 5 sends 5 Hello packets per second, effectively setting the Hello Interval to 200 ms (1/5 second).</p></li></ul></li></ul><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf dead-interval minimal hello-multiplier 5</code></code></pre><ul><li><ul><li><p><strong>Caution</strong>: This configuration is CPU-intensive, as it generates frequent Hello packets. Use sparingly on low-powered routers.</p></li><li><p><strong>Alternative</strong>: Bidirectional Forwarding Detection (BFD) is a more efficient method for sub-second failure detection, as it offloads neighbor monitoring from OSPF.<br></p></li></ul></li><li><p><strong>IOS XR</strong>:</p><ul><li><p>IOS XR allows setting the Dead Interval directly to 1 second without a hello-multiplier, leveraging the platform&#8217;s robust processing capabilities.</p></li></ul></li></ul><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# dead-interval 1
XR(config-ospf-ar-if)# commit</code></code></pre><ul><li><ul><li><p><strong>Note</strong>: The hello-multiplier is not required, as IOS XR supports a 1-second Dead Interval natively.</p></li></ul></li></ul><p><strong>Warning</strong>: Fast timers improve convergence but increase resource usage. Test in a lab environment to ensure router hardware can handle the load. BFD is recommended for production networks requiring sub-second failure detection.</p><h2>Retransmit Interval</h2><p>The Retransmit Interval is the time OSPF waits before retransmitting an unacknowledged Link-State Advertisement (LSA) to a neighbor. LSAs require acknowledgment to ensure reliable delivery.</p><ul><li><p><strong>Default Value</strong>: 5 seconds.</p></li><li><p><strong>Behavior</strong>: If an LSA (e.g., sent during LSDB synchronization) is not acknowledged within the Retransmit Interval, OSPF resends it.</p></li><li><p><strong>Considerations</strong>: The Retransmit Interval should be greater than the round-trip time of the network to avoid unnecessary retransmissions. Setting it too low can overload the network, while setting it too high delays convergence.</p></li></ul><h3>Configuration</h3><h4>IOS/IOS XE</h4><pre><code><code>R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip ospf retransmit-interval 7</code></code></pre><ul><li><p>Sets the Retransmit Interval to 7 seconds.</p></li></ul><h4>IOS XR</h4><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# retransmit-interval 7
XR(config-ospf-ar-if)# commit</code></code></pre><ul><li><p>Configured under the OSPF process, area, and interface.</p></li></ul><h2>LSA Refresh Timer (LSA Lifetime)</h2><p>The LSA Refresh Timer, also known as the LSA Lifetime, controls how often OSPF refreshes LSAs to maintain LSDB consistency across the area.</p><ul><li><p><strong>Default Value</strong>: 30 minutes (1800 seconds).</p></li><li><p><strong>Behavior</strong>: Every 30 minutes, each router refloods its LSAs to all neighbors within the area to prevent them from aging out.</p></li><li><p><strong>LSA Max Age</strong>: If an LSA is not refreshed within 60 minutes (3600 seconds), it is considered invalid and removed from the LSDB, triggering SPF recalculation.</p></li><li><p><strong>Cisco Implementation</strong>: The LSA Refresh Timer and Max Age are fixed and cannot be modified in Cisco IOS/IOS XE or IOS XR, ensuring protocol consistency.</p></li></ul><p><strong>Note</strong>: The fixed nature of the LSA Refresh Timer simplifies OSPF operation but limits flexibility compared to other protocols (e.g., IS-IS, which allows tuning of LSA lifetimes).</p><h2>Key Considerations</h2><ul><li><p><strong>Timer Matching</strong>: Hello and Dead Intervals must match between neighbors for adjacency to form. Mismatched timers are a common cause of adjacency failures.</p></li><li><p><strong>Network Type Impact</strong>: The network type (Broadcast, Point-to-Point, NBMA, etc.) determines default timer values and neighbor discovery behavior. Verify the network type using show ip ospf interface.</p></li><li><p><strong>Performance Trade-offs</strong>: Fast timers (e.g., minimal Dead Interval) improve convergence but increase CPU and bandwidth usage. Use BFD for sub-second failure detection in production networks.</p></li><li><p><strong>Troubleshooting</strong>: Check timer mismatches using show ip ospf neighbor and debug ip ospf adj to diagnose adjacency issues.</p></li></ul><div class="poll-embed" data-attrs="{&quot;id&quot;:322501}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-3-ospf-timers?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-3-ospf-timers?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-3-ospf-timers?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-3-ospf-timers/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-3-ospf-timers/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Part 2: OSPF Configuration]]></title><description><![CDATA[Open Shortest Path First Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-2-ospf-configuration</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-2-ospf-configuration</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Thu, 31 Jul 2025 16:01:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nbTi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nbTi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nbTi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!nbTi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!nbTi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!nbTi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nbTi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:631969,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164418082?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nbTi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!nbTi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!nbTi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!nbTi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e116c95-c807-4478-9032-13504f1ead81_2000x1125.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This Post outlines the configuration of Open Shortest Path First (OSPF) in its simplest form between two routers, covering Cisco IOS, IOS XE, and IOS XR platforms. It includes configuration methods, requirements for neighbor establishment, passive interface concepts, maximum paths, administrative distance, and default route advertisement. <br><br></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Configuring OSPF Between Two Routers</h2><p>OSPF can be configured on Cisco IOS/IOS XE and IOS XR platforms using different approaches. Below are examples of the simplest OSPF configurations to establish adjacency between two routers connected via a common subnet.</p><h3>Cisco IOS/IOS XE Configuration</h3><p>OSPF can be enabled either under the OSPF process (classic method) or on a per-interface basis.</p><h4>Classic Method (Under OSPF Process)</h4><pre><code><code>vIOS1(config)# router ospf 1
vIOS1(config-router)# network 10.0.0.0 0.0.0.255 area 0</code></code></pre><ul><li><p>The network command activates OSPF on interfaces whose IP addresses fall within the specified range (10.0.0.0/24) and assigns them to Area 0.</p></li><li><p>The wildcard mask (0.0.0.255) determines the range of addresses matched.</p></li></ul><h4>Per-Interface Method</h4><pre><code><code>vIOS2(config)# interface GigabitEthernet0/0
vIOS2(config-if)# ip ospf 1 area 0</code></code></pre><ul><li><p>OSPF is enabled directly on the interface, associating it with OSPF process ID 1 and Area 0.</p></li><li><p>This method offers granular control and avoids the need for wildcard masks.</p></li></ul><p><strong>Note</strong>: The process ID (e.g., 1 or 100) is locally significant and does not need to match between routers. However, the area ID must match for adjacency to form.</p><h3>Cisco IOS XR Configuration</h3><p>IOS XR uses a hierarchical configuration structure, with OSPF settings organized under the OSPF process and area.</p><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# address-family ipv4 unicast
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/0
XR(config-ospf-ar-if)# hello-interval 10
XR(config-ospf-ar-if)# commit</code></code></pre><ul><li><p>The address-family ipv4 unicast specifies the protocol family.</p></li><li><p>Interfaces are configured under a specific area, enabling OSPF on the interface.</p></li><li><p>Interface-level parameters, such as hello-interval, are set within the interface context.</p></li><li><p>The commit command is required to apply changes in IOS XR.</p></li></ul><p><strong>Key Difference</strong>: IOS XR consolidates OSPF configuration under the OSPF process hierarchy, unlike IOS/IOS XE, which allows configuration at both global and interface levels.</p><h3>Clarification on Network Command</h3><ul><li><p>The network command in IOS/IOS XE does <strong>not</strong> advertise subnets directly. Instead, it activates OSPF on interfaces whose IP addresses match the specified range.</p></li><li><p>Subnets are advertised via OSPF Link-State Advertisements (LSAs) generated for the interfaces on which OSPF is enabled.</p></li></ul><h2>Router ID</h2><ul><li><p>The OSPF Router ID uniquely identifies a router in the OSPF domain.</p></li><li><p>It can be manually configured:</p></li></ul><pre><code><code>R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1</code></code></pre><ul><li><p>If not hardcoded, the Router ID is automatically selected based on:</p><ol><li><p>The highest IP address of a loopback interface.</p></li><li><p>If no loopback exists, the highest IP address of a physical interface.</p></li></ol></li><li><p>The Router ID must be unique for each OSPF router.</p></li></ul><h2>Requirements for OSPF Neighbor Adjacency</h2><p>For two routers to form an OSPF neighbor relationship and exchange routes, the following parameters must match on the shared interface:</p><ol><li><p><strong>Subnet and Mask</strong>: Both routers must be on the same subnet with identical subnet masks.</p></li><li><p><strong>Area ID</strong>: The OSPF area assigned to the interface must match.</p></li><li><p><strong>Hello and Dead Timers</strong>: The hello interval (default: 10 seconds) and dead interval (default: 40 seconds) must match.</p></li><li><p><strong>Network Type</strong>: The OSPF network type (e.g., broadcast, point-to-point) must be compatible.</p></li><li><p><strong>Authentication</strong>: If enabled, authentication type and credentials (e.g., MD5 key) must match.</p></li><li><p><strong>Stub Flags</strong>: If the area is configured as a stub or NSSA, both routers must agree on the stub flag.</p></li><li><p><strong>MTU</strong>: The Maximum Transmission Unit must match to ensure successful Database Description (DBD) packet exchange.</p></li></ol><p><strong>Process After OSPF Activation</strong>:</p><ol><li><p>The router sends Hello packets out of the OSPF-enabled interface.</p></li><li><p>Upon receiving a Hello packet, the router verifies the above parameters. If they match, a neighbor relationship forms.</p></li><li><p>The routers synchronize their Link-State Databases (LSDBs) by exchanging LSAs.</p></li><li><p>The Shortest Path First (SPF) algorithm runs to compute the best paths, which are installed in the routing table.</p></li><li><p>The neighbor relationship is maintained by sending Hello packets at the hello interval (default: 10 seconds).</p></li><li><p>LSAs are reflooded every 30 minutes (LSA refresh interval) to ensure LSDB consistency.</p></li></ol><h2>Passive Interface Configuration</h2><p>A passive interface in OSPF advertises its connected subnet but does not form neighbor relationships, nor processing any received OSPF routing update conserving resources and enhancing security.</p><h3>Use Case</h3><ul><li><p>Applied to interfaces connected to LAN subnets with no OSPF neighbors (e.g., end-user networks).</p></li><li><p>The subnet is still advertised via OSPF through other active interfaces.</p></li></ul><h3>Effects of Passive Interface</h3><ol><li><p>The router does <strong>not</strong> send Hello packets out of the passive interface, reducing CPU and bandwidth usage.</p></li><li><p>Incoming Hello packets on the passive interface are discarded, preventing unauthorized neighbor formation.</p></li><li><p>The interface&#8217;s subnet is included in OSPF advertisements via other OSPF-enabled interfaces.</p></li></ol><h3>Configuration</h3><h4>IOS/IOS XE</h4><pre><code><code>R1(config)# router ospf 1
R1(config-router)# passive-interface GigabitEthernet0/1</code></code></pre><ul><li><p>Makes a specific interface passive.</p></li></ul><pre><code><code>R1(config)# router ospf 1
R1(config-router)# passive-interface default
R1(config-router)# no passive-interface GigabitEthernet0/0</code></code></pre><ul><li><p>Makes all interfaces passive by default, with selective enabling of active interfaces.</p></li></ul><h4>IOS XR</h4><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# area 0
XR(config-ospf-ar)# interface GigabitEthernet0/0/0/1
XR(config-ospf-ar-if)# passive enable
XR(config-ospf-ar-if)# commit</code></code></pre><ul><li><p>Enables passive mode on a specific interface.</p></li></ul><h2>Maximum Paths</h2><p>The maximum-paths feature controls how many equal-cost paths OSPF installs in the routing table for load balancing.</p><ul><li><p>OSPF calculates the cost to a destination based on interface bandwidth (default formula: reference bandwidth / interface bandwidth).</p></li><li><p>If multiple paths to a prefix have the same cost, OSPF can load balance across them.</p></li><li><p>The maximum-paths command specifies the maximum number of equal-cost paths (default varies by platform, typically 4 or 8).</p></li></ul><h3>Configuration</h3><h4>IOS/IOS XE</h4><pre><code><code>R1(config)# router ospf 1
R1(config-router)# maximum-paths 4</code></code></pre><ul><li><p>Allows up to 4 equal-cost paths (range: 1&#8211;32, depending on platform and IOS version).</p></li><li><p>Setting to 1 disables load balancing, forcing OSPF to select a single path.</p></li></ul><h4>IOS XR</h4><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# maximum paths 4
XR(config-ospf)# commit</code></code></pre><ul><li><p>Configured directly under the OSPF process.</p></li></ul><h2>Administrative Distance (AD)</h2><p>Administrative Distance is a locally significant value that determines the preference of one routing protocol over another. OSPF has a default AD of 110, which can be modified.</p><h3>Configuration</h3><h4>IOS/IOS XE</h4><ul><li><p>Change AD for all OSPF routes:</p></li></ul><pre><code><code>R1(config)# router ospf 1
R1(config-router)# distance 100</code></code></pre><ul><li><p>Change AD based on route type:</p></li></ul><pre><code><code>R1(config)# router ospf 1
R1(config-router)# distance ospf intra-area 100 inter-area 110 external 120</code></code></pre><ul><li><ul><li><p><strong>Intra-area</strong>: Routes within the same area (O routes).</p></li><li><p><strong>Inter-area</strong>: Routes from another area (O IA routes).</p></li><li><p><strong>External</strong>: Routes redistributed into OSPF (O E1, O E2, O N1, O N2).</p></li></ul></li></ul><ul><li><p>Change AD for specific routes based on Router ID (RID) and/or ACL:</p></li></ul><pre><code><code>R1(config)# access-list 10 permit 192.168.1.0 0.0.0.255
R1(config)# router ospf 1
R1(config-router)# distance 90 1.1.1.1 0.0.0.0 10</code></code></pre><ul><li><ul><li><p>Sets AD to 90 for routes from RID 1.1.1.1 matching ACL 10.</p></li><li><p>Wildcard mask allows matching multiple RIDs (e.g., 1.1.1.0 0.0.0.255 for a range).</p></li><li><p>If no ACL is specified, applies to all routes from the matched RID.</p></li></ul></li></ul><p><strong>Caveat</strong>: The distance command with RID and ACL may not behave as expected for non-/32 prefixes. If the same prefix is advertised by multiple routers, OSPF applies the configured AD to all instances of the prefix, not just the matched RID. This is a known limitation in OSPF&#8217;s AD processing.</p><h4>IOS XR</h4><ul><li><p>Change AD for all OSPF routes:</p></li></ul><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# distance 100
XR(config-ospf)# commit</code></code></pre><ul><li><p>Change AD for specific routes based on ACL and RID:</p></li></ul><pre><code><code>XR(config)# ipv4 access-list OSPF_AD
XR(config-ipv4-acl)# permit 192.168.1.0/24
XR(config)# router ospf 1
XR(config-ospf)# distance 90 1.1.1.1 0.0.0.0 OSPF_AD
XR(config-ospf)# commit</code></code></pre><ul><li><p>Change AD based on route type (not directly supported in IOS XR; use route policies for advanced configuration).</p></li></ul><p><strong>Note</strong>: OSPF prefers internal routes (intra-area, inter-area) over external routes due to its route selection hierarchy, regardless of AD.</p><h2>Default Route Advertisement</h2><p>A default route (0.0.0.0/0) directs traffic to a gateway (e.g., core router or ISP) when no specific route exists.</p><h3>Use Cases</h3><ul><li><p>Direct remote site routers to the network core.</p></li><li><p>Provide internet access by pointing to an ISP-facing router.</p></li></ul><h3>Advantages</h3><ul><li><p>Reduces LSDB size, improving convergence speed.</p></li><li><p>Lowers CPU and memory usage by minimizing routing table entries.</p></li></ul><h3>Drawbacks</h3><ul><li><p>May lead to suboptimal routing or blackholing if not carefully designed.</p></li></ul><h3>Configuration</h3><h4>IOS/IOS XE</h4><pre><code><code>R1(config)# router ospf 1
R1(config-router)# default-information originate always</code></code></pre><h4>IOS XR</h4><pre><code><code>XR(config)# router ospf 1
XR(config-ospf)# default-information originate always
XR(config-ospf)# commit</code></code></pre><h3>Default Route Injection Options</h3><ol><li><p><strong>Advertise to All Areas</strong>:</p><ul><li><p>Use default-information originate [always].</p></li><li><p>The always keyword advertises the default route even if no default route exists in the routing table.</p></li><li><p>Without always, a default route (e.g., static route to Null0) must exist in routing table.</p></li></ul></li></ol><ol start="2"><li><p><strong>Advertise to Stub Areas</strong>:</p></li></ol><ul><li><p>Stub, Totally Stubby, and Totally NSSA areas automatically receive a default route from the ABR.</p></li><li><p>For NSSA areas, use:</p></li></ul><pre><code><code>R1(config)# router ospf 1
R1(config-router)# area 1 nssa default-information-originate</code></code></pre><h3>Additional Options for Default Route</h3><ul><li><p><strong>Metric</strong>: Set the metric for the default route:</p></li></ul><pre><code><code>R1(config-router)# default-information originate metric 10</code></code></pre><ul><li><p><strong>Metric-Type</strong>: Specify the external route type (E1 or E2):</p></li></ul><pre><code><code>R1(config-router)# default-information originate metric-type 1</code></code></pre><ul><li><ul><li><p>E1: Metric increases as the route propagates.</p></li><li><p>E2 (default): Metric remains fixed.</p></li></ul></li></ul><ul><li><p><strong>Route-Map</strong>: Conditionally advertise the default route based on a route&#8217;s presence:</p></li></ul><pre><code><code>R1(config)# access-list 1 permit 5.5.5.0 0.0.0.3
R1(config)# route-map ISP_CHECK permit 10
R1(config-route-map)# match ip address 1
R1(config)# router ospf 1
R1(config-router)# default-information originate route-map ISP_CHECK</code></code></pre><ul><li><ul><li><p>Advertises the default route only if 5.5.5.0/30 (e.g., ISP link) is in the routing table.</p></li></ul></li></ul><p><strong>Note</strong>: A default route can be redistributed into OSPF (e.g., from a static route) using the redistribute command, but this generates an external LSA (Type 5).<br></p><div class="poll-embed" data-attrs="{&quot;id&quot;:322499}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-2-ospf-configuration?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-2-ospf-configuration?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-2-ospf-configuration?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-2-ospf-configuration/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-2-ospf-configuration/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Part 1: Link State Routing with OSPF]]></title><description><![CDATA[Open Shortest Path First Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-1-link-state-routing-with-ospf</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-1-link-state-routing-with-ospf</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Sun, 27 Jul 2025 16:01:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UvO9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UvO9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UvO9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!UvO9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!UvO9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!UvO9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UvO9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:628372,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/164416798?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UvO9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!UvO9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!UvO9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!UvO9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd80f8ce-15ae-40cc-8526-709bc0578ef4_2000x1125.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Open Shortest Path First (OSPF) is a link-state routing protocol that operates within the Internet Protocol (IP) suite. Unlike distance vector protocols, OSPF provides routers with a comprehensive view of the network topology, enabling more informed routing decisions. This document compares OSPF (and the link-state family) to distance vector protocols, highlighting key differences in topology visibility, route summarization, route filtering, and convergence behavior.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Key Differences Between Link-State and Distance Vector Protocols<br></h2><h3>1. Network Topology Visibility</h3><p>Link-state routing protocols, such as OSPF and IS-IS, provide routers with a complete map of the network topology, while distance vector protocols offer limited visibility.</p><ul><li><p><strong>Link-State Protocols (e.g., OSPF, IS-IS)</strong>:</p><ul><li><p>Routers maintain a detailed topology database, including all subnets and their interconnections.</p></li><li><p>Each router knows the location of every subnet and the paths (links) between routers.</p></li><li><p>This comprehensive visibility requires significant processing resources (CPU, RAM, and memory) to compute the shortest path using Dijkstra&#8217;s Shortest Path First (SPF) algorithm.</p></li></ul></li><li><p><strong>Distance Vector Protocols (e.g., RIP, EIGRP)</strong>:</p><ul><li><p>Routers have limited knowledge, aware only of subnets and the next-hop router to reach them.</p></li><li><p>The next hop is typically the neighboring router that advertised the route update.</p></li><li><p>This approach requires less processing power, as routers rely on updates from neighbors rather than computing a full topology.</p></li></ul></li></ul><p><strong>Note</strong>: The increased resource demands of link-state protocols are offset by their ability to make optimal routing decisions based on a complete network view.<br></p><h3>2. Route Summarization</h3><p>Route summarization reduces routing table size by aggregating multiple subnets into a single route advertisement. The flexibility and location of summarization differ between the two protocol families.</p><ul><li><p><strong>Distance Vector Protocols</strong>:</p><ul><li><p>Summarization can be performed anywhere in the topology, provided the router has the necessary configuration.</p></li><li><p>This flexibility simplifies network design but can lead to sub-optimal routing if not carefully managed.</p></li></ul></li><li><p><strong>Link-State Protocols</strong>:</p><ul><li><p>Summarization is restricted to specific boundaries to maintain the integrity of the topology database.</p></li><li><p><strong>OSPF</strong>:</p><ul><li><p>Summarization occurs only at Area Border Routers (ABRs) or Autonomous System Boundary Routers (ASBRs).</p></li><li><p>ABRs summarize routes between OSPF areas, while ASBRs summarize external routes redistributed into OSPF.</p></li></ul></li><li><p><strong>IS-IS</strong>:</p><ul><li><p>Summarization is performed by Level 1/Level 2 (L1/L2) routers, typically at the boundary between IS-IS domains or levels.</p></li><li><p>L1/L2 routers can summarize routes to reduce the size of the routing information exchanged between levels.</p></li></ul></li></ul></li></ul><p>In OSPF, summarization at ABRs/ASBRs ensures that intra-area routers receive only summarized information, reducing the size of the Link-State Database (LSDB) and improving scalability. However, improper summarization can hide specific routes, potentially causing routing loops or blackholing traffic.<br></p><h3>3. Route Filtering</h3><p>Route filtering controls which routes are advertised or accepted, influencing network traffic flow and security.</p><ul><li><p><strong>Distance Vector Protocols</strong>:</p><ul><li><p>Filtering can be applied on any router in the topology, offering granular control.</p></li><li><p>This flexibility allows administrators to tailor routing updates at any point but requires careful configuration to avoid inconsistencies.</p></li></ul></li></ul><ul><li><p><strong>Link-State Protocols</strong>:</p><ul><li><p>Filtering is restricted to boundary routers to preserve the consistency of the LSDB.</p></li><li><p><strong>OSPF</strong>:</p><ul><li><p>Only ABRs and ASBRs can filter routes.</p></li><li><p>ABRs filter inter-area routes, while ASBRs filter external routes redistributed into OSPF.</p></li></ul></li><li><p><strong>IS-IS</strong>:</p><ul><li><p>Filtering is performed by L1/L2 routers at the boundary between IS-IS levels or domains.</p></li><li><p>This ensures that only relevant routes are propagated between levels.<br></p></li></ul></li></ul></li></ul><h3>4. Convergence Speed</h3><p>Convergence refers to the time a routing protocol takes to update all routers in the network after a topology change (e.g., link failure or new route being advertised).</p><ul><li><p><strong>Distance Vector Protocols (e.g., EIGRP)</strong>:</p><ul><li><p>Generally converge faster than OSPF or IS-IS in smaller networks due to simpler update mechanisms.</p></li><li><p>EIGRP, as an enhanced distance vector protocol, uses Diffusing Update Algorithm (DUAL) to achieve rapid convergence, especially when feasible successors are available.</p></li></ul></li><li><p><strong>Link-State Protocols (e.g., OSPF, IS-IS)</strong>:</p><ul><li><p>Convergence is typically slower than EIGRP in small networks due to the need to flood Link-State Advertisements (LSAs), synchronize LSDBs, and run the SPF algorithm.</p></li><li><p>However, OSPF and IS-IS scale better in large networks, as their hierarchical design (areas in OSPF, levels in IS-IS) limits the scope of topology updates.</p></li><li><p>OSPF convergence can be optimized using techniques such as:</p><ul><li><p>Tuning SPF timers (e.g., spf-delay and spf-holdtime).</p></li><li><p>Enabling incremental SPF (iSPF) to reduce computation overhead.</p></li><li><p>Using Bidirectional Forwarding Detection (BFD) for faster link failure detection.</p></li></ul></li></ul></li></ul><p>While EIGRP may converge faster in certain scenarios, OSPF and IS-IS are more robust in large, complex networks due to their hierarchical structure and ability to handle diverse topologies. The statement that distance vector protocols are "normally faster" oversimplifies the comparison, as convergence depends on network size, configuration, and optimization techniques.</p><h2>Conclusion</h2><p>OSPF, as a link-state routing protocol, offers superior scalability and topology awareness compared to distance vector protocols, at the cost of increased resource demands. Its restrictions on summarization and filtering (limited to ABRs/ASBRs) ensure LSDB consistency, while its convergence speed can be optimized for large-scale deployments. Understanding these differences is critical for designing and troubleshooting networks.</p><div class="poll-embed" data-attrs="{&quot;id&quot;:322494}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-1-link-state-routing-with-ospf?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-1-link-state-routing-with-ospf?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-1-link-state-routing-with-ospf?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-1-link-state-routing-with-ospf/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-1-link-state-routing-with-ospf/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[PART 14: EIGRP Route Summarization]]></title><description><![CDATA[Enhanced Interior Gateway Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-14-eigrp-route-summarization</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-14-eigrp-route-summarization</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Wed, 23 Jul 2025 11:26:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SCM2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SCM2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SCM2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!SCM2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!SCM2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!SCM2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SCM2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:774300,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163387031?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SCM2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!SCM2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!SCM2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!SCM2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F541dfea7-1c78-45ba-a7ba-27d0f1d635d0_1500x875.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>EIGRP supports two methods of route summarization:</p><ol><li><p>Manual Summarization</p></li><li><p>Auto-summarization (legacy feature)</p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Manual Summarization</h2><h3>Concept and Configuration</h3><p>Manual summarization allows you to create aggregate routes that consolidate multiple more-specific prefixes into a single advertisement.<br></p><h4>Process:</h4><ol><li><p>Disable auto-summarization within the EIGRP process (if not already disabled)</p></li><li><p>Identify the interface from which you want to advertise the summary</p></li><li><p>Configure the summary address command on that interface<br></p></li></ol><h4>Configuration Syntax:</h4><p><strong>For IOS Classic Mode:</strong></p><pre><code><code>Router(config-if)# ip summary-address eigrp &lt;AS-number&gt; &lt;summary-address&gt; &lt;subnet-mask&gt; [leak-map &lt;route-map-name&gt;]</code></code></pre><p><strong>For IOS Named Mode:</strong></p><pre><code><code>Router(config-router-af-interface)# summary-address &lt;summary-address&gt; &lt;subnet-mask&gt; [leak-map &lt;route-map-name&gt;]</code></code></pre><p><strong>For IOS XR:</strong></p><pre><code><code>Router(config)# router eigrp &lt;process-name&gt;
Router(config-eigrp)# address-family {ipv4 | ipv6}
Router(config-eigrp-af)# interface &lt;type&gt; &lt;number&gt;
Router(config-eigrp-af-if)# summary-address &lt;prefix&gt;/&lt;prefix-length&gt; [leak-map &lt;route-policy-name&gt;]</code></code></pre><p></p><h3>Effects of Manual Summarization:</h3><ul><li><p>The configured summary route is advertised to EIGRP neighbors</p></li><li><p>More specific routes covered by the summary are suppressed from advertisements</p></li><li><p>A discard route (pointing to Null0) is automatically created with an administrative distance of 5</p></li><li><p>The Null0 route acts as a loop prevention mechanism</p></li><li><p>When external EIGRP routes (AD 170) are summarized, they become internal routes (AD 90) on downstream routers<br></p></li></ul><h3>Advanced Features:</h3><ul><li><p><strong>Leak Maps</strong>: Allow specific routes to be advertised alongside the summary route</p><ul><li><p>Requires configuration of a route map to match the specific routes</p></li><li><p>Useful when you need exceptions to the summarization<br></p></li></ul></li></ul><h3>Flexibility:</h3><ul><li><p>No restrictions on what can be summarized as long as the component routes exist in the routing table</p></li><li><p>Can summarize both internal and external EIGRP routes<br></p></li></ul><h2>Auto-Summarization</h2><h3>Concept and Behavior</h3><p>Auto-summarization automatically summarizes routes to their classful boundaries when advertised across different major networks.</p><h3>Key Points:</h3><ul><li><p>Disabled by default in newer IOS versions (enabled by default in older versions)</p></li><li><p>Only applies to locally originated routes that are:</p><ul><li><p>Not redistributed from other routing protocols</p></li><li><p>Explicitly advertised via the network command in EIGRP configuration<br></p></li></ul></li></ul><h3>Process Logic:</h3><ol><li><p>EIGRP examines locally connected routes advertised in the EIGRP process</p></li><li><p>Summarizes these routes to their classful boundaries (A:/8, B:/16, C:/24)</p></li><li><p>Creates a Null0 route for loop prevention</p></li><li><p>Determines advertisement eligibility:</p><ul><li><p>If the outgoing interface's network differs from the summarized route's network &#8594; Advertise summary</p></li><li><p>If the outgoing interface's network matches the summarized route's network &#8594; Additional checks:</p><ul><li><p>If summary mask is more specific than interface subnet mask &#8594; Do not advertise summary</p></li><li><p>If summary mask is less specific than interface subnet mask &#8594; Advertise summary<br></p></li></ul></li></ul></li></ol><h3>Limitations:</h3><ul><li><p><strong>Not suitable for discontiguous networks</strong>: Can cause routing problems with non-contiguous subnets</p></li><li><p>Limited to classful boundaries only</p></li><li><p>Lacks the flexibility of manual summarization<br></p></li></ul><h2>Best Practices</h2><ul><li><p>Use manual summarization for more control and flexibility</p></li><li><p>Disable auto-summarization in production networks unless specifically needed</p></li><li><p>Create summary addresses that encompass all relevant prefixes to prevent routing loops</p></li><li><p>Use leak maps when specific routes must be advertised alongside summaries</p></li><li><p>Test summarization implementations thoroughly before deploying in production</p></li></ul><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:316336}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-14-eigrp-route-summarization?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs ! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-14-eigrp-route-summarization?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-14-eigrp-route-summarization?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-14-eigrp-route-summarization/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-14-eigrp-route-summarization/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[PART 13: EIGRP Route Filtering]]></title><description><![CDATA[Enhanced Interior Gateway Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-13-eigrp-route-filtering</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-13-eigrp-route-filtering</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Sat, 19 Jul 2025 14:01:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bzqX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bzqX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bzqX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!bzqX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!bzqX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!bzqX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bzqX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:771409,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163386111?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bzqX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!bzqX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!bzqX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!bzqX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8495697-3b89-49fa-b64b-e9158f88af03_1500x875.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Distribute lists in EIGRP provide a mechanism to filter routes being advertised or received. They act as a control mechanism determining which networks are permitted or denied in routing updates.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Matching Tools</h2><p>Distribute lists can utilize the following matching tools:</p><ol><li><p><strong>Access Control Lists (ACLs)</strong></p><ul><li><p>Standard ACLs: Match a single network address</p></li><li><p>Extended ACLs: Match based on source (next-hop) and destination (network)</p></li><li><p>Named ACLs: Provide the same functionality with descriptive identifiers<br></p></li></ul></li><li><p><strong>Prefix Lists</strong></p><ul><li><p>More granular control over route filtering</p></li><li><p>Match multiple networks based on subnet mask specifications</p></li><li><p>Critical area requiring careful configuration to avoid filtering errors<br></p></li></ul></li><li><p><strong>Route Maps</strong></p><ul><li><p>Complex matching capability</p></li><li><p>Can reference ACLs or prefix lists</p></li><li><p>Can match based on EIGRP route type (internal vs. external)<br></p></li></ul></li><li><p><strong>Gateway Filtering</strong></p><ul><li><p>Filters based on next-hop addresses</p></li><li><p>Uses prefix lists for matching the next-hop<br></p></li></ul></li></ol><h2>Direction Configuration</h2><p>Distribute lists require a direction specification:</p><ul><li><p><strong>IN</strong>: Filters incoming routes (received from neighbors)</p></li><li><p><strong>OUT</strong>: Filters outgoing routes (advertised to neighbors)<br></p></li></ul><h2>Interface Specification</h2><p>The filter can be applied to:</p><ul><li><p>A single interface</p></li><li><p>Multiple specific interfaces</p></li><li><p>All interfaces (by omitting the interface parameter)<br></p></li></ul><h2>Configuration Syntax</h2><h3>For EIGRP in Classic Mode:</h3><pre><code><code>Router(config-router)# distribute-list {acl-number | prefix-list-name | route-map-name} {in | out} [interface-name]</code></code></pre><h3>For EIGRP in Named Mode:</h3><pre><code><code>Router(config-router-af-topology)# distribute-list {acl-number | prefix-list-name | route-map-name} {in | out} [interface-name]</code></code></pre><h3>For IOS XR:</h3><pre><code><code>Router(config)# router eigrp process-name
Router(config-eigrp)# address-family {ipv4 | ipv6}
Router(config-eigrp-af)# distribute-list {prefix-list | route-policy} name {in | out} [interface-type interface-number]</code></code></pre><p></p><h2>Special Considerations for Extended ACLs</h2><p>When using extended ACLs with EIGRP distribute lists:</p><ul><li><p><strong>Source field</strong>: Matches the next-hop IP address (advertising router)</p></li><li><p><strong>Destination field</strong>: Matches the network being advertised</p></li><li><p>Cannot match based on subnet mask</p></li><li><p>Primarily used to filter routes based on which neighbor sent them</p></li></ul><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:316331}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-13-eigrp-route-filtering?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-13-eigrp-route-filtering?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-13-eigrp-route-filtering?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-13-eigrp-route-filtering/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-13-eigrp-route-filtering/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[PART 12: EIGRP STUB]]></title><description><![CDATA[Enhanced Interior Gateway Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-12-eigrp-stub</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-12-eigrp-stub</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Tue, 15 Jul 2025 14:00:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jaub!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jaub!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jaub!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!jaub!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!jaub!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!jaub!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jaub!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:772695,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163385434?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jaub!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!jaub!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!jaub!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!jaub!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58d04b0d-e0a7-4987-ae34-1200e11df955_1500x875.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>EIGRP stub routers play a critical role in optimizing network convergence and resource utilization in hierarchical network designs. This feature helps limit query propagation and reduce unnecessary control plane traffic in specific network topologies.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Purpose and Benefits of EIGRP Stub Routers</h2><p>EIGRP stub configuration is designed primarily to:</p><ol><li><p>Limit EIGRP query scope during route failures</p></li><li><p>Reduce bandwidth consumption on WAN links</p></li><li><p>Accelerate network convergence</p></li><li><p>Minimize processing requirements on edge devices</p></li><li><p>Protect remote routers from participating in complex route calculations<br></p></li></ol><h2>Common Deployment Scenarios</h2><h3>Remote Office/Branch Office</h3><p>In a typical enterprise network, small remote offices connect to headquarters via limited-bandwidth WAN links. <strong>Without</strong> stub configuration, these remote routers would:</p><ul><li><p>Receive all query messages for any route failure in the core network</p></li><li><p>Consume valuable WAN bandwidth with query/reply traffic</p></li><li><p>Process queries for routes they have no alternate path to reach<br></p></li></ul><h3>Hub-and-Spoke Topologies</h3><p>In hub-and-spoke designs, spoke routers only have a single path back to the network core. Configuring these as stubs prevents unnecessary query propagation while maintaining full connectivity.<br></p><h2>EIGRP Stub Operation</h2><p>When a router is configured as a stub:</p><ol><li><p>It sends special Hello packets containing a Stub TLV (Type-Length-Value) field</p></li><li><p>This TLV identifies the router as a stub and indicates its capabilities</p></li><li><p>Upstream neighbors will not send queries to the stub router for route information</p></li><li><p>The stub router will only advertise routes according to its configured stub options</p></li></ol><p>The upstream neighbor effectively acts as a shield, answering queries on behalf of the stub router by immediately replying "unreachable" for routes not in its own table.<br></p><h2>Stub Configuration Options</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AVfY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AVfY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png 424w, https://substackcdn.com/image/fetch/$s_!AVfY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png 848w, https://substackcdn.com/image/fetch/$s_!AVfY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png 1272w, https://substackcdn.com/image/fetch/$s_!AVfY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AVfY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png" width="1038" height="347" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:347,&quot;width&quot;:1038,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:86022,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163385434?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AVfY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png 424w, https://substackcdn.com/image/fetch/$s_!AVfY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png 848w, https://substackcdn.com/image/fetch/$s_!AVfY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png 1272w, https://substackcdn.com/image/fetch/$s_!AVfY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec837c3-1de8-4d57-bdf4-6086c574482a_1038x347.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><br>TLV Flag Behavior</h2><p>As shown in the image, the stub capabilities are encoded in a bit field within the Stub TLV:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GAin!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GAin!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png 424w, https://substackcdn.com/image/fetch/$s_!GAin!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png 848w, https://substackcdn.com/image/fetch/$s_!GAin!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png 1272w, https://substackcdn.com/image/fetch/$s_!GAin!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GAin!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png" width="520" height="195" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:195,&quot;width&quot;:520,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5726,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163385434?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GAin!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png 424w, https://substackcdn.com/image/fetch/$s_!GAin!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png 848w, https://substackcdn.com/image/fetch/$s_!GAin!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png 1272w, https://substackcdn.com/image/fetch/$s_!GAin!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f23e37e-e87a-4df3-a837-c25eb4d9594b_520x195.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>Connected: Set (1)</p></li><li><p>Static: Not set (0)</p></li><li><p>Summary: Set (1)</p></li><li><p>Redistributed: Set (1)</p></li><li><p>Leak-Map: Not set (0)</p></li><li><p>Receive-Only: Not set (0)</p></li></ul><p>Notably, the "<strong>redistributed</strong>" bit is set <strong>by default</strong> in the TLV, even if not explicitly configured, though it will only take effect for connected routes unless explicit redistribution is configured.</p><h2>Configuration Commands</h2><h3>Cisco IOS/IOS XE (Numbered Mode)</h3><pre><code><code>Router(config-router)# eigrp stub [connected] [static] [summary] [redistributed] [leak-map name] [receive-only]</code></code></pre><h3>Cisco IOS XE (Named Mode)</h3><pre><code><code>Router(config-router-af)# eigrp stub [connected] [static] [summary] [redistributed] [leak-map name] [receive-only]</code></code></pre><h2>Important Considerations</h2><ol><li><p><strong>Static routes</strong> require either network statements or redistribution to be advertised</p></li><li><p><strong>Default advertisement</strong> includes connected and summary routes only</p></li><li><p><strong>Neighbor reestablishment</strong> occurs when stub configuration changes</p></li><li><p><strong>Redistributed bit</strong> appears set in packet captures by default, but only applies to connected routes unless redistribution is configured</p></li><li><p><strong>Receive-only</strong> option cannot be combined with any other stub options</p></li></ol><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:316324}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-12-eigrp-stub?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-12-eigrp-stub?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-12-eigrp-stub?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-12-eigrp-stub/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-12-eigrp-stub/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[PART 11: EIGRP Query Process ]]></title><description><![CDATA[Enhanced Interior Gateway Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-11-eigrp-query-process</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-11-eigrp-query-process</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Fri, 11 Jul 2025 14:00:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DWAH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DWAH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DWAH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!DWAH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!DWAH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!DWAH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DWAH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/300480db-42af-4657-9cb4-db6abf193137_1500x875.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:776160,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163384589?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DWAH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!DWAH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!DWAH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!DWAH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300480db-42af-4657-9cb4-db6abf193137_1500x875.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The EIGRP query process is a crucial mechanism for handling route failures and network convergence. When an EIGRP router loses a route, it initiates a structured process to either find an alternative path or confirm the route is truly unavailable.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>The Query Process Workflow</h2><p>When an EIGRP router loses a route (typically when the next-hop becomes unreachable), it follows these steps:</p><ol><li><p><strong>Active State Initiation</strong>:</p><ul><li><p>The router marks the route as "Active" in its <strong>topology table</strong></p></li><li><p>It sends Query messages (Type 3) to all EIGRP neighbors except through the interface where the route was lost</p></li><li><p>The Active Timer starts (default: 3 minutes)<br></p></li></ul></li><li><p><strong>Downstream Router Response Options</strong>:</p><ul><li><p>If the downstream router has never learned about this route: It immediately sends a Reply (Type 4 EIGRP Packet) indicating it has no information</p></li><li><p>If the downstream router has the route in its routing table: It sends a Reply with itself as the next hop</p></li><li><p>If the downstream router previously knew the route but it is lost now: It queries its own neighbors and defers replying until it receives all responses<br></p></li></ul></li><li><p><strong>Reply Collection</strong>:</p><ul><li><p>The originating router must collect replies from all neighbors it queried</p></li><li><p>Only after receiving all replies, it calculate a new successor or declare the route unreachable</p></li><li><p>All Reply packets must be acknowledged<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B-nb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B-nb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg 424w, https://substackcdn.com/image/fetch/$s_!B-nb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg 848w, https://substackcdn.com/image/fetch/$s_!B-nb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!B-nb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B-nb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg" width="619" height="422" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:422,&quot;width&quot;:619,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43731,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163384589?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!B-nb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg 424w, https://substackcdn.com/image/fetch/$s_!B-nb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg 848w, https://substackcdn.com/image/fetch/$s_!B-nb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!B-nb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3fa0724-9eba-44a8-b939-40ca0111a7e6_619x422.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p></li></ul></li></ol><h2>Stuck-in-Active (SIA) Condition</h2><p>The SIA condition occurs when a router fails to receive replies to all its queries within the Active Timer period. This creates a potentially disruptive situation.</p><h3>Legacy Behavior (IOS 12.x)</h3><p>In older IOS versions, the SIA handling was rather severe:</p><ul><li><p>The router would mark the unresponsive neighbor as "Stuck in Active"</p></li><li><p>It would reset the neighbor relationship</p></li><li><p>This triggered additional route recalculations for all routes learned from that neighbor</p></li><li><p>The neighbor relationship would be re-established upon receiving the next Hello packet<br></p></li></ul><h3>Improved Behavior (IOS 15.x)</h3><p>Newer IOS versions implement a more graceful approach:</p><ul><li><p>After half the Active Timer expires (1.5 minutes by default), the router sends an SIA-Query</p></li><li><p>This gives the downstream router a chance to respond with an SIA-Reply</p></li><li><p>The SIA-Reply indicates the downstream router is still processing the original query</p></li><li><p>This prevents unnecessary neighbor relationship resets<br></p></li></ul><h2>Query Process Characteristics</h2><p>Important technical aspects of the query process include:</p><ul><li><p>Query packets are sent as multicast on shared media like Ethernet</p></li><li><p>All Query packets must be acknowledged</p></li><li><p>If an acknowledgment isn't received, the sender retransmits as unicast</p></li><li><p>Reply packets also require acknowledgment</p></li><li><p>The querying router must collect<strong> all replies</strong> before calculating new paths<br></p></li></ul><h2>Optimizing Convergence</h2><p>Several techniques can improve EIGRP convergence and minimize SIA conditions:</p><ol><li><p><strong>EIGRP Stub Routers</strong>:</p><ul><li><p>Configure leaf/branch routers as stubs</p></li><li><p>Stub routers will not be queried for routes they don't have</p></li><li><p>This significantly reduces query scope in hub-and-spoke topologies</p></li></ul></li><li><p><strong>Route Summarization</strong>:</p><ul><li><p>Implementing summarization at strategic points limits query propagation</p></li><li><p>If a component route fails, queries only propagate within the summarization domain</p></li></ul></li><li><p><strong>Adjusting Active Timer</strong>:</p><ul><li><p>The Active Timer can be reduced (commonly to 1 minute) in stable networks:</p></li></ul></li></ol><pre><code><code># Numbered mode
Router(config-router)# timers active-time 60

# Named mode
Router(config-router-af-topology)# timers active-time 60</code></code></pre><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:316320}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-11-eigrp-query-process?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-11-eigrp-query-process?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-11-eigrp-query-process?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-11-eigrp-query-process/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-11-eigrp-query-process/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[PART 10: EIGRP Load Balancing]]></title><description><![CDATA[Enhanced Interior Gateway Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-10-eigrp-load-balancing</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-10-eigrp-load-balancing</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Wed, 09 Jul 2025 14:01:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BNjs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BNjs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BNjs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!BNjs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!BNjs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!BNjs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BNjs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:775172,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163383371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BNjs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!BNjs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!BNjs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!BNjs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7b031c7-dd31-4a25-8667-513bfb0903c1_1500x875.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Load balancing allows routers to distribute traffic across multiple paths to the same destination, improving bandwidth utilization and network resilience. EIGRP offers several approaches to load balancing, including unique capabilities not found in other routing protocols.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Understanding Load Balancing Fundamentals</h2><p>When multiple paths to the same destination exist, routers use a decision process to select which path(s) to use:</p><ol><li><p>First, compare Administrative Distance (AD) values, selecting the path with the lowest AD</p></li><li><p>If AD values are equal (same routing protocol), compare metric values</p></li><li><p>If metric values are equal, install multiple paths in the routing table (automatic load balancing)<br></p></li></ol><h2>EIGRP Load Balancing Methods</h2><p>EIGRP supports four primary methods for implementing load balancing:</p><h3>1. Automatic Equal-Cost Load Balancing</h3><p>This occurs automatically when two or more paths to the same destination have identical Feasible Distance (FD) values. The router installs all equal-cost paths in the routing table and distributes traffic between them.<br>The maximum number of equal-cost paths can be adjusted using:</p><pre><code><code># Numbered mode
Router(config-router)# maximum-paths &lt;1-32&gt;

# Named mode
Router(config-router-af-topology)# maximum-paths &lt;1-32&gt;</code></code></pre><p></p><h3>2. Unequal-Cost Load Balancing with Variance</h3><p>EIGRP's variance feature enables unequal-cost load balancing, a capability unique to EIGRP among IGPs. This allows traffic distribution across paths with different metrics.<br>Prerequisites for variance:</p><ul><li><p>Must have Feasible Successors in the topology table (backup paths that satisfy the Feasibility Condition)</p></li><li><p>Backup path's Reported Distance (RD) must be less than the current route's Feasible Distance (FD)</p></li></ul><p>Configuration:</p><pre><code><code># Numbered mode
Router(config-router)# variance &lt;multiplier&gt;

# Named mode
Router(config-router-af-topology)# variance &lt;multiplier&gt;</code></code></pre><p>The variance multiplier works by:</p><ol><li><p>Multiplying the best path's FD by the variance value</p></li><li><p>Including any paths with metrics less than this multiplied value in the routing table</p></li><li><p>Traffic distribution is proportional to the metric values (better paths receive more traffic)</p></li></ol><p>For example, with a variance of 2, paths with metrics up to twice the best path's metric will be included in the routing table.<br><br></p><h3>3. Direct Metric Manipulation with Offset-List</h3><p>Third methods can modify EIGRP metrics to influence load balancing.<br>Offset lists artificially adjust metrics by adding a specified value to routes matching an access list:</p><pre><code><code># Numbered mode
Router(config)# access-list 1 permit 192.168.10.0 0.0.0.255
Router(config-router)# offset-list 1 10 in GigabitEthernet0/0

# Named mode
Router(config)# access-list 1 permit 192.168.10.0 0.0.0.255
Router(config-router-af-topology)# offset-list 1 10 in GigabitEthernet0/0</code></code></pre><p>Offset lists can be applied:</p><ul><li><p>Inbound or outbound</p></li><li><p>To specific interfaces or all interfaces</p></li><li><p>To all routes (using "0" instead of an ACL number)<br></p></li></ul><h3>4. Interface Bandwidth and Delay Adjustment</h3><p>Directly modifying interface bandwidth and delay values affects metric calculations:</p><pre><code><code>Router(config-if)# bandwidth &lt;value-in-kbps&gt;
Router(config-if)# delay &lt;value-in-tens-of-microseconds&gt;</code></code></pre><p>This approach is less recommended because:</p><ul><li><p>It affects all routing protocols using these values</p></li><li><p>It can create confusion in documentation</p></li><li><p>Calculating the precise values needed can be challenging</p></li></ul><p>To revert to default values:</p><pre><code><code>Router(config-if)# default bandwidth
Router(config-if)# default delay</code></code></pre><h2><br>Practical Considerations</h2><p>When implementing EIGRP load balancing:</p><ol><li><p><strong>Traffic distribution methodology</strong>: By default, Cisco Express Forwarding (CEF) distributes traffic proportionally based on metrics</p></li><li><p><strong>Path selection verification</strong>: Use <code>show ip route &lt;prefix&gt;</code> to verify which paths are installed</p></li><li><p><strong>Topology requirements</strong>: Feasible Successors must exist for variance to work</p></li><li><p><strong>Configuration verification</strong>: Use <code>show ip protocols</code> to verify variance settings</p></li><li><p><strong>Metric manipulation impact</strong>: Changes to bandwidth and delay values affect all routing protocols</p></li></ol><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:316309}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-10-eigrp-load-balancing?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-10-eigrp-load-balancing?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-10-eigrp-load-balancing?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-10-eigrp-load-balancing/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-10-eigrp-load-balancing/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[PART 9: EIGRP Graceful Shutdown ]]></title><description><![CDATA[Enhanced Interior Gateway Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-9-eigrp-graceful-shutdown</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-9-eigrp-graceful-shutdown</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Sat, 05 Jul 2025 14:05:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oxoC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oxoC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oxoC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!oxoC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!oxoC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!oxoC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oxoC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:773880,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163383015?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oxoC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!oxoC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!oxoC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!oxoC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e81d6fa-5373-4434-a2ed-74b60e1f35f7_1500x875.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>EIGRP includes a graceful shutdown mechanism that allows routers to explicitly signal their intention to leave the network. This feature significantly improves convergence time compared to waiting for hold timers to expire.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Purpose of Graceful Shutdown</h2><p>The primary benefit of graceful shutdown is faster network convergence. When a router needs to be removed from the EIGRP topology, graceful shutdown allows neighboring routers to:</p><ol><li><p>Immediately recognize the departure of the router</p></li><li><p>Avoid waiting for the hold timer to expire (typically 15 seconds on LAN interfaces)</p></li><li><p>Begin route recalculation processes immediately</p></li><li><p>Find alternate paths without unnecessary delay<br></p></li></ol><h2>How Graceful Shutdown Works</h2><p>When graceful shutdown is triggered, the router sends a special Hello packet to all neighbors with a distinctive signature:</p><ul><li><p>All K-values in this Hello packet are set to <strong>255</strong> (normally impossible configuration)</p></li><li><p>Neighbors recognize this special packet as a termination signal</p></li><li><p>Neighbors immediately mark the adjacency as down</p></li><li><p>Syslog messages indicate "<em><strong>PEER-TERMINATION received</strong></em>"</p></li><li><p>Route recalculation begins immediately<br></p></li></ul><h2>Triggering Graceful Shutdown</h2><p>Graceful shutdown can be initiated in several ways:</p><h3>1. Using the Shutdown Command</h3><pre><code><code># Numbered mode
Router(config-router)# shutdown

# Named mode
Router(config-router-af)# shutdown</code></code></pre><h3>2. Removing Network Statements</h3><p>Removing a network statement that enabled EIGRP on an interface will trigger graceful shutdown for neighbors on that interface.</p><h3>3. Clearing the EIGRP Process</h3><pre><code><code>Router# clear ip eigrp neighbors</code></code></pre><p>This command sends the graceful shutdown signal before resetting the EIGRP process.<br></p><h2>Identifying Graceful Shutdown Events</h2><p>When graceful shutdown occurs, you'll see a distinctive syslog message:</p><pre><code><code>*Jul 5 18:27:00.289: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 192.168.15.5 (Ethernet0/0) is down: Interface PEER-TERMINATION received</code></code></pre><p>The key indicator is "Interface PEER-TERMINATION received" which confirms the neighbor properly signaled its departure.<br></p><h2>Important Limitations</h2><p>Not all EIGRP termination events use graceful shutdown:</p><ul><li><p>Shutting down an interface does <strong>not</strong> trigger graceful shutdown</p></li><li><p>Power loss or device failure cannot trigger graceful shutdown</p></li><li><p>Only controlled, software-initiated events use this mechanism<br></p></li></ul><h2>Practical Application</h2><p>Graceful shutdown is particularly valuable during:</p><ul><li><p>Planned maintenance windows</p></li><li><p>EIGRP process reconfiguration</p></li><li><p>Controlled network topology changes</p></li><li><p>Software upgrades requiring routing process restart</p></li></ul><p>In these scenarios, the feature minimizes packet loss by allowing faster convergence than would occur from hold timer expiration.</p><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:316299}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-9-eigrp-graceful-shutdown?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-9-eigrp-graceful-shutdown?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-9-eigrp-graceful-shutdown?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-9-eigrp-graceful-shutdown/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-9-eigrp-graceful-shutdown/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[PART 8: EIGRP Static Neighbors]]></title><description><![CDATA[Enhanced Interior Gateway Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-8-eigrp-static-neighbors</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-8-eigrp-static-neighbors</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Tue, 01 Jul 2025 14:01:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!88ue!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!88ue!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!88ue!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!88ue!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!88ue!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!88ue!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!88ue!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:775447,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163380913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!88ue!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!88ue!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!88ue!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!88ue!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69b3cc07-7bd6-432b-a7bc-450a853f6783_1500x875.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Enhanced Interior Gateway Routing Protocol (EIGRP) is typically considered a dynamic routing protocol, automatically discovering neighbors and exchanging routes. However, EIGRP also offers static neighbor functionality, creating an interesting hybrid between dynamic and static routing protocols.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><br>Dynamic vs. Static Neighbor Discovery</h2><p>Most dynamic routing protocols operate on these principles:</p><ol><li><p>Automatically discover neighboring routers</p></li><li><p>Dynamically exchange routing information</p></li><li><p>Calculate optimal paths using protocol-specific algorithms</p></li></ol><p>In standard EIGRP deployments, routers find neighbors by sending Hello packets to the multicast address 224.0.0.10. This allows for automatic discovery without manual configuration of peer relationships.<br></p><h2>EIGRP Static Neighbor Functionality</h2><p>EIGRP's static neighbor feature enables you to explicitly define neighbor relationships, similar to BGP's neighbor configuration model. When configured:</p><ol><li><p>EIGRP switches from <strong>multicast to unicast</strong> communication with the specified neighbor</p></li><li><p>Hello packets and all other EIGRP messages are sent directly to the configured neighbor's IP address</p></li><li><p>Each neighbor must be individually defined with its specific IP address<br></p></li></ol><h2>Use Cases for Static Neighbors</h2><p>The primary scenarios where static neighbors prove valuable include:</p><ol><li><p><strong>Non-Broadcast Networks</strong>: When the underlying network doesn't support multicast or broadcast traffic</p></li><li><p><strong>Frame Relay Hub-and-Spoke</strong>: In hub-and-spoke topologies where direct communication between spokes is desired</p></li><li><p><strong>Security Requirements</strong>: When multicast traffic is filtered for security reasons</p></li><li><p><strong>DMVPN Environments</strong>: To control neighbor relationships in Dynamic Multipoint VPN deployments</p></li><li><p><strong>Troubleshooting</strong>: For isolating specific neighbor relationships during network debugging<br></p></li></ol><h2>Configuration Commands</h2><h3>Cisco IOS/IOS XE (Numbered Mode)</h3><pre><code><code>Router(config)# router eigrp &lt;AS-NUMBER&gt;
Router(config-router)# neighbor &lt;IP-ADDRESS&gt; &lt;OUTGOING-INTERFACE&gt;</code></code></pre><h3>Cisco IOS XE (Named Mode)</h3><pre><code><code>Router(config)# router eigrp &lt;PROCESS-NAME&gt;
Router(config-router)# address-family ipv4 autonomous-system &lt;AS-NUMBER&gt;
Router(config-router-af)# neighbor &lt;IP-ADDRESS&gt; &lt;OUTGOING-INTERFACE&gt;</code></code></pre><h3>Cisco IOS XR</h3><pre><code><code>Router(config)# router eigrp &lt;PROCESS-NAME&gt;
Router(config-eigrp)# address-family ipv4
Router(config-eigrp-af)# interface &lt;INTERFACE-NAME&gt;
Router(config-eigrp-af-if)# neighbor &lt;IP-ADDRESS&gt;</code></code></pre><p></p><h2>Considerations and Limitations</h2><p>When implementing static neighbors, be aware of these important considerations:</p><ol><li><p><strong>Bidirectional Configuration</strong>: Static neighbor relationships must be configured on both routers</p></li><li><p><strong>Multicast Suppression</strong>: Interfaces with static neighbors configured will no longer send multicast Hello packets</p></li><li><p><strong>Multiple Neighbors</strong>: Each static neighbor requires its own configuration line</p></li><li><p><strong>Interface Specification</strong>: You must specify the outgoing interface to reach each neighbor</p></li><li><p><strong>Mixed Environments</strong>: You can mix static and dynamic neighbors in the same EIGRP domain<br></p></li></ol><h2>Operational Differences</h2><p>With static neighbors:</p><ul><li><p>All EIGRP packets (Hellos, Updates, Queries, Replies) are unicast</p></li><li><p>The underlying routing process remains unchanged</p></li><li><p>Route calculation, metrics, and DUAL algorithm operate normally</p></li><li><p>Only the neighbor discovery mechanism changes from dynamic to manual<br></p></li></ul><h2>Verification</h2><p>To verify static neighbor relationships:</p><pre><code><code>Router# show ip eigrp neighbors details           #IOS XE
Router# show  eigrp neighbors details             #IOS XR
</code></code></pre><p>The output will show these neighbors just like dynamically discovered ones, though they are established through the static configuration.</p><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:316287}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-8-eigrp-static-neighbors?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-8-eigrp-static-neighbors?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-8-eigrp-static-neighbors?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-8-eigrp-static-neighbors/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-8-eigrp-static-neighbors/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[PART 7: EIGRP Router ID]]></title><description><![CDATA[Enhanced Interior Gateway Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-7-eigrp-router-id</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-7-eigrp-router-id</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Fri, 27 Jun 2025 14:01:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!r3p3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r3p3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r3p3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!r3p3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!r3p3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!r3p3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r3p3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:772584,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163380394?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r3p3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!r3p3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!r3p3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!r3p3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0643c3f2-b73d-45f8-938c-e59f09c34477_1500x875.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The Router ID (RID) serves as a unique identifier for routers in various routing protocols. While critically important in protocols like OSPF and BGP, EIGRP treats Router ID differently, which can lead to unexpected behavior in specific scenarios.</p><h2>Router ID Across Different Protocols</h2><p>Router IDs are implemented differently across routing protocols:</p><ul><li><p><strong>OSPF</strong>: Strictly requires unique Router IDs; adjacencies won't form between routers with duplicate RIDs</p></li><li><p><strong>IS-IS</strong>: Uses Network Entity Title (NET) as a unique identifier for each router</p></li><li><p><strong>BGP</strong>: Requires unique Router IDs for proper operation</p></li><li><p><strong>RIP</strong>: Does not use the Router ID concept</p></li><li><p><strong>EIGRP</strong>: Uses Router ID but with less stringent uniqueness requirements<br></p></li></ul><h2>EIGRP Router ID Characteristics</h2><p>The EIGRP Router ID has several notable characteristics:</p><ol><li><p>It's represented as a 32-bit number in dotted-decimal notation (like an IP address)</p></li><li><p>Unlike other protocols, EIGRP generally allows duplicate Router IDs</p></li><li><p>Routers with duplicate Router IDs can still:</p><ul><li><p>Form neighbor adjacencies</p></li><li><p>Exchange <strong>internal</strong> EIGRP routes successfully<br></p></li></ul></li></ol><h2>The Duplicate Router ID Problem</h2><p>While EIGRP tolerates duplicate Router IDs for most operations, this duplication creates specific issues:</p><ul><li><p>Routes with an originator Router ID matching your local Router ID will be ignored<br></p></li></ul><h2>Router ID Selection Process</h2><p>EIGRP selects a Router ID using this priority sequence:</p><ol><li><p>Manually configured Router ID (if specified)</p></li><li><p>Highest IP address of any <strong>loopback</strong> interface</p></li><li><p>Highest IP address of any <strong>active physical </strong>interface<br></p></li></ol><h2>Configuration Commands</h2><p>To explicitly set the EIGRP Router ID and avoid potential conflicts:</p><h3>Cisco IOS/IOS XE (Numbered Mode)</h3><pre><code><code>Router(config-router)# eigrp router-id A.B.C.D</code></code></pre><h3>Cisco IOS XE (Named Mode)</h3><pre><code><code>Router(config-router-af)# eigrp router-id A.B.C.D</code></code></pre><h3>Cisco IOS XR</h3><pre><code><code>Router(config)# router eigrp process-name
Router(config-eigrp)# address-family ipv4
Router(config-eigrp-af)# router-id A.B.C.D</code></code></pre><h2>Best Practices</h2><p>To avoid the  issues created by duplicate Router IDs:</p><ol><li><p>Always explicitly configure unique Router IDs in EIGRP domains</p></li><li><p>Use loopback interfaces with unique IP addresses as a backup method</p></li><li><p>Document Router ID assignments in network documentation</p></li><li><p>Verify Router IDs when troubleshooting route exchange issues, especially with external routes</p></li><li><p>Include <code>show ip eigrp events</code> in your EIGRP troubleshooting routine</p></li></ol><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:316284}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-7-eigrp-router-id?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-7-eigrp-router-id?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-7-eigrp-router-id?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-7-eigrp-router-id/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-7-eigrp-router-id/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[PART 6: EIGRP Timers]]></title><description><![CDATA[Enhanced Interior Gateway Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-6-eigrp-timers</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-6-eigrp-timers</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Mon, 23 Jun 2025 14:01:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-8fW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-8fW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-8fW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!-8fW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!-8fW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!-8fW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-8fW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:776349,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163379567?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-8fW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!-8fW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!-8fW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!-8fW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b3803d5-7395-49aa-844b-f8d6798690b4_1500x875.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>EIGRP uses several key timers to maintain neighbor relationships, detect failures, and manage route processing activities. Understanding and properly configuring these timers is essential for optimal EIGRP operation.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Core EIGRP Timers</h2><h3>Hello Timer</h3><p>This timer controls how frequently EIGRP routers send Hello packets to discover and maintain neighbor relationships:</p><ul><li><p><strong>Default values</strong>:</p><ul><li><p>5 seconds for high-speed links (10 Mbps or faster)</p></li><li><p>60 seconds for low-speed links (T1/E1 or slower)</p></li></ul></li></ul><h3>Hold Timer</h3><p>The Hold timer determines how long a router waits without receiving any EIGRP packets before declaring a neighbor dead:</p><ul><li><p><strong>Default values</strong>:</p><ul><li><p>15 seconds for high-speed links (3&#215; Hello interval)</p></li><li><p>180 seconds for low-speed links (3&#215; Hello interval)</p></li></ul></li></ul><h3>Active Timer</h3><p>This timer limits how long a router remains in Active state while waiting for replies to query packets:</p><ul><li><p><strong>Default value</strong>: 3 minutes</p></li><li><p>In IOS 15.x and later, an SIA-Query is sent after 1.5 minutes (halfway through the <br>Active timer)<br></p></li></ul><h2>Important Timer Considerations</h2><p>Several unique aspects of EIGRP timers differ from other routing protocols:</p><ol><li><p><strong>Independent neighbor timers</strong>: Unlike OSPF, EIGRP neighbors do not need to have matching Hello/Hold timers to form adjacencies<br></p></li><li><p><strong>Hold timer negotiation</strong>: The Hold timer value is included in Hello packets, allowing each router to know how long its neighbor expects to receive updates<br></p></li><li><p><strong>Multiple packet types reset Hold timer</strong>: Any EIGRP packet received from a neighbor (not just Hello packets) resets the Hold timer<br></p></li><li><p><strong> Timer configuration</strong>: EIGRP allows Hold timers to be set lower than Hello timers, though this is not recommended as it may cause unstable neighbor relationships<br></p></li><li><p><strong>Supplemental failure detection</strong>: For faster convergence, EIGRP can be used with Bidirectional Forwarding Detection (BFD) to detect failures in milliseconds<br></p></li></ol><h2>Timer Configuration</h2><h3>Cisco IOS/IOS XE (Numbered Mode)</h3><pre><code><code>R1(config-if)# ip hello-interval eigrp &lt;AS&gt; &lt;seconds&gt;
R1(config-if)# ip hold-time eigrp &lt;AS&gt; &lt;seconds&gt;
R1(config-router)# timers active-time &lt;minutes&gt;</code></code></pre><h3>Cisco IOS XE (Named Mode)</h3><pre><code><code>R1(config-router-af-interface)# hello-interval &lt;seconds&gt;
R1(config-router-af-interface)# hold-time &lt;seconds&gt;
R1(config-router-af-topology)# timers active-time &lt;minutes&gt;</code></code></pre><h3>Cisco IOS XR</h3><pre><code><code>Router(config)# router eigrp &lt;process-name&gt;
Router(config-eigrp)# address-family ipv4
Router(config-eigrp-af)# interface GigabitEthernet0/0/0/0
Router(config-eigrp-af-if)# hello-interval &lt;seconds&gt;
Router(config-eigrp-af-if)# hold-time &lt;seconds&gt;
Router(config-eigrp-af)# timers active-time &lt;minutes&gt;</code></code></pre><h2>Timer Optimization Strategies</h2><p>For network optimization, consider these timer adjustment strategies:</p><ol><li><p><strong>Default timers for stable networks</strong>: Use default timers in stable networks with reliable links</p></li><li><p><strong>Faster convergence</strong>: Reduce Hello/Hold timers on critical links to detect failures more quickly (e.g., 1-second Hello, 3-second Hold)</p></li><li><p><strong>WAN link considerations</strong>: In bandwidth-constrained environments, longer Hello intervals reduce protocol overhead</p></li><li><p><strong>BFD integration</strong>: For sub-second failure detection, implement BFD alongside EIGRP rather than extremely short Hello timers</p></li><li><p><strong>Active timer adjustment</strong>: For large networks with complex topology, consider increasing the Active timer to prevent SIA (Stuck-In-Active) conditions</p></li></ol><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:316280}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-6-eigrp-timers?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-6-eigrp-timers?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-6-eigrp-timers?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-6-eigrp-timers/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-6-eigrp-timers/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[PART 5: EIGRP Reliability ]]></title><description><![CDATA[Enhanced Interior Gateway Routing Protocol]]></description><link>https://www.blog.ethernetlabs.io/p/part-5-eigrp-reliability</link><guid isPermaLink="false">https://www.blog.ethernetlabs.io/p/part-5-eigrp-reliability</guid><dc:creator><![CDATA[Ethernet Labs]]></dc:creator><pubDate>Thu, 19 Jun 2025 14:01:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!b9x0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b9x0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b9x0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!b9x0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!b9x0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!b9x0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b9x0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png" width="1456" height="849" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:849,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:771492,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163378337?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b9x0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png 424w, https://substackcdn.com/image/fetch/$s_!b9x0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png 848w, https://substackcdn.com/image/fetch/$s_!b9x0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png 1272w, https://substackcdn.com/image/fetch/$s_!b9x0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3c63fcd-cc8f-46c3-b849-ec2a84b04d63_1500x875.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>EIGRP implements reliability mechanisms similar to TCP, ensuring that critical protocol messages are properly received and processed. This reliability framework is essential for maintaining accurate routing information in dynamic network environments.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Ethernet Labs is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Reliability in Network Protocols</h2><p>A reliable protocol implements acknowledgment mechanisms to confirm successful packet delivery, typically using sequence numbers and acknowledgments. This contrasts with unreliable protocols that provide "best-effort" delivery without confirmation:</p><ul><li><p><strong>Reliable protocols</strong> (like TCP) require acknowledgment of received packets</p></li><li><p><strong>Unreliable protocols</strong> (like UDP) send packets without confirmation of delivery</p></li></ul><p>EIGRP falls into the reliable protocol category, using sequence numbers and acknowledgments to ensure critical routing information is successfully exchanged between neighbors<br></p><h2>Packet Types and Acknowledgment Requirements</h2><p>EIGRP distinguishes between packets that require acknowledgment and those that don't:<br><strong>Packets that require acknowledgment:</strong></p><ul><li><p>Update packets (Type 1)</p></li><li><p>Query packets (Type 3)</p></li><li><p>Reply packets (Type 4)</p></li><li><p>SIA Query packets (Type 10)</p></li><li><p>SIA Reply packets (Type 11)</p></li></ul><p><strong>Packets that don't require acknowledgment:</strong></p><ul><li><p>Hello packets (Type 5)</p></li></ul><p>This selective acknowledgment approach optimizes network utilization while ensuring reliability for critical routing information<br></p><h2>Acknowledgment Mechanisms</h2><p>EIGRP implements acknowledgments in two ways:</p><ol><li><p><strong>Dedicated ACK packets</strong> - Small packets with no data, sent as unicast messages</p></li><li><p><strong>Piggybacked acknowledgments</strong> - Included within other EIGRP packets by setting the ACK field</p></li></ol><p>When a router receives a reliable packet that requires acknowledgment, it can respond with:</p><ul><li><p>A dedicated ACK packet (a hello packet with the ACK field set)</p></li><li><p>Another reliable packet with the ACK field set to acknowledge the previous packet<br></p></li></ul><h2>Sequence Number Management</h2><p>Each EIGRP router maintains sequence numbers for reliable communication:</p><ol><li><p>Every reliable EIGRP packet contains a sequence number</p></li><li><p>The receiving router acknowledges by sending the same sequence number in its ACK field</p></li><li><p>In production environments, sequence numbers typically start with a random 16-bit value for security reasons</p></li><li><p>Each router maintains independent sequence numbering for packets it sends<br></p></li></ol><h2>Packet Exchange Process</h2><p>A typical EIGRP packet exchange with reliability follows this pattern:</p><ol><li><p>Router A sends an Update packet with sequence number X</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!v-4v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!v-4v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png 424w, https://substackcdn.com/image/fetch/$s_!v-4v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png 848w, https://substackcdn.com/image/fetch/$s_!v-4v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png 1272w, https://substackcdn.com/image/fetch/$s_!v-4v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!v-4v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png" width="782" height="195" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:195,&quot;width&quot;:782,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36175,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163378337?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!v-4v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png 424w, https://substackcdn.com/image/fetch/$s_!v-4v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png 848w, https://substackcdn.com/image/fetch/$s_!v-4v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png 1272w, https://substackcdn.com/image/fetch/$s_!v-4v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd64eeeec-9018-4d78-b37a-260c902e74d5_782x195.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p></li><li><p>Router B receives the Update and must acknowledge it</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jhad!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jhad!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png 424w, https://substackcdn.com/image/fetch/$s_!jhad!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png 848w, https://substackcdn.com/image/fetch/$s_!jhad!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png 1272w, https://substackcdn.com/image/fetch/$s_!jhad!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jhad!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png" width="761" height="240" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:240,&quot;width&quot;:761,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36609,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163378337?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jhad!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png 424w, https://substackcdn.com/image/fetch/$s_!jhad!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png 848w, https://substackcdn.com/image/fetch/$s_!jhad!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png 1272w, https://substackcdn.com/image/fetch/$s_!jhad!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1185e910-9287-417c-b62d-19ffc6451a9b_761x240.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p></li><li><p>Router B can acknowledge by:</p><ul><li><p>Sending a dedicated ACK (hello packet with ACK field set to X)</p></li><li><p>Sending its own reliable packet (e.g., an Update) with ACK field set to X</p></li></ul></li></ol><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_Jjg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Jjg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png 424w, https://substackcdn.com/image/fetch/$s_!_Jjg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png 848w, https://substackcdn.com/image/fetch/$s_!_Jjg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png 1272w, https://substackcdn.com/image/fetch/$s_!_Jjg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Jjg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png" width="753" height="239" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:239,&quot;width&quot;:753,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:35940,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.blog.ethernetlabs.io/i/163378337?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_Jjg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png 424w, https://substackcdn.com/image/fetch/$s_!_Jjg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png 848w, https://substackcdn.com/image/fetch/$s_!_Jjg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png 1272w, https://substackcdn.com/image/fetch/$s_!_Jjg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2549b1a-a4ee-4eb6-bebd-659c93f9a679_753x239.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><h2>Verifying Sequence Numbers</h2><p>The <code>show &#8220;ip eigrp neighbors&#8221;</code> command displays the last sequence number sent to each neighbor:</p><pre><code><code>Router# show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(100)
H   Address         Interface      Hold Uptime    SRTT   RTO   Q   Seq
                                   (sec)          (ms)        Cnt  Num
0   10.1.1.2        Gi0/0          14  00:10:53  1     200     0    5</code></code></pre><p>During normal operation, sequence numbers increment as routers exchange information, and acknowledgments are processed without issues. If an acknowledgment isn't received within the RTO (Retransmission TimeOut) period, the router will retransmit the packet as a unicast message directly to the neighbor.<br>This reliability framework ensures that routing information is consistently and accurately maintained across all routers in the EIGRP domain, providing the foundation for EIGRP's rapid convergence capabilities.</p><div><hr></div><div class="poll-embed" data-attrs="{&quot;id&quot;:316266}" data-component-name="PollToDOM"></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-5-eigrp-reliability?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Ethernet Labs! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-5-eigrp-reliability?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-5-eigrp-reliability?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/p/part-5-eigrp-reliability/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/p/part-5-eigrp-reliability/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:285264470,&quot;userName&quot;:&quot;Ethernet Labs&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.blog.ethernetlabs.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.blog.ethernetlabs.io/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item></channel></rss>