<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cisco | Ahmed Portfolio</title><link>https://ahmedhanout.pages.dev/tags/cisco/</link><atom:link href="https://ahmedhanout.pages.dev/tags/cisco/index.xml" rel="self" type="application/rss+xml"/><description>Cisco</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Fri, 10 Apr 2026 00:00:00 +0000</lastBuildDate><image><url>https://ahmedhanout.pages.dev/media/icon_hu_1061dd1a5aa4abd1.png</url><title>Cisco</title><link>https://ahmedhanout.pages.dev/tags/cisco/</link></image><item><title>Multi-Site Network Redistribution</title><link>https://ahmedhanout.pages.dev/projects/multi-site-network-redistribution/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><guid>https://ahmedhanout.pages.dev/projects/multi-site-network-redistribution/</guid><description>&lt;p&gt;A simulated enterprise network connecting a headquarters, an ISP transit point, and three branch offices — built to practice how real organizations stitch together different routing domains, not just configure a single flat network.&lt;/p&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;Designed and configured a simulated enterprise network connecting a headquarters, an ISP transit point, and three branch offices — each running a different routing protocol on purpose. The goal wasn&amp;rsquo;t just to get devices talking to each other, but to practice the harder, more realistic problem: getting &lt;em&gt;different&lt;/em&gt; routing domains to interoperate the way a real organization&amp;rsquo;s network often ends up looking after years of growth, mergers, or mixed vendor equipment.&lt;/p&gt;
&lt;h2 id="key-features"&gt;Key Features&lt;/h2&gt;
&lt;h3 id="routing-design"&gt;Routing Design&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Static routing&lt;/strong&gt; on the HQ ↔ ISP link — a deliberate choice for a single, predictable edge connection where a dynamic protocol would add unnecessary overhead&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OSPF&lt;/strong&gt; as the core protocol for Branch A and Branch B, chosen for fast convergence on a growing internal network&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RIPv2&lt;/strong&gt; on Branch C, simulating a smaller or legacy office segment still running a simpler distance-vector protocol&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mutual redistribution&lt;/strong&gt; configured on Branch B&amp;rsquo;s router, bridging the OSPF and RIP domains so every site can reach every other site despite running different protocols&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="network-services"&gt;Network Services&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Per-site &lt;strong&gt;DHCP pools&lt;/strong&gt;, so end devices on every LAN receive addressing automatically rather than being statically configured&lt;/li&gt;
&lt;li&gt;Full &lt;strong&gt;IP addressing scheme&lt;/strong&gt; across 5 routers and 3 LANs, cleanly subnetted with /30 point-to-point links between routers&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="technical-highlights"&gt;Technical Highlights&lt;/h2&gt;
&lt;h3 id="the-redistribution-problem"&gt;The Redistribution Problem&lt;/h3&gt;
&lt;p&gt;The real center of this project is Branch B&amp;rsquo;s router, which sits at the boundary between the OSPF and RIP domains. Getting redistribution right here meant making sure routes learned from RIP were correctly injected into OSPF (and vice versa) without creating routing loops or unreachable segments — a common real-world pain point when networks are stitched together from parts that didn&amp;rsquo;t originally share a protocol.&lt;/p&gt;
&lt;h3 id="convergence-verified"&gt;Convergence, Verified&lt;/h3&gt;
&lt;p&gt;Rather than just claiming the network works, I tested it — a ping from HQ to a Branch B host showed the first packet timing out (as OSPF/ARP resolution completed across the static-to-OSPF handoff), then subsequent replies landing in single-digit milliseconds. That&amp;rsquo;s a small but real demonstration of &lt;em&gt;why&lt;/em&gt; convergence time matters, not just whether a network eventually responds.&lt;/p&gt;
&lt;h2 id="architecture"&gt;Architecture&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [ISP - R5]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; / \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Static/ \Static
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; / \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [R1 - HQ] [R2 - Branch A] --- OSPF Area 0 --- [R3 - Branch B]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;192.168.1.0/24 192.168.2.0/24 192.168.3.0/24
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; Redistribution (R3)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; RIPv2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; |
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [R4 - Branch C]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 192.168.4.0/24
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="challenges--solutions"&gt;Challenges &amp;amp; Solutions&lt;/h2&gt;
&lt;h3 id="challenge-1-bridging-two-routing-protocols"&gt;Challenge 1: Bridging Two Routing Protocols&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Branch C&amp;rsquo;s legacy RIP segment had no way to exchange routes with the OSPF-based core network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Configured mutual redistribution on Branch B&amp;rsquo;s router (&lt;code&gt;redistribute rip&lt;/code&gt; inside the OSPF process, &lt;code&gt;redistribute ospf&lt;/code&gt; inside the RIP process), effectively making it a translator between the two domains.&lt;/p&gt;
&lt;h3 id="challenge-2-choosing-the-right-protocol-per-segment"&gt;Challenge 2: Choosing the Right Protocol Per Segment&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Using one protocol everywhere would have been simpler, but wouldn&amp;rsquo;t reflect how real hybrid networks are actually built.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Matched protocol choice to purpose — static for a stable, single-path edge link, OSPF for a fast-converging core, RIP for a small/legacy segment — rather than defaulting to &amp;ldquo;one protocol for everything.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="tech-stack-details"&gt;Tech Stack Details&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Simulation Environment&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cisco Packet Tracer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Protocols &amp;amp; Services&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Static Routing&lt;/li&gt;
&lt;li&gt;OSPF (Open Shortest Path First)&lt;/li&gt;
&lt;li&gt;RIPv2&lt;/li&gt;
&lt;li&gt;Route Redistribution&lt;/li&gt;
&lt;li&gt;DHCP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Scope&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5 routers, 4 LANs, 3 branch offices, 1 ISP transit hub&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="future-improvements"&gt;Future Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Add ACLs to restrict inter-branch traffic to only what&amp;rsquo;s needed&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Harden the management plane — restrict SSH/Telnet access to specific management hosts&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Add a basic firewall rule set at the ISP boundary to simulate perimeter filtering&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Migrate from Packet Tracer to GNS3/EVE-NG for closer-to-real IOS behavior&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="lessons-learned"&gt;Lessons Learned&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Protocol choice is a design decision, not a default.&lt;/strong&gt; Picking static, OSPF, or RIP per segment based on the actual role of that segment taught me more than just deploying one protocol everywhere ever could.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Redistribution is where real networking skill shows up.&lt;/strong&gt; Anyone can configure a single protocol from a guide — making two protocols coexist safely is where the actual engineering judgment lives.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verification matters as much as configuration.&lt;/strong&gt; A network that&amp;rsquo;s &amp;ldquo;configured&amp;rdquo; isn&amp;rsquo;t the same as a network that&amp;rsquo;s &lt;em&gt;proven&lt;/em&gt; to work — testing convergence with real ping output made the difference between a checklist exercise and something I actually understood.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Project Status&lt;/strong&gt;: ✅ Complete (routing/redistribution phase) — security hardening planned as next iteration
&lt;strong&gt;GitHub&lt;/strong&gt;:
&lt;/p&gt;</description></item></channel></rss>