<?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[Suraj Pokhrel]]></title><description><![CDATA["Unpack core IT systems, network architecture, and robust security for seamless infrastructure. Explore advanced strategies to optimize your entire technical environment."]]></description><link>https://surajpokhrel.com.np</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Apr 2026 18:43:15 GMT</lastBuildDate><atom:link href="https://surajpokhrel.com.np/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[The VM Storage Identity Crisis: Why Your NVMe SSD Appears as HDD]]></title><description><![CDATA[You’ve invested in a blazing-fast NVMe SSD for your host, you're running XCP-ng/Xen, and your Virtual Machines are humming along. But then you peek into Task Manager in Windows Server 2022, and your drive is labeled "HDD." Meanwhile, your Server 2019...]]></description><link>https://surajpokhrel.com.np/the-vm-storage-identity-crisis-why-your-nvme-ssd-appears-as-hdd</link><guid isPermaLink="true">https://surajpokhrel.com.np/the-vm-storage-identity-crisis-why-your-nvme-ssd-appears-as-hdd</guid><category><![CDATA[#XCPng]]></category><category><![CDATA[#XenOrchestra]]></category><category><![CDATA[#Vates]]></category><category><![CDATA[#XenProject]]></category><category><![CDATA[#WindowsServe]]></category><category><![CDATA[#MTC]]></category><category><![CDATA[#MicrosoftCertified]]></category><category><![CDATA[Open Source]]></category><category><![CDATA[hyper-v]]></category><category><![CDATA[Powershell]]></category><category><![CDATA[linux tips]]></category><category><![CDATA[ubuntu-server]]></category><category><![CDATA[debian]]></category><category><![CDATA[syslog]]></category><category><![CDATA[Kernel]]></category><dc:creator><![CDATA[Suraj Pokhrel]]></dc:creator><pubDate>Mon, 16 Feb 2026 08:58:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1771231855467/0494c63a-afb5-48a9-aef7-fa88f0d007de.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You’ve invested in a blazing-fast NVMe SSD for your host, you're running <strong>XCP-ng/Xen</strong>, and your Virtual Machines are humming along. But then you peek into Task Manager in <strong>Windows Server 2022</strong>, and your drive is labeled <strong>"HDD."</strong> Meanwhile, your <strong>Server 2019</strong> VM shows no label at all.</p>
<p>This isn't a bug, and your performance isn't being throttled. It’s a side effect of how different OS versions interpret the <strong>Xen Paravirtual (PV)</strong> storage path.</p>
<hr />
<h2 id="heading-1-the-core-problem-virtualization-vs-reality">1. The Core Problem: Virtualization vs. Reality</h2>
<p>When you create a VM, the hypervisor presents a virtual disk via a virtualized controller. For XCP-ng, this is the <strong>Xen PV SCSI Host Adapter</strong>. In Windows, this appears as a <strong>"XENSRC PVDISK SCSI Disk Device."</strong></p>
<p>Because the connection type is <strong>SCSI</strong>, modern Windows versions have to make a choice:</p>
<ul>
<li><p><strong>Windows Server 2019:</strong> Often leaves the "Media Type" field <strong>blank</strong>. It doesn't want to guess the hardware type if it isn't explicitly told.</p>
</li>
<li><p><strong>Windows Server 2022:</strong> Microsoft updated the UI to be more specific. If the OS sees a SCSI bus and hasn't received a "Non-Rotational" flag from the host, it defaults to the <strong>HDD</strong> label because SCSI has historically been mechanical storage.</p>
</li>
</ul>
<hr />
<h2 id="heading-2-windows-verification-checking-the-truth">2. Windows Verification: Checking the "Truth"</h2>
<p>Don't trust the Task Manager icon. Use these commands to see exactly what is happening under the hood.</p>
<h3 id="heading-the-driver-check">The Driver Check</h3>
<p>First, ensure your Guest Tools are healthy. In <strong>Device Manager</strong>, you should see <strong>XENSRC PVDISK</strong>. This confirms you are using the high-performance PV driver rather than a generic emulated one.</p>
<h3 id="heading-the-powershell-diagnostic">The PowerShell Diagnostic</h3>
<p>The "Media Type" listed here is what Windows uses to decide whether to <strong>Defrag</strong> (Bad for SSD) or <strong>TRIM</strong> (Good for SSD).</p>
<p>PowerShell</p>
<pre><code class="lang-plaintext"># Check how Windows identifies the hardware
Get-PhysicalDisk | Select-Object FriendlyName, MediaType, BusType, OperationalStatus
</code></pre>
<ul>
<li><p><strong>FriendlyName:</strong> <code>XENSRC PVDISK</code> confirms your Guest Tools are active.</p>
</li>
<li><p><strong>MediaType:</strong> <code>Unspecified</code> is the culprit. When Windows sees this, Server 2022/2019 defaults to "HDD."</p>
</li>
<li><p><strong>BusType:</strong> <code>SCSI</code> is the paravirtualized path used for high performance.</p>
</li>
</ul>
<hr />
<h2 id="heading-3-linux-verification-rotational-vs-ssd">3. Linux Verification: Rotational vs. SSD</h2>
<p>Linux is much more transparent. It uses a binary "Rotational" (ROTA) flag: <strong>1</strong> for spinning, <strong>0</strong> for solid state.</p>
<h3 id="heading-the-lsblk-command">The <code>lsblk</code> Command</h3>
<p>Run the following to check your drive status (usually <code>xvda</code> or <code>xvdb</code> in Xen):</p>
<p>Bash</p>
<pre><code class="lang-plaintext">lsblk -d -o NAME,ROTA,TYPE,SIZE
</code></pre>
<ul>
<li><p><strong>ROTA = 0</strong>: The kernel correctly identifies it as an SSD.</p>
</li>
<li><p><strong>ROTA = 1</strong>: The kernel thinks it's a spinning disk.</p>
</li>
</ul>
<h3 id="heading-verify-trim-discard-support">Verify TRIM (Discard) Support</h3>
<p>Even if the label is wrong, check if the OS can "TRIM" the drive:</p>
<p>Bash</p>
<pre><code class="lang-plaintext">lsblk --discard
</code></pre>
<p>If <strong>DISC-GRAN</strong> shows a value (like 4K), your VM is successfully communicating with the underlying NVMe.</p>
<hr />
<h2 id="heading-4-the-real-fix-host-level-flagging">4. The Real Fix: Host-Level Flagging</h2>
<p>Since Windows and Linux can't always change their "hardware" identity from the inside when the media type is "Unspecified," you must tell the XCP-ng host to "advertise" the SSD status.</p>
<p><strong>Run these commands on your XCP-ng Host CLI (Not inside the VM):</strong></p>
<ol>
<li><p><strong>Find your VM's UUID:</strong></p>
<p> <code>xe vm-list name-label="Your_VM_Name"</code></p>
</li>
<li><p><strong>Find the VBD (Virtual Block Device) UUID for that VM:</strong></p>
<p> <code>xe vbd-list vm-uuid=&lt;VM_UUID&gt;</code></p>
</li>
<li><p><strong>Set the SSD flag on the VBD:</strong></p>
<p> <code>xe vbd-param-set uuid=&lt;VBD_UUID&gt; device-config:type=ssd</code></p>
</li>
<li><p><strong>Restart the VM.</strong></p>
</li>
</ol>
<hr />
<h2 id="heading-final-comparison-summary">Final Comparison Summary</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>Feature</strong></td><td><strong>Windows Server 2019</strong></td><td><strong>Windows Server 2022</strong></td><td><strong>Linux (Ubuntu/Debian)</strong></td></tr>
</thead>
<tbody>
<tr>
<td><strong>Default UI Label</strong></td><td><strong>(Blank/None)</strong></td><td><strong>HDD</strong></td><td><strong>ROTA: 0</strong> (Usually Correct)</td></tr>
<tr>
<td><strong>Driver Name</strong></td><td>XENSRC PVDISK</td><td>XENSRC PVDISK</td><td>xvda / sda</td></tr>
<tr>
<td><strong>Bus Type</strong></td><td>SCSI</td><td>SCSI</td><td>SCSI/PV</td></tr>
<tr>
<td><strong>Performance</strong></td><td>Native NVMe Speed</td><td>Native NVMe Speed</td><td>Native NVMe Speed</td></tr>
</tbody>
</table>
</div><p><strong>The Bottom Line:</strong> Your "HDD" is actually a high-speed NVMe. The label in Windows 2022 is a visual placeholder for the SCSI bus. As long as your PowerShell shows <strong>OperationalStatus: OK</strong>, you are running at full speed!</p>
]]></content:encoded></item><item><title><![CDATA[Tackling "Invalid Configuration" - XCP-ng Core Per Socket Mismatch with Apache CloudStack]]></title><description><![CDATA[The Scenario: A Frustrating "Invalid Configuration" Error
Imagine you're deploying a new Ubuntu VM via Apache CloudStack on your XCP-ng hypervisor. Everything seems to go smoothly, but then you check the VM's properties in XCP-ng Center (or Xen Orche...]]></description><link>https://surajpokhrel.com.np/tackling-invalid-configuration-xcp-ng-core-per-socket-mismatch-with-apache-cloudstack</link><guid isPermaLink="true">https://surajpokhrel.com.np/tackling-invalid-configuration-xcp-ng-core-per-socket-mismatch-with-apache-cloudstack</guid><category><![CDATA[XCP-ng  Apache CloudStack, Virtualization, Cloud Computing, XenServer]]></category><dc:creator><![CDATA[Suraj Pokhrel]]></dc:creator><pubDate>Sat, 31 Jan 2026 05:56:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1769839097684/94c992ed-32c4-46cd-8880-e2ae240fab66.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-the-scenario-a-frustrating-invalid-configuration-error">The Scenario: A Frustrating "Invalid Configuration" Error</h3>
<p>Imagine you're deploying a new Ubuntu VM via Apache CloudStack on your XCP-ng hypervisor. Everything seems to go smoothly, but then you check the VM's properties in XCP-ng Center (or Xen Orchestra), and there it is – a red flag indicating <strong>"Invalid configuration"</strong> next to your CPU topology.</p>
<p>You scratch your head. You've set the vCPUs in CloudStack, and the VM is running (or trying to), but this error persists. This is precisely the situation our user encountered, as seen in their screenshot:</p>
<blockquote>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1769838756963/a2a138cd-abed-411c-a36f-f61abb17f4dc.png" alt class="image--center mx-auto" /></p>
</blockquote>
<p>Notice the "Topology: 2 cores per socket (Invalid configuration)" message. This isn't just a visual nuisance; it can prevent VMs from starting, especially after migration or reboot, and it can mislead guest operating systems about their CPU resources.</p>
<h3 id="heading-understanding-the-root-cause-cpu-topology-mismatch">Understanding the Root Cause: CPU Topology Mismatch</h3>
<p>The core of the problem lies in how XCP-ng (and its underlying XAPI) enforces CPU topology rules, and how Apache CloudStack communicates these rules (or sometimes, <em>doesn't</em>) when creating VMs.</p>
<p><strong>XCP-ng's Golden Rule:</strong> XCP-ng requires that the <code>Max number of vCPUs</code> must always be perfectly divisible by the <code>Cores per socket</code>. If this mathematical relationship isn't met, XCP-ng flags it as an "Invalid Configuration."</p>
<p><strong>CloudStack's Default Behavior:</strong></p>
<ul>
<li><p><strong>High</strong> <code>Max vCPUs</code>: CloudStack often sets <code>Max vCPUs</code> to a very high number (e.g., 80 in our example) in the XCP-ng VM metadata (<code>VCPUs-max</code>). This is done to facilitate CPU hot-plugging, allowing you to scale vCPUs upwards without a reboot.</p>
</li>
<li><p><code>Cores per socket</code> Defaults: Unless explicitly told otherwise, CloudStack frequently defaults to telling XCP-ng that a VM should have <strong>1 core per socket</strong> (or sometimes 2, as in our user's case).</p>
</li>
</ul>
<p><strong>The Conflict:</strong> When CloudStack deploys a VM with, say, 6 <code>Virtual CPUs</code> (VCPUs-at-startup) and a <code>Max number of vCPUs</code> of 80, but the <code>platform:cores-per-socket</code> parameter is set to 2:</p>
<ul>
<li><p><strong>For</strong> <code>VCPUs-at-startup</code> (6): 6/2=3 (Valid!)</p>
</li>
<li><p><strong>For</strong> <code>VCPUs-max</code> (80): 80/2=40 (Still mathematically valid!)</p>
</li>
</ul>
<p>So, why the error? The issue often arises because:</p>
<ol>
<li><p><strong>Missing or Implicit Platform Key:</strong> CloudStack might not explicitly set the <code>platform:cores-per-socket</code> key when provisioning, or XCP-ng Center's stricter validation logic flags a potential future conflict if <code>VCPUs-at-startup</code> doesn't match the <code>cores-per-socket</code> rule <em>in the context of hotplugging</em>.</p>
</li>
<li><p><strong>XCP-ng Center's Sensitivity:</strong> XCP-ng Center can be particularly sensitive to these settings, sometimes flagging configurations that Xen Orchestra or the XAPI might tolerate.</p>
</li>
</ol>
<p>The most common real-world impact is when the guest OS sees many "sockets" (if <code>cores-per-socket</code> is low), potentially impacting software licensing (like Windows Server, which is often licensed per socket or core).</p>
<h3 id="heading-step-by-step-solutions">Step-by-Step Solutions</h3>
<p>Let's fix this, starting with the immediate remedy for an existing VM, and then moving to the preventive measure in CloudStack.</p>
<h4 id="heading-1-the-immediate-fix-correcting-a-running-vm-via-xcp-ng-cli">1. The Immediate Fix: Correcting a Running VM via XCP-ng CLI</h4>
<p>If you have a VM already deployed and showing this error, you can fix its <code>cores-per-socket</code> value directly on the XCP-ng host.</p>
<p><strong>Access Your XCP-ng Host:</strong> SSH into the XCP-ng host where the problematic VM is running (in our example, <code>DHCLD-AZ1C2-XCPH01</code>).</p>
<p><strong>Identify the VM's UUID:</strong> You can see the UUID in the XCP-ng Center screenshot (<code>0d5821cf-99c6-ab7c-0415-8dd3921d9a09</code>). If not, find it with:</p>
<p>Bash</p>
<pre><code class="lang-plaintext">xe vm-list name-label="i-716-14647-VM" --minimal
# This will output just the UUID, e.g., 0d5821cf-99c6-ab7c-0415-8dd3921d9a09
</code></pre>
<p><strong>Apply the Fix:</strong> The safest and most compatible value for <code>cores-per-socket</code> is <strong>1</strong>. This ensures that <em>any</em> <code>VCPUs-at-startup</code> or <code>VCPUs-max</code> value will be divisible by 1, satisfying XCP-ng's rule.</p>
<p>Bash</p>
<pre><code class="lang-plaintext">xe vm-param-set uuid=0d5821cf-99c6-ab7c-0415-8dd3921d9a09 platform:cores-per-socket=1
</code></pre>
<p><em>Replace the UUID with your VM's actual UUID.</em></p>
<p><strong>Verify the Change:</strong> You can check the updated platform parameters:</p>
<p>Bash</p>
<pre><code class="lang-plaintext">xe vm-list uuid=0d5821cf-99c6-ab7c-0415-8dd3921d9a09 params=VCPUs-at-startup,VCPUs-max,platform
</code></pre>
<p>You should now see <code>cores-per-socket: 1</code> in the output. The "Invalid configuration" message in XCP-ng Center should also clear after a refresh.</p>
<h4 id="heading-2-the-permanent-fix-updating-cloudstack-service-offerings">2. The Permanent Fix: Updating CloudStack Service Offerings</h4>
<p>To prevent this issue for all future VMs deployed from a specific Service Offering, you need to configure CloudStack to explicitly set <code>cores-per-socket</code> when provisioning.</p>
<p><strong>Log into CloudStack UI:</strong> Navigate to <code>Service Offerings</code> under the <code>Service Offerings</code> or <code>Compute</code> section.</p>
<p><strong>Edit Your Service Offering:</strong></p>
<ul>
<li><p>Select the Service Offering you use for XCP-ng deployments (e.g., your "Ubuntu 16.04 LTS" offering).</p>
</li>
<li><p>Click <code>View Details</code> or <code>Edit</code>.</p>
</li>
</ul>
<p><strong>Add a Custom Detail:</strong></p>
<ul>
<li><p>Find the <code>Details</code> section.</p>
</li>
<li><p>Add a new custom detail:</p>
<ul>
<li><p><strong>Key:</strong> <code>cpu.corespersocket</code></p>
</li>
<li><p><strong>Value:</strong> <code>1</code> (Recommended for broadest compatibility and to avoid this specific error)</p>
</li>
</ul>
</li>
</ul>
<p><strong>Considerations for</strong> <code>cpu.corespersocket</code> Value:</p>
<ul>
<li><p><code>1</code> is Safest: As mentioned, <code>1</code> will always satisfy the divisibility rule. The guest OS will see many sockets, each with one core.</p>
</li>
<li><p><strong>Matching Physical Topology:</strong> If you have specific licensing requirements or want to optimize for NUMA awareness, you might choose a value that reflects your physical host's core count per socket (e.g., <code>4</code> or <code>8</code>). Just ensure this value evenly divides into your <code>Max vCPUs</code> <em>and</em> your <code>Virtual CPUs</code> set in the offering.</p>
</li>
<li><p><strong>Example:</strong> If your Service Offering provides up to 16 vCPUs and you set <code>cpu.corespersocket=4</code>, the VM will be presented with 4 sockets, each with 4 cores.</p>
</li>
</ul>
<h4 id="heading-3-optional-bulk-update-service-offerings-via-cloudstack-api">3. (Optional) Bulk Update Service Offerings via CloudStack API</h4>
<p>If you have many Service Offerings that need updating, doing it manually is tedious. You can use the CloudStack API to perform a bulk update.</p>
<p>First, you'll need to find the <code>id</code> of your Service Offering. You can do this by using the <code>listServiceOfferings</code> API call:</p>
<p>Bash</p>
<pre><code class="lang-plaintext"># Example: Replace your-cloudstack-api-url and api-key/secret-key
curl "http://your-cloudstack-api-url/client/api?command=listServiceOfferings&amp;name=Your%20Offering%20Name&amp;response=json&amp;apiKey=YOUR_API_KEY&amp;secretKey=YOUR_SECRET_KEY"
</code></pre>
<p>Once you have the <code>id</code>, you can use the <code>updateServiceOffering</code> command, specifying the custom detail:</p>
<p>Bash</p>
<pre><code class="lang-plaintext"># Example: Replace your-cloudstack-api-url, offering-id, and api-key/secret-key
curl "http://your-cloudstack-api-url/client/api?command=updateServiceOffering&amp;id=OFFERING_ID&amp;details[0].key=cpu.corespersocket&amp;details[0].value=1&amp;response=json&amp;apiKey=YOUR_API_KEY&amp;secretKey=YOUR_SECRET_KEY"
</code></pre>
<p><em>Remember to replace</em> <code>OFFERING_ID</code>, <code>YOUR_API_KEY</code>, and <code>YOUR_SECRET_KEY</code> with your actual values.</p>
<h3 id="heading-why-is-cpu-topology-important-beyond-just-fixing-the-error">Why is CPU Topology Important Beyond Just "Fixing the Error"?</h3>
<ul>
<li><p><strong>Operating System Licensing:</strong> Many older Windows Server licenses are socket-based. Presenting a VM with 16 vCPUs as 16 sockets (1 core/socket) could hit a 2- or 4-socket OS license limit, causing the OS to ignore most of its assigned vCPUs. Setting <code>cores-per-socket</code> to a higher value (e.g., 4 or 8) makes the OS see fewer sockets with more cores, aligning better with licensing models.</p>
</li>
<li><p><strong>Performance:</strong> While modern hypervisors are very good at abstracting CPU resources, aligning the VM's perceived CPU topology with the underlying physical host's NUMA (Non-Uniform Memory Access) architecture can sometimes yield minor performance benefits by optimizing cache utilization.</p>
</li>
<li><p><strong>Guest OS Awareness:</strong> Some applications or monitoring tools within the guest OS might behave differently based on the reported CPU topology.</p>
</li>
</ul>
<h3 id="heading-conclusion">Conclusion</h3>
<p>The "Invalid configuration" error regarding CPU topology between Apache CloudStack and XCP-ng is a common integration challenge. By understanding XCP-ng's strict divisibility rule and explicitly configuring <code>cpu.corespersocket</code> in your CloudStack Service Offerings (or directly on the VM via XCP-ng CLI), you can ensure smooth VM deployments, avoid frustrating errors, and potentially optimize guest OS behavior.</p>
<p>Don't let a small configuration detail derail your cloud infrastructure – a simple <code>platform:cores-per-socket=1</code> can save you a lot of headaches!</p>
]]></content:encoded></item><item><title><![CDATA[Understanding the Language of the Internet: A Deep Dive into Networking Protocols]]></title><description><![CDATA[In our increasingly connected world, data flows seamlessly across vast networks, enabling everything from Browse the web to sending emails. But how does all this information travel so efficiently and reliably? The answer lies in networking protocols ...]]></description><link>https://surajpokhrel.com.np/understanding-the-language-of-the-internet-a-deep-dive-into-networking-protocols</link><guid isPermaLink="true">https://surajpokhrel.com.np/understanding-the-language-of-the-internet-a-deep-dive-into-networking-protocols</guid><category><![CDATA[#ITEducation]]></category><category><![CDATA[#WebProtocols]]></category><category><![CDATA[#HTTP_HTTPS]]></category><category><![CDATA[#NetworkingProtocols]]></category><category><![CDATA[#InternetExplained]]></category><category><![CDATA[networkingbasics]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[InternetBasics]]></category><category><![CDATA[TechExplained]]></category><category><![CDATA[data communication]]></category><category><![CDATA[network security]]></category><category><![CDATA[tcp/ip-model]]></category><dc:creator><![CDATA[Suraj Pokhrel]]></dc:creator><pubDate>Wed, 04 Jun 2025 18:15:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1751540567410/dedc2357-54f1-4e5b-82f3-b5d386685dd9.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In our increasingly connected world, data flows seamlessly across vast networks, enabling everything from Browse the web to sending emails. But how does all this information travel so efficiently and reliably? The answer lies in <strong>networking protocols</strong> – a set of rules that govern how data is formatted, transmitted, and received across networks.</p>
<p>Think of protocols as the common languages that different computers speak to understand each other. Without them, the internet as we know it simply wouldn't exist. Let's break down some of the most fundamental networking protocols and explore their roles with real-world examples.</p>
<h3 id="heading-1-http-the-foundation-of-the-web">1. HTTP: The Foundation of the Web</h3>
<p><strong>Protocol Name:</strong> HTTP (Hypertext Transfer Protocol) <strong>Description:</strong> Used by web browsers and servers to communicate and exchange information.</p>
<p>HTTP is the unsung hero of your daily internet experience. Every time you type a website address into your browser, you're initiating an HTTP request.</p>
<p><strong>Example:</strong> When you visit <a target="_blank" href="http://www.google.com"><code>www.google.com</code></a>, your web browser sends an HTTP request to Google's servers. The server then responds with the HTML, CSS, and JavaScript files that make up the Google homepage, which your browser renders for you to see. It's a stateless protocol, meaning each request from the client to the server is independent.</p>
<h3 id="heading-2-https-securing-your-online-interactions">2. HTTPS: Securing Your Online Interactions</h3>
<p><strong>Protocol Name:</strong> HTTPS (Hypertext Transfer Protocol Secure) <strong>Description:</strong> An extension of HTTP that offers secure and encrypted communication.</p>
<p>HTTPS is the secure version of HTTP. It adds a layer of encryption (SSL/TLS) to protect your data from eavesdropping and tampering. You'll often see a padlock icon in your browser's address bar when a website uses HTTPS.</p>
<p><strong>Example:</strong> When you log into your online banking account or make a purchase on an e-commerce site, HTTPS ensures that your sensitive information, like passwords and credit card numbers, is encrypted as it travels between your computer and the server, preventing unauthorized access.</p>
<h3 id="heading-3-ftp-transferring-files-with-ease">3. FTP: Transferring Files with Ease</h3>
<p><strong>Protocol Name:</strong> FTP (File Transfer Protocol) <strong>Description:</strong> Used to transfer files between a client and a server.</p>
<p>FTP has been a long-standing method for moving files between computers over a network. While often superseded by more secure alternatives for general web content, it's still used in specific scenarios.</p>
<p><strong>Example:</strong> A web developer might use FTP to upload website files (HTML, images, scripts) from their local computer to a web hosting server. Similarly, you might use an FTP client to download large software packages from a remote server.</p>
<h3 id="heading-4-tcp-ensuring-reliable-data-delivery">4. TCP: Ensuring Reliable Data Delivery</h3>
<p><strong>Protocol Name:</strong> TCP (Transmission Control Protocol) <strong>Description:</strong> Delivers a stream of ordered bytes from one computer to another.</p>
<p>TCP is a connection-oriented protocol that provides reliable, ordered, and error-checked delivery of a stream of bytes between applications. It ensures that data reaches its destination completely and in the correct sequence.</p>
<p><strong>Example:</strong> When you're streaming a video on YouTube, TCP is working behind the scenes to ensure that all the video data packets arrive in the correct order, so you don't experience a jumbled or incomplete video. If a packet is lost, TCP will request its retransmission.</p>
<h3 id="heading-5-ip-the-internets-addressing-system">5. IP: The Internet's Addressing System</h3>
<p><strong>Protocol Name:</strong> IP (Internet Protocol) <strong>Description:</strong> Addresses and routes packets of data sent between networked devices.</p>
<p>IP is the backbone of the internet, responsible for addressing and routing data packets. Every device connected to a network has an IP address, which is like its unique postal address.</p>
<p><strong>Example:</strong> When you send an email, your computer uses IP to determine the recipient's email server's IP address. The email data is then broken down into packets, and IP helps route these packets across various routers and networks until they reach their destination.</p>
<h3 id="heading-6-udp-fast-but-unreliable">6. UDP: Fast but Unreliable</h3>
<p><strong>Protocol Name:</strong> UDP (User Datagram Protocol) <strong>Description:</strong> A simple and connectionless protocol that does not divide messages into packets and sends them in order.</p>
<p>Unlike TCP, UDP is a connectionless protocol, meaning it doesn't establish a persistent connection or guarantee delivery. It's faster because it has less overhead, but it sacrifices reliability for speed.</p>
<p><strong>Example:</strong> UDP is commonly used for real-time applications where speed is more critical than guaranteed delivery, such as online gaming or live video conferencing. If a few packets are lost in a game, it might result in a minor glitch, but the game continues without significant interruption.</p>
<h3 id="heading-7-smtp-the-mailman-of-the-internet">7. SMTP: The Mailman of the Internet</h3>
<p><strong>Protocol Name:</strong> SMTP (Simple Mail Transfer Protocol) <strong>Description:</strong> Used to transmit emails across IP networks.</p>
<p>SMTP is the protocol that allows you to send emails. When you hit "send" on an email, SMTP takes over to deliver your message to the recipient's mail server.</p>
<p><strong>Example:</strong> When you send an email from your Gmail account to a friend using Outlook, your Gmail server uses SMTP to communicate with your friend's Outlook server to deliver the email.</p>
<h3 id="heading-8-ssh-secure-remote-access">8. SSH: Secure Remote Access</h3>
<p><strong>Protocol Name:</strong> SSH (Secure Shell) <strong>Description:</strong> A cryptographic network protocol to secure data communication, remote command-line login, and remote command execution between two networked computers.</p>
<p>SSH provides a secure channel over an unsecured network by using strong encryption. It's widely used by network administrators and developers to access and manage remote servers.</p>
<p><strong>Example:</strong> A system administrator might use SSH to securely log into a remote server located in a data center to perform maintenance, install software, or troubleshoot issues, all without the risk of their commands or data being intercepted.</p>
<hr />
<h3 id="heading-why-are-protocols-so-important">Why are Protocols So Important?</h3>
<p>These protocols, and many others, work together in a layered fashion (often referred to as the TCP/IP model or OSI model) to ensure that data travels efficiently and reliably across the globe. They provide the necessary structure, rules, and standards that allow diverse devices and systems to communicate effectively, making the internet the powerful tool it is today. Understanding these fundamental protocols is key to grasping how our digital world functions.</p>
]]></content:encoded></item><item><title><![CDATA[VPN Technologies Explained: Your Guide to Online Security]]></title><description><![CDATA[Ever wondered how some people access content that's not available in their country, or how remote workers securely connect to their company's network? The answer often lies with something called a VPN.
VPN stands for Virtual Private Network, and it's...]]></description><link>https://surajpokhrel.com.np/vpn-technologies-explained-your-guide-to-online-security</link><guid isPermaLink="true">https://surajpokhrel.com.np/vpn-technologies-explained-your-guide-to-online-security</guid><category><![CDATA[#VPNTechnologies]]></category><category><![CDATA[#BypassGeoRestrictions]]></category><category><![CDATA[#InternetPrivacy]]></category><category><![CDATA[#VPNExplained]]></category><category><![CDATA[Online security]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[data privacy]]></category><category><![CDATA[remote work]]></category><category><![CDATA[vpn_protocols]]></category><category><![CDATA[network security]]></category><dc:creator><![CDATA[Suraj Pokhrel]]></dc:creator><pubDate>Tue, 03 Jun 2025 18:15:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1751438902320/91ae6c00-d82d-47e5-939d-361b38b8fcd1.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ever wondered how some people access content that's not available in their country, or how remote workers securely connect to their company's network? The answer often lies with something called a VPN.</p>
<p>VPN stands for Virtual Private Network, and it's like a secret tunnel for your internet connection. It helps keep your online activities private and secure. Let's break down some of the key things to know about VPNs.</p>
<h3 id="heading-what-kinds-of-vpns-are-there">What Kinds of VPNs Are There?</h3>
<p>Just like there are different types of cars, there are different types of VPNs for various needs:</p>
<ul>
<li><p><strong>Remote Access VPN:</strong> This is what many individuals use to connect securely to a private network, often for work from home.</p>
</li>
<li><p><strong>Site-to-Site VPN:</strong> Imagine two company offices in different locations needing to securely share information. A site-to-site VPN connects their networks directly.</p>
</li>
<li><p><strong>SSL VPN:</strong> This type uses web browsers for secure connections, often seen in specific applications.</p>
</li>
<li><p><strong>MPLS VPN:</strong> Used mostly by large businesses for connecting multiple sites over a provider's network.</p>
</li>
</ul>
<h3 id="heading-how-do-vpns-work-the-secret-sauce">How Do VPNs Work? (The "Secret Sauce")</h3>
<p>VPNs use special rules and methods to keep your data safe. These are called <strong>VPN Protocols</strong>:</p>
<ul>
<li><p><strong>IPSec:</strong> A common and secure set of protocols.</p>
</li>
<li><p><strong>L2TP/IPSec:</strong> Another combination for secure connections.</p>
</li>
<li><p><strong>SSL/TLS:</strong> Often used for secure web Browse and in some VPNs.</p>
</li>
<li><p><strong>IKEv2/IPSec:</strong> Known for its speed and stability, especially on mobile devices.</p>
</li>
<li><p><strong>OpenVPN:</strong> An open-source and very flexible protocol, popular for its security.</p>
</li>
<li><p><strong>WireGuard:</strong> A newer, faster, and simpler protocol gaining popularity.</p>
</li>
</ul>
<h3 id="heading-key-ideas-behind-vpns">Key Ideas Behind VPNs</h3>
<p>When you use a VPN, a few important things happen:</p>
<ul>
<li><p><strong>Encryption:</strong> Your data is scrambled so no one can read it if they intercept it. Think of it like putting your message in a secret code.</p>
</li>
<li><p><strong>Tunneling:</strong> Your internet traffic travels through a secure "tunnel" to the VPN server, hidden from your internet provider or anyone else trying to snoop.</p>
</li>
<li><p><strong>Authentication:</strong> The VPN makes sure that only authorized users and devices can connect to the network.</p>
</li>
<li><p><strong>Split Tunneling:</strong> This lets you choose which apps or websites use the VPN tunnel and which don't. So, you could watch a streaming service through the VPN while Browse a local news site directly.</p>
</li>
<li><p><strong>Full Tunnel:</strong> All your internet traffic goes through the VPN. This is the most secure option.</p>
</li>
</ul>
<h3 id="heading-who-makes-vpn-technologies">Who Makes VPN Technologies?</h3>
<p>Many companies offer VPN solutions, often with their own specific technologies:</p>
<ul>
<li><p><strong>Cisco:</strong> Known for AnyConnect.</p>
</li>
<li><p><strong>Fortinet:</strong> Offers FortiClient.</p>
</li>
<li><p><strong>Palo Alto:</strong> Uses GlobalProtect.</p>
</li>
<li><p><strong>OpenVPN:</strong> This is both a protocol and a popular open-source solution.</p>
</li>
<li><p><strong>MikroTik:</strong> Utilizes WireGuard.</p>
</li>
</ul>
<h3 id="heading-why-do-people-use-vpns">Why Do People Use VPNs?</h3>
<p>VPNs are incredibly useful for many situations:</p>
<ul>
<li><p><strong>Corporate Access for Remote Workers:</strong> If you work from home, a VPN lets you securely connect to your company's internal network and resources.</p>
</li>
<li><p><strong>Secure Connection Between Data Centers:</strong> Businesses use VPNs to protect data exchanged between their different data storage facilities.</p>
</li>
<li><p><strong>Bypassing Geographic Restrictions:</strong> Ever seen a video or website that's blocked in your country? A VPN can make it look like you're Browse from a different location, letting you access that content.</p>
</li>
<li><p><strong>Protecting Data on Public Wi-Fi:</strong> When you're using public Wi-Fi at a coffee shop or airport, your data can be vulnerable. A VPN encrypts your traffic, keeping it safe from prying eyes.</p>
</li>
</ul>
<p>In a nutshell, VPNs are powerful tools for enhancing your online privacy and security, whether you're working, traveling, or just Browse the web. They create a secure pathway for your data, giving you more control over your digital footprint.</p>
]]></content:encoded></item><item><title><![CDATA[Understanding the Basics of Networking: A Simple Guide]]></title><description><![CDATA[Ever wondered how your devices talk to each other, or how you access websites from across the globe? It all boils down to something called networking. Don't worry, it's not as complicated as it sounds! Let's break down some fundamental networking ter...]]></description><link>https://surajpokhrel.com.np/understanding-the-basics-of-networking-a-simple-guide</link><guid isPermaLink="true">https://surajpokhrel.com.np/understanding-the-basics-of-networking-a-simple-guide</guid><category><![CDATA[#ITBasics]]></category><category><![CDATA[#SimpleGuide]]></category><category><![CDATA[#EasyLearning]]></category><category><![CDATA[Computer Science]]></category><category><![CDATA[networkingbasics]]></category><category><![CDATA[computer networking]]></category><category><![CDATA[TechExplained]]></category><category><![CDATA[Networking Tips]]></category><category><![CDATA[#DigitalLiteracy]]></category><category><![CDATA[TechEducation]]></category><category><![CDATA[networkengineering]]></category><category><![CDATA[BeginnerFriendly]]></category><category><![CDATA[#TechForBeginners]]></category><category><![CDATA[#LearnNetworking]]></category><dc:creator><![CDATA[Suraj Pokhrel]]></dc:creator><pubDate>Mon, 02 Jun 2025 18:15:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1751351269730/4125969e-4bd4-4a92-b309-9038877d13f8.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ever wondered how your devices talk to each other, or how you access websites from across the globe? It all boils down to something called <strong>networking</strong>. Don't worry, it's not as complicated as it sounds! Let's break down some fundamental networking terms in an easy-to-understand way.</p>
<h3 id="heading-what-is-a-network">What is a Network?</h3>
<p>Think of a network as a group of devices (like your phone, laptop, or printer) connected together. These connections allow them to share information and resources.</p>
<p>There are different types of networks, depending on their size and reach:</p>
<ul>
<li><p><strong>LAN (Local Area Network):</strong> This is a small network, like the one in your home or office.</p>
</li>
<li><p><strong>WAN (Wide Area Network):</strong> This covers a larger area, like connecting cities or even countries (the internet is a huge WAN!).</p>
</li>
<li><p><strong>MAN (Metropolitan Area Network):</strong> This is somewhere in between, covering a city or a large campus.</p>
</li>
</ul>
<h3 id="heading-what-are-switches">What are Switches?</h3>
<p>Imagine you have many devices in your house that want to talk to each other. A <strong>switch</strong> is like a traffic controller that helps these devices connect within your local network (LAN). It knows which device is where and directs data only to the intended recipient.</p>
<p>Switches come in different types:</p>
<ul>
<li><p><strong>Unmanaged Switch:</strong> Simple plug-and-play, no configuration needed.</p>
</li>
<li><p><strong>Managed Switch:</strong> Offers more control and features for network administrators.</p>
</li>
<li><p><strong>Layer 3 Switch:</strong> A more advanced switch that can also perform some routing functions.</p>
</li>
<li><p><strong>Smart Switch:</strong> A hybrid between unmanaged and managed, offering some basic management features.</p>
</li>
</ul>
<h3 id="heading-what-is-a-router">What is a Router?</h3>
<p>While a switch connects devices <em>within</em> a local network, a <strong>router</strong> is what connects your local network to other networks, like the internet! It's like a post office that knows the best path to send your data packets to their destination.</p>
<p>Routers use different methods to figure out these paths, called "routing":</p>
<ul>
<li><p><strong>Static Routing:</strong> You manually tell the router the paths.</p>
</li>
<li><p><strong>Dynamic Routing:</strong> The router automatically learns the best paths.</p>
</li>
<li><p><strong>Default Routing:</strong> A pre-set path for traffic that doesn't have a specific route.</p>
</li>
</ul>
<h3 id="heading-what-is-a-vlan">What is a VLAN?</h3>
<p>Sometimes, even within a single network, you might want to separate groups of devices. That's where <strong>VLANs (Virtual Local Area Networks)</strong> come in. They allow you to segment a physical network into multiple smaller, virtual networks. It's like having different departments in an office, each with its own private network, even if they share the same physical cables.</p>
<p>Common types include:</p>
<ul>
<li><p><strong>Default VLAN:</strong> The default VLAN all ports belong to initially.</p>
</li>
<li><p><strong>Voice VLAN:</strong> Dedicated for voice traffic to ensure quality.</p>
</li>
<li><p><strong>Data VLAN:</strong> For general data traffic.</p>
</li>
<li><p><strong>Native VLAN:</strong> Used for untagged traffic on a trunk link.</p>
</li>
</ul>
<h3 id="heading-what-is-trunking">What is Trunking?</h3>
<p>If you have multiple VLANs and want them to communicate over a single physical link (like one cable between two switches), you use <strong>trunking</strong>. It enables that single link to carry traffic for multiple VLANs by adding special "tags" to the data.</p>
<p>Common trunking protocols include:</p>
<ul>
<li><p><strong>802.1Q (Dot1Q):</strong> The industry standard for VLAN tagging.</p>
</li>
<li><p><strong>ISL (Inter-Switch Link):</strong> A Cisco-proprietary trunking protocol.</p>
</li>
</ul>
<h3 id="heading-what-is-etherchannel">What is EtherChannel?</h3>
<p>Imagine you have two switches and want more speed and reliability between them. <strong>EtherChannel</strong> allows you to bundle multiple physical links (cables) into a single logical link. This increases bandwidth and provides redundancy – if one cable fails, the others can pick up the slack.</p>
<p>EtherChannel can be configured in a few ways:</p>
<ul>
<li><p><strong>PagP (Port Aggregation Protocol):</strong> A Cisco-proprietary protocol.</p>
</li>
<li><p><strong>LACP (Link Aggregation Control Protocol):</strong> An open standard.</p>
</li>
<li><p><strong>Static (Manual):</strong> You manually configure the bundle.</p>
</li>
</ul>
<h3 id="heading-what-is-stp">What is STP?</h3>
<p>Sometimes, devices can get confused if there are multiple paths to the same destination, creating loops in the network. <strong>STP (Spanning Tree Protocol)</strong> is a clever protocol that prevents these loops by strategically blocking redundant paths, ensuring there's only one active path at any given time.</p>
<p>Different versions exist:</p>
<ul>
<li><p><strong>STP:</strong> The original Spanning Tree Protocol.</p>
</li>
<li><p><strong>RSTP (Rapid Spanning Tree Protocol):</strong> A faster version of STP.</p>
</li>
</ul>
<h3 id="heading-what-is-acl">What is ACL?</h3>
<p>Think of an <strong>ACL (Access Control List)</strong> as a security guard for your network. It filters network traffic based on predefined rules, allowing or denying specific types of data from passing through. This helps protect your network from unauthorized access and malicious traffic.</p>
<p>ACLs come in different forms:</p>
<ul>
<li><p><strong>Standard ACL:</strong> Filters traffic based on source IP address.</p>
</li>
<li><p><strong>Extended ACL:</strong> Filters traffic based on source/destination IP address, port number, protocol, etc.</p>
</li>
<li><p><strong>Named ACL:</strong> Gives a name to an ACL for easier management.</p>
</li>
</ul>
<p>And there you have it! A simple overview of some essential networking concepts. Understanding these basics can help you better appreciate how our digital world is connected.</p>
]]></content:encoded></item><item><title><![CDATA[Understanding SNMP: The Simple Network Management Protocol]]></title><description><![CDATA[In the realm of Operational Technology (#OT), the Simple Network Management Protocol (#SNMP) stands as a cornerstone for effectively monitoring and managing a diverse range of devices within IP networks. From essential networking equipment like route...]]></description><link>https://surajpokhrel.com.np/understanding-snmp-the-simple-network-management-protocol</link><guid isPermaLink="true">https://surajpokhrel.com.np/understanding-snmp-the-simple-network-management-protocol</guid><category><![CDATA[snmp]]></category><category><![CDATA[network management]]></category><category><![CDATA[#OTSecurity]]></category><category><![CDATA[#cybersecurity]]></category><category><![CDATA[#IndustrialControlSystems]]></category><category><![CDATA[network monitoring]]></category><category><![CDATA[Scada]]></category><category><![CDATA[nms]]></category><category><![CDATA[IT_Security]]></category><category><![CDATA[IIoT ]]></category><category><![CDATA[automation]]></category><category><![CDATA[#SNMPv3 ]]></category><dc:creator><![CDATA[Suraj Pokhrel]]></dc:creator><pubDate>Sun, 01 Jun 2025 18:15:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1751103688381/0f2649de-ffec-4645-bbab-ca4e244de124.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the realm of Operational Technology (#OT), the Simple Network Management Protocol (#SNMP) stands as a cornerstone for effectively monitoring and managing a diverse range of devices within IP networks. From essential networking equipment like routers and switches to critical servers, printers, and beyond, SNMP provides a standardized way to gain insights and exert control.</p>
<p>At its core, SNMP facilitates communication using the User Datagram Protocol (#UDP) on specific ports: <strong>161</strong> and <strong>162</strong>.</p>
<ul>
<li><p><strong>Port 161</strong> is the designated channel for interaction between an SNMP manager and its agents. Here, the <strong>manager sends requests</strong> to the agent residing on the managed device.</p>
</li>
<li><p><strong>Port 162</strong> serves a different purpose, allowing agents to send <strong>unsolicited notifications</strong>, known as <strong>#snmptraps</strong>, directly to the manager. This is crucial for immediate alerts on critical events.</p>
</li>
</ul>
<h3 id="heading-key-components-of-snmp">Key Components of SNMP</h3>
<p>To understand how SNMP functions, it's essential to recognize its core components:</p>
<ol>
<li><p><strong>#SNMP Management Device:</strong> This is typically a centralized server or workstation, such as a SCADA Server or a Network Management System (NMS), where the SNMP Manager software is executed.</p>
</li>
<li><p><strong>#SNMP Manager:</strong> The brain of the SNMP operation. The Manager controls and monitors network device activities by sending out requests and processing the responses received from agents.</p>
</li>
<li><p><strong>#SNMP Managed Device:</strong> Any network-enabled device that is being monitored via SNMP. Examples include Ethernet switches, GPS devices, servers, and workstations.</p>
</li>
<li><p><strong>#SNMPAgent:</strong> Software residing on the managed device. Its primary role is to collect and store management information locally. Upon receiving a request from the SNMP Manager, the Agent retrieves the requested data and sends back a response.</p>
</li>
<li><p><strong>#MIB (Management Information Base):</strong> Think of this as a structured database utilized by SNMP. It defines the hierarchy and characteristics of the network data that can be accessed. Within the MIB are <strong>#OIDs (Object Identifiers)</strong>, which are unique identifiers representing specific pieces of information about the managed device.</p>
</li>
</ol>
<h3 id="heading-snmp-versions-a-historical-perspective">SNMP Versions: A Historical Perspective</h3>
<p>SNMP has evolved through different versions, each introducing improvements and addressing limitations of its predecessors:</p>
<ul>
<li><p><strong>#SNMPv1:</strong> The initial version, characterized by its basic functionality but lacking robust security features like encryption and strong authentication.</p>
</li>
<li><p><strong>#SNMPv2c:</strong> This version introduced community-based security, allowing access based on shared community strings. It also brought enhancements like bulk data transfers, but still lacked encryption for data confidentiality.</p>
</li>
<li><p><strong>#SNMPv3:</strong> The most secure version to date. SNMPv3 implemented user-based security, providing authentication through usernames and passwords, and crucially, incorporating encryption to protect the integrity and confidentiality of SNMP messages.</p>
</li>
</ul>
<p>Understanding the principles and components of SNMP is vital for anyone involved in managing and maintaining modern OT environments. Its ability to provide a unified view of network devices makes it an indispensable tool for ensuring network health and operational efficiency.</p>
]]></content:encoded></item><item><title><![CDATA[Configuring High Availability in Ruijie Switches]]></title><description><![CDATA[In our ongoing journey of building a hyper-converged infrastructure (HCI), we've reached an exciting phase where we're diving into configuring high availability (HA) and link aggregation in our Ruijie Company Switches. These crucial steps will not on...]]></description><link>https://surajpokhrel.com.np/configuring-high-availability-in-ruijie-switches</link><guid isPermaLink="true">https://surajpokhrel.com.np/configuring-high-availability-in-ruijie-switches</guid><category><![CDATA[Hashnode]]></category><category><![CDATA[ruijie]]></category><category><![CDATA[infrastructure]]></category><category><![CDATA[networking]]></category><category><![CDATA[sysadmin]]></category><category><![CDATA[Digital Marketing ]]></category><category><![CDATA[virtualization]]></category><dc:creator><![CDATA[Suraj Pokhrel]]></dc:creator><pubDate>Sat, 31 May 2025 18:15:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1751022275965/c71af287-94b3-4990-ba91-471150a507d6.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In our ongoing journey of building a hyper-converged infrastructure (HCI), we've reached an exciting phase where we're diving into configuring high availability (HA) and link aggregation in our Ruijie Company Switches. These crucial steps will not only enhance the reliability and performance of our infrastructure but also ensure seamless operation even in the face of failures.</p>
<p>Now, before we dive into the nitty-gritty details, I want to mention that we'll skip over the basic setup tasks like assigning IP addresses and enabling SSH. Instead, let's jump straight into the action!</p>
<h3 id="heading-configure-virtual-switch-unit-vsu">Configure Virtual Switch Unit (VSU)</h3>
<p>In Ruijie switches, the concept of Virtual Switch Unit (VSU) is akin to switch stacking in other vendors' switches like CISCO. It allows us to virtualize multiple physical switches into one logical unit for simplified management and enhanced redundancy. Here's how we set it up:</p>
<p>First, we'll configure Virtual Switch Unit (VSU) on each switch. This helps combine multiple switches into one logical unit for easier management. Each VSU gets a unique domain ID, but multiple switches can share the same ID if they're part of the same VSU.</p>
<p>Next, we'll assign a priority number to each switch. This number determines which switch is the main one (active) and which is the backup (passive). The active switch handles configuration changes, while the passive one waits in case the active switch goes down.</p>
<p>Then, we'll configure the interfaces for the Virtual Switch Link (VSL). The number of interfaces needed depends on the switch model, usually between 2 to 8. You can check your switch's configuration guide for details. Here, I've used Ten Gig Interfaces 23 and 24 from both switches.</p>
<p>Finally, we'll switch the mode to virtual. This process backs up the old standalone switch configuration and reloads it when you remove the VSU setup later on. It's like putting the switch into a special mode where it behaves as part of a larger virtual unit.</p>
<h4 id="heading-on-switch-1">On Switch 1:</h4>
<p><strong>Copy</strong></p>
<pre><code class="lang-plaintext">sw_A&gt; enable
sw_A# configure terminal
sw_A(config)# switch virtual domain 100
sw_A(config-vs-domain)# switch 1
sw_A(config-vs-domain)# switch 1 priority 200
sw_A(config-vs-domain)# switch 1 description sw_A
sw_A(config-vs-domain))# exit
sw_A(config)# vsl-port
sw_A(config-vsl-port)# port-member interface tengigabitethernet 0/23
sw_A(config-vsl-port)# port-member interface tengigabitethernet 0/24
sw_A(config)# exit
sw_A# switch convert mode virtual
</code></pre>
<h4 id="heading-on-switch-2">On Switch 2:</h4>
<p><strong>Copy</strong></p>
<pre><code class="lang-plaintext">sw_B&gt; enable
sw_B# configure terminal
sw_B(config)# switch virtual domain 100
sw_B(config-vs-domain)# switch 2
sw_B(config-vs-domain)# switch 2 priority 150
sw_B(config-vs-domain)# switch 2 description sw_B
sw_B(config-vs-domain))# exit
sw_B(config)# vsl-port
sw_B(config-vsl-port)# port-member interface Tengigabitethernet 0/23
sw_B(config-vsl-port)# port-member interface Tengigabitethernet 0/24
sw_B(config-vsl-port)# exit
sw_B# switch convert mode virtual
</code></pre>
<h3 id="heading-configuration-vlan">Configuration VLAN</h3>
<p>If you're here after reading my previous article, you might recall that we're planning to use separate VLANs for VM migration and CEPH. Now, let's dive into configuring those. If you haven't had a chance to read the previous article yet, you can find it <a target="_blank" href="https://blog.aadarshadhakal.com.np/building-a-hyperconverged-infrastructure-a-journey-with-ruijie-switches-and-dell-servers"><strong>here</strong></a>.</p>
<p><strong>Copy</strong></p>
<pre><code class="lang-plaintext">virtual_switch(config)# vlan 4
virtual_switch(config-vlan)# name migration
virtual_switch(config-vlan)# exit

virtual_switch(config)# vlan 5
virtual_switch(config-vlan)# name storage
virtual_switch(config-vlan)# exit
</code></pre>
<h3 id="heading-configure-link-aggregation-lag">Configure Link Aggregation (LAG)</h3>
<blockquote>
<p><strong><em>For simplicity, I'll demonstrate the LAG configuration for just one aggregate port, which we'll call aggregatePort3. However, in our setup, we've actually configured LAG for other aggregate ports as well, specifically aggregatePort 4, 5, 9, 10, and 11.</em></strong></p>
</blockquote>
<p>Link Aggregation is essential for increasing throughput and ensuring redundancy by combining multiple physical links into a single logical link. Let's walk through the steps:</p>
<ol>
<li><strong>Create a Port Group</strong>: Assign two ports from different switches to a group.</li>
</ol>
<p><strong>Copy</strong></p>
<pre><code class="lang-plaintext">// Select an interface of switch 1
virtual_switch(config)# interface tenGigabitEthernet 1/0/3
virtual_switch(config-if-TenGigabitEthernet 1/0/3)# port-group 3 mode active 
virtual_switch(config-if-TenGigabitEthernet 1/0/3)# exit

// Select an interface of switch 2
virtual_switch(config)# interface tenGigabitEthernet 1/0/3
virtual_switch(config-if-TenGigabitEthernet 1/0/3)# port-group 3 mode active  // 3 is group ID 
virtual_switch(config-if-TenGigabitEthernet 1/0/3)# exit
</code></pre>
<p>Here, we've set up an active-active configuration. This means we're maximizing both throughput and failover safety.</p>
<ol start="2">
<li><strong>Show Aggregate Port Status</strong>: Check the status of the aggregate port.</li>
</ol>
<p><strong>Copy</strong></p>
<pre><code class="lang-plaintext">virtual_switch(config)# show aggregatePort 3 summary
// You can see switchport mode is access
</code></pre>
<ol start="3">
<li><strong>Convert to Trunk Mode</strong>: Convert the access mode to trunk. Ruijie switches, LAG operates exclusively in Trunk mode and requires explicit setup.</li>
</ol>
<p><strong>Copy</strong></p>
<pre><code class="lang-plaintext">virtual_switch(config)# interface aggregatePort3 
virtual_switch(config-if-AggregatePort 3)# switchport mode trunk
virtual_switch(config-if-AggregatePort 3)# switchport trunk allowed vlan add 4,5
virtual_switch(config-if-AggregatePort 3)# end
</code></pre>
<ol start="4">
<li><strong>Save Configuration</strong>: Ensure all configurations are saved for persistence across reboots.</li>
</ol>
<p><strong>Copy</strong></p>
<pre><code class="lang-plaintext">virtual_switch# write
</code></pre>
<p>And there you have it! With VSU for high availability and LAG for improved link utilization and redundancy, our hyperconverged infrastructure is becoming more resilient and efficient by the minute.</p>
<p>Stay tuned for more updates as we continue to fine-tune our setup and explore new horizons in the world of IT infrastructure.</p>
]]></content:encoded></item></channel></rss>