<?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[『IT』BASE 📺]]></title><description><![CDATA[itbaseTV is working to bring the basic and the foundation but valuable things in Networks, Systems, Security, etc. to Everyone who is new in the Information Tec]]></description><link>https://blogs.itbase.tv</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1687703931429/snB18L9XQ.jpeg</url><title>『IT』BASE 📺</title><link>https://blogs.itbase.tv</link></image><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 07:00:28 GMT</lastBuildDate><atom:link href="https://blogs.itbase.tv/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Automating Cisco IOS-XE Interface Configuration with Ansible Loops]]></title><description><![CDATA[In this blog, I'll show how to use Ansible to automate interface configuration across multiple Cisco IOS-XE routers using a loop. This is especially useful for bulk interface provisioning and ensuring consistency across your edge routers.
Objective
C...]]></description><link>https://blogs.itbase.tv/automating-ansible-loops-cisco</link><guid isPermaLink="true">https://blogs.itbase.tv/automating-ansible-loops-cisco</guid><category><![CDATA[Cisco]]></category><category><![CDATA[ansible-playbook]]></category><category><![CDATA[ansible]]></category><category><![CDATA[automation]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Tue, 24 Jun 2025 06:46:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1750747501318/6bac8172-443c-4829-9875-20a3de58f091.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this blog, I'll show how to use <strong>Ansible</strong> to automate interface configuration across multiple <strong>Cisco IOS-XE routers</strong> using a loop. This is especially useful for bulk interface provisioning and ensuring consistency across your edge routers.</p>
<h2 id="heading-objective">Objective</h2>
<p>Configure 2 WAN Edge routers (IOS-XE) with multiple interfaces (WAN + OSPF) using a single playbook, leveraging:</p>
<ul>
<li><p>Grouped hosts in inventory</p>
</li>
<li><p>Per-host variables stored in <code>host_vars</code></p>
</li>
<li><p>Ansible loop to iterate through interfaces</p>
</li>
</ul>
<h2 id="heading-topology">Topology</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1750746811208/e615a1d7-d930-4620-9f82-974c566eedd6.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-project-layout">Project Layout</h2>
<p>ansible/</p>
<p>├── cisco-config.yml # Main playbook</p>
<p>├── inventory/</p>
<p>│ └── hosts # Inventory file listing the IOS-XE devices</p>
<p>├── host_vars/</p>
<p>│ ├── 10.1.1.181.yml # Host-specific variables for router 10.1.1.181</p>
<p>│ └── 10.1.1.184.yml # Host-specific variables for router 10.1.1.184</p>
<h2 id="heading-inventory-structure">Inventory Structure</h2>
<p>We maintain a structured inventory and variable layout:</p>
<pre><code class="lang-plaintext"># inventory/hosts
[ios-xe]
10.1.1.181
10.1.1.184
</code></pre>
<h3 id="heading-per-host-variables">Per-host variables:</h3>
<p>📁 <code>host_vars/10.1.1.181.yml</code></p>
<pre><code class="lang-yaml"><span class="hljs-attr">interfaces:</span>
  <span class="hljs-bullet">-</span> { <span class="hljs-attr">wan_interface:</span> <span class="hljs-string">"GigabitEthernet1"</span>, <span class="hljs-attr">wan_description:</span> <span class="hljs-string">"WAN1"</span>, <span class="hljs-attr">wan_ip:</span> <span class="hljs-string">"192.168.1.1"</span>, <span class="hljs-attr">wan_mask:</span> <span class="hljs-string">"255.255.255.0"</span> }
  <span class="hljs-bullet">-</span> { <span class="hljs-attr">wan_interface:</span> <span class="hljs-string">"GigabitEthernet2"</span>, <span class="hljs-attr">wan_description:</span> <span class="hljs-string">"OSPF-INTERFACE"</span>, <span class="hljs-attr">wan_ip:</span> <span class="hljs-string">"192.168.20.1"</span>, <span class="hljs-attr">wan_mask:</span> <span class="hljs-string">"255.255.255.0"</span> }
</code></pre>
<p>📁 <code>host_vars/10.1.1.184.yml</code></p>
<pre><code class="lang-yaml"><span class="hljs-attr">interfaces:</span>
  <span class="hljs-bullet">-</span> { <span class="hljs-attr">wan_interface:</span> <span class="hljs-string">"GigabitEthernet1"</span>, <span class="hljs-attr">wan_description:</span> <span class="hljs-string">"WAN1"</span>, <span class="hljs-attr">wan_ip:</span> <span class="hljs-string">"192.168.2.1"</span>, <span class="hljs-attr">wan_mask:</span> <span class="hljs-string">"255.255.255.0"</span> }
  <span class="hljs-bullet">-</span> { <span class="hljs-attr">wan_interface:</span> <span class="hljs-string">"GigabitEthernet2"</span>, <span class="hljs-attr">wan_description:</span> <span class="hljs-string">"OSPF-INTERFACE"</span>, <span class="hljs-attr">wan_ip:</span> <span class="hljs-string">"192.168.20.2"</span>, <span class="hljs-attr">wan_mask:</span> <span class="hljs-string">"255.255.255.0"</span> }
</code></pre>
<h2 id="heading-the-ansible-playbook">The Ansible Playbook</h2>
<p><code>cisco-config.yml</code>:</p>
<pre><code class="lang-yaml"><span class="hljs-meta">---</span>
<span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Configure</span> <span class="hljs-number">2</span> <span class="hljs-string">WAN</span> <span class="hljs-string">Edges</span> <span class="hljs-string">connected</span> <span class="hljs-string">and</span> <span class="hljs-string">OSPF</span>
  <span class="hljs-attr">hosts:</span> <span class="hljs-string">ios-xe</span>
  <span class="hljs-attr">gather_facts:</span> <span class="hljs-literal">no</span>
  <span class="hljs-attr">connection:</span> <span class="hljs-string">network_cli</span>

  <span class="hljs-attr">tasks:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">Interface</span> <span class="hljs-string">Configurations</span>
      <span class="hljs-attr">cisco.ios.ios_config:</span>
        <span class="hljs-attr">lines:</span>
          <span class="hljs-bullet">-</span> <span class="hljs-string">description</span> {{ <span class="hljs-string">item.wan_description</span> }}
          <span class="hljs-bullet">-</span> <span class="hljs-literal">no</span> <span class="hljs-string">shutdown</span>
          <span class="hljs-bullet">-</span> <span class="hljs-string">ip</span> <span class="hljs-string">address</span> {{ <span class="hljs-string">item.wan_ip</span> }} {{ <span class="hljs-string">item.wan_mask</span> }}
        <span class="hljs-attr">parents:</span> <span class="hljs-string">interface</span> {{ <span class="hljs-string">item.wan_interface</span> }}
      <span class="hljs-attr">loop:</span> <span class="hljs-string">"<span class="hljs-template-variable">{{ interfaces }}</span>"</span>
</code></pre>
<hr />
<h2 id="heading-run-the-playbook">Run the Playbook</h2>
<pre><code class="lang-plaintext">#ansible-playbook -i inventory/hosts cisco-config.yml
</code></pre>
<hr />
<h2 id="heading-output-highlights">Output Highlights</h2>
<p>PLAY RECAP *********************************************************************</p>
<p><strong>10.1.1.181</strong> : ok=1 <strong>changed=1</strong> unreachable=0 failed=0 skipped=0 rescued=0 ignored=0</p>
<p><strong>10.1.1.184</strong> : ok=1 <strong>changed=1</strong> unreachable=0 failed=0 skipped=0 rescued=0 ignored=0</p>
<p>Each router receives the interface configuration defined in its own <code>host_vars</code> YAML file.</p>
<p>Running configuration of <strong>10.1.1.181</strong></p>
<pre><code class="lang-plaintext">interface GigabitEthernet1
 description WAN1
 ip address 192.168.1.1 255.255.255.0
 negotiation auto
!
interface GigabitEthernet2
 description OSPF-INTERFACE
 ip address 192.168.20.1 255.255.255.0
 negotiation auto
!
</code></pre>
<p>Running configuration of <strong>10.1.1.184</strong></p>
<pre><code class="lang-bash">interface GigabitEthernet1
 description WAN1
 ip address 192.168.1.1 255.255.255.0
 negotiation auto
!
interface GigabitEthernet2
 description OSPF-INTERFACE
 ip address 192.168.20.1 255.255.255.0
 negotiation auto
!
</code></pre>
<p>This is achieved through a loop, ensuring scalability and flexibility when configuring multiple routers or interfaces.</p>
<h2 id="heading-tips">Tips</h2>
<ul>
<li><p>Use <code>network_cli</code> for Cisco IOS devices, and ensure SSH + privilege access is enabled.</p>
</li>
<li><p>Store variables per device in <code>host_vars/</code> for modularity.</p>
</li>
<li><p>Validate results with <code>show running-config</code> or collect configs using <code>ios_command</code>.</p>
</li>
</ul>
<hr />
<p>Feel free to clone, adapt, and expand this example to suit your network automation workflows. Automation doesn't have to be complex — start small, and grow from there!</p>
]]></content:encoded></item><item><title><![CDATA[[SR-MPLS] LAB Segment Routing with SR-TE and PCE]]></title><description><![CDATA[Lab topology and sample configs for testing Segment Routing with SR-TE and PCE on Cisco IOS XE routers.

🖥️ Topology
[ R1 ]---[ R2 ]---[ R3 ]---[ R4 ]
   |                         |
   |-------------------------|


R1: PCC (client), Source

R4: Dest...]]></description><link>https://blogs.itbase.tv/sr-mpls-lab-segment-routing-with-sr-te-and-pce</link><guid isPermaLink="true">https://blogs.itbase.tv/sr-mpls-lab-segment-routing-with-sr-te-and-pce</guid><category><![CDATA[networking]]></category><category><![CDATA[networkengineering]]></category><category><![CDATA[Cisco]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Fri, 09 May 2025 05:00:11 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1746671465429/97233c37-df08-47a4-9148-0ccdc7b49622.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-lab-topology-and-sample-configs-for-testing-segment-routing-with-sr-te-and-pce-on-cisco-ios-xe-routers"><strong>Lab topology</strong> and sample configs for testing <strong>Segment Routing with SR-TE and PCE</strong> on Cisco IOS XE routers.</h1>
<hr />
<h2 id="heading-topology">🖥️ Topology</h2>
<pre><code class="lang-plaintext">[ R1 ]---[ R2 ]---[ R3 ]---[ R4 ]
   |                         |
   |-------------------------|
</code></pre>
<ul>
<li><p><strong>R1:</strong> PCC (client), Source</p>
</li>
<li><p><strong>R4:</strong> Destination</p>
</li>
<li><p><strong>R2 &amp; R3:</strong> Transit</p>
</li>
<li><p><strong>Loopbacks:</strong></p>
<ul>
<li><p>R1 = 1.1.1.1/32, SID 16001</p>
</li>
<li><p>R2 = 2.2.2.2/32, SID 16002</p>
</li>
<li><p>R3 = 3.3.3.3/32, SID 16003</p>
</li>
<li><p>R4 = 4.4.4.4/32, SID 16004</p>
</li>
</ul>
</li>
</ul>
<hr />
<h2 id="heading-common-ospf-amp-sr-config-on-all-routers">🔧 Common OSPF &amp; SR Config (on all routers)</h2>
<pre><code class="lang-plaintext">hostname R1
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Gig0/0
 ip address 10.0.12.1 255.255.255.0
 mpls ip
 ip ospf 1 area 0
!
router ospf 1
 router-id 1.1.1.1
 segment-routing mpls
!
mpls traffic-eng
!
segment-routing
 mpls
  global-block 16000 23999
  connected-prefix-sid-map
   address 1.1.1.1/32 absolute-sid 16001
</code></pre>
<p>Change IPs and SIDs accordingly for R2–R4.</p>
<hr />
<h2 id="heading-on-pce-node-eg-r2">🧠 On PCE Node (e.g., R2)</h2>
<pre><code class="lang-plaintext">pce
 segment-routing
  peer 1.1.1.1
   source-address 2.2.2.2
   lsr-id 2.2.2.2
   capability pcc
   capability pce
!
pcc-address-family ipv4
 stateful-client
!
pce-address-family ipv4
 source-address 2.2.2.2
</code></pre>
<hr />
<h2 id="heading-on-pcc-node-r1">🧭 On PCC Node (R1)</h2>
<pre><code class="lang-plaintext">pce
 segment-routing
  pcc
   peer 2.2.2.2
    source-address 1.1.1.1
</code></pre>
<hr />
<h2 id="heading-tunnel-sr-te-policy-on-r1-to-r4">🚀 Tunnel (SR-TE Policy on R1 to R4)</h2>
<pre><code class="lang-plaintext">interface Tunnel100
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 4.4.4.4
 tunnel mpls traffic-eng path-option 10 dynamic
 tunnel mpls traffic-eng autoroute announce
 segment-routing mpls
</code></pre>
<hr />
<h2 id="heading-verification">📋 Verification</h2>
<ul>
<li><p><code>show pce peer</code></p>
</li>
<li><p><code>show pce lsp</code></p>
</li>
<li><p><code>show segment-routing traffic-eng policy</code></p>
</li>
<li><p><code>show mpls forwarding-table</code></p>
</li>
</ul>
<h1 id="heading-more-details">More details</h1>
<pre><code class="lang-plaintext">     [R1 - PCC]
        |
     (IGP + SR)
        |
     [R2 - PCE]
      /      \
     /        \
[R3]----(IGP)----[R4]
</code></pre>
<h3 id="heading-roles">Roles:</h3>
<ul>
<li><p><strong>R1 (PCC)</strong>: Requests a path from the PCE.</p>
</li>
<li><p><strong>R2 (PCE)</strong>: Computes the best SR-TE path based on constraints (e.g., low latency, bandwidth).</p>
</li>
<li><p><strong>R3 &amp; R4</strong>: Intermediate and destination routers.</p>
</li>
</ul>
<h3 id="heading-traffic-flow">Traffic Flow:</h3>
<ol>
<li><p>R1 uses IGP (e.g., OSPF or IS-IS) with Segment Routing enabled to advertise and receive labels (SIDs).</p>
</li>
<li><p>R1, as PCC, sends a path computation request (PCEP) to R2.</p>
</li>
<li><p>R2, as PCE, computes a TE path using available topology and policy constraints.</p>
</li>
<li><p>R1 receives the path and installs it as an SR-TE policy.</p>
</li>
<li><p>Traffic follows the SR policy instead of IGP’s default shortest path.</p>
</li>
</ol>
<h3 id="heading-benefits-of-sr-te-with-pce">Benefits of SR-TE with PCE:</h3>
<ul>
<li><p>Centralized path computation (PCE).</p>
</li>
<li><p>Dynamic re-optimization when network state changes.</p>
</li>
<li><p>SLA-aware routing (e.g., avoid congested links or meet latency targets).</p>
</li>
<li><p>Supports automation via NETCONF/YANG or CLI.</p>
</li>
</ul>
<h2 id="heading-the-configuration-to-include-bandwidth-affinity-link-color-and-explicit-path-constraints-in-cisco-ios-xr">The configuration to include <strong>bandwidth</strong>, <strong>affinity (link color)</strong>, and <strong>explicit path constraints</strong> in Cisco IOS-XR.</h2>
<hr />
<h3 id="heading-example-network-setup">🧱 Example Network Setup</h3>
<pre><code class="lang-plaintext">R1 -- R2 -- R3 -- R4

R1 = PCC (headend)
R2 = PCE (central controller)
R4 = destination
Links: SR-MPLS enabled, OSPF/ISIS as IGP
</code></pre>
<hr />
<h3 id="heading-1-add-affinity-link-color-to-interfaces-on-r2-r3">1️⃣ Add Affinity (Link Color) to Interfaces (on R2, R3)</h3>
<blockquote>
<p>Suppose you want traffic to use only "green" links.</p>
</blockquote>
<pre><code class="lang-plaintext">interface GigabitEthernet0/0/0/1
 description Link to R3 (green)
 segment-routing
  forwarding
  affinity 0x2
</code></pre>
<p>Here:</p>
<ul>
<li><p><code>affinity 0x2</code> marks the link as "green".</p>
</li>
<li><p>Affinity is a 32-bit bitmask — you define meanings separately.</p>
</li>
</ul>
<hr />
<h3 id="heading-2-define-affinity-mapping-on-pce-or-router-where-policy-is-configured">2️⃣ Define Affinity Mapping (on PCE or router where policy is configured)</h3>
<pre><code class="lang-plaintext">segment-routing
 traffic-eng
  affinity-map green 0x2
</code></pre>
<hr />
<h3 id="heading-3-define-sr-te-policy-with-constraints-on-r1-pcc">3️⃣ Define SR-TE Policy with Constraints (on R1 — PCC)</h3>
<pre><code class="lang-plaintext">segment-routing
 traffic-eng
  policy SRTE-R1-R4
   color 100
   end-point ipv4 10.0.0.4
   candidate-paths
    preference 100
     constraints
      affinity include green
      bandwidth 1000000  ! in Kbps (1 Gbps)
     explicit segment-list R1-R2-R3-R4
</code></pre>
<hr />
<h3 id="heading-4-define-explicit-segment-list-optional-for-hard-path-pinning">4️⃣ Define Explicit Segment List (Optional for hard path pinning)</h3>
<pre><code class="lang-plaintext">segment-routing
 traffic-eng
  segment-list R1-R2-R3-R4
   index 10
    mpls label 16002  ! R2 SID
   index 20
    mpls label 16003  ! R3 SID
   index 30
    mpls label 16004  ! R4 SID
</code></pre>
<hr />
<h3 id="heading-what-this-does">✅ What This Does:</h3>
<ul>
<li><p><strong>Bandwidth</strong>: Allocates bandwidth-aware paths via the PCE.</p>
</li>
<li><p><strong>Affinity</strong>: Ensures only “green” tagged links are used.</p>
</li>
<li><p><strong>Explicit path</strong>: You can pin the SR path manually using segment SIDs.</p>
</li>
</ul>
<p>Here is the full configuration for a Cisco SR-TE setup using a PCE-PCC model across four routers (R1 to R4). R1 is the PCC, R2 is the PCE, and R3/R4 are transit/destination nodes.</p>
<ul>
<li>```plaintext
  !
  ! R1 Configuration (PCC)
  !
  hostname R1
  !
  interface Loopback0
   ip address 1.1.1.1 255.255.255.255
  !
  interface GigabitEthernet0/0
   ip address 10.0.12.1 255.255.255.0
   mpls ip
   ip ospf 1 area 0
  !
  interface GigabitEthernet0/1
   ip address 10.0.14.1 255.255.255.0
   mpls ip
   ip ospf 1 area 0
  !
  router ospf 1
   router-id 1.1.1.1
   network 10.0.12.0 0.0.0.255 area 0
   network 10.0.14.0 0.0.0.255 area 0
   network 1.1.1.1 0.0.0.0 area 0
   segment-routing mpls
  !
  mpls traffic-eng
  !
  segment-routing
   mpls
    global-block 16000 23999
    connected-prefix-sid-map
     address 1.1.1.1/32 absolute-sid 16001
  !
  pce
   segment-routing
    pcc
     peer 2.2.2.2
      source-address 1.1.1.1
  !
  interface Tunnel100
   ip unnumbered Loopback0
   tunnel mode mpls traffic-eng
   tunnel destination 4.4.4.4
   tunnel mpls traffic-eng path-option 10 dynamic
   tunnel mpls traffic-eng autoroute announce
   segment-routing mpls</li>
</ul>
<p>    !
    ! R2 Configuration (PCE)
    !
    hostname R2
    !
    interface Loopback0
     ip address 2.2.2.2 255.255.255.255
    !
    interface GigabitEthernet0/0
     ip address 10.0.12.2 255.255.255.0
     mpls ip
     ip ospf 1 area 0
    !
    interface GigabitEthernet0/1
     ip address 10.0.23.1 255.255.255.0
     mpls ip
     ip ospf 1 area 0
    !
    router ospf 1
     router-id 2.2.2.2
     network 10.0.12.0 0.0.0.255 area 0
     network 10.0.23.0 0.0.0.255 area 0
     network 2.2.2.2 0.0.0.0 area 0
     segment-routing mpls
    !
    mpls traffic-eng
    !
    segment-routing
     mpls
      global-block 16000 23999
      connected-prefix-sid-map
       address 2.2.2.2/32 absolute-sid 16002
    !
    pce
     segment-routing
      peer 1.1.1.1
       source-address 2.2.2.2
       lsr-id 2.2.2.2
       capability pcc
       capability pce
    !
    pcc-address-family ipv4
     stateful-client
    !
    pce-address-family ipv4
     source-address 2.2.2.2</p>
<p>    !
    ! R3 Configuration (Transit)
    !
    hostname R3
    !
    interface Loopback0
     ip address 3.3.3.3 255.255.255.255
    !
    interface GigabitEthernet0/0
     ip address 10.0.23.2 255.255.255.0
     mpls ip
     ip ospf 1 area 0
    !
    interface GigabitEthernet0/1
     ip address 10.0.34.1 255.255.255.0
     mpls ip
     ip ospf 1 area 0
    !
    router ospf 1
     router-id 3.3.3.3
     network 10.0.23.0 0.0.0.255 area 0
     network 10.0.34.0 0.0.0.255 area 0
     network 3.3.3.3 0.0.0.0 area 0
     segment-routing mpls
    !
    mpls traffic-eng
    !
    segment-routing
     mpls
      global-block 16000 23999
      connected-prefix-sid-map
       address 3.3.3.3/32 absolute-sid 16003</p>
<p>    !
    ! R4 Configuration (Destination)
    !
    hostname R4
    !
    interface Loopback0
     ip address 4.4.4.4 255.255.255.255
    !
    interface GigabitEthernet0/0
     ip address 10.0.34.2 255.255.255.0
     mpls ip
     ip ospf 1 area 0
    !
    interface GigabitEthernet0/1
     ip address 10.0.14.2 255.255.255.0
     mpls ip
     ip ospf 1 area 0
    !
    router ospf 1
     router-id 4.4.4.4
     network 10.0.34.0 0.0.0.255 area 0
     network 10.0.14.0 0.0.0.255 area 0
     network 4.4.4.4 0.0.0.0 area 0
     segment-routing mpls
    !
    mpls traffic-eng
    !
    segment-routing
     mpls
      global-block 16000 23999
      connected-prefix-sid-map
       address 4.4.4.4/32 absolute-sid 16004
    ```</p>
]]></content:encoded></item><item><title><![CDATA[[SR-MPLS] IGP & SR-TE Segment Routing - Traffic Engineering]]></title><description><![CDATA[How IGP convergence ties into Fast Reroute (FRR) and Segment Routing - Traffic Engineering (SR-TE)
🔁 IGP + Fast Reroute (FRR)

IGP convergence usually takes tens to hundreds of milliseconds—even up to a few seconds depending on the topology and tuni...]]></description><link>https://blogs.itbase.tv/sr-mpls-igp-and-sr-te-segment-routing-traffic-engineering</link><guid isPermaLink="true">https://blogs.itbase.tv/sr-mpls-igp-and-sr-te-segment-routing-traffic-engineering</guid><category><![CDATA[networking]]></category><category><![CDATA[MPLS]]></category><category><![CDATA[Cisco]]></category><category><![CDATA[Network Engineering]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Thu, 08 May 2025 02:21:51 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1746670805015/8e6879c4-0dbd-4513-9327-9026de08933f.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-how-igp-convergence-ties-into-fast-reroute-frr-and-segment-routing-traffic-engineering-sr-te">How IGP convergence ties into <strong>Fast Reroute (FRR)</strong> and <strong>Segment Routing - Traffic Engineering (SR-TE)</strong></h1>
<h3 id="heading-igp-fast-reroute-frr">🔁 IGP + Fast Reroute (FRR)</h3>
<ul>
<li><p><strong>IGP convergence</strong> usually takes tens to hundreds of milliseconds—even up to a few seconds depending on the topology and tuning.</p>
</li>
<li><p>During this time, traffic may drop. FRR solves this by <strong>precomputing a backup path</strong>.</p>
</li>
<li><p>In Cisco’s world, <strong>Loop-Free Alternates (LFA)</strong> or <strong>TI-LFA (Topology Independent LFA)</strong> are used.</p>
</li>
<li><p>If the primary next-hop fails, traffic is immediately redirected to the backup (pre-installed in forwarding plane), <strong>before IGP converges</strong>.</p>
</li>
<li><p>Once convergence finishes, the IGP installs the new best path as usual.</p>
</li>
</ul>
<p><strong>Key Point</strong>: FRR is a <strong>local repair</strong> mechanism to protect traffic during the IGP convergence window.</p>
<h3 id="heading-igp-sr-te-segment-routing-traffic-engineering">🚦 IGP + SR-TE (Segment Routing - Traffic Engineering)</h3>
<ul>
<li><p>SR-TE allows explicit path steering based on <strong>segments (SID list)</strong> rather than relying only on the IGP’s shortest path.</p>
</li>
<li><p>While IGP still computes SPT, SR-TE policies can override that with <strong>custom paths</strong> for SLA, bandwidth, or avoidance.</p>
</li>
<li><p>Even after IGP convergence, the SR-TE policy takes precedence for flows that match its criteria.</p>
</li>
<li><p>If a failure occurs on an SR path, <strong>FRR can be used within SR-MPLS</strong> to protect it during convergence (via TI-LFA).</p>
</li>
</ul>
<p><strong>Key Point</strong>: SR-TE allows more flexible post-convergence routing choices beyond IGP's best path.</p>
<h1 id="heading-while-igp-still-computes-spt-sr-te-policies-can-override-that-with-custom-paths">While IGP still computes SPT, SR-TE policies can override that with custom paths</h1>
<h4 id="heading-igp-eg-ospfis-is">✅ IGP (e.g., OSPF/IS-IS):</h4>
<ul>
<li><p><strong>Shortest Path Tree (SPT)</strong>: IGP calculates the shortest path based on metrics (like cost).</p>
</li>
<li><p><strong>Static and Dynamic</strong>: It works well, but has <strong>limited control</strong> over how traffic flows.</p>
</li>
</ul>
<h4 id="heading-limitation-in-igp">🚧 Limitation in IGP:</h4>
<ul>
<li><p>Cannot control:</p>
<ul>
<li><p><strong>Latency</strong></p>
</li>
<li><p><strong>Bandwidth requirements</strong></p>
</li>
<li><p><strong>Path avoidance</strong> (e.g., avoid congested or untrusted nodes)</p>
</li>
<li><p><strong>Traffic differentiation</strong> (e.g., voice vs. bulk data)</p>
</li>
</ul>
</li>
</ul>
<h3 id="heading-segment-routing-traffic-engineering-sr-te">🧭 Segment Routing - Traffic Engineering (SR-TE):</h3>
<p>SR-TE <strong>builds on top of IGP</strong>, but introduces <strong>explicit path control</strong> via <strong>Segment Identifiers (SIDs)</strong>. You can program traffic to follow a specific route <strong>even if it’s not the shortest path</strong>.</p>
<h4 id="heading-use-cases">🎯 Use Cases:</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Use Case</td><td>Description</td></tr>
</thead>
<tbody>
<tr>
<td><strong>SLA enforcement</strong></td><td>Route low-latency traffic over a specific low-delay path</td></tr>
<tr>
<td><strong>Bandwidth control</strong></td><td>Direct high-bandwidth flows over high-capacity links</td></tr>
<tr>
<td><strong>Path exclusion</strong></td><td>Avoid unstable or congested nodes/links</td></tr>
<tr>
<td><strong>Disjoint paths</strong></td><td>Create redundant non-overlapping backup paths</td></tr>
</tbody>
</table>
</div><h3 id="heading-how-sr-te-overrides-igp">🛠️ How SR-TE Overrides IGP:</h3>
<p>You define a <strong>policy</strong> with:</p>
<ul>
<li><p><strong>Source</strong> and <strong>destination</strong></p>
</li>
<li><p><strong>Constraints</strong> (e.g., "path must avoid R2" or "minimum available bandwidth: 100 Mbps")</p>
</li>
<li><p>A <strong>Segment List</strong> (i.e., list of router/node/adjacency SIDs to reach destination)</p>
</li>
</ul>
<p>Then:</p>
<ul>
<li><p>The router installs this policy into the RIB and FIB</p>
</li>
<li><p><strong>Traffic matching that policy</strong> is forwarded according to the SID list, <strong>not</strong> the IGP’s SPT</p>
</li>
</ul>
<blockquote>
<p>🔄 If IGP recalculates (e.g., topology changes), the <strong>SR-TE path remains unchanged</strong> unless it becomes invalid, at which point a new SR-TE path can be computed or failover triggered.</p>
</blockquote>
<h1 id="heading-use-case-low-latency-path-for-voice-traffic">📦 <strong>Use Case: Low-Latency Path for Voice Traffic</strong></h1>
<h4 id="heading-network-topology">🌐 Network Topology:</h4>
<pre><code class="lang-plaintext">        [R1]
        /   \
     10ms   50ms
     /         \
   [R2]——30ms——[R3]——10ms——[R4]
</code></pre>
<ul>
<li><p>You need to send <strong>voice traffic</strong> from <strong>R1 to R4</strong>.</p>
</li>
<li><p>Voice requires <strong>&lt;40ms latency</strong>.</p>
</li>
</ul>
<hr />
<h3 id="heading-what-igp-would-do-eg-ospf">🧮 What IGP Would Do (e.g., OSPF):</h3>
<ul>
<li><p>OSPF sees <strong>R1–R3–R4</strong> (50ms + 10ms = <strong>60ms</strong>) as the shortest path by cost/metric.</p>
</li>
<li><p>So it installs that path in the RIB.</p>
</li>
<li><p><strong>Problem</strong>: That path exceeds your latency SLA.</p>
</li>
</ul>
<hr />
<h3 id="heading-what-sr-te-allows">🛠️ What SR-TE Allows:</h3>
<ul>
<li><p>You define a <strong>policy</strong>:</p>
<ul>
<li><p><strong>Source</strong>: R1</p>
</li>
<li><p><strong>Destination</strong>: R4</p>
</li>
<li><p><strong>Constraint</strong>: "Only allow paths with total latency &lt; 40ms"</p>
</li>
</ul>
</li>
<li><p>SR-TE evaluates paths:</p>
<ul>
<li><p><strong>R1–R2–R3–R4</strong> → 10 + 30 + 10 = <strong>50ms</strong> ❌</p>
</li>
<li><p><strong>R1–R2–R4 (via a new link)</strong> → 10 + 15 = <strong>25ms</strong> ✅</p>
</li>
</ul>
</li>
<li><p>If this 25ms path exists (maybe R2–R4 has a direct link), SR-TE <strong>installs a segment list</strong>:</p>
<pre><code class="lang-plaintext">  R1 → R2 (Node SID) → R4 (Node SID)
</code></pre>
</li>
<li><p>Voice traffic follows this <strong>explicit path</strong>, even though it’s <strong>not the IGP's shortest</strong>.</p>
</li>
</ul>
<hr />
<h3 id="heading-summary">🧠 Summary:</h3>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Feature</td><td>IGP (OSPF/IS-IS)</td><td>SR-TE</td></tr>
</thead>
<tbody>
<tr>
<td>Path control</td><td>Based on metric</td><td>Custom via policy</td></tr>
<tr>
<td>SLA awareness</td><td>❌ No</td><td>✅ Yes (delay, bandwidth, exclusion)</td></tr>
<tr>
<td>Use case</td><td>Best-effort routing</td><td>Voice, video, large flows, backups</td></tr>
<tr>
<td>Behavior after convergence</td><td>Follows new SPT</td><td>Follows policy-defined path</td></tr>
</tbody>
</table>
</div><h1 id="heading-sample-configuration-of-segment-routing-with-traffic-engineering-sr-te-using-cisco-ios-xr">Sample configuration of <strong>Segment Routing with Traffic Engineering (SR-TE)</strong> using <strong>Cisco IOS-XR</strong>.</h1>
<p>This example assumes:</p>
<ul>
<li><p>IS-IS is used as the IGP.</p>
</li>
<li><p>Segment Routing is enabled.</p>
</li>
<li><p>An SR-TE policy is created to prefer a custom path with specific SLAs (e.g., low latency).</p>
</li>
</ul>
<hr />
<h3 id="heading-step-1-enable-segment-routing">🔧 Step 1: Enable Segment Routing</h3>
<pre><code class="lang-plaintext">bashCopyEditrouter isis CORE
 address-family ipv4 unicast
  segment-routing mpls
 !
</code></pre>
<hr />
<h3 id="heading-step-2-assign-segment-ids-to-loopbacks">🗺️ Step 2: Assign Segment IDs to Loopbacks</h3>
<pre><code class="lang-plaintext">bashCopyEditinterface Loopback0
 ipv4 address 1.1.1.1 255.255.255.255
!
router isis CORE
 net 49.0001.0000.0000.0001.00
 address-family ipv4 unicast
  mpls traffic-eng router-id Loopback0
  segment-routing mpls
   connected-prefix-sid-map
    address 1.1.1.1/32 sid 16001
</code></pre>
<p>Repeat for other routers, adjusting the IP and SID.</p>
<hr />
<h3 id="heading-step-3-enable-mpls-traffic-engineering">📡 Step 3: Enable MPLS Traffic Engineering</h3>
<pre><code class="lang-plaintext">bashCopyEditmpls traffic-eng
!
interface GigabitEthernet0/0/0/0
 mpls traffic-eng tunnels
</code></pre>
<hr />
<h3 id="heading-step-4-create-sr-te-policy">🚧 Step 4: Create SR-TE Policy</h3>
<pre><code class="lang-plaintext">bashCopyEditsegment-routing
 traffic-eng
  policy VOICE-POLICY
   color 123
   end-point ipv4 4.4.4.4
   candidate-paths
    preference 100
     explicit segment-list VOICE-PATH
      name VOICE-PATH
       index 10
        segment 16002
       index 20
        segment 16004
</code></pre>
<hr />
<h3 id="heading-step-5-forward-traffic-using-the-policy">🧭 Step 5: Forward Traffic Using the Policy</h3>
<pre><code class="lang-plaintext">bashCopyEditrouter static
 address-family ipv4 unicast
  4.4.4.4/32  segment-routing policy VOICE-POLICY
</code></pre>
<hr />
<h3 id="heading-notes">🔍 Notes</h3>
<ul>
<li><p><code>segment 16002</code> and <code>16004</code> are SIDs representing routers R2 and R4.</p>
</li>
<li><p>This policy manually forces the traffic to take <code>R1 → R2 → R4</code> instead of the IGP shortest path.</p>
</li>
<li><p>If you use a <strong>PCE</strong>, you can also compute the path dynamically based on constraints like latency or bandwidth.</p>
</li>
</ul>
<h1 id="heading-cisco-ios-xe-example-for-configuring-segment-routing-with-sr-te-and-pce-based-dynamic-policies">Cisco <strong>IOS XE</strong> example for configuring <strong>Segment Routing with SR-TE</strong> and <strong>PCE-based</strong> dynamic policies.</h1>
<hr />
<h3 id="heading-prerequisites">🧱 Prerequisites</h3>
<ul>
<li><p>IOS XE with SR-MPLS and PCE support (e.g., on ASR 1000, Catalyst 8000).</p>
</li>
<li><p>You have a functioning IGP (like OSPF or IS-IS).</p>
</li>
<li><p>Devices support <strong>SR-PCE</strong> (Path Computation Element).</p>
</li>
</ul>
<hr />
<h3 id="heading-1-enable-segment-routing-and-mpls-te">1️⃣ Enable Segment Routing and MPLS TE</h3>
<pre><code class="lang-plaintext">bashCopyEditrouter ospf 1
 router-id 1.1.1.1
 segment-routing mpls
 mpls traffic-eng
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip ospf 1 area 0
!
interface GigabitEthernet0/0/0
 ip ospf 1 area 0
 mpls ip
</code></pre>
<hr />
<h3 id="heading-2-enable-srgb-and-sid-on-loopback">2️⃣ Enable SRGB and SID on Loopback</h3>
<pre><code class="lang-plaintext">bashCopyEditsegment-routing
 mpls
  global-block 16000 23999
  connected-prefix-sid-map
   address 1.1.1.1/32 absolute-sid 16001
</code></pre>
<p>Repeat on each router with a unique loopback and SID.</p>
<hr />
<h3 id="heading-3-configure-pce-on-pce-node">3️⃣ Configure PCE (on PCE node)</h3>
<pre><code class="lang-plaintext">bashCopyEditpce
 segment-routing
  peer 2.2.2.2
   source-address 1.1.1.1
   lsr-id 1.1.1.1
   capability pce
   capability pcc
</code></pre>
<hr />
<h3 id="heading-4-enable-pcc-on-client-router">4️⃣ Enable PCC (on client router)</h3>
<pre><code class="lang-plaintext">bashCopyEditpce
 segment-routing
  pcc
   peer 1.1.1.1
    source-address 2.2.2.2
</code></pre>
<hr />
<h3 id="heading-5-configure-sr-te-policy-with-dynamic-path-computed-by-pce">5️⃣ Configure SR-TE Policy with Dynamic Path (computed by PCE)</h3>
<pre><code class="lang-plaintext">bashCopyEditinterface Tunnel10
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 4.4.4.4
 tunnel mpls traffic-eng path-option 10 dynamic
 tunnel mpls traffic-eng autoroute announce
 segment-routing mpls
</code></pre>
<hr />
<h3 id="heading-summary-1">🔁 Summary</h3>
<ul>
<li><p>PCE computes the best path dynamically (e.g., lowest latency).</p>
</li>
<li><p>SR-TE tunnel forwards traffic based on this path.</p>
</li>
<li><p>You don't need to define explicit segment lists—PCE handles it.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Understanding Azure Load Balancing]]></title><description><![CDATA[Introduction
In today's cloud-driven world, ensuring high availability and optimal performance of applications is crucial. Microsoft Azure provides robust load balancing solutions that efficiently distribute incoming network traffic across multiple r...]]></description><link>https://blogs.itbase.tv/understanding-azure-load-balancing</link><guid isPermaLink="true">https://blogs.itbase.tv/understanding-azure-load-balancing</guid><category><![CDATA[Azure]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[networking]]></category><category><![CDATA[Load Balancing]]></category><category><![CDATA[Load Balancer]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Tue, 25 Mar 2025 03:30:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1742873324371/104f7cf5-358f-4ec2-96a4-4d3f88aeaa25.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>In today's cloud-driven world, ensuring high availability and optimal performance of applications is crucial. Microsoft Azure provides robust load balancing solutions that efficiently distribute incoming network traffic across multiple resources. Two primary services in this domain are <strong>Azure Load Balancer</strong> and <strong>Azure Application Gateway</strong>. While both aim to enhance application scalability and reliability, they operate at different layers of the OSI model and cater to distinct scenarios.</p>
<h2 id="heading-azure-load-balancer-layer-4-traffic-distribution">Azure Load Balancer: Layer 4 Traffic Distribution</h2>
<p>Azure Load Balancer operates at <strong>Layer 4 (Transport Layer)</strong> of the OSI model, focusing on transport-level traffic distribution. It directs incoming network traffic based on source and destination IP addresses and ports without inspecting the packet content. This makes it suitable for high-performance, low-latency distribution of TCP and UDP traffic.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1742873277550/79661b24-607c-46b9-bf7e-80a9c3997a4a.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-key-features">Key Features:</h3>
<ul>
<li><p><strong>High Throughput and Low Latency</strong> – Designed for high-bandwidth applications, ensuring minimal delay in traffic distribution.</p>
</li>
<li><p><strong>Health Probes</strong> – Continuously monitors the health of backend instances, rerouting traffic away from unhealthy nodes.</p>
</li>
<li><p><strong>Outbound Connectivity</strong> – Provides outbound connectivity for virtual machines without public IPs by translating their private IPs to public IPs.</p>
</li>
<li><p><strong>Flexible Deployment</strong> – Supports <strong>public load balancing</strong> (for external traffic) and <strong>internal load balancing</strong> (for internal Azure Virtual Network communication).</p>
</li>
</ul>
<h3 id="heading-use-case-example">Use Case Example:</h3>
<p>A company hosts a <strong>multiplayer gaming platform</strong> on Azure Virtual Machines. To handle thousands of concurrent connections, <strong>Azure Load Balancer</strong> distributes incoming UDP traffic across multiple game servers, optimizing resource utilization and ensuring a seamless gaming experience.</p>
<h2 id="heading-azure-application-gateway-layer-7-traffic-management">Azure Application Gateway: Layer 7 Traffic Management</h2>
<p>Azure Application Gateway operates at <strong>Layer 7 (Application Layer)</strong> of the OSI model, enabling advanced traffic routing based on HTTP request attributes. Unlike Azure Load Balancer, which only manages transport-level traffic, <strong>Application Gateway can inspect packet content</strong> and make intelligent routing decisions.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1742873286115/74f781aa-a758-4192-8640-e907ade970b1.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-key-features-1">Key Features:</h3>
<ul>
<li><p><strong>Web Application Firewall (WAF)</strong> – Provides protection against web vulnerabilities like SQL injection and cross-site scripting.</p>
</li>
<li><p><strong>SSL Termination (SSL Offloading)</strong> – Offloads SSL/TLS encryption and decryption from backend servers, enhancing performance.</p>
</li>
<li><p><strong>End-to-End SSL</strong> – Ensures complete encryption and decryption of traffic between users and backend servers.</p>
</li>
<li><p><strong>URL-Based Routing</strong> – Routes requests to different backend pools based on URL paths, supporting microservices architectures.</p>
</li>
<li><p><strong>Cookie-Based Session Affinity</strong> – Ensures subsequent requests from the same user session are routed to the same backend instance.</p>
</li>
</ul>
<h3 id="heading-how-azure-application-gateway-works">How Azure Application Gateway Works</h3>
<p>Application Gateway sits <strong>between users and backend virtual machines</strong>, using <strong>Application Request Routing (ARR)</strong> to forward requests to appropriate services. It requires a <strong>private or public IP address</strong> to handle incoming HTTP/HTTPS traffic and direct it to configured endpoints.</p>
<h3 id="heading-use-case-example-1">Use Case Example:</h3>
<p>A <strong>financial services company</strong> hosts its online portal on Azure. Using <strong>Application Gateway</strong>, the company routes requests to different microservices based on URL paths (e.g., <code>/accounts</code> for account management and <code>/transactions</code> for payments). Additionally, <strong>SSL termination</strong> at the gateway enhances security while reducing the load on backend servers.</p>
<h2 id="heading-comparing-azure-load-balancer-vs-application-gateway">Comparing Azure Load Balancer vs. Application Gateway</h2>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Feature</td><td>Azure Load Balancer</td><td>Azure Application Gateway</td></tr>
</thead>
<tbody>
<tr>
<td>OSI Layer</td><td>Layer 4 (Transport)</td><td>Layer 7 (Application)</td></tr>
<tr>
<td>Traffic Type</td><td>TCP/UDP</td><td>HTTP/HTTPS</td></tr>
<tr>
<td>Routing Decision</td><td>Based on IP and Port</td><td>Based on URL, Headers, and Cookies</td></tr>
<tr>
<td>Security</td><td>Basic filtering</td><td>Web Application Firewall (WAF)</td></tr>
<tr>
<td>SSL Termination</td><td>No</td><td>Yes</td></tr>
<tr>
<td>Session Affinity</td><td>No</td><td>Yes (Cookie-based)</td></tr>
<tr>
<td>URL-Based Routing</td><td>No</td><td>Yes</td></tr>
<tr>
<td>Use Case</td><td>General traffic distribution</td><td>Web application traffic management</td></tr>
</tbody>
</table>
</div><h2 id="heading-when-to-choose-azure-load-balancer-vs-application-gateway">When to Choose Azure Load Balancer vs. Application Gateway</h2>
<ul>
<li><p><strong>Choose Azure Load Balancer</strong> if you need <strong>high-performance, transport-layer load balancing</strong> for TCP and UDP traffic without content-based routing.</p>
</li>
<li><p><strong>Choose Azure Application Gateway</strong> if you need <strong>advanced Layer 7 capabilities</strong> such as <strong>SSL offloading, URL-based routing, and security with WAF</strong>.</p>
</li>
<li><p><strong>Combine Both</strong> – For comprehensive load balancing, you can use <strong>Azure Load Balancer</strong> for non-HTTP traffic and <strong>Application Gateway</strong> for web traffic.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Understanding the distinctions between <strong>Azure Load Balancer</strong> and <strong>Azure Application Gateway</strong> is essential for designing resilient and efficient cloud applications. By aligning the choice of load balancing service with application requirements, organizations can enhance performance, ensure high availability, and improve security.</p>
]]></content:encoded></item><item><title><![CDATA[Mastering Azure Private Endpoints & Private Link Service]]></title><description><![CDATA[As I continue my journey in Azure Cloud, today’s focus has been on Azure Private Link and Private Endpoints—key technologies that enable secure and private access to various Azure services without exposing them to the public internet. Let’s explore w...]]></description><link>https://blogs.itbase.tv/mastering-azure-private-endpoints-and-private-link-service</link><guid isPermaLink="true">https://blogs.itbase.tv/mastering-azure-private-endpoints-and-private-link-service</guid><category><![CDATA[Azure]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[networking]]></category><category><![CDATA[Security]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Wed, 05 Mar 2025 15:04:13 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1741187191762/0efe22bc-2551-4964-ad64-dc3a9619549a.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As I continue my journey in Azure Cloud, today’s focus has been on <strong>Azure Private Link</strong> and <strong>Private Endpoints</strong>—key technologies that enable secure and private access to various Azure services without exposing them to the public internet. Let’s explore what I’ve learned, along with real-world use cases and a step-by-step guide on how to create private endpoints using Azure CLI and PowerShell.</p>
<h2 id="heading-what-is-azure-private-link">What is Azure Private Link?</h2>
<p>Azure Private Link allows private access to Azure services, third-party SaaS applications, or custom-built solutions within an organization’s virtual network. This ensures that traffic remains on the Azure backbone, eliminating exposure to the public internet.</p>
<h2 id="heading-what-are-azure-private-endpoints">What are Azure Private Endpoints?</h2>
<p>An <strong>Azure Private Endpoint</strong> is a network interface that connects privately to Azure services. It allows communication between resources within a <strong>Virtual Network (VNet)</strong> and Azure services over a private IP.</p>
<h3 id="heading-key-benefits">Key Benefits:</h3>
<ul>
<li><p><strong>Enhanced Security</strong>: Eliminates the need for public IPs and restricts access to specific VNets.</p>
</li>
<li><p><strong>Improved Performance</strong>: Traffic remains within Azure’s private network.</p>
</li>
<li><p><strong>Granular Access Control</strong>: Integrates with Azure role-based access control (RBAC).</p>
</li>
</ul>
<h2 id="heading-real-life-use-cases-of-azure-private-link">Real-Life Use Cases of Azure Private Link</h2>
<h3 id="heading-1-secure-access-to-azure-sql-database">1. <strong>Secure Access to Azure SQL Database</strong></h3>
<ul>
<li><p>A company hosts its production database in <strong>Azure SQL</strong>, and developers need secure access from their virtual network.</p>
</li>
<li><p>By setting up a <strong>Private Endpoint</strong>, traffic between the application and database is routed securely over the Azure backbone.</p>
</li>
</ul>
<h3 id="heading-2-private-access-to-azure-storage-blob-amp-files">2. <strong>Private Access to Azure Storage (Blob &amp; Files)</strong></h3>
<ul>
<li>Organizations storing sensitive data in <strong>Azure Storage</strong> can use Private Endpoints to ensure that only authorized VNets can access the storage account.</li>
</ul>
<h3 id="heading-3-multi-tenant-saas-application-hosting">3. <strong>Multi-Tenant SaaS Application Hosting</strong></h3>
<ul>
<li><p>A software vendor offering a cloud-based HR solution can expose their service via <strong>Azure Private Link Service</strong>.</p>
</li>
<li><p>Customers connect via Private Endpoints, ensuring their data never traverses the public internet.</p>
</li>
</ul>
<h3 id="heading-4-hybrid-cloud-connectivity-on-prem-to-azure">4. <strong>Hybrid Cloud Connectivity (On-Prem to Azure)</strong></h3>
<ul>
<li>A company using <strong>ExpressRoute</strong> or <strong>VPN</strong> can leverage Private Endpoints to access Azure services securely from their on-premises network.</li>
</ul>
<h2 id="heading-how-to-create-a-private-endpoint-using-azure-cli">How to Create a Private Endpoint using Azure CLI</h2>
<pre><code class="lang-plaintext"># Variables
RESOURCE_GROUP="MyResourceGroup"
VNET_NAME="MyVNet"
SUBNET_NAME="MySubnet"
PRIVATE_ENDPOINT_NAME="MyPrivateEndpoint"
STORAGE_ACCOUNT_NAME="mystorageaccount"

# Create Private Endpoint
az network private-endpoint create \
  --resource-group $RESOURCE_GROUP \
  --name $PRIVATE_ENDPOINT_NAME \
  --vnet-name $VNET_NAME \
  --subnet $SUBNET_NAME \
  --private-connection-resource-id "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/$STORAGE_ACCOUNT_NAME" \
  --group-id "blob"
</code></pre>
<h2 id="heading-how-to-create-a-private-endpoint-using-powershell">How to Create a Private Endpoint using PowerShell</h2>
<pre><code class="lang-plaintext"># Variables
$resourceGroup = "MyResourceGroup"
$vnetName = "MyVNet"
$subnetName = "MySubnet"
$privateEndpointName = "MyPrivateEndpoint"
$storageAccountName = "mystorageaccount"

# Create Private Endpoint
New-AzPrivateEndpoint -ResourceGroupName $resourceGroup -Name $privateEndpointName \
    -Location "East US" -Subnet (Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork (Get-AzVirtualNetwork -ResourceGroupName $resourceGroup -Name $vnetName)) \
    -PrivateLinkServiceConnection (New-AzPrivateLinkServiceConnection -Name "MyPLSConnection" -PrivateLinkServiceId (Get-AzStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccountName).Id -GroupId "blob")
</code></pre>
<h2 id="heading-best-practices-for-deploying-private-endpoints">Best Practices for Deploying Private Endpoints</h2>
<ul>
<li><p><strong>Use a dedicated subnet</strong> for private endpoints to avoid IP conflicts.</p>
</li>
<li><p><strong>Enable private DNS integration</strong> to ensure seamless name resolution.</p>
</li>
<li><p><strong>Block public network access</strong> to services after configuring Private Link.</p>
</li>
<li><p><strong>Plan subnet capacity</strong>: Ensure enough IP addresses are available for scaling.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Azure Private Link and Private Endpoints provide a robust solution for securing access to Azure services. By routing traffic over the Azure backbone, organizations can enhance security, performance, and compliance. Whether connecting to Azure SQL, Storage, or a custom SaaS application, Private Link ensures a seamless and private network experience.</p>
<p>What are your thoughts on using Azure Private Link in your cloud infrastructure? Let’s discuss in the comments!</p>
]]></content:encoded></item><item><title><![CDATA[Designing and Implementing User-Defined Routes (UDRs) in Azure]]></title><description><![CDATA[Understanding User-Defined Routes (UDRs)
When working with Azure networking, user-defined routes (UDRs) play a crucial role in controlling traffic flow within a virtual network. By default, Azure provides system routes that automatically handle routi...]]></description><link>https://blogs.itbase.tv/designing-and-implementing-user-defined-routes-udrs-in-azure</link><guid isPermaLink="true">https://blogs.itbase.tv/designing-and-implementing-user-defined-routes-udrs-in-azure</guid><category><![CDATA[Azure]]></category><category><![CDATA[networking]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Cloud Computing]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Wed, 19 Feb 2025 09:14:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1739956344512/7fcf7264-ccb8-444b-9f02-1644868e6c8e.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-understanding-user-defined-routes-udrs">Understanding User-Defined Routes (UDRs)</h2>
<p>When working with Azure networking, user-defined routes (UDRs) play a crucial role in controlling traffic flow within a virtual network. By default, Azure provides system routes that automatically handle routing between subnets, virtual networks, and the internet. However, there are scenarios where we need to override these system routes to meet specific business or security requirements. This is where UDRs come in.</p>
<p>Each subnet in Azure can have <strong>zero or one</strong> associated route table, and a route table can be linked to multiple subnets. The key takeaway is that a subnet cannot be associated with multiple route tables simultaneously.</p>
<h2 id="heading-next-hop-types-in-azure-route-tables">Next Hop Types in Azure Route Tables</h2>
<p>When defining routes, we specify a <strong>next hop type</strong>, which determines where the traffic will be forwarded. The available next hop types include:</p>
<ul>
<li><p><strong>Virtual Appliance</strong> – Used when directing traffic to a third-party firewall or routing appliance running on a virtual machine.</p>
</li>
<li><p><strong>Virtual Network Gateway</strong> – Used to send traffic to an on-premises network via a VPN or ExpressRoute connection.</p>
</li>
<li><p><strong>Virtual Network</strong> – For communication within a virtual network, including peered networks.</p>
</li>
<li><p><strong>Internet</strong> – Sends traffic directly to the internet, useful for scenarios where security policies do not require forced tunneling.</p>
</li>
<li><p><strong>None</strong> – Prevents traffic from exiting the virtual network, enforcing strict network isolation.</p>
</li>
</ul>
<h3 id="heading-forced-tunneling">Forced Tunneling</h3>
<p>One of the key concepts for the <strong>Azure exam</strong> is <strong>forced tunneling</strong>. This is used when organizations require all internet-bound traffic to be routed through an on-premises firewall for security inspection. Forced tunneling is configured via UDRs to redirect internet traffic to a site-to-site VPN. Note that forced tunneling <strong>cannot be configured via the Azure portal</strong> and must be set up using <strong>Azure PowerShell</strong>. It also requires a <strong>route-based VPN gateway</strong> (policy-based gateways are not supported).</p>
<h2 id="heading-step-by-step-configuring-user-defined-routes">Step-by-Step: Configuring User-Defined Routes</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1739956372755/0aa27c20-5d55-4d38-80ea-a8337212bcdb.png" alt class="image--center mx-auto" /></p>
<p>To implement UDRs in Azure, follow these steps:</p>
<ol>
<li><p><strong>Create a Route Table</strong></p>
<ul>
<li><p>Navigate to <code>Route Tables</code> in the Azure portal.</p>
</li>
<li><p>Click <code>Create</code>, select the appropriate <strong>subscription</strong> and <strong>resource group</strong>.</p>
</li>
<li><p>Define a <strong>name</strong> and region (e.g., <code>LL-Demo-RT-01</code>).</p>
</li>
<li><p>Decide whether to propagate gateway routes from on-premises networks.</p>
</li>
<li><p>Click <code>Review + Create</code> and deploy the route table.</p>
</li>
</ul>
</li>
<li><p><strong>Add Routes to the Route Table</strong></p>
<ul>
<li><p>Open the created route table and go to <code>Routes</code>.</p>
</li>
<li><p>Click <code>Add route</code>, specify a <strong>name</strong>, <strong>destination prefix</strong>, and <strong>next hop type</strong>.</p>
</li>
<li><p>For example, to direct traffic to a virtual network gateway:</p>
<ul>
<li><p><strong>Destination:</strong> <code>10.0.2.0/23</code></p>
</li>
<li><p><strong>Next hop type:</strong> <code>Virtual network gateway</code></p>
</li>
</ul>
</li>
<li><p>Click <code>Add</code>.</p>
</li>
</ul>
</li>
<li><p><strong>Associate the Route Table with a Subnet</strong></p>
<ul>
<li><p>Navigate to <code>Subnets</code> inside the route table.</p>
</li>
<li><p>Click <code>Associate</code>, select the target <strong>VNet</strong> and <strong>subnet</strong>.</p>
</li>
<li><p>Confirm the association.</p>
</li>
</ul>
</li>
<li><p><strong>Testing the Routing Configuration</strong></p>
<ul>
<li><p>Deploy two virtual machines in different subnets within the virtual network.</p>
</li>
<li><p>Use <strong>PowerShell</strong> to test connectivity:</p>
<pre><code class="lang-powershell">  <span class="hljs-built_in">Test-NetConnection</span> <span class="hljs-literal">-ComputerName</span> <span class="hljs-number">10.0</span>.<span class="hljs-number">4.4</span> <span class="hljs-literal">-InformationLevel</span> Detailed <span class="hljs-literal">-DiagnoseRouting</span>
</code></pre>
</li>
<li><p>If the test returns <code>True</code>, the route is working correctly!</p>
</li>
</ul>
</li>
</ol>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1739956828655/60a0c466-1b7a-4468-8585-45e50ddeafd7.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-troubleshooting-udrs-in-azure">Troubleshooting UDRs in Azure</h2>
<p>Sometimes, UDR configurations may not work as expected. Here are some <strong>troubleshooting steps</strong>:</p>
<h3 id="heading-1-check-effective-routes">1. Check Effective Routes</h3>
<ul>
<li><p>Navigate to the virtual machine’s <strong>network interface</strong>.</p>
</li>
<li><p>Click on <code>Effective routes</code> to see all system and user-defined routes applied to the VM.</p>
</li>
<li><p>Ensure the correct route is listed.</p>
</li>
</ul>
<h3 id="heading-2-use-azure-network-watcher">2. Use Azure Network Watcher</h3>
<ul>
<li><p>Go to <code>Azure Network Watcher</code> and use <code>Next Hop</code> to verify routing behavior.</p>
</li>
<li><p>Check whether traffic is correctly directed to the intended <strong>next hop</strong>.</p>
</li>
</ul>
<h3 id="heading-3-common-misconfigurations">3. Common Misconfigurations</h3>
<ul>
<li><p><strong>Subnet Not Associated:</strong> Ensure the <strong>route table is properly associated</strong> with the correct subnet.</p>
</li>
<li><p><strong>Overlapping Routes:</strong> If multiple routes apply, the most specific route takes precedence. Avoid conflicts.</p>
</li>
<li><p><strong>Incorrect Next Hop Type:</strong> Ensure you have selected the correct <strong>next hop</strong> based on your architecture.</p>
</li>
<li><p><strong>VPN Gateway Configuration:</strong> If forced tunneling is configured, verify the <strong>default site</strong> is set correctly.</p>
</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>User-defined routes (UDRs) are a powerful tool in Azure networking, allowing us to control traffic flow and implement security policies such as forced tunneling. Understanding how to design, implement, and troubleshoot UDRs is <strong>essential for both real-world deployments and Azure certifications</strong>.</p>
<p>Stay tuned for more updates on my Azure networking journey as I continue preparing for my <strong>AZ-700 certification</strong>!</p>
<hr />
<p>🚀 <strong>Let’s connect!</strong> If you're also studying for Azure certifications or working on cloud networking, feel free to share your thoughts in the comments!</p>
]]></content:encoded></item><item><title><![CDATA[Applying ITIL 4 in Network Engineering: A Practical Approach 2025]]></title><description><![CDATA[Introduction
As a Network Engineering Team Leader, I’ve always focused on ensuring high availability, performance, and security for critical infrastructure. However, as networks grow in complexity, technical expertise alone isn’t enough. We need stru...]]></description><link>https://blogs.itbase.tv/applying-itil-4-in-network-engineering-a-practical-approach-2025</link><guid isPermaLink="true">https://blogs.itbase.tv/applying-itil-4-in-network-engineering-a-practical-approach-2025</guid><category><![CDATA[ITIL]]></category><category><![CDATA[ ITIL-4-Foundation Practice Test]]></category><category><![CDATA[networking]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Sun, 16 Feb 2025 16:11:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1739722163663/602b40b6-b615-4726-be51-dd976155793c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-introduction">Introduction</h2>
<p>As a <strong>Network Engineering Team Leader</strong>, I’ve always focused on ensuring high availability, performance, and security for critical infrastructure. However, as networks grow in complexity, technical expertise alone isn’t enough. We need structured processes to manage <strong>incidents, changes, and service improvements</strong> effectively. That’s where <strong>ITIL 4</strong> comes in.</p>
<p>At first, I thought ITIL was mainly for service desks and IT operations, but after implementing some of its practices, I realized how much it can improve network service management. In this post, I’ll share how <strong>ITIL 4</strong> principles can enhance the efficiency and effectiveness of network operations.</p>
<h2 id="heading-why-itil-4-matters-for-network-engineers">Why ITIL 4 Matters for Network Engineers</h2>
<p>Many network engineering teams operate in a reactive mode—fixing issues as they arise, handling changes without structured workflows, and struggling to align network priorities with business goals. ITIL 4 helps by providing a <strong>framework for managing IT services</strong> in a way that is structured, repeatable, and value-driven.</p>
<p>By applying <strong>ITIL 4 principles</strong>, network teams can:</p>
<ul>
<li><p><strong>Improve incident resolution times</strong> by following standardized troubleshooting and escalation processes.</p>
</li>
<li><p><strong>Minimize network outages</strong> through structured change management.</p>
</li>
<li><p><strong>Analyze and eliminate recurring problems</strong> instead of applying temporary fixes.</p>
</li>
<li><p><strong>Ensure alignment with business goals</strong> by managing service expectations and tracking key metrics.</p>
</li>
</ul>
<h2 id="heading-key-itil-4-concepts-for-network-engineering">Key ITIL 4 Concepts for Network Engineering</h2>
<h3 id="heading-1-incident-management-faster-and-more-efficient-troubleshooting">1. <strong>Incident Management – Faster and More Efficient Troubleshooting</strong></h3>
<p><strong>Scenario:</strong> Your team receives a high-priority alert about an MPLS circuit failure affecting a critical business application.</p>
<p><strong>Without ITIL:</strong> Engineers troubleshoot on an ad-hoc basis, communication is inconsistent, and escalations are unclear, leading to delays in resolution.</p>
<p><strong>With ITIL:</strong> A structured incident management process ensures that incidents are logged, prioritized, and escalated following a clear workflow. Engineers follow predefined steps to diagnose the issue, document their findings, and ensure timely resolution while minimizing service impact.</p>
<h3 id="heading-2-change-enablement-reducing-risks-in-network-upgrades">2. <strong>Change Enablement – Reducing Risks in Network Upgrades</strong></h3>
<p><strong>Scenario:</strong> Your team plans to upgrade the SD-WAN firmware across multiple sites.</p>
<p><strong>Without ITIL:</strong> Changes are made without proper testing, leading to unplanned outages and rollback issues.</p>
<p><strong>With ITIL:</strong> Every network change follows a structured process:</p>
<ul>
<li><p><strong>Change requests are documented</strong>, including risk assessment and rollback plans.</p>
</li>
<li><p><strong>Approval processes ensure stakeholders are informed</strong> before deployment.</p>
</li>
<li><p><strong>Post-implementation reviews</strong> help the team learn from each change.</p>
</li>
</ul>
<p>This approach reduces unexpected failures and improves overall stability.</p>
<h3 id="heading-3-problem-management-addressing-root-causes-instead-of-symptoms">3. <strong>Problem Management – Addressing Root Causes Instead of Symptoms</strong></h3>
<p><strong>Scenario:</strong> Your team repeatedly resolves latency issues in a particular data center, but the problem keeps coming back.</p>
<p><strong>Without ITIL:</strong> Engineers fix each instance of the issue but never identify the root cause.</p>
<p><strong>With ITIL:</strong> Problem Management helps analyze incident trends, perform root cause analysis, and implement permanent fixes. Instead of continuously addressing the same issue, the team identifies misconfigured QoS policies and applies a long-term solution.</p>
<h3 id="heading-4-service-level-management-aligning-network-performance-with-business-needs">4. <strong>Service Level Management – Aligning Network Performance with Business Needs</strong></h3>
<p><strong>Scenario:</strong> The company expects 99.99% uptime for key applications, but the network team isn’t tracking SLA compliance.</p>
<p><strong>With ITIL:</strong> Service Level Agreements (SLAs) are clearly defined, and the team tracks:</p>
<ul>
<li><p><strong>MTTR (Mean Time to Repair)</strong></p>
</li>
<li><p><strong>Incident resolution times</strong></p>
</li>
<li><p><strong>Network performance metrics</strong></p>
</li>
</ul>
<p>This ensures that the network team’s work directly supports business objectives and customer expectations.</p>
<h3 id="heading-5-continual-improvement-enhancing-network-operations-over-time">5. <strong>Continual Improvement – Enhancing Network Operations Over Time</strong></h3>
<p>ITIL 4 emphasizes ongoing improvements. Network teams should:</p>
<ul>
<li><p><strong>Review past incidents</strong> to refine troubleshooting processes.</p>
</li>
<li><p><strong>Analyze network performance data</strong> to optimize configurations.</p>
</li>
<li><p><strong>Automate repetitive tasks</strong> to improve efficiency.</p>
</li>
</ul>
<p>By making continual improvements a priority, teams can increase productivity and reduce manual effort over time.</p>
<h2 id="heading-the-business-impact-of-itil-4-in-network-engineering">The Business Impact of ITIL 4 in Network Engineering</h2>
<p>Implementing <strong>ITIL 4</strong> in a network engineering team leads to several benefits:</p>
<ul>
<li><p><strong>Faster resolution of network issues</strong>, improving service reliability.</p>
</li>
<li><p><strong>Fewer outages and disruptions</strong>, thanks to better change control.</p>
</li>
<li><p><strong>More strategic decision-making</strong>, based on data-driven problem management.</p>
</li>
<li><p><strong>Stronger collaboration between technical teams and business units</strong>.</p>
</li>
</ul>
<h2 id="heading-final-thoughts">Final Thoughts</h2>
<p>ITIL 4 isn’t just for service desks—it’s a powerful framework that can transform how network engineering teams operate. By <strong>adopting structured processes for incident management, change enablement, and continual improvement</strong>, teams can move from being reactive to <strong>proactively delivering value</strong> to the business.</p>
<p>If you’re in <strong>networking, cloud, or IT operations</strong>, have you explored ITIL 4 in your work? I’d love to hear how it has impacted your approach to network service management!</p>
<p>#ITIL4 #NetworkEngineering #ServiceManagement #ProcessImprovement #ITLeadership</p>
]]></content:encoded></item><item><title><![CDATA[[Data Center] vPC - Virtual Port Channel]]></title><description><![CDATA[As I go through the Cisco CCNP Data Center DCCOR (350-601) certification material, virtual Port Channel (vPC) quickly emerged as one of the most crucial topics. vPC enables high availability, fault tolerance, and improved bandwidth utilization—elemen...]]></description><link>https://blogs.itbase.tv/data-center-vpc-virtual-port-channel</link><guid isPermaLink="true">https://blogs.itbase.tv/data-center-vpc-virtual-port-channel</guid><category><![CDATA[Cisco]]></category><category><![CDATA[networking]]></category><category><![CDATA[Data Center]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Thu, 23 Jan 2025 06:52:38 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1729818833320/c7bdc6a8-7788-423a-a89e-4a325c10570a.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As I go through the Cisco CCNP Data Center DCCOR (350-601) certification material, virtual Port Channel (vPC) quickly emerged as one of the most crucial topics. vPC enables high availability, fault tolerance, and improved bandwidth utilization—elements every data center network needs. Throughout this blog, I’ll share my experiences learning vPC, practical insights, and use cases that demonstrate the importance of vPC in real-world deployments.</p>
<p>This article focuses on both the real-world necessity for vPC and the technical breakdown I learned during my studies.</p>
<h1 id="heading-why-vpc-is-essential-in-modern-data-centers">Why vPC is Essential in Modern Data Centers</h1>
<h2 id="heading-high-availability-and-redundancy-for-servers">High Availability and Redundancy for Servers</h2>
<p>In a modern data center, high availability is a top priority. Servers with multiple NICs (Network Interface Cards) require redundant paths to ensure uninterrupted service in case one switch fails. With vPC, a server can connect to two different Cisco Nexus switches using a single logical link (EtherChannel), so that even if one switch fails, the server remains connected.</p>
<h2 id="heading-improved-bandwidth-utilization-in-spine-leaf-topologies">Improved Bandwidth Utilization in Spine-Leaf Topologies</h2>
<p>In leaf-spine architectures, Top-of-Rack (ToR) switches (leaf switches) connect to multiple spine switches using vPC, ensuring no bandwidth is wasted. Without vPC, redundant links would be blocked by Spanning Tree Protocol (STP). With vPC, all links remain active, improving the bandwidth efficiency between layers.</p>
<h2 id="heading-multi-homed-devices-for-fault-tolerance">Multi-Homed Devices for Fault Tolerance</h2>
<p>Devices like firewalls, load balancers, or storage systems often need multi-homing. By connecting to two different Nexus switches using vPC, these devices ensure redundancy and load balancing across both links. If one switch fails, the device still has an active connection through the other switch.</p>
<h2 id="heading-simplifying-layer-2-extensions-across-data-centers">Simplifying Layer 2 Extensions Across Data Centers</h2>
<p>vPC enables Layer 2 stretch between two data centers, allowing servers in different locations to be on the same VLAN. This is particularly useful in disaster recovery scenarios where seamless migration of workloads across data centers is required.</p>
<h1 id="heading-vpc-core-concepts">vPC Core Concepts</h1>
<p>Once I understood the importance of vPC in the real world, I began studying how the technology operates at a technical level. Understanding vPC's architecture helped me configure and troubleshoot it more effectively.</p>
<h2 id="heading-vpc-domain">vPC Domain</h2>
<p>A vPC domain is the logical grouping of two Cisco Nexus switches. Both switches in the domain act as vPC peers, sharing a common control plane. One switch is designated as the primary, and the other as secondary.</p>
<h2 id="heading-vpc-peer-link">vPC Peer Link</h2>
<p>The vPC Peer Link is a crucial high-bandwidth link (typically 10Gbps or more) between the two switches in a vPC domain. This link is responsible for synchronizing data, such as MAC address tables, VLAN information, and traffic forwarding decisions, between the peers.</p>
<h2 id="heading-vpc-peer-keepalive-link">vPC Peer Keepalive Link</h2>
<p>The vPC Peer Keepalive Link is a separate, out-of-band communication link between the two peers. This link ensures that both peers can detect the health status of each other and prevent split-brain scenarios. This keepalive communication often runs over the management interface.</p>
<h2 id="heading-vpc-member-ports">vPC Member Ports</h2>
<p>The vPC member ports are the actual interfaces on each Nexus switch that connect to the downstream devices (such as servers, firewalls, or another switch). These ports are part of the same EtherChannel that spans both switches.</p>
<h2 id="heading-consistency-parameters">Consistency Parameters</h2>
<p>Consistency checks are performed between vPC peers to ensure that the configuration (such as VLANs, STP settings, and MTU size) is synchronized. If the configurations are inconsistent, vPC might fail, or traffic might not flow properly.</p>
<h1 id="heading-lab-practice-configuring-vpc-on-cisco-nexus-switches">Lab Practice: Configuring vPC on Cisco Nexus Switches</h1>
<p>Now that we’ve covered the need for vPC and how it works, let’s dive into a hands-on lab configuration. I spent quite some time practicing these setups, and they helped me solidify the theoretical knowledge with real-world application.</p>
<h1 id="heading-step-by-step-configuration">Step-by-Step Configuration</h1>
<h3 id="heading-step-1-configure-vpc-domain">Step 1: Configure vPC Domain</h3>
<p>In my lab, I configured the vPC domain on both Nexus switches. The domain allows the two switches to operate as one logical entity. The peer keepalive link is configured to maintain out-of-band communication.</p>
<pre><code class="lang-plaintext">! On both Nexus switches 
!
vpc domain 10
 peer-keepalive destination 192.168.1.2 source 192.168.1.1
!
# Nexus 1 to Nexus 2 The peer keepalive link is crucial for ensuring
 both switches can detect the operational state of each other.
</code></pre>
<h3 id="heading-step-2-configure-vpc-peer-link">Step 2: Configure vPC Peer Link</h3>
<p>Next, I configured the vPC Peer Link, which is the high-bandwidth link used to synchronize forwarding state between the two Nexus switches. I used a Port Channel to aggregate multiple physical links into a single logical link for redundancy and increased bandwidth.</p>
<pre><code class="lang-plaintext">! On both Nexus switches 
interface Ethernet1/1
 switchport mode trunk
 channel-group 1 mode active
 no shutdown
!
interface port-channel1
 switchport mode trunk
 vpc peer-link
!
</code></pre>
<h3 id="heading-step-3-configure-vpc-member-ports">Step 3: Configure vPC Member Ports</h3>
<p>Once the peer link was established, I configured the vPC member ports. These are the ports that connect to my downstream server, providing redundancy and load balancing across the two Nexus switches.</p>
<pre><code class="lang-plaintext">! On both Nexus switches 
interface Ethernet1/2
 switchport mode trunk
 channel-group 10 mode active
 no shutdown
!
interface port-channel10
 switchport mode trunk
 vpc 10
!
</code></pre>
<p>The Port Channel is configured to span both switches, providing the downstream server with a single logical link across two switches.</p>
<pre><code class="lang-plaintext">! On both Nexus switches 

interface Ethernet1/2
 switchport mode trunk
 channel-group 10 mode active
 no shutdown
!
interface port-channel10
 switchport mode trunk
 vpc 10 
!
</code></pre>
<p>The Port Channel is configured to span both switches, providing the downstream server with a single logical link across two switches.</p>
<h3 id="heading-verify-configuration">Verify Configuration</h3>
<p>Once the configuration was complete, I verified the status of the vPC domain using the following commands:</p>
<pre><code class="lang-plaintext">show vpc brief 
show vpc consistency-parameters
</code></pre>
<p>These commands helped me check for any misconfigurations or inconsistencies between the switches, ensuring that the vPC domain was functioning correctly.</p>
<h1 id="heading-best-practices-and-lessons-learned">Best Practices and Lessons Learned</h1>
<p>Throughout my experience learning and configuring vPC, I picked up several important best practices that are critical for successfully deploying vPC in a production environment:</p>
<ul>
<li><p>Always use identical configurations on both Nexus switches to avoid vPC inconsistencies.</p>
</li>
<li><p>Separate Peer Keepalive and Peer Links across different interfaces to avoid single points of failure.</p>
</li>
<li><p>Regularly check vPC consistency parameters to prevent configuration drift that could bring the vPC down.</p>
</li>
</ul>
<h1 id="heading-summary">Summary</h1>
<p>In conclusion, vPC is an essential technology in the Cisco Data Center environment, offering increased resilience, improved traffic load balancing, and better bandwidth utilization.</p>
<p>Studying it for the CCNP Data Center DCCOR (350-601) exam was a challenging yet rewarding experience, especially when applying it to real-world scenarios and hands-on labs. I hope this post gives you a clear roadmap to mastering vPC, whether you're studying for an exam or preparing for a live network deployment.</p>
]]></content:encoded></item><item><title><![CDATA[[Cisco SD-WAN] Troubleshooting Certificate Signing Errors]]></title><description><![CDATA[One of the critical stages in implementing and scaling your SD-WAN is the onboarding of WAN Edge devices. During this process, network administrators may occasionally encounter certificate signing issues between WAN Edge routers and vManager. One com...]]></description><link>https://blogs.itbase.tv/cisco-sdwan-tshoot</link><guid isPermaLink="true">https://blogs.itbase.tv/cisco-sdwan-tshoot</guid><category><![CDATA[networkengineer]]></category><category><![CDATA[Cisco]]></category><category><![CDATA[SDN]]></category><category><![CDATA[SDWAN]]></category><category><![CDATA[networking]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Wed, 09 Oct 2024 06:00:08 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1728453480416/d77bc7fe-ae59-44b1-a88d-8d5aead4ef4d.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One of the critical stages in implementing and scaling your SD-WAN is the onboarding of WAN Edge devices. During this process, network administrators may occasionally encounter certificate signing issues between WAN Edge routers and vManager. One common root cause of such errors is a <strong>time synchronization</strong> mismatch between the WAN Edge device and vManager.</p>
<p>In this article, we’ll explore:</p>
<ul>
<li><p><strong>Understanding the role of certificates in SD-WAN onboarding</strong></p>
</li>
<li><p><strong>Common symptoms of certificate errors</strong></p>
</li>
<li><p><strong>How to troubleshoot time synchronization issues between vManager and WAN Edge devices</strong></p>
</li>
<li><p><strong>Steps to fix the issue and prevent it from recurring</strong></p>
</li>
</ul>
<h1 id="heading-1-understanding-the-role-of-certificates-in-cisco-sd-wan">1. Understanding the Role of Certificates in Cisco SD-WAN</h1>
<p>In Cisco Catalyst SD-WAN, secure communication between the control plane (vManager, Controller, and Validator) and the WAN Edge devices (routers) is critical. This is achieved through Public Key Infrastructure (PKI)-based certificates. Each WAN Edge device must have a valid certificate, which is signed by vManager, to authenticate itself and join the network securely.</p>
<p>The certificate exchange process ensures that:</p>
<ul>
<li><p>WAN Edge devices are trusted and can participate in the SD-WAN fabric.</p>
</li>
<li><p>The integrity and confidentiality of the data flowing between network nodes are protected.</p>
</li>
</ul>
<p>When onboarding a WAN Edge device, it communicates with vManager to retrieve and install the signed certificate. However, if there is a mismatch in system time between the devices, this exchange can fail, leading to errors.</p>
<h1 id="heading-2-common-symptoms-of-wan-edge-certificate-errors">2. Common Symptoms of WAN Edge Certificate Errors</h1>
<p>One of the primary indicators of a certificate signing issue is when vManager fails to onboard the WAN Edge device. You may see error messages in the vManager dashboard or logs such as:</p>
<ul>
<li><p>"<strong>Certificate Installed Failed</strong>"</p>
</li>
<li><p>"<strong>Certificate is invalid or expired</strong>"</p>
</li>
</ul>
<p>These issues often arise when the time on the WAN Edge device is not properly synchronized with the vManager server. PKI systems rely heavily on time synchronization to validate certificates, especially regarding expiration dates and validity periods. Even a slight time difference can lead to certificate rejection.</p>
<p><strong>Check detailed logs via vManager shell to see insightful errors</strong></p>
<pre><code class="lang-plaintext">Manager-20-9# vshell

Manager-20-9:~$ tail -f /var/log/nms/vmanage-syslog.log

---SNIP---

local6.INFO : 09-Oct-2024 02:11:34,762 UTC INFO  [] [VmanageSyslogLogger] (Thread-239) ||

      vedge-cloud: {"logid":"8598f1c7-0f4c-4f02-a5e6-96bd48de43e1","entry_time":1728439894761,"statcycletime":1728439894761,"logmodule":"vedge-cloud","logfeature":"vedge-cloud","loguser":"system","logusersrcip":"90.90.90.1",

      "logmessage":"Certificate Installation failed on vEdge cloud by vManage-b5657745-df80-4669-97ae-6a7b96890f3e-C8K-57282144-9F31-3AF3-799E-F33FDEFEF744","logdeviceid":"10.0.1.1",

            "auditdetails":["Failed to install certificate signed by vmanage &lt;signerVmanageUUID: b5657745-df80-4669-97ae-6a7b96890f3e&gt;

            on vedge &lt;uuid: C8K-57282144-9F31-3AF3-799E-F33FDEFEF744, systemIP: 10.0.1.1&gt;.

      Vedge cloud clock &lt;1728439894000 ms&gt; and vmanage clock &lt;1728462976000 ms&gt; are off by 23082000 ms"],"logprocessid":"436903f6-cefd-4c1e-8fd0-9f2578c5ea8c"}

---SNIP---
</code></pre>
<h1 id="heading-3-troubleshooting-time-synchronization-between-vmanager-and-wan-edge">3. Troubleshooting Time Synchronization Between vManager and WAN Edge</h1>
<p>To resolve the certificate error, it is essential to investigate whether time synchronization between the WAN Edge device and vManager is out of sync.</p>
<h2 id="heading-step-1-check-time-on-vmanager-and-wan-edge">Step 1: Check Time on vManager and WAN Edge</h2>
<p>Start by verifying the current time on both the WAN Edge device and the vManager server. You can check the time on these devices using the following commands:</p>
<h3 id="heading-for-vmanager">For vManager:</h3>
<p><code>show clock</code></p>
<h3 id="heading-for-wan-edge">For WAN Edge:</h3>
<p><code>show clock</code></p>
<p>If there is a noticeable difference in time between the two devices, it will likely cause certificate validation failures.</p>
<h2 id="heading-step-2-verify-ntp-configuration">Step 2: Verify NTP Configuration</h2>
<p>Time synchronization in network environments is typically managed through the <strong>Network Time Protocol (NTP)</strong>. To ensure the time is in sync, both the vManager server and WAN Edge device should be correctly configured to synchronize with the same NTP server.</p>
<h3 id="heading-for-vmanager-ntp-status">For vManager NTP status:</h3>
<pre><code class="lang-plaintext">Manager-20-9# show ntp associations

IDX  ASSOCID  STATUS  CONF  REACHABILITY  AUTH  CONDITION  LAST EVENT   COUNT

-------------------------------------------------------------------------------

1    15607    8013    yes   no            none  reject     unreachable  1

2    15608    961a    yes   yes           none  sys.peer   sys_peer     1
</code></pre>
<pre><code class="lang-plaintext">Manager-20-9# show ntp peer



INDEX  REMOTE  REFID   ST  TYPE  WHEN  POLL  REACH  DELAY   OFFSET  JITTER

--------------------------------------------------------------------------------------------

1    127.127.1.0  .LOCL.    5   l   105m  64   0    0.000   +0.000  0.000

2   *103.130.217.41  162.159.200.1  4   u     174   256   377    11.435  -0.179  0.300
</code></pre>
<h3 id="heading-for-wan-edge-ntp-status">For WAN Edge NTP status:</h3>
<pre><code class="lang-plaintext">S1001-SD1#show ntp associations

  address         ref clock       st   when   poll reach  delay  offset   disp

 ~11.10.1.254    115.165.161.155  3      6     64     3  2.000  36.000 1939.2

 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

Ensure that both devices point to the same NTP server and that the server itself is functioning properly.
</code></pre>
<h2 id="heading-step-3-check-for-time-drift">Step 3: Check for Time Drift</h2>
<p>Time drift is another common issue, especially if devices have been running for a long period without synchronization. This can occur if the NTP configuration is incorrect or if the devices lose connectivity to the NTP server. You can manually update the time on the devices temporarily while investigating the root cause of the NTP issue.</p>
<h2 id="heading-step-4-correct-time-settings">Step 4: Correct Time Settings</h2>
<p>If you notice a time mismatch, correct the settings by configuring NTP on both the vManager and the WAN Edge device. Below is an example of how to configure NTP on vManager and WAN Edge devices:</p>
<h3 id="heading-for-vmanager-ntp-configuration">For vManager NTP configuration:</h3>
<p><code>system   server</code> <a target="_blank" href="http://1.vn.pool.ntp.org"><code>1.vn.pool.ntp.org</code></a><code>vpn 512   version 4   exit   !</code></p>
<h3 id="heading-for-wan-edge-ntp-configuration">For WAN Edge NTP configuration:</h3>
<p><code>!   ntp server 11.10.1.254 prefer   !</code></p>
<p>Choosing your local NTP server or Regional Internet NTP server.</p>
<blockquote>
<p>Note, don’t forget to allow ntp service on the sdwan tunnel interface that communicates with ntp server (if you are using public or outside ntp server).</p>
</blockquote>
<p><code>sdwan     interface GigabitEthernet2     tunnel-interface   allow-service ntp     !   !</code></p>
<h2 id="heading-step-5-restart-certificate-process">Step 5: Restart Certificate Process</h2>
<p>Once the time is synchronized correctly across vManager and WAN Edge, restart the certificate signing process via vManager. This will allow vManager to reissue a valid certificate and complete the onboarding.</p>
<h3 id="heading-via-vmanager-gui">Via vManager GUI:</h3>
<p>Navigate to <strong>Configuration</strong> &gt; <strong>Certificates</strong> &gt; Select target WAN Edge by Chassis ID &gt; <strong>Renew Device CSR</strong></p>
<h1 id="heading-4-preventing-future-time-sync-issues">4. Preventing Future Time Sync Issues</h1>
<p>After fixing the issue, it’s essential to implement preventive measures to avoid future time synchronization problems:</p>
<ul>
<li><p><strong>Regular Monitoring of NTP Status</strong>: Ensure that NTP configurations on both vManager and WAN Edge devices are regularly monitored for status and health.</p>
</li>
<li><p><strong>Automate Alerts for Time Drift</strong>: Set up alerts in vManager to notify administrators if there is a significant time drift between the WAN Edge and vManager.</p>
</li>
<li><p><strong>Redundant NTP Servers</strong>: Configure multiple NTP servers to ensure time synchronization even if one NTP server goes down.</p>
</li>
<li><p><strong>Periodic Clock Verification</strong>: Perform routine checks on clock settings, particularly after maintenance or software updates, to ensure accurate time synchronization.</p>
</li>
</ul>
<h1 id="heading-summary">Summary</h1>
<p>Time synchronization plays a vital role in network management, but it’s easy to overlook, especially in Cisco Catalyst SD-WAN environments. If your WAN Edge device is having trouble with certificate signing during onboarding, it’s a good idea to check the time settings on both vManager and the device. A difference in time between them can cause certificate validation to fail and interrupt the onboarding process.</p>
<p>By understanding common issues like time drift or incorrect NTP configurations, and following best practices, you can troubleshoot and fix these problems quickly. Keeping an eye on time settings across your SD-WAN network will help maintain smooth operations and prevent certificate errors down the road.</p>
]]></content:encoded></item><item><title><![CDATA[[Cisco SD-WAN] Centralized Control Policy - Hub-Spoke topology scenarios]]></title><description><![CDATA[Introduction
In this article, we will learn how the Centralized Control Policy works through a demonstration and guidelines.
Hub and Spoke is a common topology worldwide. By leveraging the separated service VPNs feature in Cisco SD-WAN, multiple type...]]></description><link>https://blogs.itbase.tv/cisco-sd-wan-centralized-control-policy-hub-spoke-topology-scenarios</link><guid isPermaLink="true">https://blogs.itbase.tv/cisco-sd-wan-centralized-control-policy-hub-spoke-topology-scenarios</guid><category><![CDATA[Cisco]]></category><category><![CDATA[SDWAN]]></category><category><![CDATA[SDN]]></category><category><![CDATA[networking]]></category><category><![CDATA[Network Engineering]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Thu, 03 Oct 2024 05:37:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1727933790533/c9d500fc-6d04-49f1-bf6d-c21c89a65345.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<p>In this article, we will learn how the Centralized Control Policy works through a demonstration and guidelines.</p>
<p>Hub and Spoke is a common topology worldwide. By leveraging the separated service VPNs feature in Cisco SD-WAN, multiple types of topologies can be deployed per VPN.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727849932795/a9f20f51-7d2c-4e6b-914c-a2f0e3868ea5.png" alt="Figure-1. Overview example of demonstration" class="image--center mx-auto" /></p>
<p><em>Figure-1. Overview example of demonstration</em></p>
<p>Referring to Figure-1, this article will describe two examples of Hub-Spoke topology using Centralized Control Policy. Note that, in this example, I configure the tunnel group-id to achieve the public color tunnels separated from private color tunnels.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727850247771/558e4680-2072-4d56-83fe-4cdc75719dc5.png" alt="Figure-2. Hub-Spoke topology establishment" class="image--center mx-auto" /></p>
<p><em>Figure-2. Hub-Spoke topology establishment</em></p>
<p>Figure 2 shows that data plane tunnels will not be established between the Spoke sites. By using the Centralized Control Policy (Figure 3), I will allow only the Hub's TLOCs to communicate with the Spoke sites. This way, the Spokes cannot learn each other's TLOC information.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727851009066/9116ed3a-7329-4d9e-bb8e-a70467946e90.png" alt="Figure-3. Centralized control policy is applied to Controllers." class="image--center mx-auto" /></p>
<p><em>Figure-3. Centralized control policy is applied to Controllers.</em></p>
<p>Using this topology example, I will demonstrate two scenarios below:</p>
<p>In <strong>Scenario 1</strong>, Spoke sites (site 102, site 103) will establish data plane tunnels (IPSec) with the Hub site (site 101), and the Spokes will not communicate with each other.</p>
<p>In <strong>Scenario 2</strong>, similar to Scenario 1 excepting the Spokes will be able to communicate with each other through the Hub site.</p>
<p>Before go to details, let me explain how I naming the router hostname / ip address / system ip, etc.</p>
<ul>
<li><p><strong>Site ID</strong>: 101, 102, 103</p>
</li>
<li><p><strong>System IP</strong>: 101.101.101.x (3 octets will use site id and last octet will the router number at site, for example, site 101 have two WAN Edges, so I will use system ip as 101.101.101.1 and 101.101.101.2)</p>
</li>
<li><p><strong>Hostname</strong>: <strong>W</strong>AN <strong>E</strong>dge <strong>R</strong>outer = WER-1011 (101 = site-id, 1 = router number at site)</p>
</li>
<li><p><strong>LAN segments</strong>: 10.<strong>101</strong>.1.0/24 (101 = site-id), the site id will be the 2nd octet.</p>
</li>
<li><p><strong>Service VPN</strong>: I use single service VPN in this article (VPN 1000)</p>
</li>
</ul>
<h1 id="heading-scenario-1-hub-spoke-tunnels-without-spoke-spoke-communication"><strong>Scenario 1: Hub-Spoke tunnels without Spoke-Spoke communication</strong></h1>
<h2 id="heading-preview">Preview</h2>
<p>By default, Controllers (vSmart) will receive and advertise all of TLOC routes to all site (101, 102, 103) using OMP.</p>
<p>Let’s check the WER-1021 (site 102) and WER-1031 (site 103) OMP TLOC tables by default as below</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727851891762/364d7105-0c1a-4131-b425-b8885a4441c9.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727851929243/ad295b79-b203-4f69-a26f-35296b902726.png" alt class="image--center mx-auto" /></p>
<p>At the <strong>Site Id</strong> column, we can see Controller advertises fully TLOCs to these sites.<br />From site 102, WER receives TLOCs from site 101 and 103, so the full-mesh tunnels (among sites) are established.</p>
<p>How about OMP routes table? Let check below</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727852630562/71fae7b8-091e-40c8-b52e-40c73821681c.png" alt class="image--center mx-auto" /></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727852614707/4a404cc1-1fa3-418f-9099-6ec4c45141dc.png" alt class="image--center mx-auto" /></p>
<p>The WER-1021 (site 102) receives the OMP LAN routes originated from site 101, and 102. Similar to WER-1021, the WER-1031 (site 103) receives the OMP LAN routes from site 101 and site 102.</p>
<h2 id="heading-policy-implementation">Policy Implementation</h2>
<p>By using these below steps, we can implement the Centralized Policy:</p>
<p>Step 1: Define the list of interest. (site list, VPN list, etc)</p>
<pre><code class="lang-plaintext">!
 lists
  site-list hub-sites-list
   site-id 101 
  !
  site-list spoke-sites-list
   site-id 102 
   site-id 103 
  !
  vpn-list VPN1000
   vpn 1000 
  !
 !
!
</code></pre>
<h3 id="heading-step-2-create-control-policy-using-structure-match-action">Step 2: Create control policy using structure match-action.</h3>
<p>The sequence will be read from smallest to largest, and each sequence will include the match (condition) and action phases (do something if condition is matched).</p>
<pre><code class="lang-plaintext">viptela-policy:policy
 control-policy HUB-SPOKE-cp
    sequence 10
     match route
      site-list hub-sites-list
      vpn-list VPN1000
     !
     action accept
     !
    !
    sequence 20
     match tloc
      site-list hub-sites-list
     !
     action accept
     !
    !
  default-action reject
 !
</code></pre>
<p>In sequence 10, the “match route” condition means all of OMP routes originated from hub-sites-list (site 101) <strong>AND</strong> these routes belong to VPN 1000. Action accept shows that the Controller will allow matched routes to be advertised to the applied target sites. (at step 3).</p>
<p>In sequence 20, the “match tloc” condition means all the TLOC routes originated from hub-sites-list (site 101) will be accepted to be advertised to target sites.</p>
<p>Default-action reject, it means all of routes which do not match any condition will be rejected to be advertised to target sites.</p>
<h3 id="heading-step-3-apply-policy-to-the-list-of-sites-spokes"><strong>Step 3</strong>: Apply policy to the list of sites (Spokes)</h3>
<p>Apply policy to the list of sites (Spokes) with outbound direction on Controller. The centralized control policy will be pushed to Controller (vSmart) after activating, all of in / out TLOC/OMP routes will go through these control policy before distributing to sites in fabric.</p>
<pre><code class="lang-plaintext">apply-policy
 site-list spoke-sites-list
  control-policy HUB-SPOKE-cp out
 !
!
</code></pre>
<p>In summary, the OMP routes and TLOC routes from HUB site (101) will be advertised to Spokes (site 102, 103). And OMP/TLOC routes from site 102 will be rejected to advertise to site 103 and vice versa.</p>
<h2 id="heading-verify">Verify</h2>
<p>The TLOC route table on Spokes site will not receive any Spoke's TLOC anymore.</p>
<p><img src="https://media.licdn.com/dms/image/v2/D5612AQGFPkETxqTiWQ/article-inline_image-shrink_1500_2232/article-inline_image-shrink_1500_2232/0/1727856405389?e=1733356800&amp;v=beta&amp;t=cq66tIIt04bu-QhHnds_2SN_WoZn9KSJfRH5XanciVc" alt /></p>
<p><img src="https://media.licdn.com/dms/image/v2/D5612AQGmkxobiec4LA/article-inline_image-shrink_1500_2232/article-inline_image-shrink_1500_2232/0/1727856417332?e=1733356800&amp;v=beta&amp;t=MTjMy_3Cp73SYXkXWyCAAm4YA8q3kH32NmwPvQwxevk" alt /></p>
<p>The OMP routes table on WER-1021 will not display the LAN routes originated from Spokes (site 103) any more and vice versa.</p>
<p><img src="https://media.licdn.com/dms/image/v2/D5612AQHyqVnflOgSxw/article-inline_image-shrink_1000_1488/article-inline_image-shrink_1000_1488/0/1727856881861?e=1733356800&amp;v=beta&amp;t=jmAi4FDFBicToya201yqSiv7085k1Mk5pgdj-7dazAA" alt /></p>
<p>Let’s verify the result by traceroute from WER-1021 (spoke) to 10.101.1.1 (Hub’s LAN).<br />The below output show reachability to Hub site from Spoke site.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727854572757/b2062a3b-d700-4bc7-950e-1eb515cace14.png" alt class="image--center mx-auto" /></p>
<p>Let’s try to check connection from Spoke (102) to Spoke (103) as below Figure.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1727854579363/fe7cf98d-9bea-4480-8658-dcc606df7e19.png" alt class="image--center mx-auto" /></p>
<p>Great! The result is unreachable as our expectation.</p>
<p>The <strong>Scenario 2</strong> will be released soon.</p>
]]></content:encoded></item><item><title><![CDATA[[Cisco SD-WAN] WAN Edge Packet Forwarding Order of Operations]]></title><description><![CDATA[About the packet forwarding order of operations, given that various policies can influence the forwarding of a single flow at a site, it's crucial to comprehend how these policies are applied, evaluated, and interacted.
Firstly, control policies oper...]]></description><link>https://blogs.itbase.tv/cisco-sd-wan-wan-edge-packet-forwarding-order-of-operations</link><guid isPermaLink="true">https://blogs.itbase.tv/cisco-sd-wan-wan-edge-packet-forwarding-order-of-operations</guid><category><![CDATA[Cisco]]></category><category><![CDATA[SDWAN]]></category><category><![CDATA[SDN]]></category><category><![CDATA[SD-WAN]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Thu, 14 Mar 2024 02:38:41 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1710383702910/285d116a-c00a-4ada-8d46-5e9593c875e5.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>About the packet forwarding order of operations, given that various policies can influence the forwarding of a single flow at a site, it's crucial to comprehend how these policies are applied, evaluated, and interacted.</p>
<p>Firstly, control policies operate separately from data plane policies as they don't directly affect data plane operations. Instead, they influence the routing information upon which the data plane relies, thereby impacting traffic forwarding.</p>
<p>Control policies can modify, filter, summarize, or restrict the advertisement of routing prefixes or TLOCs. Consequently, a WAN Edge device will construct its forwarding plane based on the altered control plane information.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1728353464215/4516e439-64ac-4c47-a456-105de4ade813.png" alt class="image--center mx-auto" /></p>
<p>Figure 1-1. Cisco WAN Edge Packet Forwarding Order of Operation</p>
<p>When a packet traverses a WAN Edge router, it follows a carefully orchestrated sequence of steps:</p>
<ol>
<li><p><strong>IP Destination Lookup</strong>: The router begins by examining the destination IP address of the packet. It consults its routing table to determine the most appropriate next-hop for forwarding the packet. This lookup is crucial as it guides all subsequent forwarding decisions.</p>
</li>
<li><p><strong>Ingress Interface ACL</strong>: Next, the packet encounters any ACLs configured on the ingress interface. These ACLs, often part of localized policies, dictate whether the packet should be allowed, denied, or subjected to specific actions like traffic shaping or Quality of Service (QoS) markings. If the packet is denied by the ACL, it is dropped immediately and not processed further.</p>
</li>
<li><p><strong>Application-Aware Routing</strong>: Following the routing decision based on the routing table, the packet undergoes evaluation against an Application-Aware Routing policy. This policy is designed to optimize traffic based on application-specific requirements. However, it's important to note that Application-Aware Routing can only differentiate between paths of equal cost in the routing table. If multiple next-hop addresses for a destination don't have equal-cost paths, the Application-Aware Routing policy has no impact, and the packet follows the most preferred path based solely on the routing table.</p>
</li>
<li><p><strong>Centralized Data Policy</strong>: Once Application-Aware Routing is applied, the packet's journey may be further influenced by centralized data policies. These policies have the authority to override decisions made by Application-Aware Routing, providing additional control over traffic forwarding.</p>
</li>
<li><p><strong>Routing and Forwarding</strong>: With the routing decisions made, the router determines the appropriate output interfaces for the packet's continued journey.</p>
</li>
<li><p><strong>Security Policy</strong>: If configured, the packet is subjected to various security measures in a predefined order. These may include firewall rules, intrusion prevention systems (IPS), URL filtering, and advanced malware protection. Each security measure is applied according to its configured rules and policies.</p>
</li>
<li><p><strong>Encapsulation and Encryption</strong>: As the packet prepares to traverse the fabric, it undergoes encapsulation and encryption processes to ensure secure transmission across the network. This includes adding VPN labels and applying tunnel encapsulation as necessary.</p>
</li>
<li><p><strong>Egress Interface ACL</strong>: Finally, the packet encounters any ACLs configured on the egress interface before leaving the router. Similar to the ingress ACLs, these ACLs may permit, deny, or manipulate the packet's contents based on predefined rules. Any modifications or denials applied here take effect before the packet is forwarded out of the router toward its final destination.</p>
</li>
</ol>
<p><a target="_blank" href="https://itbase.tv/part-9-cisco-sd-wan-data-plane">How Cisco SD-WAN Data Plane works?</a></p>
<p><strong>**</strong><a target="_blank" href="https://store.itbase.tv/"><strong>Get the Cisco SD-WAN Zero-to-One ebook</strong></a></p>
<p><a target="_blank" href="https://store.itbase.tv/"><img src="https://media.licdn.com/dms/image/D5612AQF0iL9jdQlogw/article-inline_image-shrink_1500_2232/0/1710148204757?e=1715817600&amp;v=beta&amp;t=vRxUB5zsQnR3du4P1bDjxU_6sYfhsLgxWYepNWvQhpA" alt /></a></p>
]]></content:encoded></item><item><title><![CDATA[[Part 10] Cisco SD-WAN Configuration Templates]]></title><description><![CDATA[Overview
In Cisco SD-WAN, you can set up configurations in two main ways. The network administrator can either put in the settings by typing commands directly using the command line (CLI) as usual.
Another way is by using a visual interface called Ma...]]></description><link>https://blogs.itbase.tv/part-10-cisco-sd-wan-configuration-templates</link><guid isPermaLink="true">https://blogs.itbase.tv/part-10-cisco-sd-wan-configuration-templates</guid><category><![CDATA[SDWAN]]></category><category><![CDATA[networking]]></category><category><![CDATA[ccnp]]></category><category><![CDATA[CCIE]]></category><category><![CDATA[software-defined]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Sat, 23 Sep 2023 05:22:15 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1695446323913/e8f0badb-5b63-4546-a832-627577fb9f99.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-overview">Overview</h1>
<p>In Cisco SD-WAN, you can set up configurations in two main ways. The network administrator can either put in the settings by typing commands directly using the command line (CLI) as usual.</p>
<p>Another way is by using a visual interface called Manager GUI - it's like using a point-and-click system to set things up. Using vManage GUI is better because it's less likely to make mistakes and can recover from problems automatically.</p>
<p>When you're setting up configurations for WAN Edge devices or controllers using the Manager GUI, a network administrator follows a process. They use something called a "device template" which is like a blueprint for how the device should be set up. This device template can be based on two types:</p>
<ul>
<li><p>CLI (command line)</p>
</li>
<li><p>Feature template.</p>
<p>  When making a CLI template, all the setup instructions must be included in the template, not just parts of it. On the other hand, feature templates are like building blocks, where each block is a specific feature like a piece of a puzzle. These feature templates define what you want the device to do, like setting up how it handles data, manages connections, and more. This could include things like routing rules, how different parts connect, and a protocol for managing the network.</p>
</li>
</ul>
<p>You can reuse these feature templates in different device templates, which makes things more flexible and easier to manage. This flexibility is why feature templates are recommended. They're not limited to a specific type of device either. The person setting up the network only needs to think about what they want to achieve with the configuration.</p>
<p>When Manager applies the configuration to a specific device, whether it's a Cisco IOS-based device or a Viptela OS device, it knows how to put in the right instructions in a way that the device understands.</p>
<h1 id="heading-device-templates">Device templates</h1>
<p>Device templates serve as a collection of feature templates designed for specific types of devices. This means that you might have several device templates tailored to the same hardware model, depending on factors like the device's location, connectivity choices, or its designated role in the network. It's important to note that a device template cannot be used across different device types. However, feature templates can be shared across various device types.</p>
<p>A device template comprises four primary components or groups:</p>
<ol>
<li><p>Basic Information: This section covers crucial items like System, Logging, AAA, BFD, and OMP feature templates.</p>
</li>
<li><p>Transport and Management VPN: Here, you'll find templates for configuring VPN 0 and VPN 512. This includes settings like underlay routing protocols and interface configurations.</p>
</li>
<li><p>Service VPN: This section is dedicated to configurations for service VPNs or LAN-facing templates. It's where you'll set up parameters for BGP, OSPF, and interfaces.</p>
</li>
<li><p>Additional Templates: In this section, you'll encounter templates for local policies, security policies, SNMP configurations, and more.</p>
</li>
</ol>
<h1 id="heading-feature-template">Feature Template</h1>
<p>Feature templates enhance the flexibility of configuration options significantly.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1695445285569/4694c2fc-a6b4-4c3d-bf4e-dac4392a18d2.jpeg" alt class="image--center mx-auto" /></p>
<p>For instance, they allow you to define variables for configuration parameters. This smartly reduces the number of templates needed for your deployment while maintaining modularity.</p>
<p>To illustrate, consider a scenario with MPLS transports using various physical interface numbers like Gi0/0, Gi0/1, and so forth. Initially, you might consider creating separate feature templates for each interface with different IP addresses, resulting in multiple templates.</p>
<p>However, by utilizing variables for both the physical interface and IP address choices, the administrator can streamline this into a single feature template that remains applicable across all device templates. This approach streamlines the configuration process and ensures consistency throughout.</p>
<p>In templates, you can define three types of values:</p>
<ol>
<li><p>Default: These are factory default values that can't be changed. For instance, default BFD timers.</p>
</li>
<li><p>Global: Values set here are applied wherever this configuration is used. For example, SNMP community strings are applied globally to all devices using this template. The advantage is that updating the template's global option later automatically updates all relevant device templates.</p>
</li>
<li><p>Device Specific: These values are set using user-defined variables. For instance, setting interface names. These values are defined when attaching the device template to a specific device.</p>
<p> Some template options might not have all three types, depending on the configuration. For instance, a BGP AS number won't have a default value.</p>
</li>
</ol>
<p>There are numerous feature templates to configure, including:</p>
<ul>
<li><p>System: Basic system info like System IP, Site ID, and Hostname.</p>
</li>
<li><p>BFD: Adjust BFD timers and app-route multipliers for transports/colors.</p>
</li>
<li><p>OMP: Change graceful restart timers or control redistribution into OMP.</p>
</li>
<li><p>Security: Modify IPsec settings like anti-replay, authentication, and encryption.</p>
</li>
<li><p>VPN: Define service VPNs, routing protocol redistribution, or static routing.</p>
</li>
<li><p>BGP/OSPF: Configure BGP/OSPF in VPNs or VRFs.</p>
</li>
<li><p>VPN Interface: Define interfaces in service VPNs/VRFs with options like IP Address, QoS, ACLs, and NAT.</p>
</li>
</ul>
<p>Feature templates are used in device templates. After creating a device template, you apply it to a specific device/group. Remember, device templates are specific to a device type. If feature templates have variables, values must be filled when attaching the device template. Successful configuration syntax checks are done in vManage before pushing to the device.</p>
<p>Variables can be populated within the vManage workflow or via a CSV file. The latter is useful for provisioning multiple devices simultaneously.</p>
<blockquote>
<p>Note.</p>
<p>If the device loses control plane connectivity to vManage during configuration push, it initiates a 5-minute rollback timer. Failing reconnection within this time, it rolls back to the last-known good configuration. The network admin is notified of the sync issue and can address it accordingly.</p>
</blockquote>
<p><a target="_blank" href="https://store.itbase.tv">Get the Cisco SD-WAN Zero-to-One ebook</a></p>
<p><a target="_blank" href="https://store.itbase.tv"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709793088749/bcf373f8-f104-4112-b60e-8dee3c3338c7.png" alt class="image--center mx-auto" /></a></p>
<h1 id="heading-step-by-step-configuration-template-creation">Step-by-Step Configuration Template Creation</h1>
<h2 id="heading-cli-template">CLI Template</h2>
<p>Using the CLI template is the most manual way you need to create the maintain the WAN Edge devices configuration using Command Lines.</p>
<p>But in some specific situations, such as testing some configuration parts and functions, you need to change a small piece of configuration frequently to check the result, the CLI template is good to go.</p>
<p>In the real-world business, the individual device CLI templates for each WAN Edge are usually used, because it will minimize the maintenance impacts when you adjust the configuration template for one of the WAN Edges.</p>
<p>Or just simply that you are a Network Admin guy, who loves the Command Lines.</p>
<p><strong>From vManage &gt; Configuration &gt; Templates &gt; Create Template &gt; CLI Template</strong></p>
<p>Enter the required fields Device Model, Template Name, and Descriptions.</p>
<p>Then you can upload your existing CLI configuration file using “Select a File”, or even you can manually enter your configuration CLI there.</p>
<blockquote>
<p>From here, maybe you are thinking that it’s tough, how can we remember the CLI structure and syntax if we don’t have the existing configuration file?</p>
</blockquote>
<p>No worries, we can use the function “Load Running config from reachable device”.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703824043300/48ccf27e-f47a-4c3a-bdbb-e9fdf8dcb9f2.png" alt class="image--center mx-auto" /></p>
<p>From the drop-down list, select the reachable WAN Edge, and it will load the full running-config of the selected WAN Edge here.</p>
<blockquote>
<p>Tips: You can also SSH or Console to your running WAN Edge, and copy the running-configuration using the output of the command “<strong>show sdwan running-config</strong>” and Paste here.</p>
</blockquote>
<p>Next, adjust the configuration like system-ip, site-id, hostname, or WAN IP Address, to match your target WAN Edge. And Click “<strong>Add</strong>” to create the CLI Template.</p>
<h3 id="heading-cli-template-with-variables"><strong>CLI Template with Variables</strong></h3>
<p>In some cases, we would like to create a <strong>single</strong> CLI template that can be reusable and attached to more than one WAN Edge.</p>
<blockquote>
<p>Let’s think, the system-ip, WAN IP Address, etc. are unique and could not be duplicated between WAN Edges.</p>
</blockquote>
<p>Thus, how can we use the same CLI template for many WAN Edges?</p>
<p>The <strong>Variables</strong> can be used to input the <strong>Values</strong> into the CLI template when attaching to devices.</p>
<p>Thus, while attaching CLI template to WAN Edges, the Variables require the Value inputted from Network Admin.</p>
<blockquote>
<p>It means for each WAN Edge you can input different values and still use the same CLI template.</p>
</blockquote>
<h2 id="heading-feature-template-1">Feature Template</h2>
<p>On the other hand, there are templates that define the configuration settings for specific SD-WAN features, such as Quality of Service (QoS) or Firewall rules.</p>
<p>By using feature templates, network administrators can quickly configure and deploy these features across multiple devices, ensuring consistency in the configuration and optimizing network performance.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703824200713/417a8e8f-5b9f-4e78-89a6-21a3f3373766.png" alt class="image--center mx-auto" /></p>
<p>One of the different points between CLI and Feature template when creating the Device template from the Feature template, “Device Role” is required to select two options:</p>
<ul>
<li><p><strong>SDWAN Edge</strong>: Almost the WAN Edge model will be set in this role as a normal cEdge.</p>
</li>
<li><p><strong>Service Node:</strong> Until now, only CSR1kv and C8000v (new version of CSR1kv) supported this role. For more information about Service Node, check <a target="_blank" href="https://www.cisco.com/c/en/us/td/docs/routers/sdwan/configuration/appqoe/ios-xe-17/appqoe-book-xe/m-support-for-multiple-appqoe-service-nodes.html">here</a>.</p>
</li>
</ul>
<p>In this post, I will go with SDWAN Edge mode with the C1111X-8P device.</p>
<p>The remaining parts are Template Name and Descriptions will be the same as CLI Template.</p>
<p>The above attachment and Figure 10 shows that there are some Main parts of the configuration</p>
<ul>
<li><p>Basic Information</p>
</li>
<li><p>Transport &amp; Management VPN</p>
</li>
<li><p>Service VPN</p>
</li>
<li><p>Cellular</p>
</li>
<li><p>Additional Templates</p>
</li>
<li><p>Switchport</p>
</li>
</ul>
<blockquote>
<p>Note, these parts is for the C1111X-8P model, and it can be different when you choose another device model.</p>
</blockquote>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703824252453/d85c6b92-6612-4df8-8c9c-1b055f95b739.png" alt class="image--center mx-auto" /></p>
<p>Look at Figure 11, you can see the list of Feature Templates which are used to build your Device template like a Block Puzzle game.</p>
<p>For example, in Basic Information Part, we have Cisco System, Cisco Loggin, Cisco NTP, Cisco AAA, Cisco BFD, etc. I will call those Basic Information child parts.</p>
<p>Moreover, when you create the new Device Template from the Feature template, all of the required parts will be added using <strong>Factory_Default_xxx</strong> Feature Templates which are predefined by Cisco.</p>
<p>You can check their contents and use them in your Device Template. Note that the predefined template will be named “<strong>Factory_Default_xxxx</strong>” or “<strong>Default_xxxx</strong>“.</p>
<p>In this post, I gonna show you how to establish the very first simple Device template, <strong>so let’s go to define some basic simple Feature Templates.</strong></p>
<p><strong>vManage &gt; Configuration &gt; Templates &gt; Feature &gt; Add Template &gt;*</strong>Select Device Model<em> &gt; </em>Select Template*</p>
<p>As I mentioned above Basic Information is like the child configuration part of the Device Template, and Figure 12 show that Cisco AAA, Cisco BFD, etc. are child template of Basic information part.</p>
<p>For Example, I will create my own custom <strong>Cisco AAA</strong> Feature Template, the structure will be as below:</p>
<p><strong><em>Device Template &gt; Basic Information &gt; Cisco AAA</em></strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703824280118/847a0384-9df4-4605-a91e-3a0d9a21b2f2.png" alt class="image--center mx-auto" /></p>
<p>In the Cisco AAA Feature templates, you can easily see there are other child parts inside like LOCAL, RADIUS, TACACS, Authentication and Authorization Order, etc.</p>
<p>In this device template, I would like to add a new local user to the target WAN Edge, so I will create a Feature Template Cisco AAA and add the user as below.l</p>
<p>Once the feature template Cisco AAA is created, let's go back and create Device Template from Feature Template as mentioned in above <strong>Figure 10.</strong></p>
<p>I think from here, you can understand the concept of Feature Templates clearly.</p>
<p>Note that you can use a Feature Template to put into many Device Templates with the same device model selected.</p>
<h3 id="heading-feature-template-with-variables">Feature Template with Variables</h3>
<p>Same as CLI Template, Feature Template can use the Variable to be flexible and attached to many WAN Edges with the same template.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1703824392115/2d4828dc-97e6-4a79-98f6-34564315ee91.png" alt class="image--center mx-auto" /></p>
<p>I will demonstrate with the example that I will create the <strong>VPN 0 Feature Template</strong> to match the <strong>DUAL-WAN requirement.</strong></p>
<p>I will input the fixed value <strong>VPN-ID = 0</strong> because the requirement is to create VPN 0.</p>
<p>Go next with IPv4 Route to set the default route with dual next-hop (Dual WAN).</p>
<p>You can enter your fixed value of next-hop IP Addresses there, but our target is to use this Feature Template for many WAN Edges on another site.</p>
<p>So we can set these as Variables and will input the specific value when attaching the template to devices.</p>
<h1 id="heading-conclusion">Conclusion</h1>
<p>Even if you use the Device template from CLI Template or Feature Template, the same concept and structure are applied. Let's consider the requirements, and balance the convenience and safety maintenance when you choose the type of templates.</p>
<p>Hope the posts help you more clearly understand how to use the Cisco SDWAN Templates.</p>
<h1 id="heading-connect-mehttpslinktreenddnam"><a target="_blank" href="https://linktr.ee/nddnam">Connect me</a></h1>
]]></content:encoded></item><item><title><![CDATA[Understanding GRE Tunnels: An Essential Guide]]></title><description><![CDATA[Introduction
In the world of modern networking, the ability to connect disparate networks securely and efficiently is crucial for businesses and organizations. One technology that has proven to be invaluable in achieving this is the Generic Routing E...]]></description><link>https://blogs.itbase.tv/understanding-gre-tunnels-an-essential-guide</link><guid isPermaLink="true">https://blogs.itbase.tv/understanding-gre-tunnels-an-essential-guide</guid><category><![CDATA[networking]]></category><category><![CDATA[ccna]]></category><category><![CDATA[Learning Journey]]></category><category><![CDATA[Cisco]]></category><category><![CDATA[Security]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Tue, 01 Aug 2023 04:22:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1690863596737/f0ed9050-778b-471d-9376-9cc7d5e8299c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<p>In the world of modern networking, the ability to connect disparate networks securely and efficiently is crucial for businesses and organizations. One technology that has proven to be invaluable in achieving this is the Generic Routing Encapsulation (GRE) tunnel. GRE provides a flexible and scalable method for encapsulating packets and transporting them over an intermediate network. In this article, we will delve into the details of GRE tunnels, exploring how they work, their benefits, and various use cases in today's networking landscape.</p>
<h1 id="heading-what-is-a-gre-tunnel">What is a GRE Tunnel?</h1>
<p>A GRE tunnel is a virtual point-to-point connection that encapsulates packets from one network protocol within another. Essentially, GRE creates a private, secure, and isolated path between two endpoints over a public or untrusted network, like the Internet. It achieves this by encapsulating the original packets inside GRE headers, allowing them to traverse the intermediate network while keeping their original routing information intact.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690858136709/291d5cbd-a197-4dca-a3ba-b7281df36ff0.png" alt class="image--center mx-auto" /></p>
<h1 id="heading-how-gre-tunnels-work">How GRE Tunnels Work</h1>
<p>A GRE tunnel consists of two endpoints: the source and the destination. When a packet is sent from the source endpoint, it is encapsulated with a GRE header, which includes information such as the destination IP address and the original packet type. The packet is then routed through the intermediate network, like any other IP packet, until it reaches the destination endpoint. At the destination, the GRE header is stripped off, and the original packet is forwarded to its final destination based on its original routing information.</p>
<h1 id="heading-benefits-of-gre-tunnels">Benefits of GRE Tunnels</h1>
<ul>
<li><p><strong>Encapsulation Flexibility</strong>: GRE is protocol-agnostic, meaning it can encapsulate packets from various network protocols. This versatility allows for the seamless integration of different networks and devices.</p>
</li>
<li><p><strong>Enhanced Security</strong>: By creating a private tunnel, GRE adds an extra layer of security, shielding the original packet's content from potential eavesdroppers and unauthorized access.</p>
</li>
<li><p><strong>Isolation and Routing Independence</strong>: GRE tunnels allow networks to communicate with each other as if they were directly connected, even if they use different routing protocols. This independence makes it easier to connect networks with diverse configurations.</p>
</li>
<li><p><strong>Overcoming NAT Limitations</strong>: GRE tunnels can bypass Network Address Translation (NAT) devices, enabling communication between private IP networks across the internet.</p>
</li>
</ul>
<h1 id="heading-use-cases-of-gre-tunnels">Use Cases of GRE Tunnels</h1>
<ul>
<li><p><strong>Site-to-Site Connectivity</strong>: GRE tunnels are widely used for connecting remote offices and branch locations to the main corporate network, enabling secure communication over the Internet.</p>
</li>
<li><p><strong>VPN Solutions</strong>: GRE can be combined with encryption protocols to create Virtual Private Networks (VPNs), ensuring privacy and confidentiality in data transmission.</p>
</li>
<li><p><strong>IPv6 Transition</strong>: During the transition from IPv4 to IPv6, GRE tunnels can help establish connectivity between IPv4-only and IPv6-only networks, facilitating a smooth migration.</p>
</li>
<li><p><strong>Multicast over Unicast Networks</strong>: GRE tunnels can be utilized to transmit multicast traffic over networks that only support unicast traffic, expanding the reach of multicast applications.</p>
</li>
</ul>
<h1 id="heading-lab-example">Lab Example</h1>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690858260966/df453f6c-5ca8-4411-b30b-8df8cf6fda27.png" alt class="image--center mx-auto" /></p>
<p>As the above topology, R1 and R3 play the role of Edge Routers which will form site-to-site GRE tunnel.</p>
<p>The tunnel IP Address segment will be 192.168.10.0/24, and R1, R3 will form the EIGRP adjacency on this tunnel segment. Note that in this demonstration I use RIPv2 for underlay reachability (172.16.0.0).</p>
<p>Using EIGRP adjacency to advertise the LAN sides network 10.1.1.0/24 and 10.3.3.0/24 via tunnel IP next-hops.</p>
<pre><code class="lang-plaintext">R1 Configuration
!
interface Tunnel0
 ip address 192.168.10.1 255.255.255.0
 shutdown
!
tunnel source Ethernet0/0
 tunnel destination 172.16.31.2
!
interface Ethernet0/0
 ip address 172.16.11.2 255.255.255.252
!
interface Ethernet0/3
 ip address 10.1.1.254 255.255.255.0
!
router eigrp 100
 network 10.1.1.0 0.0.0.255
 network 192.168.10.0
!
router rip
 version 2
 network 172.16.0.0
 no auto-summary
!
</code></pre>
<pre><code class="lang-plaintext">R2 Configuration
!
interface Ethernet0/0
 ip address 172.16.11.1 255.255.255.252
!
interface Ethernet0/1
 ip address 172.16.31.1 255.255.255.252
!
router rip
 version 2
 network 172.16.0.0
 no auto-summary
!
</code></pre>
<pre><code class="lang-plaintext">R3 Configuration
!
interface Tunnel0
 ip address 192.168.10.3 255.255.255.0
 tunnel source Ethernet0/1
 tunnel destination 172.16.11.2
!
interface Ethernet0/1
 ip address 172.16.31.2 255.255.255.252
!
interface Ethernet0/3
 ip address 10.3.3.254 255.255.255.0
!
router eigrp 100
 network 10.3.3.0 0.0.0.255
 network 192.168.10.0
!
router rip
 version 2
 network 172.16.0.0
 no auto-summary
!
</code></pre>
<h1 id="heading-verification">Verification</h1>
<pre><code class="lang-plaintext">VPC1 traceroute to VPC2
VPC1&gt; trace 10.3.3.3 trace to 10.3.3.3, 8 hops max, 
 1 10.1.1.254 0.428 ms 0.415 ms 0.300 ms
 2 192.168.10.3 1.132 ms 0.876 ms 1.028 ms
 3 *10.3.3.3 2.424 ms
</code></pre>
<p>The traffic goes through the Tunnel IP address (192.168.10.3) as the next-hop.</p>
<p>The below output shows the detailed Tunnel's interface information:</p>
<ul>
<li><p>Tunnel interface status</p>
</li>
<li><p>Tunnel IP address, Tunnel Source</p>
</li>
<li><p>Tunnel MTU, Bandwidth, Delay, Keepalive</p>
</li>
<li><p>Tunnel Encapsulation type</p>
</li>
</ul>
<pre><code class="lang-plaintext">R1#show interfaces Tunnel 0

Tunnel0 is up, line protocol is up 
  Hardware is Tunnel
  Internet address is 192.168.10.1/24
  MTU 17916 bytes, BW 100 Kbit/sec, DLY 50000 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation TUNNEL, loopback not set
  Keepalive not set
  Tunnel source 172.16.11.2 (Ethernet0/0), destination 172.16.31.2
   Tunnel Subblocks:
      src-track:
         Tunnel0 source tracking subblock associated with Ethernet0/0
          Set of tunnels with source Ethernet0/0, 1 member (includes iterators), on interface &lt;OK&gt;
  Tunnel protocol/transport GRE/IP
    Key disabled, sequencing disabled
    Checksumming of packets disabled
  Tunnel TTL 255, Fast tunneling enabled
  Tunnel transport MTU 1476 bytes
  Tunnel transmit bandwidth 8000 (kbps)
  Tunnel receive bandwidth 8000 (kbps)
   ...
</code></pre>
<p>For your reference, the below output is the EIGRP neighbor status and routing table on R1.</p>
<pre><code class="lang-plaintext">R1#show ip eigrp neighbors 
EIGRP-IPv4 Neighbors for AS(100)
H   Address        Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                    (sec)         (ms)       Cnt Num
0   192.168.10.3     Tu0           14 01:38:33   19     1470  0  3
</code></pre>
<pre><code class="lang-plaintext">R1#show ip route
...

Gateway of last resort is not set
...
D        10.3.3.0/24 [90/26905600] via 192.168.10.3, 01:39:44, Tunnel0
      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
...
R        172.16.31.0/30 [120/1] via 172.16.11.1, 00:00:20, Ethernet0/0
      192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.10.0/24 is directly connected, Tunnel0
L        192.168.10.1/32 is directly connected, Tunnel0
</code></pre>
<h1 id="heading-conclusion">Conclusion</h1>
<p>As networks continue to grow in complexity, the need for robust, secure, and scalable connectivity solutions becomes paramount. GRE tunnels provide a powerful tool for achieving these objectives, enabling organizations to create secure, private connections across diverse networks. With their flexibility, security features, and versatility, GRE tunnels remain an indispensable part of modern networking, facilitating seamless communication between geographically dispersed entities. As technology advances, GRE tunnels will continue to play a pivotal role in enabling the interconnectivity that drives today's digital world.</p>
]]></content:encoded></item><item><title><![CDATA[[Part 9] Cisco SD-WAN - Data Plane]]></title><description><![CDATA[Data Plane Works
In a traditional network, the data plane is responsible for moving packets of data from one place to another. This is often done using the public internet or private wide area networks (WANs) like DMVPN, MPLS, or point-to-point conne...]]></description><link>https://blogs.itbase.tv/part-9-cisco-sd-wan-data-plane</link><guid isPermaLink="true">https://blogs.itbase.tv/part-9-cisco-sd-wan-data-plane</guid><category><![CDATA[SDWAN]]></category><category><![CDATA[networking]]></category><category><![CDATA[learning]]></category><category><![CDATA[course]]></category><category><![CDATA[Security]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Tue, 25 Jul 2023 16:34:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1690302854751/d385e329-1ce2-4456-813e-34e833973b92.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-data-plane-works">Data Plane Works</h1>
<p>In a traditional network, the data plane is responsible for moving packets of data from one place to another. This is often done using the public internet or private wide area networks (WANs) like DMVPN, MPLS, or point-to-point connections. These technologies use overlays to encapsulate and secure the data packets.</p>
<p>However, as WANs grow larger, the existing technologies face challenges in scaling, especially when it comes to securing control and data planes. This requires a lot of processing power to handle tasks like key exchanges and routing updates.</p>
<p>To ensure security in the data plane, IPsec encryption and its tools are commonly used. However, when networks rely heavily on IPsec for security, scalability becomes a concern. The processing power required for key exchanges grows exponentially with the number of nodes in the WAN.</p>
<blockquote>
<p>For example, a network with 100 nodes would need 10,000 key exchanges (n2), and each device would have to maintain 999 keys (n–1).</p>
</blockquote>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689691394698/5750dceb-70dc-4546-8bf9-1ecce9bd0f21.png" alt class="image--center mx-auto" /></p>
<blockquote>
<p>Read more: <a target="_blank" href="https://itbase.tv/part-6-cisco-sdwan-vsmart-controller">Cisco SD-WAN vSmart Controllers</a></p>
</blockquote>
<p>Cisco SD-WAN also utilizes IPsec for securing the data plane, but it has made modifications to support larger deployments. It uses a centralized controller (vSmart) to distribute keys and routing information, allowing for scalability without requiring each WAN Edge device to negotiate keys with all other nodes in the network.</p>
<p>Furthermore, networks face scalability challenges when they need to support segmentation or different topologies per network segment. Traditional methods like MPLS L3VPN and DMVPN can be complex and require experienced network engineers to implement and troubleshoot.</p>
<p>In the Cisco SD-WAN solution, segmentation is implemented natively and doesn't require advanced experience to set up and support. It allows for different topologies per network segment, such as a full mesh for corporate users and a hub and spoke for specific devices.</p>
<h1 id="heading-tloc-color">TLOC Color</h1>
<p>The Color attribute of the TLOC route is crucial in identifying the transport being used. Each transport should ideally have a different color assigned to it. The Color attribute allows policies to be constructed to influence how the data plane is built within the SD-WAN network.</p>
<p>There are 22 predefined colors available to choose from, and they also define whether the underlying transport is private or public. This distinction determines the IP address that should be used when establishing a data plane tunnel to a remote site.</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>PUBLIC COLOR</strong></td><td><strong>PRIVATE COLOR</strong></td></tr>
</thead>
<tbody>
<tr>
<td>public-internet</td><td>mpls</td></tr>
<tr>
<td>biz-internet</td><td>private1</td></tr>
<tr>
<td>3g</td><td>private2</td></tr>
<tr>
<td>lte</td><td>private3</td></tr>
<tr>
<td>blue</td><td>private4</td></tr>
<tr>
<td>green</td><td>private5</td></tr>
<tr>
<td>red</td><td>private6</td></tr>
<tr>
<td>bronze</td><td></td></tr>
<tr>
<td>silver</td><td></td></tr>
<tr>
<td>god</td><td></td></tr>
<tr>
<td>custom1</td><td></td></tr>
<tr>
<td>custom2</td><td></td></tr>
<tr>
<td>custom3</td></tr>
</tbody>
</table>
</div><p>By default, WAN Edge devices will attempt to build data plane tunnels to every other site using every available color.</p>
<blockquote>
<p>Read more: <a target="_blank" href="https://itbase.tv/part-8-cisco-sdwan-overlay-management-protocol">Cisco SDWAN TLOC?</a></p>
</blockquote>
<p>When setting up the IPsec data plane, routers in the network will automatically try to establish connections with all other routers in the fabric, creating full mesh connectivity.</p>
<p>For example, if cEdge-1 has the color "biz-internet", and "private1" and another router has the color "public-internet," and "private1" they will still establish an IPsec tunnel if they have IP connectivity between them.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689778336121/96960e25-9ab9-45f2-96cd-65bea218da11.png" alt class="image--center mx-auto" /></p>
<p>This happens by default. If two routers have IP connectivity, regardless of their assigned "color" (a designation used in the network), they will build an IPsec tunnel between them.</p>
<p>One scenario where this decision becomes important is when your private WAN (MPLS) doesn't have direct IP connectivity to the internet. In such cases, you wouldn't want MPLS-connected routers to attempt to establish connections with internet-connected routers. (refer to the below figure)</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689777821167/3ba7b0d0-5c13-4dc1-a894-9c49da95109b.png" alt class="image--center mx-auto" /></p>
<p>Depending on the country or region, you may want full mesh tunnels between routers. However, when connecting different countries or regions (like the US and UK), it may be preferable to use point-to-point tunnels specifically between hub sites.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689779584929/1f3ae74b-6cbd-4417-838d-f2941dcc7890.png" alt class="image--center mx-auto" /></p>
<p>If there is no IP connectivity between TLOCs or if the design doesn't allow data connectivity between certain colors, there are two options available.</p>
<p>One option is to advertise the restrict attribute with the TLOC, which tells other devices in the network not to try to establish connectivity with the restricted color. The other option is to configure tunnel groups, which serve the same purpose.</p>
<h2 id="heading-color-restrict">Color Restrict</h2>
<p>Let's focus on the "restrict" keyword first. It is an attribute within the TLOC route that can be set to either on or off for each site. In the example provided, the TLOC route uses the color "biz-internet" and has the "restrict" attribute set to 1.</p>
<p>This means that the device will only form tunnels with other TLOCs advertising the same color. If the restrict attribute were set to 0, the color would be <strong>unrestricted</strong> and able to form tunnels with other colors.</p>
<p>In the given scenario, if "restrict" is not set, each device would end up with four data plane tunnels, as IPsec tunnels would be established across all colors.</p>
<p>To enable "restrict", use the below command lines:</p>
<pre><code class="lang-plaintext">vpn 0
 interface ge0/0
  tunnel-interface
   color public-internet restrict
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690294881337/68649d3c-1aa6-4414-b997-bbb739dfa74a.png" alt class="image--center mx-auto" /></p>
<p>The output below verifies the TLOC "restrict" enabled.</p>
<pre><code class="lang-plaintext">---------------------------------------------------
tloc entries for 10.10.10.12
                 biz-internet
                 ipsec
---------------------------------------------------
            RECEIVED FROM:                   
peer            0.0.0.0
status          C,Red,R
loss-reason     not set
lost-to-peer    not set
lost-to-path-id not set
    Attributes:
     attribute-type    installed
     encap-key         not set
     encap-proto       0
     encap-spi         258
     encap-auth        sha1-hmac,ah-sha1-hmac
     encap-encrypt     aes256
     public-ip         79.12.12.12
     public-port       12346
     private-ip        79.12.12.12
     private-port      12346
     public-ip         ::
     public-port       0
     private-ip        ::
     private-port      0
     bfd-status        up
     domain-id         not set
     site-id           10
     overlay-id        not set
     preference        0
     tag               not set
     stale             not set
     weight            1
     version           3
    gen-id             0x8000000b
     carrier           default
     restrict          1            &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;--## RESTRICT enabled
     on-demand          0
     groups            [ 0 ]
</code></pre>
<h2 id="heading-tunnel-group">Tunnel Group</h2>
<p>Another way to control data plane connectivity is by utilizing tunnel groups. When you use tunnel groups, only tunnels that have matching tunnel groups or no tunnel group defined at all will establish data plane connectivity, regardless of their color. It is advisable to have tunnel groups defined for all sites if you decide to implement this approach.</p>
<p>A common scenario where tunnel groups come into play is when a data center has two physical connections to the same MPLS provider, but the branch sites have only one physical connection each. However, the network design requires establishing connectivity across both physical interfaces in the data center.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690297173261/428df084-553a-4528-ace3-5578e7a3e210.png" alt class="image--center mx-auto" /></p>
<p>To achieve this, the tunnel group is advertised as an attribute in the TLOC route, as shown in the above illustration. The tunnel group value can range from 0 to 4294967295, allowing for flexibility in setting up the desired configurations.</p>
<h1 id="heading-data-plane-encryption">Data Plane Encryption</h1>
<p>Up until now, we've been discussing various concepts related to the control plane's role in establishing the data plane. Similar to other overlay technologies, Cisco SD-WAN achieves encryption and authentication using IPsec. However, the scale of this process is handled differently, especially concerning key exchange.</p>
<p>In the traditional approach, the Internet Key Exchange (IKE) protocol manages key exchange. In the first phase of IKE, two peers negotiate encryption, authentication, hashing, and other techniques to establish a secure channel for the second phase of the IPsec tunnel. The second phase of IKE sets up a tunnel for transmitting user data. During this phase, several elements are negotiated, such as the encapsulation protocol (Authentication Header or Encapsulation Security Protocol), encryption algorithm, authentication type, and tunnel lifetime.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689691394698/5750dceb-70dc-4546-8bf9-1ecce9bd0f21.png" alt class="image--center mx-auto" /></p>
<p>Cisco SD-WAN supports the following methods for key exchange:</p>
<ul>
<li><p>Authentication: Ensures that the communicating endpoints are valid and authentic, using 2048-bit keys with RSA encryption. The SD-WAN solution supports Encapsulation Security Payload (ESP) and Authentication Header (AH) for sender authentication.</p>
</li>
<li><p>Encryption: Utilizes the AES protocol with a 256-bit key length for data encryption.</p>
</li>
<li><p>Integrity: Verifies that data traffic traversed the network without tampering. This is achieved using the Galois Counter Mode (GCM) variant of AES-256, which has a built-in hashing mechanism for data integrity. Additionally, Anti-Replay Protection is enabled to safeguard against duplication attacks.</p>
</li>
</ul>
<p>As the network grows larger, this negotiation process can become a scalability concern. Even after the initial negotiation, the devices must continue tracking the tunnel state, which consumes CPU cycles.</p>
<p>To address this issue, Cisco SD-WAN implements these negotiations within the control plane. The WAN Edge already has a tunnel established to the control plane with its encryption, authentication, and integrity. This infrastructure is leveraged for data plane negotiations. Each WAN Edge generates an AES-256 bit key (per transport) for encryption and integrity.</p>
<p>This key is then advertised to vSmart, along with the corresponding TLOCs, in an OMP update. These route advertisements are propagated throughout the network. Remote WAN Edges use this information to build IPsec tunnels between themselves.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690300698554/ce4e072d-fe7e-45ec-b66d-f6d2fbea0d3b.png" alt class="image--center mx-auto" /></p>
<p>This model of key distribution eliminates the need for individual negotiations as in IKE, reducing the burden on the system. Additionally, to enhance security, WAN Edges regenerate their keys every 24 hours, with the flexibility to adjust the rekey timer based on specific requirements. Importantly, renegotiating keys does not disrupt existing traffic, as this process occurs in parallel with the existing tunnels.</p>
<h1 id="heading-encryption-with-pairwise">Encryption with Pairwise</h1>
<p>This approach adds an extra layer of security by avoiding the use of the same key across all devices in the network fabric for encryption and decryption.</p>
<p>Pairwise encryption works by creating specific key pairs between two WAN Edges. When encrypting and decrypting data between WAN Edge 1 and WAN Edge 2, a unique key pair is generated for this specific pair of devices. Similarly, a different key pair is used for traffic between WAN Edge 1 and WAN Edge 3.</p>
<blockquote>
<p>In this way, each WAN Edge has its own unique set of keys for communication with different peers.</p>
<p>The public key is the only piece of information exchanged over OMP (Overlay Management Protocol).</p>
</blockquote>
<p>The advantage of this method is that security-conscious customers need not worry about the private key being exchanged as well. The key exchange process still occurs through the vSmart controller, and unique pairs are generated for each transport.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690301833182/e7e99f8b-1ff8-49ca-98e4-0160a183fcde.png" alt class="image--center mx-auto" /></p>
<p>In summary, the pairwise encryption key model ensures greater security by creating unique key pairs for communication between WAN Edges, providing an additional layer of protection against potential vulnerabilities that could arise from using the same key across all devices in the fabric.  </p>
<p><a target="_blank" href="https://store.itbase.tv">Get the Cisco SD-WAN Zero-to-One ebook</a></p>
<p><a target="_blank" href="https://store.itbase.tv"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709793088749/bcf373f8-f104-4112-b60e-8dee3c3338c7.png" alt class="image--center mx-auto" /></a></p>
]]></content:encoded></item><item><title><![CDATA[[MS Azure] ARM - Azure Resource Manager]]></title><description><![CDATA[Introduction

Hey there!
I'm Nam, an enthusiastic Network Engineer. After spending years working with Cloud Computing, I've decided to deep dive into Microsoft Azure and I'm really excited about it! Today, I want to share some essential tips and thin...]]></description><link>https://blogs.itbase.tv/ms-azure-arm-azure-resource-manager</link><guid isPermaLink="true">https://blogs.itbase.tv/ms-azure-arm-azure-resource-manager</guid><category><![CDATA[Cloud]]></category><category><![CDATA[Cloud Computing]]></category><category><![CDATA[Azure]]></category><category><![CDATA[Microsoft]]></category><category><![CDATA[ARM]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Sat, 22 Jul 2023 11:05:31 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1690023805398/16fe96a5-cfdf-4312-9b6e-b3a54b1f837b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<blockquote>
<p>Hey there!</p>
<p><a target="_blank" href="https://nam-nguyen.me">I'm Nam</a>, an enthusiastic Network Engineer. After spending years working with Cloud Computing, I've decided to deep dive into Microsoft Azure and I'm really excited about it! Today, I want to share some essential tips and things that will be super helpful for you as you start your own Azure learning adventure. Let's get started!</p>
</blockquote>
<h1 id="heading-azure-resource-manager">Azure Resource Manager</h1>
<p>Azure Resource Manager (ARM) is a technology platform from Microsoft that puts all the pieces of Azure together in an organized way. It brings together Azure's resource providers, resources (like virtual machines and storage), and resource groups to create a well-structured cloud platform.</p>
<p>With ARM, Azure services are available through subscriptions, and resource types can be used in resource groups. It also allows easy access to resource APIs, which are like doors to interact with the portal and other client applications. ARM makes sure only authorized users can access these resources, keeping everything secure.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690021719951/a72b3f7c-6845-46f4-b069-e982e700050b.gif" alt class="image--center mx-auto" /></p>
<p>To manage your cloud resources, ARM provides simple deployment and management tools like the Azure portal, Azure PowerShell, and the command-line interface (CLI). These tools make it easy to work with your cloud service.</p>
<h1 id="heading-azure-resources">Azure Resources</h1>
<p>In Azure, everything is called a "resource." For example, storage accounts, virtual machines (VMs), network interfaces, public IP addresses, etc are all considered resources. These resources are managed through Azure Resource Manager (ARM), which works based on two main concepts: resource providers and resource consumers. (Refer above illustration)</p>
<h2 id="heading-resource-providers"><strong>Resource providers</strong></h2>
<p><strong>Resource providers</strong> are like services that offer different types of resources. They act as containers for grouping similar resources together. For instance, a VM resource type is provided by a resource provider called "Microsoft.Compute/virtualMachines."</p>
<blockquote>
<p><strong>By using Resource Explorer via Azure Portal, you can easily see resources in detail. (Providers/Type/API version/contents)</strong></p>
</blockquote>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690022482411/956027ca-77a8-4086-bb62-59e95f910149.png" alt class="image--center mx-auto" /></p>
<p>Each resource provider has its own version of the resources it offers, which is identified by release dates. To use a specific resource, the corresponding resource provider must be available in the subscription. Not all resource providers are automatically available, so they might need to be registered separately for each subscription.</p>
<h2 id="heading-resource-groups"><strong>Resource groups</strong></h2>
<p><strong>Resource groups</strong> are like containers for grouping multiple resource instances together. They serve as units of deployment and have a unique name within a subscription. Resources can be provisioned in different Azure regions but still belong to the same resource group.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1690023085109/0fc2df78-6df2-486c-923b-b781ce9cbfb7.png" alt class="image--center mx-auto" /></p>
<p>Resource groups provide additional services like metadata services (such as tagging for categorization), policy-based management, role-based access control (RBAC), and protection against accidental deletions or updates.</p>
<h2 id="heading-resources"><strong>Resources</strong></h2>
<p><strong>Resources</strong> are instances created from resource types. Each resource instance has a name and type that make it unique globally or within a resource group. Resources inherit security and access configurations from their parent resource group, but these settings can be overridden for each resource. Resources can also be locked to prevent certain operations or access.</p>
<p>For example, Virtual Machine, Virtual Network, Network Interface, App Service, etc.</p>
<h1 id="heading-arm-features">ARM Features</h1>
<ol>
<li><p>RBAC: Azure Active Directory (Azure AD) authenticates users and assigns roles to control access to resources, resource groups, and subscriptions based on permissions defined in roles.</p>
</li>
<li><p>Tags: Tags are name-value pairs used to add additional information and categorization to resources for better organization and management.</p>
</li>
<li><p>Policies: Custom policies are rules and conventions that define access control for resources and resource groups. They work alongside RBAC.</p>
</li>
<li><p>Locks: Subscriptions, resource groups, and resources can be locked to prevent accidental changes.</p>
</li>
<li><p>Multi-region: Resources can be provisioned in different Azure regions while still belonging to the same resource group.</p>
</li>
<li><p>Idempotent: This ensures that resource deployment is consistent and predictable, no matter how many times it's executed.</p>
</li>
<li><p>Extensible: ARM allows the platform to be extended with new resource providers and resource types.</p>
</li>
</ol>
<h1 id="heading-conclusion">Conclusion</h1>
<p>In summary, ARM simplifies resource management in Azure by grouping resources under resource providers, organizing them into resource groups, and providing useful features like RBAC, tags, policies, locks, and more.</p>
]]></content:encoded></item><item><title><![CDATA[[Part 8] Cisco SDWAN - Overlay Management Protocol]]></title><description><![CDATA[Overview
In the Cisco SD-WAN solution, the Overlay Management Protocol (OMP) serves as the routing protocol. However, OMP goes beyond just routing and provides several essential services within the control plane:

Facilitation of network communicatio...]]></description><link>https://blogs.itbase.tv/part-8-cisco-sdwan-overlay-management-protocol</link><guid isPermaLink="true">https://blogs.itbase.tv/part-8-cisco-sdwan-overlay-management-protocol</guid><category><![CDATA[Cisco]]></category><category><![CDATA[SDWAN]]></category><category><![CDATA[networking]]></category><category><![CDATA[learning]]></category><category><![CDATA[Learning Journey]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Wed, 12 Jul 2023 15:49:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1689176311898/fc6b9113-bd6d-415a-976b-574bdc796ed0.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-overview">Overview</h1>
<p>In the Cisco SD-WAN solution, the Overlay Management Protocol (OMP) serves as the routing protocol. However, OMP goes beyond just routing and provides several essential services within the control plane:</p>
<ul>
<li><p><strong>Facilitation of network communication</strong>: OMP enables data plane connectivity between sites in the SD-WAN fabric, including service chaining and multi-VPN topology information.</p>
</li>
<li><p><strong>Distribution of data plane security information</strong>: OMP handles the distribution of encryption keys, ensuring secure communication within the fabric.</p>
</li>
<li><p><strong>Best-path selection and routing policy advertisement</strong>: OMP determines the optimal paths for data traffic and communicates routing policies across the network.</p>
<blockquote>
<p>Read more</p>
<p><a target="_blank" href="https://itbase.tv/part-6-cisco-sdwan-vsmart-controller">[Part 6] Cisco SDWAN - vSmart Controller</a></p>
<p><a target="_blank" href="https://itbase.tv/part-7-cisco-sdwan-control-plane-operations-omp">[Part 7] Cisco SDWAN - Control Plane Operations - OMP</a></p>
</blockquote>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689128750825/67bcfc21-be50-4b8b-a24a-82069fbf56b7.png" alt class="image--center mx-auto" /></p>
<p>WAN Edge routers will establish the OMP peering session with all of vSmart by default. The OMP update is protected via DTLS or TLS sessions.</p>
<p>The below example shows the OMP peers on WAN Edges</p>
<p><strong>vEdge11</strong> (Viptela OS) "show omp peers"</p>
<pre><code class="lang-basic">vEdge11# show omp peers

R -&gt; routes received
I -&gt; routes installed
S -&gt; routes sent

                 DOMAIN   OVERLAY  SITE
PEER       TYPE    ID      ID       ID   STATE  UPTIME     R/I/S
---------------------------------------------------------------
<span class="hljs-number">9.9.9.30</span>   vsmart  <span class="hljs-number">1</span>       <span class="hljs-number">1</span>        <span class="hljs-number">99</span>    up   <span class="hljs-number">0</span>:<span class="hljs-number">10</span>:<span class="hljs-number">16</span>:<span class="hljs-number">52</span>   <span class="hljs-number">2</span>/<span class="hljs-number">2</span>/<span class="hljs-number">2</span>
</code></pre>
<p><strong>cEdge41</strong> (IOS-XE) "show <strong>sdwan</strong> omp peers"</p>
<pre><code class="lang-basic">cEdge41#show sdwan omp peers

R -&gt; routes received
I -&gt; routes installed
S -&gt; routes sent


                 DOMAIN  OVERLAY  SITE
PEER      TYPE   ID     ID        ID    STATE  UPTIME      R/I/S
---------------------------------------------------------------
<span class="hljs-number">9.9.9.30</span> vsmart  <span class="hljs-number">1</span>      <span class="hljs-number">1</span>         <span class="hljs-number">99</span>    up    <span class="hljs-number">6</span>:<span class="hljs-number">03</span>:<span class="hljs-number">33</span>:<span class="hljs-number">18</span>    <span class="hljs-number">1</span>/<span class="hljs-number">1</span>/<span class="hljs-number">2</span>
</code></pre>
<p><strong>The below output shows the OMP peers from vSmart to WAN Edges.</strong></p>
<pre><code class="lang-basic">vSmart1# show omp peers

R -&gt; routes received
I -&gt; routes installed
S -&gt; routes sent

                  DOMAIN  OVERLAY SITE
PEER       TYPE   ID      ID      ID    STATE  UPTIME      R/I/S
--------------------------------------------------------------
<span class="hljs-number">1.1.1.11</span>  vedge   <span class="hljs-number">1</span>       <span class="hljs-number">1</span>       <span class="hljs-number">10</span>     up   <span class="hljs-number">0</span>:<span class="hljs-number">10</span>:<span class="hljs-number">20</span>:<span class="hljs-number">15</span>   <span class="hljs-number">2</span>/<span class="hljs-number">0</span>/<span class="hljs-number">2</span>
<span class="hljs-number">1.1.1.40</span>  vedge   <span class="hljs-number">1</span>       <span class="hljs-number">1</span>       <span class="hljs-number">40</span>     up   <span class="hljs-number">6</span>:<span class="hljs-number">08</span>:<span class="hljs-number">41</span>:<span class="hljs-number">00</span>   <span class="hljs-number">2</span>/<span class="hljs-number">0</span>/<span class="hljs-number">1</span>
</code></pre>
<p>OMP in the Cisco SD-WAN solution is responsible for advertising different types of routes between the vSmart controllers and WAN Edge routers. These routes include:</p>
<ul>
<li><p><strong>OMP routes (vRoutes)</strong>: These routes represent network prefixes that enable connectivity services for data centers, branch offices, or any other endpoint within the SD-WAN fabric.</p>
</li>
<li><p><strong>TLOC Routes</strong>: TLOCs serve as identifiers that associate an OMP route with a physical location. They are the only IP addresses that are known and reachable within the underlay network.</p>
</li>
<li><p><strong>Service routes</strong>: Service routes identify network services within the SD-WAN overlay. These routes indicate the physical location of services such as firewalls, IPS, IDS, or any other device capable of processing network traffic. Service information is advertised through service routes and OMP routes.</p>
</li>
</ul>
<h1 id="heading-1-omp-routes-vroutes">1. OMP Routes (vRoutes)</h1>
<p>In an SD-WAN setup, each WAN Edge device located at a site communicates with the central vSmart controllers by sharing information about the routes it can handle. These updates are similar to the way traditional routing updates work. They provide information about which network addresses (prefixes) the WAN Edge device can reach.</p>
<p>The Overlay Management Protocol (OMP) is responsible for sending these route updates to the vSmart controllers. OMP can advertise different types of routes, including routes that are directly connected to the WAN Edge device, static routes that are manually configured, and routes learned from traditional routing protocols like OSPF, EIGRP, and BGP.</p>
<p>In addition to the reachability information, several attributes are also shared when advertising routes. <strong>These attributes include:</strong></p>
<ul>
<li><p>TLOC (Transport Locator)</p>
</li>
<li><p>Origin</p>
</li>
<li><p>Originator</p>
</li>
<li><p>Preference</p>
</li>
<li><p>Service</p>
</li>
<li><p>Site ID</p>
</li>
<li><p>Tag</p>
</li>
</ul>
<p><strong>TLOC (Transport Location)</strong></p>
<p>The TLOC identifier represents the next hop for the OMP route. It is similar to the <strong>BGP_NEXT_HOP</strong> attribute in BGP routing.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689004252894/30280302-3e4d-402d-bf23-f017e59f7f83.png" alt class="image--center mx-auto" /></p>
<p>Within the TLOC, there are <strong>three values</strong>:</p>
<ul>
<li><p><strong>System IP Address</strong>: This is like a unique identifier for the WAN Edge device. It doesn't necessarily need to be a routable IP address but must be unique across all WAN Edges. The system IP address helps identify the original advertising WAN Edge device.</p>
</li>
<li><p><strong>Color</strong>: This attribute is further explored in the data plane section. It is used to mark a specific WAN connection and can later be utilized to influence policies and topology construction.</p>
</li>
<li><p><strong>Encapsulation Type</strong>: This value indicates the type of encapsulation used for the data plane tunnel, such as IPsec or GRE. It is advertised to specify the type of tunneling protocol being employed.</p>
</li>
</ul>
<p><strong>Origin</strong></p>
<p>The origin attribute specifies the source of the route. As the route is advertised in the routing domain, the original source of the route is included in the update.</p>
<p>The source may indicate an identifier like BGP, OSPF, EIGRP, Connected, or Static, along with the protocol's original metric.</p>
<p>The origin attribute is also considered in the best-path selection for OMP routes. Similar to other attributes, it can be configured to influence how this information is used in policies and routing decisions.</p>
<p><strong>Originator</strong></p>
<p>The Originator attribute identifies the original source from which the route was learned. It is represented by the system IP address of the device that advertised the route. The network administrator can use this attribute to create policies that consider the route's origin.</p>
<p><strong>Preference</strong></p>
<p>The Preference attribute, sometimes called OMP Preference (not to be confused with TLOC Preference), can be modified to influence the criteria for selecting the best path for a route. Routes with higher preference values are preferred over those with lower values. This attribute operates similarly to LOCAL_PREF in BGP (Border Gateway Protocol).</p>
<blockquote>
<p>Tips: <em>With alargeromp preference value, thehigherpriority the prefix gets</em></p>
</blockquote>
<p><strong>Service</strong></p>
<p>The Cisco SD-WAN solution supports service insertion, such as firewalls. If a service is associated with a route, it is indicated in the Service attribute. Further details about service routes will be discussed later in the chapter.</p>
<p><strong>Site ID</strong></p>
<p>The Site ID attribute is similar to a BGP autonomous system number (ASN). It is used for policy orchestration and to influence routing decisions. Each site in the network should have a unique Site ID. If there are multiple devices at a site, they should share the same Site ID to prevent routing loops.</p>
<p><strong>Tag</strong></p>
<p>The Tag attribute is optional and transitive. It can be applied to a route by an OMP peer and used in policies. However, when redistributing to or from OMP, the tag is not carried. This attribute functions similarly to a route tag in traditional routing protocols.</p>
<p><strong>VPN</strong></p>
<p>The VPN attribute identifies the specific VPN or VRF (Virtual Routing and Forwarding) from which the route was advertised. VPN tags allow the use of overlapping subnets as long as they belong to different VPNs or VRFs. This enables logical segmentation of the network into multiple data paths and separate routing instances per VPN or VRF. Note that in the Cisco SD-WAN solution, VPNs and VRFs are used interchangeably.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689142297039/d79927fa-3423-4dae-be3e-7a4153390d25.avif" alt class="image--center mx-auto" /></p>
<blockquote>
<p>Read more: <a target="_blank" href="https://itbase.tv/part-3-cisco-sdwan-vpn-segmentation">Cisco SDWAN VPN Segmentation or VRF?</a></p>
</blockquote>
<h2 id="heading-example-of-omp-routes">Example of OMP Routes</h2>
<p>The below example is the output of the OMP Route which include mentioned attributes and much other information.</p>
<pre><code class="lang-apache"><span class="hljs-attribute">vEdge11</span># show omp routes vpn <span class="hljs-number">100</span>

---------------------------------------------------
<span class="hljs-attribute">omp</span> route entries for vpn <span class="hljs-number">100</span> route <span class="hljs-number">192.168.10.0</span>/<span class="hljs-number">24</span>
---------------------------------------------------
<span class="hljs-attribute">RECEIVED</span> FROM:
<span class="hljs-attribute">peer</span>            <span class="hljs-number">0.0.0.0</span>
<span class="hljs-attribute">path</span>-id         <span class="hljs-number">69</span>
<span class="hljs-attribute">label</span>           <span class="hljs-number">1002</span>
<span class="hljs-attribute">status</span>          C,Red,R
<span class="hljs-attribute">loss</span>-reason     not set
<span class="hljs-attribute">lost</span>-to-peer    not set
<span class="hljs-attribute">lost</span>-to-path-id not set
    <span class="hljs-attribute">Attributes</span>:
     <span class="hljs-attribute">originator</span>       <span class="hljs-number">1.1.1.11</span>
     <span class="hljs-attribute">type</span>             installed
     <span class="hljs-attribute">tloc</span>             <span class="hljs-number">1.1.1.11</span>, public-internet, ipsec
     <span class="hljs-attribute">ultimate</span>-tloc    not set
     <span class="hljs-attribute">domain</span>-id        not set
     <span class="hljs-attribute">overlay</span>-id        <span class="hljs-number">1</span>
     <span class="hljs-attribute">site</span>-id          <span class="hljs-number">10</span>
     <span class="hljs-attribute">preference</span>       not set
     <span class="hljs-attribute">tag</span>              not set
     <span class="hljs-attribute">origin</span>-proto     connected
     <span class="hljs-attribute">origin</span>-metric    <span class="hljs-number">0</span>
     <span class="hljs-attribute">as</span>-path          not set
     <span class="hljs-attribute">unknown</span>-attr-len not set

<span class="hljs-attribute">ADVERTISED</span> TO:
<span class="hljs-attribute">peer</span>    <span class="hljs-number">9.9.9.30</span>
</code></pre>
<p>Above <strong>192.168.10.0/24</strong> is a directly connected network belonging to the internal network of vEdge11, so look at the Attributes originator above, it is the system-ip of vEdge11 (1.1.1.<strong>11</strong>)</p>
<p>Also, at the <strong>ADVERTISED TO: peer9.9.9.30</strong> (vSmart system-ip), it shows this prefix has been distributed to vSmart1 mentioned above.</p>
<p>Regarding the status of prefix <strong>192.168.10.0/24</strong> as output above, (<strong>C, Red, R</strong>):</p>
<ul>
<li><p><strong>C</strong>: chosen, it means the prefix chosen as the best path</p>
</li>
<li><p><strong>Red</strong>: redistributed, means the prefix is redistributed from the IGP protocol, connected, ... into OMP. <em>(In this case, look at the origin-proto, the value is connected, and it shows the origin protocol for this prefix is directly connected)</em></p>
</li>
<li><p><strong>R</strong>: resolved, means tloc-nexthop available and reachability. (<strong>valid</strong>)</p>
</li>
</ul>
<pre><code class="lang-apache">---------------------------------------------------
<span class="hljs-attribute">omp</span> route entries for vpn <span class="hljs-number">100</span> route <span class="hljs-number">192.168.40.0</span>/<span class="hljs-number">24</span>
---------------------------------------------------

<span class="hljs-attribute">RECEIVED</span> FROM:
<span class="hljs-attribute">peer</span>            <span class="hljs-number">9.9.9.30</span>
<span class="hljs-attribute">path</span>-id         <span class="hljs-number">291</span>
<span class="hljs-attribute">label</span>           <span class="hljs-number">1002</span>
<span class="hljs-attribute">status</span>          C,I,R
<span class="hljs-attribute">loss</span>-reason     not set
<span class="hljs-attribute">lost</span>-to-peer    not set
<span class="hljs-attribute">lost</span>-to-path-id not set
    <span class="hljs-attribute">Attributes</span>:
     <span class="hljs-attribute">originator</span>       <span class="hljs-number">1.1.1.40</span>
     <span class="hljs-attribute">type</span>             installed
     <span class="hljs-attribute">tloc</span>             <span class="hljs-number">1.1.1.40</span>, public-internet, ipsec
     <span class="hljs-attribute">ultimate</span>-tloc    not set
     <span class="hljs-attribute">domain</span>-id        not set
     <span class="hljs-attribute">overlay</span>-id        <span class="hljs-number">1</span>
     <span class="hljs-attribute">site</span>-id          <span class="hljs-number">40</span>
     <span class="hljs-attribute">preference</span>       not set
     <span class="hljs-attribute">tag</span>              not set
     <span class="hljs-attribute">origin</span>-proto     connected
     <span class="hljs-attribute">origin</span>-metric    <span class="hljs-number">0</span>
     <span class="hljs-attribute">as</span>-path          not set
     <span class="hljs-attribute">unknown</span>-attr-len not set
</code></pre>
<p>Above <strong>192.168.40.0/24</strong> is the network prefix that vEdge11 <strong>received from vSmart</strong> (<strong>9.9.9.30</strong>), and you can see the originator is <strong>1.1.1.40</strong>, the system-ip of <strong>cEdge41</strong>. Based on it, you can know this prefix comes from the service side of cEdge41.</p>
<p>In addition, the prefix <strong>192.168.40.0/24</strong> contains other attributes such as site-id 40 which tells us that <strong>cEdge41's</strong> site is 40, and TLOC information is mentioned in the above section. (system-ip, color, encapsulation type).</p>
<p>Regarding the status of prefix <strong>192.168.40.0</strong>/24 as output above, (<strong>C, I, R</strong>):</p>
<ul>
<li><strong>I</strong>: installed, it means the prefix has been installed into the routing table.</li>
</ul>
<h1 id="heading-2-tloc-route">2. TLOC Route</h1>
<p>The TLOC (Transport Location Identifier) routes play a crucial role in identifying the physical location of a device within the transport network. These routes provide addressing that is routable in the underlying network infrastructure and serve as the endpoints for the data plane tunnels.</p>
<p>Simply, it is called the "<strong>Next-Hop of OMP Routes</strong>" and <strong>"WAN Edge's Site-to-Site VPN endpoint".</strong></p>
<blockquote>
<p>By using the TLOC with system IP addresses, the SD-WAN solution can maintain consistent and easily identifiable endpoints for data plane tunnels, even if IP addresses change dynamically.</p>
</blockquote>
<p>A TLOC consists of three attributes explained above</p>
<ul>
<li><p>System IP address</p>
</li>
<li><p>Transport color</p>
</li>
<li><p>Encapsulation type</p>
</li>
</ul>
<p>If a WAN Edge device has multiple transports or interfaces, a separate TLOC route will be advertised for each interface to ensure proper routing and connectivity.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689144379408/f312b168-88d6-4ab2-bf42-3b831469d800.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-tloc-color">TLOC Color</h2>
<p>The Color attribute of the TLOC route is crucial in identifying the transport being used. Each transport should ideally have a different color assigned to it. The Color attribute allows policies to be constructed to influence how the data plane is built within the SD-WAN network.</p>
<p>There are 22 predefined colors available to choose from, and they also define whether the underlying transport is private or public. This distinction determines the IP address that should be used when establishing a data plane tunnel to a remote site.</p>
<blockquote>
<p>Note that the default color is not clarified in public or private color.</p>
<p>If no color is explicitly defined, the color "default" is used</p>
</blockquote>
<div class="hn-table">
<table>
<thead>
<tr>
<td>PUBLIC COLOR</td><td>PRIVATE COLOR</td></tr>
</thead>
<tbody>
<tr>
<td>public-internet</td><td>mpls</td></tr>
<tr>
<td>biz-internet</td><td>private1</td></tr>
<tr>
<td>3g</td><td>private2</td></tr>
<tr>
<td>lte</td><td>private3</td></tr>
<tr>
<td>blue</td><td>private4</td></tr>
<tr>
<td>green</td><td>private5</td></tr>
<tr>
<td>red</td><td>private6</td></tr>
<tr>
<td>bronze</td><td></td></tr>
<tr>
<td>silver</td><td></td></tr>
<tr>
<td>god</td><td></td></tr>
<tr>
<td>custom1</td><td></td></tr>
<tr>
<td>custom2</td><td></td></tr>
<tr>
<td>custom3</td></tr>
</tbody>
</table>
</div><p>By default, WAN Edge devices will attempt to build data plane tunnels to every other site using every available color. (refer to the below Figure)</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689146470846/8aff44f1-8873-45cd-989e-e87ccd0e36e9.png" alt class="image--center mx-auto" /></p>
<p>However, this may lead to inefficient routing, such as MPLS sites attempting to build tunnels to public Internet sites unintentionally.</p>
<p>To control this behavior, the "restrict" command and/or tunnel groups can be used. These mechanisms allow for fine-tuning of the data plane connectivity and routing decisions. Further details about this will be discussed in the data plane articles later.</p>
<p>When a TLOC route is advertised, it contains the following information:</p>
<ul>
<li><p><strong>TLOC private address</strong>: This attribute represents the private IP address derived from the physical interface of the WAN Edge device.</p>
</li>
<li><p><strong>TLOC public address</strong>: The WAN Edge device receives notification via STUN (Session Traversal Utilities for NAT) that it may be behind a NAT (Network Address Translation) device. This attribute contains the publicly routable or outside IP address assigned to the WAN Edge, enabling data plane connectivity across a NAT boundary. If the public and private addresses match in a TLOC route, it indicates that the device is not behind a NAT.</p>
</li>
<li><p><strong>Color</strong>: This attribute corresponds to the defined color of the transport being used. The list of colors is mentioned in the above table. If no color is explicitly defined, the color "default" is used.</p>
</li>
<li><p><strong>Encapsulation type</strong>: This attribute specifies the type of tunnel encapsulation used for the data plane. The available options are IPsec and GRE. Both sides of the tunnel must match in terms of the encapsulation type for data plane connectivity.</p>
</li>
<li><p><strong>Preference</strong>: Similar to OMP Preference, this attribute allows the network administrator to indicate a preference for one TLOC over another when comparing the same OMP route.</p>
</li>
<li><p><strong>Site ID</strong>: This value identifies the originator of the TLOC route and is used to control how data plane tunnels are established.</p>
</li>
<li><p><strong>Tag</strong>: Similar to route tags and OMP tags, this attribute allows the definition of a value that can control how prefixes are exchanged and influence the flow of traffic.</p>
</li>
<li><p><strong>Weight</strong>: This attribute functions similarly to BGP Weight. It is a path selection method, locally significant, and indicates a preference for one path over another. A higher weight value is preferred over a lower one.</p>
</li>
</ul>
<p>These attributes provide detailed information and control over the TLOC routes, allowing for efficient data plane connectivity and routing decisions within the SD-WAN network.</p>
<h1 id="heading-3-service-routes">3. Service Routes</h1>
<p>Service routes are used to advertise specific services within the SD-WAN overlay network. Service chaining policies can then be applied to direct data traffic through one or more of these services before reaching its original destination.</p>
<p>Service chaining is beneficial when certain data traffic needs to pass through additional security or optimization services, such as <strong>firewalls</strong>, <strong>load balancers</strong>, or <strong>IDPs</strong> (Intrusion Detection and Prevention systems). These services can be applied on a per-VPN basis, allowing for granular control and flexibility.</p>
<p>For example, network services will be deployed according to the Hub-Spokes scheme, and services are connected at the central site (Hub) so that traffic from other sites is rerouted to the network service site (like Firewall) and then continues to forward to the original destination.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689158476257/fd696fe0-849e-46cd-8eed-ef560c8e4033.png" alt class="image--center mx-auto" /></p>
<p>To enable service chaining in the overlay network, the following workflow is typically followed:</p>
<ul>
<li><p>The network administrator defines the service using a feature template. This template outlines the configuration settings and parameters for the specific service.</p>
</li>
<li><p>WAN Edge routers within the network advertise the availability of these services to the central vSmart controllers. Multiple WAN Edge routers can advertise the same service for redundancy purposes.</p>
</li>
<li><p>In addition to service advertisements, WAN Edge routers also advertise their OMP (Overlay Management Protocol) and TLOC routes to provide information about reachability and routing.</p>
</li>
<li><p>The network administrator then applies a policy that specifies which traffic should flow through the advertised service(s). This policy ensures that the identified traffic is processed by the designated service(s) before being forwarded to its final destination.</p>
</li>
</ul>
<blockquote>
<p>It's important to note that for service chaining to work, devices providing the services must be Layer 2 adjacent to the WAN Edge device.</p>
</blockquote>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689158789204/f3322639-bffb-4fe4-a0dd-be9ae430ce1f.png" alt class="image--center mx-auto" /></p>
<p>This means there should be no intermediate hops between the WAN Edge device and the service device. Layer 2 adjacency can be achieved using IPsec or GRE tunnels, which facilitate the required connectivity.</p>
<p>In order to offer a service within the SD-WAN network, the site serving as the hub or service provider will advertise a service route using a Subsequent Address Family Identifier (SAFI) in the OMP (Overlay Management Protocol) Network Layer Reachability Information (NLRI). This information is then communicated to the vSmart controller and propagated to the WAN Edge devices. The service route update contains the following details:</p>
<ul>
<li><p>VPN ID: This attribute specifies the VPN (Virtual Private Network) to which the service applies. It associates the service with a specific VPN within the SD-WAN network.</p>
</li>
<li><p>Service ID: The Service ID defines the type of service being advertised. There are seven predefined service types available:</p>
<ul>
<li><p>FW: Represents a firewall service (mapped to svc-id 1). (above example)</p>
</li>
<li><p>IDS: Represents an intrusion detection system service (mapped to svc-id 2).</p>
</li>
<li><p>IDP: Represents an Identity Provider service (mapped to svc-id 3).</p>
</li>
<li><p>netsvc1, netsvc2, netsvc3, and netsvc4: These service types are reserved for custom services and correspond to the service values of svc-id 4, svc-id 5, svc-id 6, and svc-id 7, respectively.</p>
</li>
</ul>
</li>
<li><p>Label: OMP routes that require traffic to flow through this service will have their Label field replaced with this specific label. It helps in identifying the service associated with the route.</p>
</li>
<li><p>Originator ID: This attribute represents the system IP address of the node or device advertising the service. It identifies the source of the service advertisement.</p>
</li>
<li><p>TLOC: The Transport Location address specifies where the service is located within the network. It identifies the physical location or endpoint associated with the service.</p>
</li>
<li><p>Path ID: The Path ID serves as an identifier for the OMP path. It helps in distinguishing and tracking different paths within the SD-WAN network.</p>
</li>
</ul>
<h2 id="heading-configure-service-routes">Configure Service Routes</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689158476257/fd696fe0-849e-46cd-8eed-ef560c8e4033.png" alt class="image--center mx-auto" /></p>
<p>Following the above example diagram, the service route will be configured on vEdge3 at site 3.</p>
<pre><code class="lang-apache"><span class="hljs-comment">## vEdge3 ###</span>
<span class="hljs-attribute">vpn</span> <span class="hljs-number">10</span>
  <span class="hljs-attribute">service</span> FW address <span class="hljs-number">3.3.3.3</span>
!
</code></pre>
<p>To enforce and drive the traffic between site 1 (LAN-A) and site 2 (LAN-B) through the Firewall (Services) at site 3, the Centralized Policy has to be done via vSmart.</p>
<pre><code class="lang-bash">policy
  lists 
    site-list BRANCHES
      site-id 1, 2
  !
  control-policy FIREWALL-SERVICE
    sequence 10
      match route
        site-id 3
      action accept
        <span class="hljs-built_in">set</span> service FW vpn 10
    default-action accept
  !
apply-policy
  site-list BRANCHES control-policy FIREWALL-SERVICE out
!
</code></pre>
<blockquote>
<p>Tips:</p>
<p>VPN 10 associates the Firewall service with a specific VPN10 within the fabric.</p>
</blockquote>
<h2 id="heading-verify-the-service-routes">Verify the Service Routes</h2>
<p>In order to verify the service route is configured correctly, use "<strong>show omp services</strong>" on Viptela OS or "<strong>show sdwan omp services</strong>" on IOS-XE.</p>
<pre><code class="lang-apache"><span class="hljs-attribute">vEdge3</span># show omp services

<span class="hljs-attribute">ADDRESS</span>                                            PATH
<span class="hljs-attribute">FAMILY</span>   VPN    SERVICE   ORIGINATOR   FROM PEER   ID    LABEL  STATUS
--------------------------------------------------------------------
<span class="hljs-attribute">ipv4</span>     <span class="hljs-number">10</span>     FW        <span class="hljs-number">3.3.3.31</span>      <span class="hljs-number">9.9.9.30</span>    <span class="hljs-number">52</span>   <span class="hljs-number">1006</span>   C,I,R
</code></pre>
<h1 id="heading-wrap-up">WRAP-UP</h1>
<p>Through the article, we learn about Overlay Management Protocol that is used in the Cisco SDWAN Control Plane.</p>
<p>There are three kinds of routes in OMP:</p>
<ul>
<li><p>OMP Routes, like BGP prefixes.</p>
</li>
<li><p>TLOC Routes provide addressing that is routable in the underlying network infrastructure and serve as the endpoints for the data plane tunnels.</p>
</li>
<li><p>Service Routes are used to advertise specific services and the policies can then be applied to direct data traffic through one or more of these services before reaching its original destination.</p>
</li>
</ul>
<blockquote>
<p>My name is Nam who loves to talk and share knowledge related to Networking, Automation, and so on. More about me: www.nam-nguyen.me</p>
<p>Hope you enjoy the blog and don't forget to join the <a target="_blank" href="https://itbase.tv/newsletter">Tech-Learner-Hub</a> to get more and more valuable content.</p>
</blockquote>
<p><a target="_blank" href="https://store.itbase.tv">Get the Cisco SD-WAN Zero-to-One ebook</a></p>
<p><a target="_blank" href="https://store.itbase.tv"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709793088749/bcf373f8-f104-4112-b60e-8dee3c3338c7.png" alt class="image--center mx-auto" /></a></p>
]]></content:encoded></item><item><title><![CDATA[[Part 7] Cisco SDWAN - Control Plane Operations - OMP]]></title><description><![CDATA[Overview
As discussed in the previous part "Cisco SDWAN Planes", The control plane in Cisco SD-WAN is responsible for establishing and maintaining logical connectivity and intelligence across the network. It encompasses the control plane protocols an...]]></description><link>https://blogs.itbase.tv/part-7-cisco-sdwan-control-plane-operations-omp</link><guid isPermaLink="true">https://blogs.itbase.tv/part-7-cisco-sdwan-control-plane-operations-omp</guid><category><![CDATA[Cisco]]></category><category><![CDATA[SDWAN]]></category><category><![CDATA[networking]]></category><category><![CDATA[learning]]></category><category><![CDATA[CCIE]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Tue, 04 Jul 2023 04:20:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1688444260659/220bee6d-743c-49c5-abf2-82fbbb17857b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-overview">Overview</h1>
<p>As discussed in the previous part "<a target="_blank" href="https://itbase.tv/part-2-cisco-sdwan-planes"><strong>Cisco SDWAN Planes</strong></a><strong>",</strong> The control plane in Cisco SD-WAN is responsible for establishing and maintaining logical connectivity and intelligence across the network. It encompasses the control plane protocols and functions that enable the exchange of routing information and the orchestration of data traffic flow.</p>
<p>In this article, we will be on the SD-WAN control plane and how OMP facilitates building the control plane.</p>
<h1 id="heading-control-plane-operations">Control Plane Operations</h1>
<p>In the Cisco SD-WAN solution, the Overlay Management Protocol (OMP) is used to manage control plane operations. OMP enables a secure and scalable framework that works across various types of transport, including private options like MPLS, Layer 2 VPNs, and point-to-point networks, as well as public connectivity methods like the Internet and LTE.</p>
<p>The vSmart controller is responsible for handling the control plane. It ensures a scalable control plane infrastructure and distributes policy information to the WAN Edges.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688469282646/a7de6e60-9475-43db-82e0-6d4e4369a292.png" alt class="image--center mx-auto" /></p>
<p>To better understand its role, the vSmart controller can be compared to a BGP route reflector. It receives routing and topology information from the clients, performs calculations based on configured policies to determine the best paths, and then advertises these results to the WAN Edges, which act as route reflector clients.</p>
<p>In traditional networks, the control plane's primary focus was on managing how data flows within the network. This involved receiving routing updates, performing operations to determine the best paths, and using this information to populate forwarding tables.</p>
<p>However, configuring security using these protocols was often complex and time-consuming. It typically required manual effort and often resulted in network downtime during the transition to security mechanisms.</p>
<p>Security is a fundamental aspect of the Cisco SD-WAN solution. To ensure secure communication, the control plane tunnels in the SD-WAN overlay are encrypted and authenticated using Datagram Transport Layer Security (DTLS) or Transport Layer Security (TLS). In the SD-WAN overlay, all personas including vBond, vSmart, WAN Edges, and vManage maintain <strong>DTLS/TLS</strong> connections.</p>
<blockquote>
<p>This ensures that all routing updates are validated and trusted to prevent the processing of any malicious routing information.</p>
</blockquote>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688438470279/59e2e568-985a-4545-bc4d-67c9075c476b.png" alt="Figure 2. Cisco SDWAN Control Plane DTLS-TLS secure connections to protect OMP" class="image--center mx-auto" /></p>
<p>These connections are established using SSL certificates. Each component in the network authenticates the other end and creates a one-way tunnel. During the negotiation process, devices validate that the received certificate is signed by a <strong>trusted root Certificate Authority (CA)</strong> and has a valid serial number with a matching <strong>organization name</strong>. This ensures the authenticity and integrity of the communication. You can refer to the above illustration of a tunnel between a WAN Edge and vSmart controller.</p>
<blockquote>
<p>The default protocol for communication is DTLS (Datagram Transport Layer Security).</p>
</blockquote>
<p>DTLS communication takes place over UDP port 12346. <em>It is recommended to keep this port open for communication between vBond and all WAN Edges</em>.<br />Additionally, <strong>TLS (Transport Layer Security)</strong> is also supported if specific requirements demand it. It's important to note that TLS operates using the TCP protocol and is therefore stateful.</p>
<p>The vSmart and vManage components are deployed as virtual machines capable of supporting multiple cores, <strong>up to a maximum of eight cores</strong>. <strong>Each core is associated with a base port</strong>. When inbound DTLS/TLS connections are established, they initially target port 12346.<br />You can refer to the below figure of a DTLS Tunnel Authentication between vSmart and vBond.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688440605079/97bc68a1-297a-4fbc-8c9c-061e54883216.png" alt class="image--center mx-auto" /></p>
<p>Once the control plane tunnels are established, various protocols can utilize these secure sessions. In addition to OMP (Overlay Management Protocol), protocols like Simple Network Management Protocol (SNMP) and Netconf can also leverage these secure channels. By utilizing the established DTLS/TLS tunnels, we no longer need to worry about the individual security implementations of these protocols or any vulnerabilities they may have.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688440914544/a5fad7d0-5c35-4759-9eec-65eec013c8fb.png" alt class="image--center mx-auto" /></p>
<h1 id="heading-overlay-management-protocol-omp">Overlay Management Protocol (OMP)</h1>
<p>In the Cisco SD-WAN solution, the Overlay Management Protocol (OMP) serves as the routing protocol. However, OMP goes beyond just routing and provides several essential services within the control plane:</p>
<ul>
<li><p><strong>Facilitation of network communication</strong>: OMP enables data plane connectivity between sites in the SD-WAN fabric, including service chaining and multi-VPN topology information.</p>
</li>
<li><p><strong>Distribution of data plane security information</strong>: OMP handles the distribution of encryption keys, ensuring secure communication within the fabric.</p>
</li>
<li><p><strong>Best-path selection and routing policy advertisement</strong>: OMP determines the optimal paths for data traffic and communicates routing policies across the network.</p>
</li>
</ul>
<blockquote>
<p>Read more: <a target="_blank" href="https://itbase.tv/part-6-cisco-sdwan-vsmart-controller">Cisco SDWAN vSmart Controllers</a></p>
</blockquote>
<p>OMP is enabled by default in the SD-WAN solution and does not require explicit activation. As components in the fabric become aware of their control elements, they automatically establish control connections. This allows for reachability and orchestration of the network topology.</p>
<p>OMP is designed to interact with legacy routing protocols, including static routes and traditional interior gateway protocols such as OSPF, BGP, and EIGRP. However, unlike traditional IGPs, <strong>OMP peering occurs only between the WAN Edges and the vSmart controller(s)</strong>. This peering model resembles the operation of a BGP route reflector within an Internal Border Gateway Protocol (IBGP) domain. This approach is beneficial for scalability, as it reduces CPU load on data plane devices by minimizing excessive routing updates and best-path recalculations.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688469320135/f4dbb612-f272-4ea2-bff4-70a7299bc75b.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-omp-graceful-restart">OMP Graceful Restart</h2>
<p>OMP in the Cisco SD-WAN solution also supports graceful restart functionality. Graceful restart allows WAN Edges to <strong>cache forwarding information</strong> in case they <strong>lose connectivity</strong> to the vSmart controllers. In such situations, the WAN Edge will continue using the last received routing information to maintain proper forwarding.</p>
<p>By default, graceful restart is enabled on both vSmart controllers and WAN Edge routers, with a default timer set to <strong>12 hours</strong>. This timer can be adjusted within a range of <em>1 second to 7 days</em>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688443057988/a7ae661d-3267-4d51-a3ce-b070e41cbfa6.png" alt class="image--center mx-auto" /></p>
<p>It's important to ensure that a valid IPsec encryption key is available during the entire graceful restart period. Otherwise, there is a risk of data plane tunnels being terminated when the graceful timer expires. To prevent IPsec rekey while OMP is down, it is recommended to set the IPsec rekey timer to twice the value of the graceful restart timer as a best practice.</p>
<blockquote>
<p>Note:</p>
<p>The configuration of the graceful restart timer can be done through vManage using a CLI template or an OMP feature template. Further details on feature templates will be discussed in the next parts.</p>
</blockquote>
<p>When a peering session with the vSmart controller becomes unavailable, the WAN Edge continuously tries to re-establish the connection. However, if the WAN Edge is reloaded, the cached information is lost.</p>
<p>In such cases, the WAN Edge will need to establish a new OMP session with the vSmart controller and receive updated forwarding information before it can resume forwarding traffic on the SD-WAN fabric.</p>
<h2 id="heading-cisco-sdwan-type-of-routes-overview">Cisco SDWAN Type of Routes Overview</h2>
<p>OMP in the Cisco SD-WAN solution is responsible for advertising different types of routes between the vSmart controllers and WAN Edge routers. These routes include:</p>
<ol>
<li><p>OMP routes (vRoutes): These routes represent network prefixes that enable connectivity services for data centers, branch offices, or any other endpoint within the SD-WAN fabric.</p>
</li>
<li><p>Transport locations (TLOCs): TLOCs serve as identifiers that associate an OMP route with a physical location. They are the only IP addresses that are known and reachable within the underlying network.</p>
</li>
<li><p>Service routes: Service routes identify network services within the SD-WAN overlay. These routes indicate the physical location of services such as firewalls, IPS, IDS, or any other device capable of processing network traffic. Service information is advertised through service routes and OMP routes.</p>
</li>
</ol>
<blockquote>
<p>My name is Nam who loves to talk and share knowledge related to Networking, Automation, and so on. More about me: www.nam-nguyen.me</p>
<p>Hope you enjoy the blog and don't forget to join the <a target="_blank" href="https://itbase.tv/newsletter">Tech-Learner-Hub</a> to get more and more valuable content.</p>
</blockquote>
<p><a target="_blank" href="https://store.itbase.tv">Get the Cisco SD-WAN Zero-to-One ebook</a></p>
<p><a target="_blank" href="https://store.itbase.tv"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709793088749/bcf373f8-f104-4112-b60e-8dee3c3338c7.png" alt class="image--center mx-auto" /></a></p>
]]></content:encoded></item><item><title><![CDATA[[Part 6] Cisco SDWAN - vSmart Controller]]></title><description><![CDATA[Introduction
In the world of software-defined wide-area networking (SD-WAN), the control plane plays a crucial role in managing network intelligence and ensuring seamless connectivity. One of the key components responsible for control plane functiona...]]></description><link>https://blogs.itbase.tv/part-6-cisco-sdwan-vsmart-controller</link><guid isPermaLink="true">https://blogs.itbase.tv/part-6-cisco-sdwan-vsmart-controller</guid><category><![CDATA[Cisco]]></category><category><![CDATA[SDWAN]]></category><category><![CDATA[networking]]></category><category><![CDATA[learning]]></category><category><![CDATA[Learning Journey]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Thu, 29 Jun 2023 16:22:18 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1688055283181/e34aef63-9b8b-4169-aa06-33f98f5be792.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<p>In the world of software-defined wide-area networking (SD-WAN), the control plane plays a crucial role in managing network intelligence and ensuring seamless connectivity. One of the key components responsible for control plane functionality is the vSmart controller.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688050311539/f0e39607-48f0-4111-a436-dc85a6769943.png" alt="Figure 1. Cisco SDWAN vSmart - Control Planes overview" class="image--center mx-auto" /></p>
<p>In this article, we will delve into the details of vSmart and its role in the Cisco SD-WAN fabric, exploring its capabilities, benefits, and operational mechanisms.</p>
<h1 id="heading-the-brain-of-the-sd-wan-fabric">The Brain of the SD-WAN Fabric</h1>
<p>vSmart acts as the central intelligence hub of the SD-WAN fabric, providing control plane services to orchestrate network operations. Its highly scalable architecture allows it to handle up to 5,400 connections per vSmart server, making it suitable for large-scale deployments.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688051650738/bc2db6e0-1256-413e-aa37-26d6c824c072.png" alt="Figure 2. Cisco SDWAN vSmart as brain of network" class="image--center mx-auto" /></p>
<p>With vSmart, organizations can efficiently implement control plane policies, centralized data policies, service chaining, and VPN topologies, while ensuring robust security and encryption through key management.</p>
<h1 id="heading-simplifying-network-operations">Simplifying Network Operations</h1>
<p>By separating the control plane from the data and management planes, the Cisco SD-WAN solution achieves greater scalability and simplifies network operations.</p>
<p>Unlike traditional routing protocols, if you look at traditional link states routing protocols such as OSPF and IS-IS, each router knows about the state of the whole network and calculates its own routing table based on the link state database information.</p>
<p>This can be very CPU intensive and offers only a limited, autonomous view of the network. vSmart enables comprehensive network state visibility for efficient path calculations and reduced complexity. This ensures optimal routing decisions across the network.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688052994707/74ee98e6-d086-4823-899f-d287ceba9c03.png" alt class="image--center mx-auto" /></p>
<p>vSmart leverages the <strong>Overlay Management Protocol (OMP)</strong> to communicate and manage network information. OMP goes beyond routing and encompasses key management, configuration updates, and more. It runs between vSmart and the WAN Edges within a secure tunnel. Policies built through the management plane are distributed to vSmart via NETCONF, and vSmart disseminates these policies to the WAN Edges through OMP updates.</p>
<blockquote>
<p>OMP is the main exchange control information protocol using in Cisco SDWAN control plane.<br />The separated detailed article about OMP will come later.</p>
</blockquote>
<h1 id="heading-intelligent-routing-and-topology-management">Intelligent Routing and Topology Management</h1>
<p>Similar to a BGP route reflector in iBGP, vSmart receives routing information from each WAN Edge and applies policies before advertising the information to other WAN Edges. vSmart defines different topologies per VPN, allowing flexible modification of routes and data plane construction.</p>
<p>This centralization of control enables efficient management of the network's routing and topology, ensuring optimized performance and reduced complexity.</p>
<blockquote>
<p>The Cisco SDWAN Policies will be explain detail in the next parts.</p>
</blockquote>
<h1 id="heading-enhanced-security-and-key-management">Enhanced Security and Key Management</h1>
<p>The control plane is responsible for fabric encryption, and vSmart plays a crucial role in ensuring secure communication. In legacy WAN technologies, each device computed its own encryption keys and distributed them using protocols like ISAKMP/IKE.</p>
<blockquote>
<p>In Cisco SD-WAN, key exchange and distribution are centralized in vSmart.</p>
</blockquote>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688054221896/e81fd146-74d6-490d-826f-c56118d07314.png" alt="Figure 4. Cisco SDWAN Key Exchange via vSmart" class="image--center mx-auto" /></p>
<p>WAN Edges compute transport-specific keys, which are then distributed and rekeyed by vSmart. This approach increases scalability and simplifies key management.</p>
<h1 id="heading-high-availability-and-redundancy">High Availability and Redundancy</h1>
<p>To ensure network stability, it is recommended to deploy at least two geographically dispersed vSmart controllers. These controllers should have identical policy configurations to avoid routing issues and potential traffic blackholing.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1688054768238/fc148ee0-5d49-43d4-8f3a-3c49744f8491.png" alt class="image--center mx-auto" /></p>
<p>vSmart controllers maintain a full mesh of OMP sessions among themselves, allowing synchronization of control and routing information. In case of vSmart controller failure, control connections from WAN Edges are dynamically rebalanced across the remaining controllers.</p>
<h1 id="heading-key-takeaways">Key Takeaways</h1>
<p>The vSmart controller in Cisco SD-WAN acts as the brain of the network, orchestrating control plane operations, optimizing routing decisions, and ensuring secure communication. By leveraging the power of OMP and centralized control, organizations can achieve scalable, intelligent, and highly available networks.</p>
<blockquote>
<p>vSmart Controller</p>
<ul>
<li><p>The brain of the Cisco SDWAN Network</p>
</li>
<li><p>Centralized Routing, Topology control (like iBGP reflector)</p>
</li>
<li><p>Centralized encryption key distribution</p>
</li>
<li><p>Recommend to deploy with geographical redundancy.</p>
</li>
</ul>
<p>My name is Nam who loves to talk and share knowledge related to Networking, Automation, and so on. More about me: www.nam-nguyen.me</p>
<p>Hope you enjoy the blog and don't forget to join the <a target="_blank" href="https://itbase.tv/newsletter">Tech-Learner-Hub</a> to get more and more valuable content.</p>
</blockquote>
<p><a target="_blank" href="https://store.itbase.tv">Get the Cisco SD-WAN Zero-to-One ebook</a></p>
<p><a target="_blank" href="https://store.itbase.tv"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709793088749/bcf373f8-f104-4112-b60e-8dee3c3338c7.png" alt class="image--center mx-auto" /></a></p>
]]></content:encoded></item><item><title><![CDATA[[Part 5] Cisco SDWAN - vBond Controllers]]></title><description><![CDATA[Introduction
In a software-defined wide area network (SD-WAN) architecture, the vBond controller plays a critical role in orchestrating the connectivity and authentication between various elements within the SD-WAN fabric.
Understanding the purpose a...]]></description><link>https://blogs.itbase.tv/part-5-cisco-sdwan-vbond-controllers</link><guid isPermaLink="true">https://blogs.itbase.tv/part-5-cisco-sdwan-vbond-controllers</guid><category><![CDATA[Cisco]]></category><category><![CDATA[SDWAN]]></category><category><![CDATA[networking]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[learning]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Tue, 27 Jun 2023 23:47:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1687909430368/ce3ff756-fca2-4de2-834f-22fff7a1603b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<p>In a software-defined wide area network (SD-WAN) architecture, the vBond controller plays a critical role in orchestrating the connectivity and authentication between various elements within the SD-WAN fabric.</p>
<p>Understanding the purpose and functionality of the vBond controller is essential to grasp the inner workings of Cisco SD-WAN. In this article, we will delve into the intricacies of vBond, its role within the SD-WAN fabric, and provide a detailed explanation of how it operates.</p>
<h1 id="heading-what-is-vbond-controller">What is vBond Controller?</h1>
<p>At its core, the vBond controller is a <strong>centralized orchestration</strong> component within the Cisco SD-WAN architecture.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687904725402/db80be40-d975-48a9-92b9-2249fde1e257.png" alt="Figure 1. Cisco SDWAN vBond controller Overview" class="image--center mx-auto" /></p>
<blockquote>
<p>It acts as the initial point of contact for SD-WAN devices, facilitating secure authentication and bootstrapping of the network elements.</p>
</blockquote>
<p>The vBond controller establishes secure tunnels (<strong>DTLS/TLS</strong>) with each SD-WAN device in the fabric, ensuring secure communication and enabling the establishment of control and data plane connections.</p>
<blockquote>
<p>Read more: <a target="_blank" href="https://itbase.tv/part-2-cisco-sdwan-planes">Cisco SDWAN Planes</a></p>
</blockquote>
<h1 id="heading-role-of-vbond-controller">Role of vBond Controller</h1>
<p>The vBond controller fulfills several vital roles within the SD-WAN fabric, including:</p>
<ul>
<li><p>Authentication and Identity Management</p>
</li>
<li><p>NAT-T Support</p>
</li>
<li><p>Device Bootstrapping</p>
</li>
<li><p>Overlay Network Establishment</p>
</li>
</ul>
<h2 id="heading-authentication-and-identity-management">Authentication and Identity Management</h2>
<p>vBond authenticates SD-WAN devices and ensures their identity before allowing them to join the SD-WAN fabric. It verifies device certificates, authorizes device enrollment, and securely distributes control plane information.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687906458125/e52a198d-e86e-430c-9215-aa7b38224c8c.png" alt="Figure 2. Cisco SDWAN vBond controller Explanation" class="image--center mx-auto" /></p>
<p>When an SD-WAN device boots up, it initiates contact with the vBond controller. The vBond controller verifies the device's identity, checks its certificate, and authorizes its enrollment into the SD-WAN fabric.</p>
<p>Once authenticated, the vBond controller and the SD-WAN device establish a secure DTLS (Datagram Transport Layer Security) tunnel. This secure tunnel is used for control plane communication between the vBond controller and the SD-WAN device.</p>
<h2 id="heading-nat-t-support">NAT-T Support</h2>
<p>In Cisco SD-WAN, the vBond controller plays a crucial role in handling Network Address Translation (NAT) within the fabric.</p>
<p>When a WAN Edge router connects to the vBond controller, it includes its real IP address (Private IP Address) and Port to the exchange information. If the router is behind a NAT device, the NAT device will translate the <strong>source IP</strong> and possibly the source port of the packet.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687909178265/b35ffbbc-5975-4844-bcfd-0115c6a548a8.png" alt="Figure 3. Cisco SDWAN vBond support NAT-T" class="image--center mx-auto" /></p>
<p>Since the message still contains the WAN Edge’s real IP Address and Port, the vBond controller is aware of this translation and sends a message back to the WAN Edge router, notifying it that it is behind a NAT.</p>
<p>The WAN Edge router updates its OMP TLOC route with this information and sends it to the vSmart controller. This information is then shared with other WAN Edge routers in the overlay network.</p>
<blockquote>
<p>OMP - Overlay Management Protocol, which is used to exchange routing and encryption key information in Cisco SDWAN between vSmarts and WAN Edges.</p>
<p>No worry, the detailed explanation will come in later posts.</p>
</blockquote>
<p>By exchanging this NAT information, all WAN Edge routers in the fabric can adapt their data plane accordingly. They will use the correct IP and port values to establish communication, even when they are behind a NAT device.</p>
<blockquote>
<p>WAN Edges devices receive other Edge's information (Public IP, Private IP, NAT type, etc.), and use this information to establish a secure connection with each other (IPSec).</p>
<p>That's why they need to know the peer WAN Edge is behind the NAT device or not.</p>
</blockquote>
<h2 id="heading-device-bootstrapping">Device Bootstrapping</h2>
<p>Device bootstrapping is a crucial aspect of the vBond controller's role in the SD-WAN fabric. During the bootstrapping process, the vBond controller delivers essential configuration parameters and establishes the initial connectivity for SD-WAN devices.</p>
<p>This process enables the devices to join the SD-WAN fabric and participate in the overlay network.</p>
<blockquote>
<p>It <strong>simplifies</strong> the deployment process of SD-WAN devices and automates the provisioning of devices by eliminating the need for manual configuration.</p>
</blockquote>
<p>This reduces the potential for human error and streamlines the overall deployment process, <strong>saving time</strong> and <strong>effort</strong> for network administrators.</p>
<p><em>The detailed onboarding WAN Edges with vBond bootstraps will be talked about in later specific posts.</em></p>
<h2 id="heading-overlay-network-establishment">Overlay Network Establishment</h2>
<p>Through control plane messaging, vBond establishes secure control plane tunnels with SD-WAN devices.</p>
<p>Through the secure tunnel, the vBond controller provides critical control plane information to the SD-WAN device, including the IP addresses of other control plane elements such as <strong>vSmart</strong> controllers and <strong>vManage</strong>.</p>
<blockquote>
<p>Read more: <a target="_blank" href="https://itbase.tv/part-4-cisco-sdwan-vmanage-controllers">Cisco SDWAN vManage and Cluster</a></p>
</blockquote>
<h1 id="heading-key-takeaway">Key Takeaway</h1>
<p>The <strong>vBond controller</strong> serves as a fundamental component of the Cisco SD-WAN fabric, enabling secure <strong>authentication</strong>, <strong>bootstrapping</strong>, and <strong>orchestration</strong> of SD-WAN devices.</p>
<blockquote>
<p>My name is Nam who loves to talk and share knowledge related to Networking, Automation, and so on. More about me: www.nam-nguyen.me</p>
<p>Hope you enjoy the blog and don't forget to join the <a target="_blank" href="https://itbase.tv/newsletter">Tech-Learner-Hub</a> to get more and more valuable content.</p>
</blockquote>
<p><a target="_blank" href="https://store.itbase.tv">Get the Cisco SD-WAN Zero-to-One ebook</a></p>
<p><a target="_blank" href="https://store.itbase.tv"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1709793088749/bcf373f8-f104-4112-b60e-8dee3c3338c7.png" alt class="image--center mx-auto" /></a></p>
]]></content:encoded></item><item><title><![CDATA[Understanding OAuth & OAuth 2.0]]></title><description><![CDATA[Introduction
In today's interconnected digital landscape, secure access to resources and protected data is crucial. OAuth and OAuth 2.0 have emerged as industry-standard protocols for enabling secure authentication and authorization across various ap...]]></description><link>https://blogs.itbase.tv/what-is-oauth-oauth2</link><guid isPermaLink="true">https://blogs.itbase.tv/what-is-oauth-oauth2</guid><category><![CDATA[OAuth2]]></category><category><![CDATA[oauth]]></category><category><![CDATA[authorization]]></category><category><![CDATA[Security]]></category><category><![CDATA[networking]]></category><dc:creator><![CDATA[Nam Nguyen]]></dc:creator><pubDate>Mon, 26 Jun 2023 15:49:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1687794407329/2dc7e322-18ef-4486-9737-e066f8c02135.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1 id="heading-introduction">Introduction</h1>
<p>In today's interconnected digital landscape, secure access to resources and protected data is crucial. OAuth and OAuth 2.0 have emerged as industry-standard protocols for enabling secure <strong>authentication</strong> and <strong>authorization</strong> across various applications and services. In this blog post, we will explore what OAuth is, delve into the workings of OAuth 2.0, and discuss its key use cases with real-world examples.</p>
<h1 id="heading-what-is-oauth">What is OAuth?</h1>
<p>OAuth, which stands for "Open Authorization," is an open standard protocol that allows users to grant limited access to their protected resources (such as data or services) to other applications without revealing their credentials. 1.2 Key Concepts in OAuth:</p>
<ul>
<li><p>Resource Owner: The user who owns the protected resource and grants access to it.</p>
</li>
<li><p>Client: The application or service requesting access to the protected resource on behalf of the user.</p>
</li>
<li><p>Resource Server: The server hosting the protected resource.</p>
</li>
<li><p>Authorization Server: The server responsible for authenticating the user and issuing access tokens.</p>
</li>
</ul>
<h1 id="heading-what-is-oauth-1">What is OAuth?</h1>
<p>OAuth 2.0 is an evolution of the OAuth protocol and is widely adopted due to its simplicity and enhanced security features. 2.2 OAuth 2.0 Roles and Flow:</p>
<ul>
<li><p>Client Registration: The client application registers with the authorization server to obtain client credentials.</p>
</li>
<li><p>Authorization Code Flow: The most common flow involves the exchange of an authorization code for an access token.</p>
</li>
<li><p>Implicit Grant Flow: A simplified flow for browser-based or mobile applications.</p>
</li>
<li><p>Client Credentials Flow: Suitable for machine-to-machine communication.</p>
</li>
<li><p>Refresh Token Flow: Enables the renewal of access tokens without requiring re-authorization.</p>
</li>
<li><p>Scopes and Permissions: Define the level of access granted to the client application.</p>
</li>
<li><p>Access Token Usage: How to access tokens are utilized to access protected resources.</p>
</li>
</ul>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1687794027908/92fdbce6-f054-499d-826f-48475efbe9a2.png" alt="How Oauth2 works" class="image--center mx-auto" /></p>
<h1 id="heading-use-cases">Use Cases</h1>
<h2 id="heading-single-sign-on-sso">Single Sign-On (SSO)</h2>
<ul>
<li><p>Simplify the user experience by utilizing OAuth 2.0 for seamless authentication across multiple applications.</p>
</li>
<li><p>For instance, users can authenticate themselves through a social media account and gain access to various integrated applications without the need to provide separate login credentials for each application.</p>
</li>
</ul>
<h2 id="heading-third-party-application-integration">Third-Party Application Integration</h2>
<ul>
<li><p>Enable seamless integration between different platforms by leveraging OAuth 2.0.</p>
</li>
<li><p>For instance, a fitness tracking app can securely access workout data from a health service provider's platform using OAuth 2.0 authentication and authorization mechanisms. This allows users to track their fitness activities in a centralized app without the need to manually enter data from multiple sources.</p>
</li>
</ul>
<h2 id="heading-api-authorization-and-access-control">API Authorization and Access Control</h2>
<ul>
<li><p>Empower third-party applications to interact with user data on a cloud storage platform securely.</p>
</li>
<li><p>With OAuth 2.0, specific permissions can be granted to third-party applications, ensuring controlled access to user data.</p>
</li>
<li><p>For example, a cloud storage platform may allow a document editing application to access and modify files while restricting access to sensitive user information.</p>
</li>
</ul>
<h2 id="heading-mobile-application-authentication">Mobile Application Authentication</h2>
<ul>
<li><p>Enhance the security of mobile applications by implementing OAuth 2.0 for authentication.</p>
</li>
<li><p>For instance, a mobile banking app can utilize OAuth 2.0 to authenticate users securely, granting them access to their account information without the need to store sensitive credentials on the device. This ensures that users' financial data remains protected even if their mobile device is lost or stolen</p>
</li>
</ul>
<p>These are just a few examples of how OAuth 2.0 is utilized in various scenarios to enhance security, streamline user experiences, and enable secure integration between different applications and platforms.</p>
<blockquote>
<p>OAuth 2.0's flexibility and robustness make it a powerful protocol for ensuring secure authentication and authorization in today's interconnected digital landscape.</p>
</blockquote>
<h1 id="heading-conclusion">Conclusion</h1>
<p>OAuth and OAuth 2.0 play a significant role in enhancing security and simplifying the authorization process for users, applications, and services in today's interconnected world. By understanding the fundamentals of OAuth, the workings of OAuth 2.0, and exploring its use cases with real-world examples, we can leverage these protocols to create secure and seamless user experiences while maintaining control over access to valuable resources.</p>
<p>So, whether you're a developer, a system administrator, or an end-user, embracing OAuth and OAuth 2.0 can empower you with robust security measures and convenient authorization mechanisms.</p>
]]></content:encoded></item></channel></rss>