<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Networking | Ahmed Portfolio</title><link>https://ahmedhanout.pages.dev/tags/networking/</link><atom:link href="https://ahmedhanout.pages.dev/tags/networking/index.xml" rel="self" type="application/rss+xml"/><description>Networking</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 03 Aug 2026 00:00:00 +0000</lastBuildDate><image><url>https://ahmedhanout.pages.dev/media/icon_hu_1061dd1a5aa4abd1.png</url><title>Networking</title><link>https://ahmedhanout.pages.dev/tags/networking/</link></image><item><title>When reset doesn't ... reset?</title><link>https://ahmedhanout.pages.dev/blog/when-reset-doesnt-...-reset/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><guid>https://ahmedhanout.pages.dev/blog/when-reset-doesnt-...-reset/</guid><description>&lt;p&gt;A friend asked me to change his WiFi password — too many neighbors had it, and he suspected they were leeching off him. Simple enough, except he&amp;rsquo;d forgotten the router&amp;rsquo;s admin login. No problem, I thought. Factory reset, use the default credentials printed on the sticker, done in two minutes.&lt;/p&gt;
&lt;p&gt;It was not done in two minutes.&lt;/p&gt;
&lt;h2 id="attempt-one-reset-that-wasnt"&gt;Attempt One: Reset That Wasn&amp;rsquo;t&lt;/h2&gt;
&lt;p&gt;I held the reset pinhole until all the lights on the router blinked off, let go, and waited for it to come back up. Once it did, I tried the default credentials from the sticker.&lt;/p&gt;
&lt;p&gt;They didn&amp;rsquo;t work.&lt;/p&gt;
&lt;p&gt;Weirder — the PC plugged directly into the router via LAN cable had no internet either. Not WiFi, not wired, nothing. That&amp;rsquo;s the part that actually stumped me for a bit, because a dead WiFi password is one thing, but a wired PC losing connectivity too meant something deeper was off.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s what I didn&amp;rsquo;t realize at the time: &lt;strong&gt;holding the reset button until the lights go out just means the router rebooted&lt;/strong&gt; — it doesn&amp;rsquo;t confirm a factory reset actually happened. Most consumer routers need the button held for a specific duration (often 10+ seconds, sometimes longer) before they actually wipe the NVRAM config. A shorter hold can just power-cycle the device instead of resetting it.&lt;/p&gt;
&lt;p&gt;So I wasn&amp;rsquo;t logging into a fresh, default router at all. I was logging into the &lt;em&gt;exact same&lt;/em&gt; router, with my friend&amp;rsquo;s forgotten custom password still fully intact. The default creds never had a chance of working.&lt;/p&gt;
&lt;h2 id="attempt-two-actually-waiting"&gt;Attempt Two: Actually Waiting&lt;/h2&gt;
&lt;p&gt;Second try, I held the button for a genuinely long time — well past the point where the lights went out — and then just&amp;hellip; waited. Didn&amp;rsquo;t touch anything.&lt;/p&gt;
&lt;p&gt;A minute or two later, a YouTube tab that had been sitting open the whole time suddenly started playing audio on its own. Nobody clicked anything. The network had just quietly come back to life in the background.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s DHCP doing its job. Here&amp;rsquo;s the sequence that was actually happening, invisibly, the whole time:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;The reset genuinely wiped the config this time&lt;/strong&gt;, restoring the router to factory defaults — which is why the sticker credentials finally worked.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DHCP service takes time to come back online&lt;/strong&gt; after a real reset — not just the interface, but the actual service that hands out IP addresses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The PC&amp;rsquo;s DHCP client was sitting there requesting a lease&lt;/strong&gt; the entire time and getting nothing back, because the router&amp;rsquo;s DHCP server wasn&amp;rsquo;t up yet to respond.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The moment the DHCP server came online&lt;/strong&gt;, it answered the PC&amp;rsquo;s next DHCP request, handed out a lease, and the PC silently picked up a valid IP — no reconnect, no manual renewal, nothing. The song just started because the network stack quietly finished its job in the background.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="the-actual-lesson"&gt;The Actual Lesson&lt;/h2&gt;
&lt;p&gt;The mistake wasn&amp;rsquo;t router weirdness — it was assuming a short button hold equals a full reset, when the first attempt was really just a reboot. And even after a genuine reset, DHCP lease negotiation and service startup aren&amp;rsquo;t instant; they take real time that&amp;rsquo;s easy to mistake for &amp;ldquo;something&amp;rsquo;s broken&amp;rdquo; when really it&amp;rsquo;s just &amp;ldquo;something&amp;rsquo;s still booting.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Small, dumb, easily fixed moment — but it&amp;rsquo;s the kind of thing that sticks with you a lot better than reading &amp;ldquo;DHCP assigns IP addresses&amp;rdquo; in a textbook ever did.&lt;/p&gt;</description></item><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>