<?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"><channel><title><![CDATA[🌐 Day 14 – Networking & Trobuleshooting]]></title><description><![CDATA[🌐 Day 14 – Networking & Trobuleshooting]]></description><link>https://day-14-networking-and-trobuleshooting.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 14:39:10 GMT</lastBuildDate><atom:link href="https://day-14-networking-and-trobuleshooting.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[🌐 Day 14 – Networking Fundamentals & Real Troubleshooting]]></title><description><![CDATA[Today I stepped into one of the most important areas of DevOps: networking.
Whenever a website doesn’t open, a server becomes unreachable, or an API stops responding, the issue is often not the application — it’s the network path between systems.
So ...]]></description><link>https://day-14-networking-and-trobuleshooting.hashnode.dev/day-14-networking-fundamentals-and-real-troubleshooting</link><guid isPermaLink="true">https://day-14-networking-and-trobuleshooting.hashnode.dev/day-14-networking-fundamentals-and-real-troubleshooting</guid><category><![CDATA[Devops]]></category><category><![CDATA[networks]]></category><category><![CDATA[learning]]></category><dc:creator><![CDATA[Divyat Agrawal]]></dc:creator><pubDate>Thu, 05 Feb 2026 18:30:00 GMT</pubDate><content:encoded><![CDATA[<p>Today I stepped into one of the most important areas of DevOps: <strong>networking</strong>.</p>
<p>Whenever a website doesn’t open, a server becomes unreachable, or an API stops responding, the issue is often not the application — it’s the <strong>network path between systems</strong>.</p>
<p>So today I didn’t just read theory. I learned how networking works in layers and practiced the <strong>exact commands engineers use in real production incidents</strong>.</p>
<hr />
<h2 id="heading-part-1-understanding-networking-models-without-complicated-theory">🧠 Part 1 – Understanding Networking Models (Without Complicated Theory)</h2>
<p>When data travels from my laptop to a website, it doesn’t just “go.”<br />It passes through layers, where each layer has a job.</p>
<p>Think of it like sending a courier package:</p>
<ul>
<li><p>One team packs it</p>
</li>
<li><p>Another labels it</p>
</li>
<li><p>Another decides the route</p>
</li>
<li><p>Another transports it</p>
</li>
</ul>
<hr />
<h3 id="heading-the-osi-model-7-layers-detailed-view">🔹 The OSI Model (7 Layers – Detailed View)</h3>
<p>The OSI model explains networking in 7 steps:</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Layer</td><td>Role</td><td>Simple Meaning</td></tr>
</thead>
<tbody>
<tr>
<td>7. Application</td><td>User services</td><td>HTTP, DNS, FTP</td></tr>
<tr>
<td>6. Presentation</td><td>Formatting</td><td>Encryption, compression</td></tr>
<tr>
<td>5. Session</td><td>Managing sessions</td><td>Keeps connection alive</td></tr>
<tr>
<td>4. Transport</td><td>End-to-end delivery</td><td>TCP, UDP, Ports</td></tr>
<tr>
<td>3. Network</td><td>Logical addressing</td><td>IP address, routing</td></tr>
<tr>
<td>2. Data Link</td><td>Local delivery</td><td>MAC address, switches</td></tr>
<tr>
<td>1. Physical</td><td>Hardware</td><td>Cables, Wi-Fi signals</td></tr>
</tbody>
</table>
</div><hr />
<h3 id="heading-tcpip-model-real-internet-model">🔹 TCP/IP Model (Real Internet Model)</h3>
<p>The internet simplifies OSI into 4 layers:</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>TCP/IP Layer</td><td>OSI Equivalent</td><td>Example</td></tr>
</thead>
<tbody>
<tr>
<td>Application</td><td>OSI 5–7</td><td>HTTP, HTTPS, DNS</td></tr>
<tr>
<td>Transport</td><td>OSI 4</td><td>TCP, UDP</td></tr>
<tr>
<td>Internet</td><td>OSI 3</td><td>IP</td></tr>
<tr>
<td>Link</td><td>OSI 1–2</td><td>Ethernet, Wi-Fi</td></tr>
</tbody>
</table>
</div><hr />
<h3 id="heading-real-life-example">🔹 Real-Life Example</h3>
<p>When I run:</p>
<pre><code class="lang-plaintext">curl https://example.com
</code></pre>
<p>This is what happens:</p>
<ol>
<li><p><strong>Application Layer</strong> → HTTP request is created</p>
</li>
<li><p><strong>Transport Layer</strong> → Sent using TCP port 443</p>
</li>
<li><p><strong>Internet Layer</strong> → Packet routed using IP</p>
</li>
<li><p><strong>Link Layer</strong> → Sent through Wi-Fi or Ethernet</p>
</li>
</ol>
<p>Each layer adds its own information, like adding labels to a package.</p>
<hr />
<h1 id="heading-part-2-hands-on-networking-commands">🛠️ Part 2 – Hands-On Networking Commands</h1>
<p>Theory is good. But DevOps is about <strong>diagnosing real problems</strong>.</p>
<p>I picked one target: <a target="_blank" href="http://google.com"><strong>google.com</strong></a><br />Then I ran all the essential troubleshooting commands.</p>
<hr />
<h2 id="heading-1-identify-my-machines-ip-address">🖥️ 1. Identify My Machine’s IP Address</h2>
<pre><code class="lang-plaintext">hostname -I
</code></pre>
<p>or</p>
<pre><code class="lang-plaintext">ip addr show
</code></pre>
<h3 id="heading-what-this-command-does">What this command does:</h3>
<p>Shows the IP address assigned to my system.</p>
<h3 id="heading-what-i-learned">What I learned:</h3>
<p>I saw something like <code>192.168.1.10</code>.<br />That’s a <strong>private IP</strong>, meaning my system is inside a local network (like home Wi-Fi).</p>
<p>If I didn’t see an IP, it would mean:<br />🚨 My network interface is down.</p>
<hr />
<h2 id="heading-2-check-reachability-using-ping">📡 2. Check Reachability Using ping</h2>
<pre><code class="lang-plaintext">ping google.com
</code></pre>
<h3 id="heading-what-ping-does">What ping does:</h3>
<p>Sends small packets to check if the target responds.</p>
<h3 id="heading-output-tells-us">Output tells us:</h3>
<ul>
<li><p><strong>Time (ms)</strong> → Network latency</p>
</li>
<li><p><strong>Packet loss</strong> → Connection stability</p>
</li>
</ul>
<h3 id="heading-my-observation">My observation:</h3>
<p>I got replies in ~20ms with 0% packet loss → Network path is healthy.</p>
<p>If ping fails:</p>
<ul>
<li><p>Internet may be down</p>
</li>
<li><p>Firewall blocking ICMP</p>
</li>
<li><p>Target server unreachable</p>
</li>
</ul>
<hr />
<h2 id="heading-3-check-the-route-using-traceroute">🛣️ 3. Check the Route Using traceroute</h2>
<pre><code class="lang-plaintext">traceroute google.com
</code></pre>
<h3 id="heading-what-this-shows">What this shows:</h3>
<p>Every router between me and Google.</p>
<p>Each line = one hop.</p>
<h3 id="heading-why-it-matters">Why it matters:</h3>
<p>If a connection is slow or failing, traceroute shows <strong>where the delay or drop happens</strong>.</p>
<h3 id="heading-my-observation-1">My observation:</h3>
<p>I saw:</p>
<ul>
<li><p>First hop = my router</p>
</li>
<li><p>Next hops = ISP network</p>
</li>
<li><p>Final hops = Google network</p>
</li>
</ul>
<p>Timeouts (<code>* * *</code>) may mean:</p>
<ul>
<li><p>Router blocking traceroute</p>
</li>
<li><p>Network congestion</p>
</li>
</ul>
<hr />
<h2 id="heading-4-see-which-services-are-listening">🔌 4. See Which Services Are Listening</h2>
<pre><code class="lang-plaintext">ss -tulpn
</code></pre>
<h3 id="heading-what-this-shows-1">What this shows:</h3>
<p>All open ports and services running on my machine.</p>
<p>Example:</p>
<pre><code class="lang-plaintext">LISTEN 0 128 0.0.0.0:22
</code></pre>
<p>This means SSH is running on port 22.</p>
<h3 id="heading-why-this-matters">Why this matters:</h3>
<p>If an app isn’t accessible, first check if it’s even listening on a port.</p>
<hr />
<h2 id="heading-5-check-dns-resolution">🌍 5. Check DNS Resolution</h2>
<pre><code class="lang-plaintext">dig google.com
</code></pre>
<p>or</p>
<pre><code class="lang-plaintext">nslookup google.com
</code></pre>
<h3 id="heading-what-this-does">What this does:</h3>
<p>Converts domain name → IP address.</p>
<h3 id="heading-my-observation-2">My observation:</h3>
<p>I received multiple IPs, meaning Google uses load balancing.</p>
<p>If DNS fails:<br />The issue is at the <strong>Application layer (DNS service)</strong>.</p>
<hr />
<h2 id="heading-6-check-web-server-response">🌐 6. Check Web Server Response</h2>
<pre><code class="lang-plaintext">curl -I https://google.com
</code></pre>
<h3 id="heading-what-this-does-1">What this does:</h3>
<p>Requests only HTTP headers, not the full webpage.</p>
<h3 id="heading-what-i-saw">What I saw:</h3>
<pre><code class="lang-plaintext">HTTP/2 200
</code></pre>
<p>Meaning: Server is working fine.</p>
<p>If I saw:</p>
<ul>
<li><p>404 → Page missing</p>
</li>
<li><p>500 → Server error</p>
</li>
<li><p>Timeout → Network or firewall issue</p>
</li>
</ul>
<hr />
<h2 id="heading-7-view-active-connections">🔄 7. View Active Connections</h2>
<pre><code class="lang-plaintext">netstat -an | head
</code></pre>
<h3 id="heading-what-this-shows-2">What this shows:</h3>
<p>Active and listening connections.</p>
<p>States I noticed:</p>
<ul>
<li><p>LISTEN → Waiting for connection</p>
</li>
<li><p>ESTABLISHED → Active communication</p>
</li>
</ul>
<p>This is useful to see if a server is overloaded or idle.</p>
<hr />
<h1 id="heading-mini-task-port-testing">🎯 Mini Task – Port Testing</h1>
<p>First, I found a listening port:</p>
<pre><code class="lang-plaintext">ss -tulpn | grep LISTEN
</code></pre>
<p>I saw SSH on port 22.</p>
<p>Then I tested it:</p>
<pre><code class="lang-plaintext">nc -zv localhost 22
</code></pre>
<h3 id="heading-result">Result:</h3>
<p>Connection succeeded → Port is reachable.</p>
<p>If it failed, next steps would be:</p>
<ol>
<li><p>Check if service is running</p>
</li>
<li><p>Check firewall rules</p>
</li>
</ol>
<hr />
<h1 id="heading-reflection">💭 Reflection</h1>
<h3 id="heading-fastest-command-to-detect-problems">Fastest command to detect problems?</h3>
<p>👉 <code>ping</code> — quickly tells if a system is reachable</p>
<h3 id="heading-if-dns-fails">If DNS fails?</h3>
<p>Check <strong>DNS server</strong> (Application layer)</p>
<h3 id="heading-if-http-500-appears">If HTTP 500 appears?</h3>
<p>Problem at <strong>Application layer</strong> (server-side issue)</p>
<h3 id="heading-two-real-incident-follow-ups">Two real incident follow-ups:</h3>
<ul>
<li><p>Check firewall rules</p>
</li>
<li><p>Check application/service logs</p>
</li>
</ul>
<hr />
<h1 id="heading-final-thoughts">🚀 Final Thoughts</h1>
<p>Today I moved from “I know networking terms” to<br />“I can actually test and troubleshoot real network issues.”</p>
<p>Now, if something breaks, I know how to check:</p>
<p>✔ Is the host reachable?<br />✔ Where does the path fail?<br />✔ Is DNS resolving?<br />✔ Is the port open?<br />✔ Is the service responding?</p>
<p>That’s real DevOps troubleshooting.</p>
]]></content:encoded></item></channel></rss>