<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Sdwan on 0x2142 | Networking Nonsense</title>
    <link>https://0x2142.com/tags/sdwan/</link>
    <description>Recent content in Sdwan on 0x2142 | Networking Nonsense</description>
    <image>
      <title>0x2142 | Networking Nonsense</title>
      <url>https://0x2142.com/logo.jpg</url>
      <link>https://0x2142.com/logo.jpg</link>
    </image>
    <generator>Hugo -- 0.143.1</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 14 May 2021 16:10:38 +0000</lastBuildDate>
    <atom:link href="https://0x2142.com/tags/sdwan/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>[How To] Cisco SD-WAN - Onboarding a Catalyst 8000v</title>
      <link>https://0x2142.com/how-to-cisco-sd-wan-onboarding-a-catalyst-8000v/</link>
      <pubDate>Fri, 14 May 2021 16:10:38 +0000</pubDate>
      <guid>https://0x2142.com/how-to-cisco-sd-wan-onboarding-a-catalyst-8000v/</guid>
      <description>Let&amp;rsquo;s look at how to join a Cisco Catalyst 8000v to an SDWAN network</description>
      <content:encoded><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/HyPYLKrPPsk?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p>I&rsquo;ve been getting a handful of questions lately on the process of bringing a Cisco Catalyst 8000v or CSR 1000v into an SD-WAN environment. So I figured maybe I should put something together to share.</p>
<p>On a related note - I&rsquo;ve been debating for a while doing a blog and/or video on building out a Cisco Viptela SD-WAN lab in EVE-NG. This would (tentatively) include everything from building controllers, bringing up remote sites, and template/policy configs.  If this is something you might get value from, please let me know!! I&rsquo;m looking for some motivation :)</p>
<p>Okay - all that being said, let&rsquo;s go ahead and get started.</p>
<blockquote>
<p>Note: This guide should work with CSR 1000v devices as well. But it will NOT be 100% accurate for physical ISR/IOS-XE routers, as there are some additional steps with certificates &amp; the Plug and Play portal to get those running.</p></blockquote>
<hr>
<h2 id="topology">Topology</h2>
<p>So to start with, figured I would share the topology that I&rsquo;m working from. If you read my <a href="/cisco-sdwan-and-umbrella-sig-integration/">last post</a> you might recognize this, but with an added location. This new location (site id 400) contains our Catalyst 8000v VM, running IOS-XE version 17.04.01a.</p>
<p><img alt="001&mdash;Topology" loading="lazy" src="/content/images/2021/05/001---Topology.PNG#center"></p>
<h2 id="controller-or-autonomous-mode">Controller or Autonomous Mode?</h2>
<p>Back in the earlier days of IOS-XE SD-WAN, there used to be two separate software images to load on your network appliance - one for traditional IOS-XE, and one for SD-WAN code.</p>
<p>With the newer releases of IOS-XE, we&rsquo;re now getting a unified image that contains both software sets. So our options now are two modes: autonomous (traditional IOS-XE) or controller (SD-WAN).</p>
<p>One way we can check this, is by running a <em>show version</em> and looking for <strong>Router operating mode</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Router# show version
</span></span><span class="line"><span class="cl">&lt;-- Output omitted --&gt;
</span></span><span class="line"><span class="cl">cisco C8000V (VXE) processor (revision VXE) with 2035355K/3075K bytes of memory.
</span></span><span class="line"><span class="cl">Processor board ID XXXXXXXXXXX
</span></span><span class="line"><span class="cl">Router operating mode: Autonomous
</span></span><span class="line"><span class="cl">4 Gigabit Ethernet interfaces
</span></span><span class="line"><span class="cl">32768K bytes of non-volatile configuration memory.
</span></span><span class="line"><span class="cl">3965744K bytes of physical memory.
</span></span><span class="line"><span class="cl">5234688K bytes of virtual hard disk at bootflash:.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Configuration register is 0x2102
</span></span></code></pre></div><p>Okay, and looks like the Catalyst 8000v image I&rsquo;m using booted up in autonomous mode. No big deal, we can change modes pretty easily!</p>
<p>So in normal exec-mode, we&rsquo;ll use the command <em>controller-mode enable</em>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Router# controller-mode enable
</span></span><span class="line"><span class="cl">Enabling controller mode will erase the nvram filesystem, remove all configuration files, and reload the box!
</span></span><span class="line"><span class="cl">Ensure the BOOT variable points to a valid image
</span></span><span class="line"><span class="cl">Continue? [confirm]
</span></span></code></pre></div><p>As noted in the snippet above - this command will erase the config! So you will want to take a backup snapshot of your existing configuration, if this is already being used.  In my case, it&rsquo;s a brand new VM - so we&rsquo;ll continue on.</p>
<p>Once the device is back online, we&rsquo;ll log in with the default login of <strong>admin/admin</strong>. Note that you will be forced to change this upon first login.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">User Access Verification
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Username: admin
</span></span><span class="line"><span class="cl">Password:
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Default admin password needs to be changed.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Enter new password:
</span></span><span class="line"><span class="cl">Confirm password:
</span></span><span class="line"><span class="cl">Router#
</span></span></code></pre></div><p>And just for fun, we&rsquo;ll run a <em>show version</em> again to ensure we&rsquo;re in controller mode:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Router# show version 
</span></span><span class="line"><span class="cl">&lt;-- Output omitted --&gt;
</span></span><span class="line"><span class="cl">cisco C8000V (VXE) processor (revision VXE) with 2035355K/3075K bytes of memory.
</span></span><span class="line"><span class="cl">Processor board ID XXXXXXXXXXX
</span></span><span class="line"><span class="cl">Router operating mode: Controller-Managed
</span></span><span class="line"><span class="cl">4 Gigabit Ethernet interfaces
</span></span><span class="line"><span class="cl">32768K bytes of non-volatile configuration memory.
</span></span><span class="line"><span class="cl">3965756K bytes of physical memory.
</span></span><span class="line"><span class="cl">5234688K bytes of virtual hard disk at bootflash:.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Configuration register is 0x2102
</span></span></code></pre></div><h2 id="catalyst-8000v-initial-config">Catalyst 8000v Initial Config</h2>
<p>So since this is a lab environment, and I&rsquo;m not trying to provide any Day0 provisioning files - I&rsquo;ll have to complete some manual configuration to get started.</p>
<p>First, we&rsquo;ll start with some SD-WAN specific config (site id, org name, etc). I&rsquo;ll be using the values that apply to my lab, so be sure to change these in yours!</p>
<blockquote>
<p>Note: If you haven&rsquo;t used IOS-XE SD-WAN previously, be aware that &ldquo;conf t&rdquo; doesn&rsquo;t work! In SD-WAN/controller mode, you&rsquo;ll use &ldquo;config-transaction&rdquo;. In this mode, all changes will need to be committed before they&rsquo;re applied to the device.</p></blockquote>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Router# config-transaction
</span></span><span class="line"><span class="cl"> ! Set hostname
</span></span><span class="line"><span class="cl">Router(config)# hostname Cat8k-Site400
</span></span><span class="line"><span class="cl"> ! Required SD-WAN system configs
</span></span><span class="line"><span class="cl">Router(config)# system
</span></span><span class="line"><span class="cl">Router(config-system)# organization-name &#34;SDWAN-LAB&#34;
</span></span><span class="line"><span class="cl">Router(config-system)# site-id 400
</span></span><span class="line"><span class="cl">Router(config-system)# vbond 192.168.99.241
</span></span><span class="line"><span class="cl">Router(config-system)# system-ip 10.10.10.237
</span></span><span class="line"><span class="cl">Router(config-system)# commit
</span></span><span class="line"><span class="cl">Commit complete.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Cat8k-Site400# 
</span></span></code></pre></div><p>Once we have those basics configured, at a minimum we&rsquo;ll also need to configure our internet-facing tunnel interface. This allows our Catalyst 8000v to communicate with our control plane for bring-up.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Cat8k-Site400#config-transaction
</span></span><span class="line"><span class="cl"> ! Config physical interface (This is a lab, so I&#39;m using a static IP)
</span></span><span class="line"><span class="cl">Cat8k-Site400(config)# interface GigabitEthernet1
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# ip address 192.168.99.237 255.255.255.0
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# no shut
</span></span><span class="line"><span class="cl"> ! Config tunnel interface
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# interface Tunnel1
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# no shut
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# ip unnumbered GigabitEthernet1
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# tunnel source GigabitEthernet1
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# tunnel mode sdwan
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# exit
</span></span><span class="line"><span class="cl"> ! SD-WAN tunnel config
</span></span><span class="line"><span class="cl">Cat8k-Site400(config)# sdwan
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-sdwan)# interface GigabitEthernet1
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-interface-GigabitEthernet1)# tunnel-interface
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-tunnel-interface)# encapsulation ipsec
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-tunnel-interface)# color biz-internet
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-tunnel-interface)# exit
</span></span><span class="line"><span class="cl"> ! Default route to our internet gateway
</span></span><span class="line"><span class="cl">Cat8k-Site400(config)# ip route 0.0.0.0 0.0.0.0 192.168.99.1
</span></span><span class="line"><span class="cl">Cat8k-Site400(config)# commit
</span></span><span class="line"><span class="cl">Commit complete.
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Cat8k-Site400#
</span></span></code></pre></div><h2 id="a-note-on-certificates">A Note on Certificates</h2>
<p>Since this is a lab environment, I&rsquo;m using self-signed local certificate authority to provision all of my certificate infrastructure. Because of this, I&rsquo;ll need to install my local CA certificate on the Catalyst 8000v. If you&rsquo;re using the default Cisco-provisioned certificate setup, you won&rsquo;t need to do this.</p>
<p>Since my SD-WAN lab doesn&rsquo;t have direct access to my local TFTP server - I do have an out-of-band management interface connected to my Cat 8000v. We&rsquo;ll start by configuring that interface:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Cat8k-Site400# config-transaction
</span></span><span class="line"><span class="cl">Cat8k-Site400(config)# vrf definition 512
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-vrf)# address-family ipv4
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-vrf)# exit
</span></span><span class="line"><span class="cl">Cat8k-Site400(config)# interface GigabitEthernet 3
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# vrf forwarding 512
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# ip address dhcp
</span></span><span class="line"><span class="cl">Cat8k-Site400(config-if)# exit
</span></span><span class="line"><span class="cl">Cat8k-Site400(config)# ip tftp source-interface GigabitEthernet 3
</span></span><span class="line"><span class="cl">Cat8k-Site400(config)# commit
</span></span></code></pre></div><p>The standard management VRF/VPN for SD-WAN is 512, so I kept that config to match when I configured this management interface. This will all be over-written anyways once we get connected to vManage &amp; configure/push our template configs.</p>
<p>Once that&rsquo;s done, we can go ahead and copy our CA certificate to bootflash.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Cat8k-Site400# copy tftp://10.0.0.2/cacert.pem bootflash:
</span></span><span class="line"><span class="cl">Destination filename [cacert.pem]?
</span></span><span class="line"><span class="cl">Accessing tftp://10.0.0.2/cacert.pem...
</span></span><span class="line"><span class="cl">Loading cacert.pem from 10.0.0.2 (via GigabitEthernet3): !
</span></span><span class="line"><span class="cl">[OK - 1406 bytes]
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">1406 bytes copied in 0.112 secs (12554 bytes/sec)
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Cat8k-Site400# dir bootflash: | inc cacert.pem
</span></span><span class="line"><span class="cl">16      -rw-             1406  May 14 2021 14:41:27 +00:00  cacert.pem
</span></span><span class="line"><span class="cl">```text
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Then we&#39;ll use the command below to install the CA certificate:
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">```text
</span></span><span class="line"><span class="cl">Cat8k-Site400# request platform software sdwan root-cert-chain install bootflash:cacert.pem
</span></span><span class="line"><span class="cl">Uploading root-ca-cert-chain via VPN 0
</span></span><span class="line"><span class="cl">Copying ... /bootflash/cacert.pem via VPN 0
</span></span><span class="line"><span class="cl">Updating the root certificate chain..
</span></span><span class="line"><span class="cl">Successfully installed the root certificate chain
</span></span></code></pre></div><p>And we can validate by using the <em>show sdwan certificate root-ca-cert</em> command:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Cat8k-Site400 show sdwan certificate root-ca-cert
</span></span><span class="line"><span class="cl">Certificate:
</span></span><span class="line"><span class="cl">    Data:
</span></span><span class="line"><span class="cl">        Version: 3 (0x2)
</span></span><span class="line"><span class="cl">        Serial Number:
</span></span><span class="line"><span class="cl">            11:3b:0a:12:17:b0:e0:b5:4b:fa:c2:e9:2c:9c:12:84
</span></span><span class="line"><span class="cl">        Signature Algorithm: sha1WithRSAEncryption
</span></span><span class="line"><span class="cl">        Issuer: DC = local, DC = 0x2142, O = SDWAN-LAB, CN = 0x2142-0XWIN1-CA-2
</span></span><span class="line"><span class="cl">        Validity
</span></span><span class="line"><span class="cl">            Not Before: Nov 29 20:00:11 2018 GMT
</span></span><span class="line"><span class="cl">            Not After : Nov 29 20:10:11 2043 GMT
</span></span><span class="line"><span class="cl">        Subject: DC = local, DC = 0x2142, O = SDWAN-LAB, CN = 0x2142-0XWIN1-CA-2
</span></span><span class="line"><span class="cl">        Subject Public Key Info:
</span></span><span class="line"><span class="cl">            Public Key Algorithm: rsaEncryption
</span></span><span class="line"><span class="cl">                RSA Public-Key: (2048 bit)
</span></span><span class="line"><span class="cl">                Modulus:
</span></span><span class="line"><span class="cl">        &lt;-- Output omitted --&gt;
</span></span></code></pre></div><h2 id="activating-the-catalyst-8000v">Activating the Catalyst 8000v</h2>
<p>Almost there! Now that we&rsquo;ve finished our pre-config &amp; added our root CA certificate - we&rsquo;re ready to join the Catalyst 8000v to the SD-WAN fabric.</p>
<p>We&rsquo;ll start over in vManage - by going to <strong>Configuration &gt; Devices</strong>.</p>
<p>Then we&rsquo;ll find our target, unused Catalyst 8000v device. Click the ellipsis on the right side, then select <strong>Generate Bootstrap Configuration</strong></p>
<p><img alt="002&mdash;Generate-bootstap-config" loading="lazy" src="/content/images/2021/05/002---Generate-bootstap-config.png#center"></p>
<p>This will give us a prompt to select which configuration style to generate. We&rsquo;ll leave this on &ldquo;Cloud-init&rdquo;:</p>
<p><img alt="003&mdash;bootstrap" loading="lazy" src="/content/images/2021/05/003---bootstrap.PNG#center"></p>
<p>Once we hit okay - we&rsquo;ll be presented with the info we need. We won&rsquo;t necessarily need all of this information, but we&rsquo;ll want to take note of our <strong>uuid</strong> and <strong>otp</strong>:</p>
<p><img alt="004&mdash;otp" loading="lazy" src="/content/images/2021/05/004---otp.png#center"></p>
<p>We&rsquo;ll drag this info back over to our Catalyst 8000v, and we can now use it to activate the device &amp; join to our SD-WAN fabric.</p>
<p>For the command below, <strong>chassis-number</strong> will be our <strong>uuid</strong> value - and <strong>token</strong> will be our <strong>otp</strong>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Cat8k-Site400# request platform software sdwan vedge_cloud activate chassis-number C8K-178BXXXX-XXXX-XXXX-XXXX-XXXXXXXXBC24 token 421ecxxxxxxxxxxxxxxxxxxxxxbd53b5
</span></span></code></pre></div><h2 id="validation">Validation</h2>
<p>After a few moments, we&rsquo;ll see some log messages start to appear showing our control connections coming up. You might see these on the terminal if you&rsquo;re using the console port, or you can use <em>show log</em>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">*May 14 15:39:06.910: %Cisco-SDWAN-Cat8k-Site400-OMPD-3-ERRO-400002: R0/0: OMPD: vSmart peer 10.10.10.242 state changed to Init
</span></span><span class="line"><span class="cl">*May 14 15:39:07.980: %DMI-5-AUTH_PASSED: R0/0: dmiauthd: User &#39;vmanage-admin&#39; authenticated successfully from 10.10.10.240:48140 and was authorized for netconf over ssh. External groups:
</span></span><span class="line"><span class="cl">*May 14 15:39:08.798: %Cisco-SDWAN-Cat8k-Site400-OMPD-6-INFO-400002: R0/0: OMPD: vSmart peer 10.10.10.242 state changed to Handshake
</span></span><span class="line"><span class="cl">*May 14 15:39:08.804: %Cisco-SDWAN-Cat8k-Site400-OMPD-5-NTCE-400002: R0/0: OMPD: vSmart peer 10.10.10.242 state changed to Up
</span></span><span class="line"><span class="cl">*May 14 15:39:08.808: %Cisco-SDWAN-Cat8k-Site400-OMPD-6-INFO-400005: R0/0: OMPD: Number of vSmarts connected : 1
</span></span><span class="line"><span class="cl">*May 14 15:39:09.827: %Cisco-SDWAN-Cat8k-Site400-OMPD-3-ERRO-400002: R0/0: OMPD: vSmart peer 10.10.10.243 state changed to Init
</span></span><span class="line"><span class="cl">*May 14 15:39:10.584: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON
</span></span><span class="line"><span class="cl">*May 14 15:39:11.756: %Cisco-SDWAN-Cat8k-Site400-OMPD-6-INFO-400002: R0/0: OMPD: vSmart peer 10.10.10.243 state changed to Handshake
</span></span><span class="line"><span class="cl">*May 14 15:39:11.762: %Cisco-SDWAN-Cat8k-Site400-OMPD-5-NTCE-400002: R0/0: OMPD: vSmart peer 10.10.10.243 state changed to Up
</span></span><span class="line"><span class="cl">*May 14 15:39:11.762: %Cisco-SDWAN-Cat8k-Site400-OMPD-6-INFO-400005: R0/0: OMPD: Number of vSmarts connected : 2
</span></span><span class="line"><span class="cl">*May 14 15:39:12.738: %Cisco-SDWAN-Cat8k-Site400-OMPD-6-INFO-400007: R0/0: OMPD: Using policy from peer 10.10.10.242
</span></span><span class="line"><span class="cl">*May 14 15:39:13.570: %Cisco-SDWAN-Cat8k-Site400-FTMD-6-INFO-1000020: R0/0: FTMD: SLA class added : class &#39;Default&#39; at index &#39;1&#39; loss = 25%, latency = 300ms, jitter = 100ms, app-probe-class = None
</span></span><span class="line"><span class="cl">*May 14 15:39:14.738: %Cisco-SDWAN-Cat8k-Site400-OMPD-6-INFO-400007: R0/0: OMPD: Using policy from peer 10.10.10.242
</span></span></code></pre></div><p>We can also see our control connections using the command <em>show sdwan control connections</em>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Cat8k-Site400# show sdwan control connections
</span></span><span class="line"><span class="cl">                                                                                       PEER                                          PEER                                          CONTROLLER
</span></span><span class="line"><span class="cl">PEER    PEER PEER            SITE       DOMAIN PEER                                    PRIV  PEER                                    PUB                                           GROUP
</span></span><span class="line"><span class="cl">TYPE    PROT SYSTEM IP       ID         ID     PRIVATE IP                              PORT  PUBLIC IP                               PORT  ORGANIZATION            LOCAL COLOR     PROXY STATE UPTIME      ID
</span></span><span class="line"><span class="cl">----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
</span></span><span class="line"><span class="cl">vsmart  dtls 10.10.10.242    100        1      192.168.99.242                          12446 192.168.99.242                          12446 SDWAN-LAB  biz-internet    No    up     0:00:00:51  0
</span></span><span class="line"><span class="cl">vsmart  dtls 10.10.10.243    100        1      192.168.99.243                          12446 192.168.99.243                          12446 SDWAN-LAB  biz-internet    No    up     0:00:00:49  0
</span></span><span class="line"><span class="cl">vmanage dtls 10.10.10.240    100        0      192.168.99.240                          12646 192.168.99.240                          12646 SDWAN-LAB  biz-internet    No    up     0:00:00:52  0
</span></span></code></pre></div><p>Of course, we can also check to see our device status in the vManage dashboard as well.</p>
<p>Over on the <strong>Monitor &gt; Network</strong> page, we can see that our new Catalyst 8000v is now online:</p>
<p><img alt="005&mdash;monitor-network" loading="lazy" src="/content/images/2021/05/005---monitor-network.PNG#center"></p>
<hr>
<h2 id="extra-how-do-i-check-the-routing-table-on-an-ios-xe-sd-wan-device">Extra: How do I check the routing table on an IOS-XE SD-WAN device?</h2>
<p>So - if you&rsquo;ve only used the vEdge software devices, you may be used to using the <strong>show ip route</strong> or <strong>show ip route vpn 10</strong> commands.</p>
<p>In the IOS-XE world, <em>most</em> SD-WAN commands are prefixed with the <strong>sdwan</strong> keyword. For example: <strong>show sdwan bfd sessions</strong> (where on vEdges, it would just be <strong>show bfd sessions</strong>)</p>
<p>This might lead you to believe that you can use <strong>show sdwan ip route</strong> or <strong>show sdwan ip route vrf 10</strong> - but these won&rsquo;t work! In fact, you&rsquo;ll get the following message:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Cat8k-Site400# show sdwan ip route
</span></span><span class="line"><span class="cl">% Error: This command is not supported
</span></span></code></pre></div><p>For the IOS-XE based devices, they actually just use the standard IOS-XE routing table and VRF constructs.</p>
<p>So on a vEdge, you would have VPN 0 as your transport VPN. On IOS-XE, this is just the default global routing table, shown with <strong>show ip route</strong>.</p>
<p>But what about our LAN-side service VPNs? In this case, our routes are being dumped into a VRF on the IOS-XE device.</p>
<p>So for example, I have VPN 10 in my lab which is used for LAN-side clients. We can use the <strong>show vrf</strong> command to see that this exists, and then <strong>show ip route vrf 10</strong> to see the routes from our other SD-WAN locations:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Cat8k-Site400# show vrf
</span></span><span class="line"><span class="cl">  Name                             Default RD            Protocols   Interfaces
</span></span><span class="line"><span class="cl">  10                               &lt;not set&gt;             ipv4        Gi2
</span></span><span class="line"><span class="cl">  512                              &lt;not set&gt;             ipv4        Gi3
</span></span><span class="line"><span class="cl">  65528                            &lt;not set&gt;             ipv4        Lo65528
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Cat8k-Site400# show ip route vrf 10
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Routing Table: 10
</span></span><span class="line"><span class="cl">Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
</span></span><span class="line"><span class="cl">       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
</span></span><span class="line"><span class="cl">       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
</span></span><span class="line"><span class="cl">       E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
</span></span><span class="line"><span class="cl">       n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
</span></span><span class="line"><span class="cl">       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
</span></span><span class="line"><span class="cl">       ia - IS-IS inter area, * - candidate default, U - per-user static route
</span></span><span class="line"><span class="cl">       H - NHRP, G - NHRP registered, g - NHRP registration summary
</span></span><span class="line"><span class="cl">       o - ODR, P - periodic downloaded static route, l - LISP
</span></span><span class="line"><span class="cl">       a - application route
</span></span><span class="line"><span class="cl">       + - replicated route, % - next hop override, p - overrides from PfR
</span></span><span class="line"><span class="cl">       &amp; - replicated local route overrides by connected
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">Gateway of last resort is not set
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">      10.0.0.0/24 is subnetted, 2 subnets
</span></span><span class="line"><span class="cl">m        10.2.2.0 [251/0] via 10.10.10.235, 00:09:02, Sdwan-system-intf
</span></span><span class="line"><span class="cl">m        10.3.3.0 [251/0] via 10.10.10.236, 00:09:02, Sdwan-system-intf
</span></span></code></pre></div><hr>
<p>Okay, that&rsquo;s it! Pretty quick process overall - and now we can get into applying our device/feature templates.</p>
<p>Hope this was helpful!!</p>
]]></content:encoded>
    </item>
    <item>
      <title>[How To] Connect Cisco SD-WAN to Umbrella SIG/SWG</title>
      <link>https://0x2142.com/cisco-sdwan-and-umbrella-sig-integration/</link>
      <pubDate>Thu, 22 Apr 2021 15:17:50 +0000</pubDate>
      <guid>https://0x2142.com/cisco-sdwan-and-umbrella-sig-integration/</guid>
      <description>A tutorial for configuring Viptela SDWAN with Cisco Umbrella Secure Internet Gateway &amp;amp; Secure Web Gateway</description>
      <content:encoded><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/kJwtIVp0-R4?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p>In this post, we&rsquo;ll walk through configuring a Cisco Viptela SD-WAN network to integrate with Cisco Umbrella&rsquo;s Secure Internet Gateway (SIG) &amp; Secure Web Gateway (SWG).</p>
<p>If you&rsquo;re interested in reading more about what SIG &amp; SWG are, please check out my <a href="/meraki-mx-and-umbrella-sig-integration/">last post</a> where I walked through this integration with a Meraki MX firewall.</p>
<p>For additional reading, there&rsquo;s also a good Umbrella blog post on all the components of Cisco&rsquo;s SASE architecture, which you can find <a href="https://umbrella.cisco.com/blog/what-goes-into-the-secure-access-service-edge-sase-solution">here</a>.</p>
<p>Okay, with that being said - let&rsquo;s get started!</p>
<hr>
<h2 id="step-1-umbrella-api-keys">Step 1: Umbrella API Keys</h2>
<p>Okay, so we&rsquo;ll start on the Umbrella side. We&rsquo;ll need to generate a set of API keys, which we&rsquo;ll push out to our WAN edge devices. These API keys will allow our remote devices to reach out to Umbrella &amp; auto-configure their SIG tunnels.</p>
<p>We&rsquo;ll log into our Umbrella dashboard at <a href="https://login.umbrella.com/">https://login.umbrella.com/</a></p>
<p>Once we log in, we&rsquo;ll hop over to <strong>Admin &gt; API Keys</strong>. Then up in the upper-right corner, click <strong>Create</strong>.</p>
<p><img alt="001&mdash;umbrella-api-keys-1" loading="lazy" src="/content/images/2021/04/001---umbrella-api-keys-1.png#center"></p>
<p>For this integration, we&rsquo;ll need to select <strong>Umbrella Management</strong> to make sure our API keys have the access they need. Then click <strong>Create.</strong> Easy enough, right?</p>
<p>Once we do that, the Umbrella dashboard will display our API keys - which we&rsquo;ll need to copy over to our Viptela SD-WAN environment.</p>
<p><img alt="002&mdash;umbrella-keys" loading="lazy" src="/content/images/2021/04/002---umbrella-keys.png#center"></p>
<p>We&rsquo;ll also need to collect our Umbrella Organization ID. This is actually just embedded within the Umbrella Dashboard URL, and should be a seven-digit number. For example, if we look at our current URL on the API keys page:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">https://dashboard.umbrella.com/o/&lt;ORG ID&gt;/#/admin/apikeys
</span></span></code></pre></div><p>And that&rsquo;s all we need for now from the Umbrella side. So let&rsquo;s hop over to Viptela.</p>
<h2 id="step-2-viptela-templates--config">Step 2: Viptela Templates &amp; Config</h2>
<p>For this post, I&rsquo;ll be using my SD-WAN lab in EVE-NG. Currently I just upgraded the lab to run Viptela version 20.4.1, though the SIG integration has been supported since 20.1.</p>
<p>Just for reference, here is the lap topology that I&rsquo;m working with:</p>
<p><img alt="003&mdash;eve-topology-1" loading="lazy" src="/content/images/2021/04/003---eve-topology-1.png#center"></p>
<p>This lab includes a bridged connection to allow direct internet access from the lab network.</p>
<p>To configure our SIG automatic tunnels, we&rsquo;ll need to create / update a few templates:</p>
<ul>
<li>Create a <strong>SIG Credentials</strong> feature template</li>
<li>Create a <strong>SIG</strong> feature template</li>
<li>Assign SIG templates to device templates</li>
<li>Edit Service-side VPN Template to inject a service route</li>
</ul>
<h3 id="2a-creating-a-sig-credentials-template">2a: Creating a SIG Credentials Template</h3>
<p>First we&rsquo;ll create a template which will store our Umbrella API credentials.</p>
<p>In the vManage dashboard, we&rsquo;ll go to <strong>Configuration &gt; Templates</strong>, then drop into the <strong>Feature</strong> tab, and click on <strong>Add Template</strong>.</p>
<p><img alt="004&mdash;add-template" loading="lazy" src="/content/images/2021/04/004---add-template.png#center"></p>
<p>Once we get to the next screen, we&rsquo;ll select our device type. In my case, I&rsquo;m using a <strong>vEdge Cloud</strong>.</p>
<p>A list of templates will pop up - we&rsquo;ll drop down to <strong>SIG Credentials</strong>, which will be near the bottom under the <strong>Other Templates</strong> header.</p>
<p><img alt="005&mdash;SIGCREDTEMPLATE" loading="lazy" src="/content/images/2021/04/005---SIGCREDTEMPLATE.png#center"></p>
<p>We&rsquo;ll then be taken to the page where we create our template.</p>
<p>We&rsquo;ll fill in our template name &amp; description, then paste in our Umbrella details (Org ID, API Key, API Secret).</p>
<p><img alt="006&mdash;SIG-Cred-template-page" loading="lazy" src="/content/images/2021/04/006---SIG-Cred-template-page.png#center"></p>
<p>Once we&rsquo;re done - We&rsquo;ll hit <strong>Save</strong>.</p>
<blockquote>
<p>Note: At time of writing, the &ldquo;Get Keys&rdquo; button only functions if you&rsquo;ve purchased your SD-WAN subscription with DNA Premier licensing. This license level includes Umbrella SIG, and allows this 1-click integration that pulls your Umbrella API keys automatically.</p></blockquote>
<h3 id="2b-creating-a-sig-tunnel-template">2b: Creating a SIG Tunnel Template</h3>
<p>Okay, next we&rsquo;ll need to create another feature template to specify our IPSec tunnel configuration.</p>
<p>Just like before, we&rsquo;ll head back over to <strong>Configuration &gt; Templates &gt; Feature &gt; Add Template</strong>.</p>
<p>This time, after selecting our device type, we&rsquo;ll choose <strong>Secure Internet Gateway (SIG) / WAN</strong> - which is located under the <strong>VPN</strong> header.</p>
<p><img alt="007&mdash;SIGWANTEMPLATE" loading="lazy" src="/content/images/2021/04/007---SIGWANTEMPLATE.png#center"></p>
<p>In the template configuration, we&rsquo;ll give the template a name &amp; description as always. Then we&rsquo;ll jump down to the tunnel config.</p>
<p>We&rsquo;ll select <strong>Umbrella</strong> for SIG Provider, then click <strong>Add Tunnel</strong>.</p>
<p><img alt="008&mdash;sig-tunnel-02" loading="lazy" src="/content/images/2021/04/008---sig-tunnel-02.png#center"></p>
<p>Within the tunnel config, we&rsquo;ll specify an interface name - I&rsquo;ll name mine <em>ipsec1</em> (and I&rsquo;ll create an <em>ipsec2</em> shortly). We&rsquo;ll also specify a <em>Tunnel Source</em>, which in my lab is <strong>ge0/0</strong> for the biz-internet VPN 0 interface.</p>
<p><img alt="008&mdash;sig-tunnel-03" loading="lazy" src="/content/images/2021/04/008---sig-tunnel-03.png#center"></p>
<p>We&rsquo;ll keep <strong>Data-Center</strong> as <strong>Primary</strong>, then click <strong>Add</strong>. Then - we&rsquo;ll add a second tunnel configuration, but using <strong>Data-Center</strong> as <strong>Secondary</strong> and the interface name as <em>ipsec2</em>.</p>
<p>When all that is done, we should have the following:</p>
<p><img alt="008&mdash;sig-tunnel-04" loading="lazy" src="/content/images/2021/04/008---sig-tunnel-04.png#center"></p>
<p>If we scroll down to the bottom of the template config, we&rsquo;ll have some settings for <strong>High Availability</strong>. Here, we&rsquo;ll specify what our active &amp; backup IPSec tunnels are, and their weights. I&rsquo;ll specify <em>ipsec1</em> as active &amp; <em>ipsec2</em> as backup. Then click <strong>Save</strong> to finish our template.</p>
<blockquote>
<p>Note: Weight settings are only available starting with 20.4.1 &amp; allow for ECMP routing to SIG. Not shown above, you can create up to four HA tunnel pairs. Depending on weighting, you can equal-cost or unequal-cost load balance between those pairs.</p>
<p>Why would you want to load balance across multiple tunnels? At time of writing, each IPSec tunnel is limited to a maximum 250Mb/s throughput. By creating multiple tunnels &amp; load balancing, we can overcome this limitation if we need higher bandwidth.</p></blockquote>
<h3 id="2c-attaching-sig-to-device-templates">2c: Attaching SIG to Device Templates</h3>
<p>After we&rsquo;ve built out our two SIG templates, we can now attach them to our device templates.</p>
<p>For me, I currently only have a single device template which is applied to all of my remote WAN edge devices.</p>
<p>So we&rsquo;ll go back to <strong>Configuration &gt; Templates</strong> and find whichever device template we want to use - then click the ellipsis on the far right, end select <strong>Edit</strong>.</p>
<p><img alt="009&mdash;edit-device-template" loading="lazy" src="/content/images/2021/04/009---edit-device-template.png#center"></p>
<p>In the device template, we&rsquo;ll scroll down and look for our <strong>VPN 0</strong> configuration under <strong>Transport &amp; Management VPN</strong>. We&rsquo;ll attach our SIG tunnel template to VPN 0, since that&rsquo;s where those IPSec tunnels are being sourced from.</p>
<p>On the right side, under <strong>Additional VPN 0 Templates</strong>, we&rsquo;ll click <strong>Secure Internet Gateway</strong> to add our template. Then from the drop-down, we can select the feature template we just created:</p>
<p><img alt="010&mdash;device-template-vpn0" loading="lazy" src="/content/images/2021/04/010---device-template-vpn0.png#center"></p>
<p>We&rsquo;ll also include our SIG credentials template, which we can find at the bottom of the page, under <strong>Additional Templates</strong>:</p>
<p><img alt="011&mdash;sig-cred-template-attach-1" loading="lazy" src="/content/images/2021/04/011---sig-cred-template-attach-1.png#center"></p>
<p>Once we&rsquo;re done, we can click <strong>Save</strong> at the bottom. This will take us through the process of pushing out these changes to our remote WAN edge devices. When this configuration is deployed, each vEdge will now reach out to Umbrella &amp; auto-configure an IPSec tunnel.</p>
<blockquote>
<p>Note: While the IPSec tunnels will be established when this configuration is pushed - no traffic will flow over them yet. We&rsquo;ll need to add a service route for that, which we&rsquo;ll do next!</p></blockquote>
<h3 id="2d-injecting-a-service-route">2d: Injecting a Service Route</h3>
<p>Now we have our IPSec tunnels deployed - all we need to do is start routing traffic out to Umbrella. We&rsquo;ll accomplish this using a service route on our LAN-side VPN.</p>
<p>So we&rsquo;ll go over to <strong>Configuration &gt; Templates &gt; Feature</strong> - and we&rsquo;ll scroll down &amp; find whichever template we&rsquo;re currently using on our LAN side. For me, I want VPN 10 to route over the tunnels, so I&rsquo;ll be editing my VPN 10 template.</p>
<p>Within the template, we&rsquo;ll scroll down to the <strong>Service Route</strong> section, click <strong>New Service Route</strong>, and we&rsquo;ll enter our desired prefix. This will be what traffic will be routed over the IPSec tunnel to Umbrella. Since this is intended to be an internet gateway, I&rsquo;ll enter 0.0.0.0/0 to inject a default route to Umbrella.</p>
<p>Service should be pre-selected as <strong>SIG</strong>, so we&rsquo;ll click <strong>Add</strong>, then <strong>Update</strong> &amp; deploy our changes to the remote edge devices.</p>
<p><img alt="012&mdash;service-route" loading="lazy" src="/content/images/2021/04/012---service-route.png#center"></p>
<h2 id="step-3-validation--troubleshooting">Step 3: Validation &amp; Troubleshooting</h2>
<p>Awesome! Now we should have everything configured &amp; working. So let&rsquo;s jump through some initial testing and validation we can do.</p>
<p>Within vManage, we can check the status of our IPSec tunnels. We&rsquo;ll go over to <strong>Monitor &gt; Network</strong> then select one of our WAN edge devices.</p>
<p>We&rsquo;ll click on the <strong>Interfaces</strong> tab on the left side - and we should be able to see a list of all interfaces on our device. This should include an ipsec1 &amp; ipsec2 interface.</p>
<p>I&rsquo;ve also selected the <strong>Real Time</strong> monitor on mine, and filtered to just show traffic on the ipsec1 interface:</p>
<p><img alt="013&mdash;monitor" loading="lazy" src="/content/images/2021/04/013---monitor.png#center"></p>
<p>You might recall from my topology above, that I have a linux VM running behind each of the two vEdge Cloud appliances. Using these, I can also test web access &amp; see what my external IP is:</p>
<p><img alt="014&mdash;linuxVM" loading="lazy" src="/content/images/2021/04/014---linuxVM.png#center"></p>
<p>And sure enough, I am getting a 146.112.x.x address - which belongs to the Umbrella datacenter.</p>
<p>If we log into one of our vEdge devices, we can check the routing table with <strong>show ip route vpn 10</strong> (or whichever VPN you&rsquo;re using for the LAN-side). We should see our default 0.0.0.0/0 route via ipsec1, with a next-hop-VPN of VPN0:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">vEdge-01# show ip route vpn 10
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">     ADDRESS               PATH             PROTOCOL          NEXTHOP  NEXTHOP                         NEXTHOP
</span></span><span class="line"><span class="cl">VPN  FAMILY   PREFIX       ID    PROTOCOL   SUB TYPE  METRIC  IFNAME   ADDR     TLOC IP  COLOR  ENCAP  VPN      STATUS
</span></span><span class="line"><span class="cl">------------------------------------------------------------------------------------------------------------------------
</span></span><span class="line"><span class="cl">10   ipv4     0.0.0.0/0    0     std-ipsec  -         0       ipsec1   -        -        -      -      0        F,S
</span></span><span class="line"><span class="cl">10   ipv4     10.2.2.0/24  0     connected  -         0       ge0/2    -        -        -      -      -        F,S
</span></span></code></pre></div><p>We can also check specifically our SIG tunnel status using the command <strong>show secure-internet-gateway tunnels</strong>:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">vEdge-01# show secure-internet-gateway tunnels
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">TUNNEL                                                        API   LAST
</span></span><span class="line"><span class="cl">IF                                                            HTTP  SUCCESSFUL     TUNNEL
</span></span><span class="line"><span class="cl">NAME    TUNNEL ID  TUNNEL NAME                     FSM STATE  CODE  REQ            STATE
</span></span><span class="line"><span class="cl">-------------------------------------------------------------------------------------------
</span></span><span class="line"><span class="cl">ipsec1  530233543  SITE200SYS10x10x10x235IFipsec1  st-tun-up  200   create-tunnel  -
</span></span><span class="line"><span class="cl">ipsec2  530233542  SITE200SYS10x10x10x235IFipsec2  st-tun-up  200   create-tunnel  -
</span></span></code></pre></div><p>In that output above, we&rsquo;ll see that we have both ipsec1 &amp; ipsec2 tunnels shown. The last API queries to Umbrella have a HTTP 200, which is good. We&rsquo;ll also see our tunnel names, which we can use to find our device tunnel configuration in the Umbrella dashboard.</p>
<p>The tunnel name might look like a mess at first, but it&rsquo;s a unique identifier to represent each tunnel that was created. So if we break it down for this vEdge:</p>
<ul>
<li>This vEdge is at Site ID 200
<ul>
<li>Shown as &ldquo;SITE200&rdquo;</li>
</ul>
</li>
<li>This vEdge has a system IP of 10.10.10.235
<ul>
<li>Shown as &ldquo;SYS10x10x10x235&rdquo;</li>
</ul>
</li>
<li>This vEdge has two IPSec interfaces, ipsec1 &amp; ipsec2
<ul>
<li>Shown as &ldquo;IFipec1&rdquo; and &ldquo;IFipsec2&rdquo;</li>
</ul>
</li>
</ul>
<p>If we jump over to the Umbrella dashboard, we&rsquo;ll see the same. Within the Umbrella dashboard, we can jump to <strong>Deployments &gt; Network Tunnels</strong>.</p>
<p>On this page, we should see a total of four tunnels listed (two from each vEdge appliance):</p>
<p><img alt="015&mdash;Umbrella-tunnel-status" loading="lazy" src="/content/images/2021/04/015---Umbrella-tunnel-status.png#center"></p>
<p>And with everything configured &amp; validated - now we can move onto configuring firewall and web filtering policies within Umbrella!</p>
<p>If you&rsquo;re interested in seeing how to configure Umbrella&rsquo;s cloud firewall &amp; web filtering policies - please check out my <a href="https://www.youtube.com/watch?v=kJwtIVp0-R4">YouTube Video</a> above!</p>
]]></content:encoded>
    </item>
    <item>
      <title>[How To] Connect Meraki MX to Umbrella SIG/SWG</title>
      <link>https://0x2142.com/meraki-mx-and-umbrella-sig-integration/</link>
      <pubDate>Tue, 23 Mar 2021 16:00:00 +0000</pubDate>
      <guid>https://0x2142.com/meraki-mx-and-umbrella-sig-integration/</guid>
      <description>A tutorial for configuring a Meraki MX with Cisco Umbrella Secure Internet Gateway &amp;amp; Secure Web Gateway</description>
      <content:encoded><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/GfVEQzxT10g?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p>In today&rsquo;s blog post - we&rsquo;ll be checking out how to integrate a Meraki MX firewall to Cisco&rsquo;s Umbrella Secure Internet Gateway (SIG) &amp; Secure Web Gateway (SWG) services.</p>
<p>Interested in seeing how to do this with Cisco Viptela SD-WAN? Check out <a href="/cisco-sdwan-and-umbrella-sig-integration/">this post</a></p>
<blockquote>
<p>Note: This integration is still rather new - so I anticipate some of the screenshots &amp; steps below may differ as this post ages.</p></blockquote>
<hr>
<h2 id="what-are-sig--swg">What are SIG &amp; SWG?</h2>
<p>Good question! A lot of us are probably familiar with Cisco Umbrella (formerly OpenDNS) for the DNS-layer security products. Using Cisco Umbrella, we can configure our end PCs or DNS forwarders to use the Cisco DNS servers. Then, we apply security policies to allow/deny DNS queries based on our policy.</p>
<p>Now applying security policy at the DNS level is great! Typical web filtering only inspects HTTP/HTTPS traffic, but inspecting DNS traffic allows us to stop threats that might not use those typical ports. While there may be some applications or malware that use hard-coded IP addresses, a good majority use a domain name that requires a DNS lookup.</p>
<p>But what if we wanted to still do web filtering too? Or maybe we want a centralized, cloud-hosted firewall service? That&rsquo;s where Umbrella SIG &amp; SWG come in.</p>
<p>Secure Web Gateway (SWG) is pretty much exactly what it sounds like. It&rsquo;s a cloud-hosted web filter or web proxy, where we can set URL-based policys to permit or deny access. It supports the usual allow-lists, deny-lists, HTTPS inspection, file inspection, and policies based on user/group identities.</p>
<p>Secure Internet Gateway (SIG) is a large, cloud-hosted firewall service. What we can do with SIG is tunnel all of our traffic to one centrallized location to apply firewall policies (permit/deny/etc).</p>
<p>Why would we want either of these functions to be cloud-hosted? Well we might not have the resources at every remote site to perform firewalling &amp; web filtering - or we don&rsquo;t want to invest in beefy hardware in our corporate datacenter, and backhaul all of our remote traffic back for inspection. The cloud-hosted piece also means a central management point, so only one place to make change for all of our remote sites - rather than having to touch dozens or hundreds of remote devices&hellip;..Did someone say SASE? 🙃</p>
<p>With all that said - Let&rsquo;s get into making this work!</p>
<blockquote>
<p>Note: There are many ways to use Umbrella SIG/SWG (IPSec tunnel, PAC file, Anyconnect, etc). This particular post will only cover IPSec via Meraki MX.</p></blockquote>
<h2 id="step-1-getting-our-keys">Step 1: Getting our Keys</h2>
<p>First thing we&rsquo;ll need to do is on the Umbrella side. We&rsquo;ll need to generate tunnel keys for our Meraki MX to use for IPSec negotiation.</p>
<p>We&rsquo;ll log into our Umbrella dashboard at <a href="https://login.umbrella.com/">https://login.umbrella.com/</a></p>
<p>Once we&rsquo;re in, we&rsquo;ll navigate to <strong>Deployments</strong> &gt; <strong>Core Identities</strong> &gt; <strong>Network Tunnels</strong>. Shown below, we currently have no tunnels configured:</p>
<p><img alt="001&mdash;umbrella-keys-1" loading="lazy" src="/content/images/2021/03/001---umbrella-keys-1.PNG#center"></p>
<p>In the upper right corner, let&rsquo;s click the <strong>Add Tunnel</strong> button.</p>
<p>We&rsquo;ll now see the following screen to begin creating our IPSec tunnel:</p>
<p><img alt="002&mdash;Umbrella-tunnel-create-1" loading="lazy" src="/content/images/2021/03/002---Umbrella-tunnel-create-1.png#center"></p>
<p>Here, we&rsquo;ll need to specify a name for our tunnel &amp; which device type. The name can be anything we choose that helps us identify what locations are using this tunnel. I&rsquo;ve specified <em>MX64</em> as my tunnel name, since I only have one MX that I&rsquo;ll be testing this with. We also have <strong>Meraki MX</strong> as an option in the <em>Device Type</em> drop down - so we&rsquo;ll select that as well. Then, we&rsquo;ll click <strong>Next</strong>.</p>
<p>Then we&rsquo;ll need to configure our <strong>Tunnel ID</strong> and <strong>Passphrase</strong>:</p>
<p><img alt="003&mdash;Umbrella-tunnel-create-2" loading="lazy" src="/content/images/2021/03/003---Umbrella-tunnel-create-2.png#center"></p>
<p>The <strong>Tunnel ID</strong> we&rsquo;ll be sending later, as part of our IPSec local ID. The passphrase will be used as our pre-shared key for the tunnel config. Once we&rsquo;re done with that, click <strong>Save</strong>.</p>
<p>As long as our ID &amp; passphrase are all good, we&rsquo;ll be presented with a box to easily copy these parameters into the Meraki config:</p>
<p><img alt="004&mdash;Umbrella-tunnel-create-3" loading="lazy" src="/content/images/2021/03/004---Umbrella-tunnel-create-3.png#center"></p>
<p>Finally, we&rsquo;ll be dropped back to our <em>Network Tunnels</em> page - where we can see that our tunnel is configured, but not yet established. Let&rsquo;s fix that &amp; hop over to the Meraki dashboard!</p>
<p><img alt="005&mdash;Umbrella-tunnel-create-4" loading="lazy" src="/content/images/2021/03/005---Umbrella-tunnel-create-4.png#center"></p>
<h2 id="step-2-meraki-mx-ipsec-configuration">Step 2: Meraki MX IPSec Configuration</h2>
<p>Okay, now onto the fun stuff.</p>
<p>We&rsquo;ll log into our Meraki Dashboard at <a href="https://account.meraki.com/secure/login/dashboard_login">https://account.meraki.com/secure/login/dashboard_login</a></p>
<p>Once we&rsquo;re in, you&rsquo;ll need to select the network with the MX you want to connect. For me, I currently only have a single network, which contains my MX firewall.</p>
<p>Then we&rsquo;ll navigate to <strong>Security &amp; SD-WAN</strong> &gt; <strong>Configure</strong> &gt; <strong>Site-to-site VPN</strong>.</p>
<p><img alt="006&mdash;Meraki-MX-VPN-1" loading="lazy" src="/content/images/2021/03/006---Meraki-MX-VPN-1.png#center"></p>
<p>Assuming we have no other VPNs configured, you&rsquo;ll have to change the VPN <strong>Type</strong> to <strong>Hub (Mesh)</strong> or <strong>Spoke</strong>. In my case, Umbrella SIG will be the only VPN I&rsquo;ll have configured - so I&rsquo;ll go ahead and use <strong>Hub (Mesh)</strong>. Don&rsquo;t mind the error regarding exit hubs, as we&rsquo;ll be configuring a non-Meraki peer below.</p>
<p><img alt="007&mdash;Meraki-MX-VPN-2" loading="lazy" src="/content/images/2021/03/007---Meraki-MX-VPN-2.PNG#center"></p>
<p>Okay, scrolling down the page just a bit - we&rsquo;ll need to specify which VLANs/internal subnets will be routed across the VPN &amp; pushed through Umbrella for SIG/SWG:</p>
<p><img alt="008&mdash;Meraki-MX-VPN-3-1" loading="lazy" src="/content/images/2021/03/008---Meraki-MX-VPN-3-1.PNG#center"></p>
<p>For testing purposes, I have a VM in a subnet labeled <em>DMZ</em> that I&rsquo;ll be using - So that will be the only VLAN that I&rsquo;ll set to <strong>VPN On</strong>.</p>
<p>Next we&rsquo;ll take a look at configuring <strong>Non-Meraki VPN Peers</strong>.</p>
<p>As shown in the screenshot below, we&rsquo;ll need to configure the following settings:</p>
<ul>
<li>Name - This is locally significant, I set mine to <em>Umbrella_SIG</em></li>
<li>IKE Version - Set this to IKEv2</li>
<li>IPSec Policies - Custom - See below</li>
<li>Public IP - This is the peer Umbrella Datacenter
<ul>
<li>Choose the DC closest to you <a href="https://docs.umbrella.com/umbrella-user-guide/docs/cisco-umbrella-data-centers">here</a></li>
<li>For this post, I&rsquo;m using the New York DC</li>
</ul>
</li>
<li>Local ID - Set this to the Tunnel ID we got from Umbrella</li>
<li>Remote ID - Leave blank</li>
<li>Private Subnets - This is what destination IPs will be routed over the tunnel
<ul>
<li>Since this is intended as an <em>Internet</em> gateway, we&rsquo;ll use 0.0.0.0/0</li>
</ul>
</li>
<li>Preshared Secret - Set this to the passphrase we configured in Umbrella</li>
<li>Availability - Set this to which networks this tunnel should apply
<ul>
<li>Since I only have 1 network &amp; 1 MX, I set this to <em>All Networks</em></li>
</ul>
</li>
</ul>
<p><img alt="009&mdash;Meraki-MX-VPN-4" loading="lazy" src="/content/images/2021/03/009---Meraki-MX-VPN-4.png#center"></p>
<p>Okay - I mentioned above we&rsquo;ll need to set some custom IPSec parameters. Here&rsquo;s what we&rsquo;ll configure as a custom policy:</p>
<p><img alt="010&mdash;Meraki-MX-VPN-5" loading="lazy" src="/content/images/2021/03/010---Meraki-MX-VPN-5.PNG#center"></p>
<blockquote>
<p>Note: Turns out in the drop down menu, there is also an option for &ldquo;Umbrella&rdquo;, so you don&rsquo;t have to create a custom policy. That being said, the Umbrella preset uses DH group 5, but Umbrella&rsquo;s docs ask for DH group 14.</p></blockquote>
<p>Lastly, we&rsquo;ll be able to configure whether or not we want firewall logging (I enabled this) and also whether we want to add access-lists to permit/deny any traffic over the VPN. For now I&rsquo;ll be leaving this as permit any.</p>
<p><img alt="011&mdash;Meraki-MX-6" loading="lazy" src="/content/images/2021/03/011---Meraki-MX-6.PNG#center"></p>
<p>Finally - we can click <strong>Save</strong> to push our configuration to the MX appliance!</p>
<h2 id="step-3-validation--testing">Step 3: Validation &amp; Testing</h2>
<p>Hopefully once we get all that configuration done, we&rsquo;ll be able to see our tunnel come up.</p>
<p>We can validate from both sides, but let&rsquo;s start with Meraki. In the Dashboard menu, we&rsquo;ll navigate to <strong>Security &amp; SD-WAN</strong> &gt; <strong>Monitor</strong> &gt; <strong>VPN Status</strong>.</p>
<p><img alt="012&mdash;Meraki-MX-VPN-7" loading="lazy" src="/content/images/2021/03/012---Meraki-MX-VPN-7.png#center"></p>
<p>Then we&rsquo;ll need to click the tab for <strong>Non-Meraki peer</strong>:</p>
<p>With any luck, we should see the little green circle showing that our tunnel is online.</p>
<p><img alt="016&mdash;MX-VPN-Status" loading="lazy" src="/content/images/2021/03/016---MX-VPN-Status.PNG#center"></p>
<blockquote>
<p>If your tunnel doesn&rsquo;t come up immediately, you may have to generate some traffic from your VPN subnet to the internet. This will force the MX to try and connect to Umbrella.</p>
<p>It&rsquo;s also worth noting - sometimes it may take the Meraki dashboard to show a successful connection. A better indicator is by checking the Umbrella dashboard, or checking manually with a device you are expecting to route over the VPN.</p></blockquote>
<p>If for any reason we have trouble, we can also check our VPN negotiation logs by going to <strong>Network-Wide</strong> &gt; <strong>Monitor</strong> &gt; <strong>Event Log</strong>.</p>
<p><img alt="014&mdash;Meraki-MX-VPN-9" loading="lazy" src="/content/images/2021/03/014---Meraki-MX-VPN-9.png#center"></p>
<p>On this screen, make sure you&rsquo;ve selected <strong>for security appliances</strong> at the top. If needed, we can also filter events by <strong>All Non-Meraki VPN / Client VPN</strong>.</p>
<p><img alt="015&mdash;Meraki-MX-VPN-10" loading="lazy" src="/content/images/2021/03/015---Meraki-MX-VPN-10.png#center"></p>
<p>Since my tunnel came up with no issues, the output above shows a successful tunnel negotiation.</p>
<p>Let&rsquo;s jump over to the Umbrella side, and see what the Umbrella dashboard shows.</p>
<p>Back on the <strong>Network Tunnels</strong> page - we should see that our tunnel now shows as <strong>Active</strong>.</p>
<p><img alt="013&mdash;Meraki-MX-VPN-8" loading="lazy" src="/content/images/2021/03/013---Meraki-MX-VPN-8.png#center"></p>
<p>This screen will also so the public IP that our MX is using to connect, as well as which Umbrella datacenter we&rsquo;ve connected to.</p>
<hr>
<p>Okay! That&rsquo;s it for now. To try and keep this blog post from getting too long, I&rsquo;ve decided to split this into two parts.</p>
<p>If you&rsquo;re interested in seeing how to configure Umbrella&rsquo;s cloud firewall &amp; web filtering policies - please check out my <a href="https://www.youtube.com/watch?v=GfVEQzxT10g">YouTube Video</a> above!</p>
]]></content:encoded>
    </item>
    <item>
      <title>[How To] Upgrade a Cisco SD-WAN Network</title>
      <link>https://0x2142.com/how-to-upgrade-a-cisco-sd-wan-network/</link>
      <pubDate>Fri, 27 Nov 2020 20:55:48 +0000</pubDate>
      <guid>https://0x2142.com/how-to-upgrade-a-cisco-sd-wan-network/</guid>
      <description>A short tutorial on how to upgrade a Cisco/Viptela SDWAN network, including controllers &amp;amp; edge devices</description>
      <content:encoded><![CDATA[<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/BuRQ0P1tq4Y?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p>I have a local Cisco SD-WAN lab environment running at home, which was built in EVE-NG. It&rsquo;s what I use whenever I need to test something for a customer, or just play around with the templates or APIs.</p>
<p>I&rsquo;m planning on spending some hands-on time with new features soon, along with working on some automation projects - so it&rsquo;s well past time to upgrade my lab.</p>
<p>Currently I&rsquo;m running on version 18.4.302, but my intent is to upgrade to 20.3.2 - which is the latest version available today.</p>
<p>In this blog post, we&rsquo;ll walk through how to upgrade a Cisco SD-WAN / Viptela network, including:</p>
<ul>
<li>Control Plane:
<ul>
<li>vManage</li>
<li>vBond</li>
<li>vSmart(s)</li>
</ul>
</li>
<li>Data Plane:
<ul>
<li>vEdge / vEdge Cloud</li>
</ul>
</li>
</ul>
<p>While my lab is using the on-prem controllers, these steps will work just the same if you&rsquo;re using Cisco&rsquo;s cloud-hosted controllers.</p>
<hr>
<h2 id="downloading-the-software-images">Downloading the Software Images</h2>
<p>First thing&rsquo;s first - in order to upgrade our environment, we need the correct software images!</p>
<p>Head over to Cisco Software Downloads, and search for SD-WAN (or <a href="https://software.cisco.com/download/home/286320995/type">click here!</a>).</p>
<p><img alt="03&mdash;software-download-pt2&mdash;cropped" loading="lazy" src="/content/images/2020/11/03---software-download-pt2---cropped.png#center"></p>
<p>Once on this page, I just want to call out that we will need to click on the <strong>SD-WAN Software Update</strong> link. This may seem simple enough, but the other links for <strong>vManage Software</strong> or <strong>vSmart Software</strong> only contain images for a <em>new</em> install.</p>
<p>After that - just select the image version that you would like to upgrade to, and download both images.</p>
<p>In my case, since I&rsquo;m downloading version 20.3.2, I&rsquo;ll be using the following images:</p>
<ul>
<li>vSmart, vEdge Cloud, vEdge 5000, ISR1100 series and vBond upgrade image
<ul>
<li>File name: viptela-20.3.2-x86_64.tar.gz</li>
</ul>
</li>
<li>vManage upgrade image
<ul>
<li>File name: vmanage-20.3.2-x86_64.tar.gz</li>
</ul>
</li>
</ul>
<h2 id="adding-images-to-the-software-repository">Adding Images to the Software Repository</h2>
<p>The process for upgrading a Cisco SD-WAN environment is pretty straightforward.</p>
<p>The control plane can be upgraded independently of the edge devices, so long as everything stays within the bounds of the <a href="https://www.cisco.com/c/en/us/td/docs/routers/sdwan/release/notes/vedge-20-3/sd-wan-rel-notes-20-3.html#concept_iv2_pyz_blb">compatability matrix</a>. In my case, I&rsquo;ll be upgrading to 20.3.2 - and the controllers could still support edge devices as far back as 17.2. So no issues here!</p>
<p>Alright - let&rsquo;s get started!</p>
<p>First, we&rsquo;ll need to upload our images into our local vManage software repository. This is the file storage for all upgrade images, and it&rsquo;s where the controllers &amp; edge devices will go to pull their images from.</p>
<p>In the vManage dashboard, we&rsquo;ll go to the <strong>Maintenance</strong> tab and select <strong>Software Repository</strong>.</p>
<p>Then, click on <strong>Add New Software</strong>.</p>
<p><img alt="06&mdash;vmanage-software-repo&mdash;cropped" loading="lazy" src="/content/images/2020/11/06---vmanage-software-repo---cropped.png#center"></p>
<p>In here we&rsquo;ll see a few options: <strong>vManage</strong> and <strong>Remote Server / Remote Server - vManage</strong>.</p>
<p>We&rsquo;ll use vManage if we want to upload &amp; distribute images from the local vManage server we&rsquo;re logged into currently.</p>
<p>Alternatively, we could use a remote file storage server by using the <strong>Remote Server</strong> option. If you choose to go this route, don&rsquo;t forget to ensure that ALL controllers &amp; WAN edge devices have access to this storage location.</p>
<p>After you select an option, it&rsquo;s an easy drag &amp; drop to upload the software images.</p>
<h2 id="planning-the-upgrade">Planning the Upgrade</h2>
<p>So before we get into actually applying our image upgrades - let&rsquo;s address the questions of &ldquo;What order do I upgrade things in?&rdquo; and &ldquo;What&rsquo;s the impact?&rdquo;.</p>
<p>Since this is a lab environment for me, I&rsquo;ll be upgrading everything all at once - since uptime / outages aren&rsquo;t a factor here</p>
<p>If you&rsquo;re doing this in a production environment, I highly recommend performing these upgrades in an outage / maintenance window - or at least an off-peak time.</p>
<p>Yes, you can upgrade the controllers at any time without causing any issue. Yes, you can upgrade a redundant pair of vEdge devices and keep a branch online. However, I would advise you to try these out off-hours first - and get your own understanding of how this works &amp; what to expect before doing it in production.</p>
<p>As for the upgrade order, we&rsquo;re going to start at the top of the food chain and work our way down:</p>
<ul>
<li>Upgrade vManage first</li>
<li>Then vBond</li>
<li>Upgrade ONE vSmart controller &amp; wait for it to come online / re-establish control connections</li>
<li>Then upgrade the second / redundant vSmart controller</li>
<li>After the control plane is upgraded &amp; stable - move onto the edge devices</li>
</ul>
<p>These steps can also be found under the <strong>Best Practices</strong> section of the <strong><a href="https://www.cisco.com/c/en/us/td/docs/routers/sdwan/configuration/sdwan-xe-gs-book/hardware-and-software-installation.html#c_Software_Installation_and_Upgrade_for_vEdge_Routers_1369.xml">Cisco SD-WAN Getting Started Guide</a></strong>. Cisco&rsquo;s official recommendation is to wait 24 hours in between a few of those steps, to ensure platform stability - but for my lab that won&rsquo;t be necessary</p>
<h2 id="upgrading-vmanage">Upgrading vManage</h2>
<p>Once we have uploaded our images &amp; we have our upgrade plan - we can move forward with actually performing the image upgrades.</p>
<p>Starting with vManage - we&rsquo;ll go to <strong>Maintenance</strong> &gt; <strong>Software Upgrades</strong> &gt; <strong>vManage</strong>.</p>
<p>Then we&rsquo;ll click on <strong>Upgrade</strong> and select our version - in my case <strong>20.3.2</strong>. After that, just click <strong>Upgrade</strong></p>
<p><img alt="vmange-upgrade-dialog" loading="lazy" src="/content/images/2020/11/vmange-upgrade-dialog.png#center"></p>
<p>Now, what this does in the background is just <em>pre-stage</em> the vManage image for an upgrade. The actual software upgrade is not occurring just yet.</p>
<p>Think of this step like you might prepare an IOS/IOS-XE router: Copying the image to the device flash. The image is there and ready - but we haven&rsquo;t booted to it yet.</p>
<p>Once that&rsquo;s all done, we&rsquo;ll go back to the vManage upgrade page and click <strong>Activate</strong>, select our image again, then click <strong>Activate</strong>.</p>
<p>Now <em>this</em> step is where vManage will reboot, apply the upgrade, and come back online with the new image.</p>
<p>Again, back to the IOS/IOS-XE analogy: this is the equivalent of setting out <strong>boot system flash:&lt;image name&gt;</strong> to the new image, then rebooting our router.</p>
<p>vManage may take a short while to complete &amp; reinitialize. In my lab, about 10-15 minutes.</p>
<h2 id="upgrading-vbond--vsmart">Upgrading vBond &amp; vSmart</h2>
<p>After vManage is done, it&rsquo;s time to work on the real heart of our control plane: vBond &amp; vSmart.</p>
<p>Similar to vManage, we&rsquo;ll start by going to <strong>Maintenance</strong> &gt; <strong>Software Upgrades</strong> &gt; <strong>Controller</strong>.</p>
<p>Here we will need to select the devices we want to upgrade. As I mentioned earlier, you may want to do these one at a time &amp; in a phased approach. However, in my lab I&rsquo;ll select all of them to upgrade at once.</p>
<p>Now in this case, vManage will still follow the proper order (vBond, then vSmart), and even perform a rolling upgrade one device at a time. This may be suitable for you in production, but again I would urge you to test it for yourself first!</p>
<p><img alt="controller-upgrade-dialog" loading="lazy" src="/content/images/2020/11/controller-upgrade-dialog.png#center"></p>
<p>The other big difference here, as you can see in the screenshot above, is the presence of the <strong>Activate &amp; Reboot</strong> checkbox.</p>
<p>This does exactly as you would anticipate. Instead of doing the two-step process with vManage where we staged the image, then performed the activation/reboot - this checkbox will do all of that in one step.</p>
<p>In my lab environment, I did check this box &amp; allowed everything to reboot automatically.</p>
<p>Why is there a separation between uploading the image &amp; rebooting / activating it? To allow better granularity over the process.</p>
<p>For example, maybe you have a poor internet connection at a branch site &amp; the image upload may take a long time. This separation of tasks allows you to stage all of the images independently of applying them. If you have a short outage window, this could help you save time by pre-staging the images ahead of time.</p>
<p>Back to the upgrade - just like vManage we&rsquo;ll select the version we&rsquo;re applying then click <strong>Upgrade</strong></p>
<p>Again - Depending on the resources available to your controllers, the image upload / activation process may take a short while&hellip;</p>
<h2 id="upgrading-the-wan-edge-appliances">Upgrading the WAN Edge Appliances</h2>
<p>In my lab, I&rsquo;m currently using a handful of vEdge Cloud VMs as branch office routers. The upgrade process here should apply to other edge devices as well.</p>
<p>After we&rsquo;re confident our controller upgrades have been successful &amp; all control connections have been re-established - we can move to upgrading our edge devices.</p>
<p>It&rsquo;s also worth mentioning that my lab currently has <em>no</em> redundant deployments of WAN edge appliances. All of my test &lsquo;branch offices&rsquo; are single-homed to one vEdge Cloud - so an outage will be required to apply the images.</p>
<p>If you&rsquo;re using a redundant configuration at a remote site, ideally you would upgrade ONE edge device first. Then only upgrade the second after control connections &amp; routing adjacencies had been re-established on the first device. This should allow for an upgrade with minimal downtime.</p>
<p>The process for upgrading the edge devices mirrors what we saw for vBond / vSmart.</p>
<p>We&rsquo;ll go to <strong>Maintenance</strong> &gt; <strong>Software Upgrade</strong> &gt; <strong>WAN Edge</strong>, then select the edge devices we want to upgrade.</p>
<p>Click <strong>Upgrade</strong>, select the target version from the drop-down, then click <strong>Upgrade</strong>. Again, in my case, I also selected the <strong>Activate &amp; Reboot</strong> checkbox</p>
<p><img alt="vedge-upgrade-dialog" loading="lazy" src="/content/images/2020/11/vedge-upgrade-dialog.png#center"></p>
<p><strong>NOTE:</strong> It&rsquo;s worth mentioning that for the WAN Edge upgrade, vManage will push the upgrade to <em>all devices simultaneously</em>. <del>If you would like to perform a rolling upgrade here, you&rsquo;ll have to manage it yourself.</del> In the case of a site where a redundant vEdge is deployed &amp; they share the same site ID, vManage automatically will handle upgrading only one at a time to maintain uptime (Thanks <a href="https://twitter.com/juangolbez">Tim McConnaughy</a> for clarifying this!).</p>
<p>Once again, we&rsquo;ll give the edge devices a few minutes to download &amp; apply their software upgrades. Then we&rsquo;ll check to ensure all of the control connections re-established &amp; traffic is flowing.</p>
<h2 id="wrap-up">Wrap up</h2>
<p>Once your edge devices are back online, it&rsquo;s all done! The network has been upgraded to the new version.</p>
<p>There are a handful of ways to check this, but one easy way is via the device monitor page: <strong>Monitor</strong> &gt; <strong>Network</strong></p>
<p>This page will list a summary of everything in the network, including the current software version &amp; number of established control connections. For me, it&rsquo;s an easy way to get a one-page summary of the network.</p>
<p><img alt="monitor-networkpng" loading="lazy" src="/content/images/2020/11/monitor-networkpng.png#center"></p>
<p>From the screenshot above - we can see that all of my lab devices are back online &amp; running software version 20.3.2.</p>
<hr>
<p>That&rsquo;s it! Hope this post was helpful to you.</p>
<p>Thanks for reading!</p>
]]></content:encoded>
    </item>
    <item>
      <title>Getting Started with Cisco NFVIS</title>
      <link>https://0x2142.com/getting-started-with-cisco-nfvis/</link>
      <pubDate>Sat, 13 Apr 2019 12:59:00 +0000</pubDate>
      <guid>https://0x2142.com/getting-started-with-cisco-nfvis/</guid>
      <description>A quick look at how to spin up NFVIS on a Cisco ENCS</description>
      <content:encoded><![CDATA[<p>A few weeks ago I got my hands on a Cisco UCS C220 M4 server - which I&rsquo;ve set up in a lab to install and test Cisco&rsquo;s Network Function Virtualization Infrastructure Software (NFVIS). I really wanted to get this running on an Enterprise Network Compute System (ENCS) box, but you can&rsquo;t always get everything what you want :). The UCS machine is also on the list of supported platforms, so we&rsquo;ll use that - but everything here should apply similarly to the ENCS platform.</p>
<h2 id="what-is-nfvis">What is NFVIS?</h2>
<p>NFVIS is an operating system developed by Cisco which is intended to be deployed at branch office locations - and allow for quick deployment of network services in lightweight VMs. For example, we might want to reduce cost and hardware footprint by deploying a single ENCS machine, then deploy our typical branch services on top of that (DNS, Firewalls, SDWAN, etc). Under the hood, NFVIS is built on top of CentOS and KVM.</p>
<p>In the image below, we have an ENCS unit that is running ISRv, FTDv, and a vEdge Cloud. NFVIS has the ability to build out traffic flows for service chaining. In this particular setup, we could have all branch traffic receive a default route up to our ISRv. The ISRv forwards traffic to a Firepower VM (FTDv) which performs some traffic inspection before passing everything up to the vEdge Cloud.</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/03/image.png#center"></p>
<p>We&rsquo;ll be coming back to this diagram later to see how we can build out this flow of services. For now, let&rsquo;s dive into how we can get NFVIS up and running.</p>
<h2 id="installing-nfvis">Installing NFVIS</h2>
<p>Lucky for us - the installation of NFVIS is fairly straightforward!</p>
<ol>
<li>Create a bootable USB - or mount the installation ISO via CIMC</li>
<li>Upon boot, select &ldquo;Install Cisco NFV Infrastructure Software&rdquo;:</li>
</ol>
<p><img alt="image" loading="lazy" src="/content/images/2019/03/000-install.png#center"></p>
<ol start="3">
<li>Wait. A while. Install time can vary depending on your hardware.</li>
<li>Once completed, log into the CLI: Default login = admin/Admin123#</li>
<li>You&rsquo;ll be prompted to change the default admin password immediately:</li>
</ol>
<p><img alt="image" loading="lazy" src="/content/images/2019/03/image-1.png#center"></p>
<p>Install completed! Now let&rsquo;s look at some of our base configuration..</p>
<h2 id="initial-configuration">Initial Configuration</h2>
<p>By default the NFVIS install will have a LAN and WAN bridge (lan-br and wan-br, respectively). The LAN config will be set up with a static IP of 192.168.1.1/24, and the WAN will be set for DHCP. We can check the current network settings by running the <em>show system settings</em>command:</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/03/image-2.png#center"></p>
<p>In this case, my WAN interface is able to get an IP via DHCP. We&rsquo;re likely going to want to change this to a static IP address - which we can do from the CLI or web interface. Let&rsquo;s start by trying this from the CLI:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">config t
</span></span><span class="line"><span class="cl">system settings wan ip address &lt;ip addr&gt; &lt;netmask&gt;
</span></span><span class="line"><span class="cl">system settings default-gw &lt;gateway addr&gt;
</span></span><span class="line"><span class="cl">system settings hostname &lt;hostname&gt;
</span></span></code></pre></div><p>Changes can then be applied using the <strong>commit</strong> command</p>
<p><img alt="image" loading="lazy" src="/content/images/2019/03/image-3.png#center"></p>
<p>We can verify these settings by repeating the <code>show system settings</code> command we used earlier.</p>
<p>Let&rsquo;s go ahead and log into the web interface to see what the network configuration looks like there:</p>
<ol>
<li>If we know our WAN or LAN IP from earlier, we can just pop that in our web browser.</li>
<li>Go ahead and log in using the new admin credentials we just created:</li>
</ol>
<p><img alt="image" loading="lazy" src="/content/images/2019/03/image-4.png#center"></p>
<ol start="3">
<li>We&rsquo;ll be taken to the primary NFVIS dashboard, which will currently show no active VMs deployed:</li>
</ol>
<p><img alt="image" loading="lazy" src="/content/images/2019/03/image-5.png#center"></p>
<ol start="4">
<li>In the left-hand menu, expand <strong>Host</strong>then click on <strong>Settings:</strong></li>
</ol>
<p><img alt="image" loading="lazy" src="/content/images/2019/03/image-6.png#center"></p>
<p>Here we can see that we already configured our IP Addressing/hostname - but we could use the <strong>Edit</strong> button at the bottom to change any of these values. For example - I&rsquo;m going to go ahead and select <strong>Static</strong> for both the Management (LAN) and WAN IP addresses.</p>
<p>Another quick tip - if we need to modify which physical network adapters are tied to an internal network bridge, we can find that under <strong>VM Life Cycle &gt; Networking:</strong></p>
<p><img alt="image" loading="lazy" src="/content/images/2019/03/image-7.png#center"></p>
<hr>
<p>That&rsquo;s all for this time. In the next post, we&rsquo;ll take a look at how to package VM images and deploy our service chain.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
