<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" 
  xmlns:content="http://purl.org/rss/1.0/modules/content/" 
  xmlns:dc="http://purl.org/dc/elements/1.1/" 
  xmlns:atom="http://www.w3.org/2005/Atom" 
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" 
  xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Networking on Ben&#39;s ideas and projects</title>
    <link>https://ben.the-collective.net/categories/networking/</link>
    <description>Recent content in Networking on Ben&#39;s ideas and projects</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>locutus@the-collective.net (Ben Mason)</managingEditor>
    <webMaster>locutus@the-collective.net (Ben Mason)</webMaster>
    <copyright>©2023, All Rights Reserved</copyright>
    <lastBuildDate>Wed, 19 Jun 2019 19:18:14 -0400</lastBuildDate>
    <sy:updatePeriod>daily</sy:updatePeriod>
    
        <atom:link href="https://ben.the-collective.net/categories/networking/index.xml" rel="self" type="application/rss+xml" />
    

      
      <item>
        <title>How to set up a Meraki API Test environment</title>
        <link>https://ben.the-collective.net/posts/2019-06-19-how-to-set-up-a-meraki-api-test-environment/</link>
        <pubDate>Wed, 19 Jun 2019 19:18:14 -0400</pubDate>
        <author>locutus@the-collective.net (Ben Mason)</author>
        <atom:modified>Wed, 19 Jun 2019 19:18:14 -0400</atom:modified>
        <guid>https://ben.the-collective.net/posts/2019-06-19-how-to-set-up-a-meraki-api-test-environment/</guid>
        <description>I needed to set up and Meraki API key to test, well an Meraki API that was in beta. This is the process I used to get started with some of the basics of the Meraki API and getting a test environment up and running. There are lots of great references covering the basics of REST APIs like the REST API Tutorial. These resources will do a much better job then I can of explaining REST APIs.</description>
        <content:encoded>&lt;p&gt;I needed to set up and Meraki API key to test, well an Meraki API that was in beta. This is the process I used to get started with some of the basics of the Meraki API and getting a test environment up and running. There are lots of great references covering the basics of REST APIs like the &lt;a href=&#34;https://restapitutorial.com/&#34;&gt;REST API Tutorial&lt;/a&gt;. These resources will do a much better job then I can of explaining REST APIs. I found there was a lack of guide for the initial steps of building the data you need to get started with the Meraki API.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: The screenshots are from late 2018 and may have changed over time.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;api-key-generation&#34;&gt;API Key Generation&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;../2019-06-19-how-to-set-up-a-meraki-api-test-environment-images/Screen-Shot-2018-10-29-at-20.23.28.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
First things first you will need to login to the Meraki Dashboard. Once there, you will navigate using the menu on the left to Organization -&amp;gt; Settings.&lt;/p&gt;
&lt;p&gt;On the settings screen scroll down to Dashboard API Access, and check “Enable access to the Meraki Dashboard API” and click Save at the bottom. Once the general access is enabled you will need to click the “profile” link to go to the screen where you generate an API Key to use than making REST API calls.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../2019-06-19-how-to-set-up-a-meraki-api-test-environment-images/Screen-Shot-2018-10-29-at-20.23.21.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
On the API access click the “Generate new API Key” button. If the button is not there I found with my account I can only have a maximum of two API keys generated at any point in time. Once I deleted one key the button came back.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../2019-06-19-how-to-set-up-a-meraki-api-test-environment-images/Screen-Shot-2018-10-29-at-20.23.57.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
After clicking the button a dialogue similar to this showing you your new key, this key is only shown once so make a note of it since you will use it to authenticate your API calls.&lt;/p&gt;
&lt;h2 id=&#34;now-that-you-have-a-key-what-to-do-with-it&#34;&gt;Now that you have a key what to do with it?&lt;/h2&gt;
&lt;p&gt;&lt;img src=&#34;../2019-06-19-how-to-set-up-a-meraki-api-test-environment-images/Screen-Shot-2018-10-29-at-21.22.48.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
Meraki has an extensive API with many calls and you will want a tool to start to test some of the calls. A good utility to start testing with is &lt;a href=&#34;https://www.getpostman.com/&#34;&gt;Postman&lt;/a&gt;. This tool allows you to make REST API calls using a convenient GUI. I won’t go into complete detail on how to use Postman but cover some highlights to getting it &lt;g class=&#34;gr_ gr_6 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del&#34; data-gr-id=&#34;6&#34; id=&#34;6&#34;&gt;setup&lt;/g&gt; to test some Meraki API calls.&lt;/p&gt;
&lt;p&gt;A useful feature of Postman is the ability to import collections of API calls. The collection of Meraki Dashboard calls is at &lt;a href=&#34;https://create.meraki.io/postman&#34;&gt;https://create.meraki.io/postman&lt;/a&gt;. Once there click “Run in Postman” in the upper right and it will ask to open the Postman client. Once you import the collection there will need to be some variables you will need to discover and fill in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;X-Cisco-Meraki-API-Key&lt;/li&gt;
&lt;li&gt;organizationId&lt;/li&gt;
&lt;li&gt;networkId&lt;/li&gt;
&lt;li&gt;baseUrl&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To set these variables you will need to edit the newly imported Postman collection, you can right click on the collection and select “Edit.”&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../2019-06-19-how-to-set-up-a-meraki-api-test-environment-images/Screen-Shot-2018-10-29-at-21.26.21.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
Then select the Variables tab, I have populated these vari&lt;g class=&#34;gr_ gr_3 gr-alert gr_spell gr_inline_cards gr_run_anim ContextualSpelling ins-del multiReplace&#34; data-gr-id=&#34;3&#34; id=&#34;3&#34;&gt;a&lt;/g&gt;bles already in the screenshot, you will need to type them in.&lt;/p&gt;
&lt;figure class=&#34;wp-block-image is-resized&#34;&gt;![](../2019-06-19-how-to-set-up-a-meraki-api-test-environment-images/Screen-Shot-2018-10-29-at-21.27.59.png)
Now you ask where do I find the values for these variables. I’ll cover the calls that are made to collect the values you need in the next few sections.
&lt;h2 id=&#34;meraki-api-url-baseurl-and-api-key&#34;&gt;Meraki API URL (baseUrl) and API Key&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;baseURL&lt;/strong&gt;&lt;br /&gt;
The first variable you will set it the &lt;em&gt;baseUrl&lt;/em&gt; this is the URL that Postman will use to send REST API calls to. In general for testing you can the use URL:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;pre class=&amp;#34;wp-block-preformatted&amp;#34;&amp;gt;https://dashboard.meraki.com/api/v0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will work for testing and non-production. Once you go to production you will want to point to the specific shard you are hosted on such as:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;pre class=&amp;#34;wp-block-preformatted&amp;#34;&amp;gt;https://n466.meraki.com/api/v0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;X-Cisco-Meraki-API-Key&lt;/strong&gt;&lt;br /&gt;
We will also need to set the API key which we generated earlier. This is stored in the &lt;em&gt;X-Cisco-Meraki-API-Key&lt;/em&gt; variable. This variable sets the header also named &lt;em&gt;X-Cisco-Meraki-API-Key&lt;/em&gt; in REST calls. This is used to authenticate the REST calls.&lt;/p&gt;
&lt;p&gt;With these two variables set you can start to discover the organizationId and networkIds.&lt;/p&gt;
&lt;h3 id=&#34;finding-the-organizationid&#34;&gt;Finding the “organizationId”&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;../2019-06-19-how-to-set-up-a-meraki-api-test-environment-images/Screen-Shot-2018-10-29-at-22.04.07.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
To find the organizationId, in Postman navigate to “Organizations -&amp;gt; List organizations this user has access to” in the sidebar on the left.&lt;/p&gt;
&lt;p&gt;The query in Postman looks like:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../2019-06-19-how-to-set-up-a-meraki-api-test-environment-images/Screen-Shot-2018-10-29-at-22.04.30.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
The full REST URL to retrieve the Meraki Organizations you have access to is: &lt;a href=&#34;https://dashboard.meraki.com/api/v0/organizations&#34;&gt;https://dashboard.meraki.com/api/v0/organizations&lt;/a&gt;&lt;br /&gt;
The data returned shows the organizations you have access to. The “id” number is the field used to select the organization you wish to query&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;pre class=&amp;#34;wp-block-preformatted&amp;#34;&amp;gt;[ { &amp;#34;id&amp;#34;: 1234567, &amp;#34;name&amp;#34;: &amp;#34;Organization name&amp;#34; } 
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;finding-the-networkids&#34;&gt;Finding the “networkIds”&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;../2019-06-19-how-to-set-up-a-meraki-api-test-environment-images/Screen-Shot-2018-10-29-at-22.08.10.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
Many calls I have worked will use either &lt;g class=&#34;gr_ gr_137 gr-alert gr_gramm gr_inline_cards gr_run_anim Style multiReplace&#34; data-gr-id=&#34;137&#34; id=&#34;137&#34;&gt;the &lt;/g&gt;&lt;code&gt;organizationID&lt;/code&gt;&lt;g class=&#34;gr_ gr_137 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Style multiReplace&#34; data-gr-id=&#34;137&#34; id=&#34;137&#34;&gt; or&lt;/g&gt;&lt;g class=&#34;gr_ gr_158 gr-alert gr_gramm gr_inline_cards gr_run_anim Style multiReplace&#34; data-gr-id=&#34;158&#34; id=&#34;158&#34;&gt;a &lt;/g&gt;&lt;code&gt;networkId&lt;/code&gt;&lt;g class=&#34;gr_ gr_158 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Style multiReplace&#34; data-gr-id=&#34;158&#34; id=&#34;158&#34;&gt;.&lt;/g&gt; In most organizations, there are multiple networks in the organization you are querying. Each of the networks is identified by the &lt;code&gt;networkId&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The full REST URL to retrieve the Meraki Networks in an Organization you have access to is: &lt;a href=&#34;https://dashboard.meraki.com/api/v0/organizations/1234567/networks&#34;&gt;https://dashboard.meraki.com/api/v0/organizations/1234567/networks&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;../2019-06-19-how-to-set-up-a-meraki-api-test-environment-images/Screen-Shot-2018-10-29-at-22.04.30.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
The output below will list all of the networks in the Organization, the field labeled “id” is what you will use to query data for a specific network.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;pre class=&amp;#34;wp-block-preformatted&amp;#34;&amp;gt;[ &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;{ &amp;#34;id&amp;#34;: &amp;#34;L_234567890&amp;#34;, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;  &amp;#34;organizationId&amp;#34;: &amp;#34;1234567&amp;#34;, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;  &amp;#34;name&amp;#34;: &amp;#34;Test Network&amp;#34;, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;  &amp;#34;timeZone&amp;#34;: &amp;#34;US/Eastern&amp;#34;, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;  &amp;#34;tags&amp;#34;: null, &amp;#34;type&amp;#34;: &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;  &amp;#34;combined&amp;#34;, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;  &amp;#34;disableMyMerakiCom&amp;#34;: false }, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;{ &amp;#34;id&amp;#34;: &amp;#34;N_678901234&amp;#34;, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;  &amp;#34;organizationId&amp;#34;: &amp;#34;1234567&amp;#34;, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt; &amp;#34;name&amp;#34;: &amp;#34;Systems Manager&amp;#34;, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt; &amp;#34;timeZone&amp;#34;: &amp;#34;America/Detroit&amp;#34;, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt; &amp;#34;tags&amp;#34;: null, &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt; &amp;#34;type&amp;#34;: &amp;#34;systems manager&amp;#34; } &amp;lt;br&amp;gt;&amp;lt;/br&amp;gt;] 
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;done&#34;&gt;Done?&lt;/h2&gt;
&lt;p&gt;Now there is a test environment to play and learn how the various API calls work and what data can be collected, set, or deleted. Postman is just the start for experimentation and to&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://create.meraki.io/&#34;&gt;https://create.meraki.io/&lt;/a&gt;&lt;/p&gt;
</content:encoded>
        <dc:creator>suidroot</dc:creator>
        <media:content url="https://ben.the-collective.net/images/post-images/How-to-set-up-a-Meraki-API-Test-environment.png" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>api</category>
            
          
            
              <category>meraki</category>
            
          
            
              <category>networking</category>
            
          
            
              <category>programing</category>
            
          
        
        
          
            
              <category>Networking</category>
            
          
        
        
      </item>
      
      <item>
        <title>March 2019 NX-OS Vulnerability Dump</title>
        <link>https://ben.the-collective.net/posts/2019-03-07-march-2019-nx-os-vulnerability-dump/</link>
        <pubDate>Thu, 07 Mar 2019 10:42:24 -0500</pubDate>
        <author>locutus@the-collective.net (Ben Mason)</author>
        <atom:modified>Thu, 07 Mar 2019 10:42:24 -0500</atom:modified>
        <guid>https://ben.the-collective.net/posts/2019-03-07-march-2019-nx-os-vulnerability-dump/</guid>
        <description>On March 6th Cisco released 29 high and medium rated PSIRT notices for NX-OS based platforms. These platforms include the Cisco Nexus 3000 – 9000 series and Nexus adjacent platforms FX-OS and UCS Fabric Interconnect platforms. Not all advisories affect all platforms but all platforms are affected by at least one high rated vulnerability. The vulnerabilities range from command and code execution, privilege escalation, denial of service, and arbitrary file read vulnerabilities.</description>
        <content:encoded>&lt;p&gt;On March 6th Cisco released 29 high and medium rated PSIRT notices for NX-OS based platforms. These platforms include the Cisco Nexus 3000 – 9000 series and Nexus adjacent platforms FX-OS and UCS Fabric Interconnect platforms. Not all advisories affect all platforms but all platforms are affected by at least one high rated vulnerability. The vulnerabilities range from command and code execution, privilege escalation, denial of service, and arbitrary file read vulnerabilities. This is just about everything bad that could affect core infrastructure devices.&lt;/p&gt;
&lt;p&gt;If you haven’t updated your switch in a while this is probably the time too. Within some of the advisories Cisco notes that they are providing free updates:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Cisco has released free software updates that address the vulnerability described in this advisory. Customers may only install and expect support for software versions and feature sets for which they have purchased a license.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I’ve included a table of the fixed in versions notes as of the writing of this post. I would recommend looking at the advisories to assist in selecting the best version as there are other code versions that have integrated the fixes.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;Version&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Nexus 1000v&lt;/td&gt;
&lt;td&gt;5.2(1)SM3(2.1) (Hyper-V) 5.2(1)SV3(4.1a) (VMWare)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nexus 3000 &lt;br&gt;Nexus 3500 &lt;br&gt;Nexus 3600&lt;/td&gt;
&lt;td&gt;9.2(2)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nexus 5500, 5600, and 6000 &lt;br&gt;Nexus 7000 and 7700&lt;/td&gt;
&lt;td&gt;8.3(3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nexus 9000 and 9500&lt;/td&gt;
&lt;td&gt;9.2(2)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UCS 6200 and 6300 Series Fabric Interconnects &lt;br&gt;UCS 6400 Series Fabric Interconnects&lt;/td&gt;
&lt;td&gt;4.0(2a)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Cisco has a bundled advisory for all of the high rated notices at the following link,&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/viewErp.x?alertId=ERP-70757&#34;&gt;Cisco Event Response: March 2019 Cisco FXOS and NX-OS Software Security Advisory Bundled Publication&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have also included a laundry list of notices including both high and medium rated vulnerabilities for your reference.&lt;/p&gt;
&lt;p&gt;Happy patching!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-aci-controller-privsec&#34;&gt;CVE-2019-1585 Cisco Nexus 9000 Series Fabric Switches Application-Centric Infrastructure Mode Privilege Escalation Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-aci-file-read&#34;&gt;CVE-2019-1588 Cisco Nexus 9000 Series Fabric Switches Application-Centric Infrastructure Mode Arbitrary File Read Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-aci-shell-escape&#34;&gt;CVE-2019-1591 Cisco Nexus 9000 Series Fabric Switches Application Centric Infrastructure Mode Shell Escape Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nexus-fbr-dos&#34;&gt;CVE-2019-1595 Cisco Nexus 5600 and 6000 Series Switches Fibre Channel over Ethernet Denial of Service Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nx-os-api-ex&#34;&gt;CVE-2019-1605 Cisco NX-OS Software NX-API Arbitrary Code Execution Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nx-os-bash-escal&#34;&gt;CVE-2019-1593 Cisco NX-OS Software Bash Shell Role-Based Access Control Bypass Privilege Escalation Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nx-os-lan-auth&#34;&gt;CVE-2019-1594 Cisco NX-OS Software 802.1X Extensible Authentication Protocol over LAN Denial of Service Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-NXAPI-cmdinj&#34;&gt;CVE-2019-1614 Cisco NX-OS Software NX-API Command Injection Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-cmdinj-1606&#34;&gt;CVE-2019-1606 Cisco NX-OS Software CLI Command Injection Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-cmdinj-1607&#34;&gt;CVE-2019-1607 Cisco NX-OS Software CLI Command Injection Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-cmdinj-1608&#34;&gt;CVE-2019-1608 Cisco NX-OS Software CLI Command Injection Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-cmdinj-1609&#34;&gt;CVE-2019-1609 Cisco NX-OS Software CLI Command Injection Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-cmdinj-1610&#34;&gt;CVE-2019-1610 Cisco NX-OS Software CLI Command Injection Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-cmdinj-1611&#34;&gt;CVE-2019-1611 Cisco FXOS and NX-OS Software CLI Command Injection Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-cmdinj-1612&#34;&gt;CVE-2019-1612 Cisco NX-OS Software CLI Command Injection Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-cmdinj-1613&#34;&gt;CVE-2019-1613 Cisco NX-OS Software CLI Command Injection Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-directory&#34;&gt;CVE-2019-1600 Cisco FXOS and NX-OS Software Unauthorized Directory Access Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-escalation&#34;&gt;CVE-2019-1602 Cisco NX-OS Software Privilege Escalation Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-fabric-dos&#34;&gt;CVE-2019-1616 Cisco NX-OS Software Cisco Fabric Services Denial of Service Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-file-access&#34;&gt;CVE-&lt;br /&gt;
2019-1601 Cisco NX-OS Software Unauthorized Filesystem Access Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-netstack&#34;&gt;CVE-2019-1599 Cisco NX-OS Software Netstack Denial of Service Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-npv-dos&#34;&gt;CVE-2019-1617 Cisco Nexus 9000 Series Switches Standalone NX-OS Mode Fibre Channel over Ethernet NPV Denial of Service Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-pe&#34;&gt;CVE-2019-1596 Cisco NX-OS Software Bash Shell Privilege Escalation Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-privesc&#34;&gt;CVE-2019-1603 Cisco NX-OS Software Privilege Escalation Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-privesca&#34;&gt;CVE-2019-1604 Cisco NX-OS Software Privilege Escalation Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxos-sig-verif&#34;&gt;CVE-2019-1615 Cisco NX-OS Software Image Signature Verification Vulnerability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-nxosldap&#34;&gt;CVE-2019-1597 and CVE-2019-1598 Cisco FXOS and NX-OS Lightweight Directory Access Protocol Denial of Service Vulnerabilities &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20190306-tetra-ace&#34;&gt;CVE-2019-1618 Cisco Nexus 9000 Series Switches Standalone NX-OS Mode Tetration Analytics Agent Arbitrary Code Execution Vulnerability &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        <dc:creator>suidroot</dc:creator>
        
        
        
        
          
            
              <category>cisco</category>
            
          
            
              <category>nexus</category>
            
          
            
              <category>vulnerability</category>
            
          
        
        
          
            
              <category>Networking</category>
            
          
            
              <category>Security</category>
            
          
        
        
      </item>
      
      <item>
        <title>Vyatta 5400 and interface inbound discards</title>
        <link>https://ben.the-collective.net/posts/2014-12-16-vyatta-5400-and-interface-inbound-discards/</link>
        <pubDate>Tue, 16 Dec 2014 10:30:02 -0500</pubDate>
        <author>locutus@the-collective.net (Ben Mason)</author>
        <atom:modified>Tue, 16 Dec 2014 10:30:02 -0500</atom:modified>
        <guid>https://ben.the-collective.net/posts/2014-12-16-vyatta-5400-and-interface-inbound-discards/</guid>
        <description>Recently I was investigating alerts that were being generated for inbound interface discards on multiple interfaces and multiple Vyatta 5400 devices. There were not any noticeable performance issues on traffic passing through the devices. The discards would report in SNMP, show interface ethernet ethX, and ifconfig outputs. An example show interface ethernet ethX output I was reviewing is below.
vyatta@FW01:~$ sh int ethernet eth0 eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:50:56:0x:0x:0x brd ff:ff:ff:ff:ff:ff inet 172.</description>
        <content:encoded>&lt;p&gt;Recently I was investigating alerts that were being generated for inbound interface discards on multiple interfaces and multiple Vyatta 5400 devices. There were not any noticeable performance issues on traffic passing through the devices. The discards would report in SNMP, &lt;code&gt;show interface ethernet ethX&lt;/code&gt;, and &lt;code&gt;ifconfig&lt;/code&gt; outputs. An example &lt;code&gt;show interface ethernet ethX&lt;/code&gt; output I was reviewing is below.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vyatta@FW01:~$ sh int ethernet eth0
eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:50:56:0x:0x:0x brd ff:ff:ff:ff:ff:ff
inet 172.x.x.x/24 brd 172.x.x.x scope global eth0
inet6 fe80::250:56ff:0x:0x/64 scope link
valid_lft forever preferred_lft forever
Last clear: Wed Oct 29 10:55:13 GMT 2014
Description: MGMT
RX: bytes packets errors dropped overrun mcast
   242863    3664      0     163       0     0
TX: bytes packets errors dropped carrier collisions
   128065     701      0       0       0          0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I was not finding any other statistics that would match up with the quantity of discards being reported. Here are a few of the commands I looked at to look for matching discard counters.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;vyatta@FW01:~$ sh int ethernet eth0 queue
vyatta@FW01:~$ sh int ethernet eth0 statistics
vyatta@FW01:~$ sh queueing
vyatta@FW01:~$ sudo netstat -s
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;While researching where to go next I was reminded that the Vyatta 5400 is at it’s heart a Linux device server. I found a few references that beginning in the Linux kernel version 2.6.36 there were more error conditions added to this counter in the kernel.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The rx_dropped counter shows statistics for dropped frames because of: (Beginning with kernel 2.6.37)&lt;br /&gt;
(&lt;a href=&#34;http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=caf586e5f23cebb2a68cbaf288d59dbbf2d74052&#34;&gt;http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=caf586e5f23cebb2a68cbaf288d59dbbf2d74052&lt;/a&gt;)&lt;br /&gt;
Softnet backlog full — (Measured from /proc/net/softnet_stat)&lt;br /&gt;
Bad / Unintended VLAN tags&lt;br /&gt;
Unknown / Unregistered protocols&lt;br /&gt;
IPv6 frames when the server is not configured for IPv6&lt;br /&gt;
If any frames meet those conditions, they are dropped before the protocol stack and the rx_dropped counter is incremented.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;via &lt;a href=&#34;http://www.novell.com/support/kb/doc.php?id=7007165&#34;&gt;http://www.novell.com/support/kb/doc.php?id=7007165&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When taking a look I found that the version of Vyatta code in use contains the Linux kernel version 3.3.8. The only way to verify if these conditions are causing the counter to increment is to put the interface into promiscuous mode. Since this was a production system I instead looked for neighboring Linux systems in the same subnet, and found they do not report the same level of discards. It appears I found my the reason behind this counter incrementing. This issue looked more urgent as we measure this counter in percentage of packets discarded and this interface does not have much traffic flowing through it. This made the percentages very high which the discarded frames where non-production impacting frames. This issue was a reminder that it is good to remember the underlying Operating System even if it is masked by a custom CLI.&lt;/p&gt;
</content:encoded>
        <dc:creator>suidroot</dc:creator>
        
        
        
        
          
            
              <category>discards</category>
            
          
            
              <category>monitoring</category>
            
          
            
              <category>networking</category>
            
          
            
              <category>vyatta</category>
            
          
        
        
          
            
              <category>Networking</category>
            
          
        
        
      </item>
      
      <item>
        <title>A meditation on the interface discard counter</title>
        <link>https://ben.the-collective.net/posts/2014-12-08-a-meditation-on-the-interface-discard-counter/</link>
        <pubDate>Mon, 08 Dec 2014 10:15:18 -0500</pubDate>
        <author>locutus@the-collective.net (Ben Mason)</author>
        <atom:modified>Mon, 08 Dec 2014 10:15:18 -0500</atom:modified>
        <guid>https://ben.the-collective.net/posts/2014-12-08-a-meditation-on-the-interface-discard-counter/</guid>
        <description>I find the interface discard counter a deceptively complex counter. When you ask people what the counter means the usual answer is that you are over running the throughput capability of an interface. Which matched pretty closely to the definition in the IF-MIB SNMP MIB.
The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.</description>
        <content:encoded>&lt;p&gt;I find the interface discard counter a deceptively complex counter. When you ask people what the counter means the usual answer is that you are over running the throughput capability of an interface. Which matched pretty closely to the definition in the IF-MIB SNMP MIB.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;The number of inbound packets which were chosen
to be discarded even though no errors had been
detected to prevent their being deliverable to a
higher-layer protocol.  One possible reason for
discarding such a packet could be to free up
buffer space.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ifInDiscards : &lt;a href=&#34;https://www.ietf.org/rfc/rfc1213.txt&#34;&gt;https://www.ietf.org/rfc/rfc1213.txt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The description from the MIB is often the cause of this counter incrementing, however as devices get more powerful and circuits keep increasing in size, this description is becoming less applicable. There are many other issues that have been lumped into this counter, all of these other issues are vendor, platform, and configuration dependent. Some examples I have found are,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ASA Dispatch Unit CPU over utilization&lt;/li&gt;
&lt;li&gt;ASA ACL/ASP packet drops&lt;/li&gt;
&lt;li&gt;QoS on an IOS interface can cause an elevated (purposeful) number of frames dropped&lt;/li&gt;
&lt;li&gt;An ASIC shared between ports on a switch is being over utilized&lt;/li&gt;
&lt;li&gt;L2/L3 packet handling on some Linux kernels and some virtual network platforms&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Looking at this list the interface discard counter starts to look more like a check engine light for a device or interface. As with the check engine light it is important to understand all of the that data your devices are presenting, and build good baselines of the statistics for your system. Ethan Banks has some good thoughts on data baselines in a post titled &lt;a href=&#34;http://ethancbanks.com/2014/11/05/the-importance-of-knowing-baselines/&#34;&gt;The Importance of Knowing Baselines&lt;/a&gt;.&lt;/p&gt;
</content:encoded>
        <dc:creator>suidroot</dc:creator>
        <media:content url="https://ben.the-collective.net/images/post-images/" medium="image"><media:title type="html">featured image</media:title></media:content>
        
        
        
          
            
              <category>discards</category>
            
          
            
              <category>monitoring</category>
            
          
            
              <category>networking</category>
            
          
            
              <category>snmp</category>
            
          
        
        
          
            
              <category>Networking</category>
            
          
        
        
      </item>
      
      <item>
        <title>Nexus 7000 and a systematic Bug</title>
        <link>https://ben.the-collective.net/posts/2014-10-20-nexus-7000-and-a-systematic-bug/</link>
        <pubDate>Mon, 20 Oct 2014 10:43:45 -0400</pubDate>
        <author>locutus@the-collective.net (Ben Mason)</author>
        <atom:modified>Mon, 20 Oct 2014 10:43:45 -0400</atom:modified>
        <guid>https://ben.the-collective.net/posts/2014-10-20-nexus-7000-and-a-systematic-bug/</guid>
        <description>I have been thinking about an old issue that a customer encountered with an pair of Nexus 7000 switches about a year and half ago. When the issue first came onto my radar it was in a bad place, this customer had Nexus 2000 Fabric Extenders that would go offline and eventually the Nexus 7000 would go offline causing some single homed devices to be come in reachable, and in the process broader reachability issues.</description>
        <content:encoded>&lt;p&gt;I have been thinking about an old issue that a customer encountered with an pair of Nexus 7000 switches about a year and half ago. When the issue first came onto my radar it was in a bad place, this customer had Nexus 2000 Fabric Extenders that would go offline and eventually the Nexus 7000 would go offline causing some single homed devices to be come in reachable, and in the process broader reachability issues. This is occurred intermittently which always causes data collection to be complicated. After working with TAC and finally collecting all of the information the the summary of the multiple causes came down the these 5 items.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1. Fabric extender link become error disabled due to CSCtz01813&lt;br /&gt;
2. Nexus is reloaded to recover from Fabric Extender issue.&lt;br /&gt;
3. After reload ports get stuck in INIT state due to CSCty8102 and failed to come online.&lt;br /&gt;
4. Peer Link, Peer Keep-Alive and VPCs fail to come online since ports are err-disabled from sequence time out.&lt;br /&gt;
5. VPC would go into a split brain state causing SVIs to go into shutdown mode.&lt;br /&gt;
6. Network connectivity is lost until reload of module and ports are brought online.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The summary is two bugs that would get triggered at random times causing a firestorm of confusing outages. The two temporary work arounds to mitigate the problem before we could upgrade the code on the switches was to,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;VPC keep alive link to Admin port on Supervisor.&lt;/li&gt;
&lt;li&gt;Use EEM script to reset a register when a module comes on line.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When thinking about what occurred it is important to remember the Nexus 7000 platform consists of many line cards that each contain an independent “brain” (Forwarding Engine(s) and supporting systems on the line cards) that are connected and orchestrated by the Supervisor module. It is true previous statement was a bit of a simplification, however I find it enigmatic of some of the design challenges you can on the Nexus 7000 platform. For example there are many limitations with Layer 3 routing features and VPC. In the example above it could be said that this sort of complexity can cause safety features such as those build into VPC to cause more harm then good when they encounter an in planned failure scenario. This is different from the Catalyst platform where (for the most part) everything is processed through an central processor.&lt;/p&gt;
&lt;p&gt;Over all the Nexus 7000 system design allows for tightly coupled interactions between the modules, supervisors and even more loosely coupled interactions between chassises. These interactions can allow for the high speed and throughput that can be delivered, however is adds to the complexity of troubleshooting and complex designs. In the end what makes this issue so interesting to me and and why I keep mentally revisiting it is that it is an example of a system failure. Every single cause if occurred individually would have been as greatly problematic but their interactions together caused the observed issue to be many times worse.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Some great Nexus 7000 references&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ciscolive.com/online/connect/sessionDetail.ww?SESSION_ID=78456&amp;amp;backBtn=true&#34;&gt;BRKARC-3470 – Advanced – Cisco Nexus 7000/7700 Switch Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.cisco.com/c/dam/en/us/td/docs/switches/datacenter/sw/design/vpc_design/vpc_best_practices_design_guide.pdf&#34;&gt;Design and Configuration Guide: Best Practices for Virtual Port Channels (vPC) on Cisco Nexus 7000 Series Switches&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded>
        <dc:creator>suidroot</dc:creator>
        
        
        
        
          
            
              <category>bugs</category>
            
          
            
              <category>cisco</category>
            
          
            
              <category>networking</category>
            
          
            
              <category>nexus</category>
            
          
            
              <category>nexus 7000</category>
            
          
        
        
          
            
              <category>Networking</category>
            
          
        
        
      </item>
      
      <item>
        <title>My First OpenDaylight</title>
        <link>https://ben.the-collective.net/posts/2014-08-10-my-first-opendaylight/</link>
        <pubDate>Sun, 10 Aug 2014 16:18:07 -0400</pubDate>
        <author>locutus@the-collective.net (Ben Mason)</author>
        <atom:modified>Sun, 10 Aug 2014 16:18:07 -0400</atom:modified>
        <guid>https://ben.the-collective.net/posts/2014-08-10-my-first-opendaylight/</guid>
        <description>Over the last few days I’ve started to the play with the OpenDaylight Test VM Image. This image is was easy to get up and running and have a playground with mininet and a pre-baked OpenDaylight (ODL) controller to play with. After deploying the OVA file in Virtualbox poking around the file system I got down to “business” with getting a test topology in place. I made some changes to initial mininet configuration startup file to make the topology more complex and changing the startup command to look like the following,</description>
        <content:encoded>&lt;p&gt;Over the last few days I’ve started to the play with the &lt;a href=&#34;https://wiki.opendaylight.org/view/CrossProject:Integration_Group:Test_VMs&#34;&gt;OpenDaylight Test VM Image&lt;/a&gt;. This image is was easy to get up and running and have a playground with &lt;a href=&#34;http://mininet.org&#34;&gt;mininet&lt;/a&gt; and a pre-baked &lt;a href=&#34;https://www.opendaylight.org&#34;&gt;OpenDaylight&lt;/a&gt; (ODL) controller to play with. After deploying the OVA file in Virtualbox poking around the file system I got down to “business” with getting a test topology in place. I made some changes to initial mininet configuration startup file to make the topology more complex and changing the startup command to look like the following,&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo mn --controller &amp;#39;remote,ip=127.0.0.1,port=6633&amp;#39; --topo tree,3
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This yielded a 8 hosts and 7 switches topology. At one point I have 63 hosts and some number of switches things broke pretty hard so I dialed it back a little bit. I want over to the webui for the controller and after some fiddling Names and Tiers on the switches. My test topology in the ODL console is show in the following screenshot.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;../2014-08-10-my-first-opendaylight-images/Screen-Shot-2014-08-10-at-17.06.01.png&#34;&gt;&lt;img src=&#34;../2014-08-10-my-first-opendaylight-images/Screen-Shot-2014-08-10-at-17.06.01.png&#34; alt=&#34;ODL Home&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I also had full reachability from all of the mininet hosts.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mininet&amp;gt; pingall
*** Ping: testing ping reachability
h1 &amp;gt; h2 h3 h4 h5 h6 h7 h8
h2 &amp;gt; h1 h3 h4 h5 h6 h7 h8
h3 &amp;gt; h1 h2 h4 h5 h6 h7 h8
h4 &amp;gt; h1 h2 h3 h5 h6 h7 h8
h5 &amp;gt; h1 h2 h3 h4 h6 h7 h8
h6 &amp;gt; h1 h2 h3 h4 h5 h7 h8
h7 &amp;gt; h1 h2 h3 h4 h5 h6 h8
h8 &amp;gt; h1 h2 h3 h4 h5 h6 h7
*** Results: 0% dropped (56/56 received)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now that I had things working it was time to find ways to break it. Diving into the flow rules I threw together a basic Drop rule on one of the transit links.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;../2014-08-10-my-first-opendaylight-images/Screen-Shot-2014-08-10-at-17.13.32.png&#34;&gt;&lt;img src=&#34;../2014-08-10-my-first-opendaylight-images/Screen-Shot-2014-08-10-at-17.13.32.png&#34; alt=&#34;Flow Rule Split Network&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As expected the network was split into two.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mininet&amp;gt; pingall
*** Ping: testing ping reachability
h1 &amp;gt; h2 h3 h4 X X X X
h2 &amp;gt; h1 h3 h4 X X X X
h3 &amp;gt; h1 h2 h4 X X X X
h4 &amp;gt; h1 h2 h3 X X X X
h5 &amp;gt; X X X X h6 h7 h8
h6 &amp;gt; X X X X h5 h7 h8
h7 &amp;gt; X X X X h5 h6 h8
h8 &amp;gt; X X X X h5 h6 h7
*** Results: 57% dropped (24/56 received)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Lets see about black holing a single host now.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;../2014-08-10-my-first-opendaylight-images/Screen-Shot-2014-08-10-at-17.13.21.png&#34;&gt;&lt;img src=&#34;../2014-08-10-my-first-opendaylight-images/Screen-Shot-2014-08-10-at-17.13.21.png&#34; alt=&#34;Drop H1&#34; /&gt;&lt;/a&gt; This drops all traffic from the host connected to port 1 on the switch which happens to be h1&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mininet&amp;gt; pingall
*** Ping: testing ping reachability
h1 &amp;gt; X X X X X X X
h2 &amp;gt; X h3 h4 h5 h6 h7 h8
h3 &amp;gt; X h2 h4 h5 h6 h7 h8
h4 &amp;gt; X h2 h3 h5 h6 h7 h8
h5 &amp;gt; X h2 h3 h4 h6 h7 h8
h6 &amp;gt; X h2 h3 h4 h5 h7 h8
h7 &amp;gt; X h2 h3 h4 h5 h6 h8
h8 &amp;gt; X h2 h3 h4 h5 h6 h7
*** Results: 25% dropped (42/56 received)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;OpenDaylight has always peaked my interested, I’ve been trying to follow the mailing lists and some of the discussions out there and the Test VM is a nice way to start to get under the hood. I have a lot more to learn and there are a ton of other plugins to start to explore. Not to mention to start to think about the API and writing some code against it.&lt;/p&gt;
&lt;h2 id=&#34;notes&#34;&gt;Notes&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;If you do not set switch roles properly end hosts my not show up on the topology.&lt;/li&gt;
&lt;li&gt;Flow rule names can not have spaces in them.&lt;/li&gt;
&lt;li&gt;The controller had the Access switches properly classified in the Tier however the transit switches were not set to either Distribution or Core.&lt;/li&gt;
&lt;/ol&gt;
</content:encoded>
        <dc:creator>suidroot</dc:creator>
        
        
        
        
          
            
              <category>networking</category>
            
          
            
              <category>opendaylight</category>
            
          
            
              <category>sdn</category>
            
          
        
        
          
            
              <category>Networking</category>
            
          
        
        
      </item>
      
      <item>
        <title>IBM PURE systems networking</title>
        <link>https://ben.the-collective.net/posts/2013-12-02-ibm-pure-systems-networking/</link>
        <pubDate>Mon, 02 Dec 2013 13:00:04 -0500</pubDate>
        <author>locutus@the-collective.net (Ben Mason)</author>
        <atom:modified>Mon, 02 Dec 2013 13:00:04 -0500</atom:modified>
        <guid>https://ben.the-collective.net/posts/2013-12-02-ibm-pure-systems-networking/</guid>
        <description>To start off I’ll cut past some of the marketing and state that PURE Systems are IBM BladeCenters with some predefined hardware configurations that support both x86 and POWER work loads.
With that being said the advantage to the PURE architecture is the software that IBM has assembled to orchestrate deployments of workloads across all of the integrated platforms. The orchestrator is named Flex System Manager (FSM). The FSM plugs into VMWare for x86, HMC for Power systems and other management system for virtualization platforms.</description>
        <content:encoded>&lt;p&gt;To start off I’ll cut past some of the marketing and state that PURE Systems are IBM BladeCenters with some predefined hardware configurations that support both x86 and POWER work loads.&lt;/p&gt;
&lt;p&gt;With that being said the advantage to the PURE architecture &lt;strong&gt;is&lt;/strong&gt; the software that IBM has assembled to orchestrate deployments of workloads across all of the integrated platforms. The orchestrator is named Flex System Manager (FSM). The FSM plugs into VMWare for x86, HMC for Power systems and other management system for virtualization platforms. The FSM will use these connections to automate deployment of systems and monitoring of the hardware, physical and virtual systems within the PURE System.&lt;/p&gt;
&lt;p&gt;There are many details about the hardware I will not cover but one of the details IBM discusses is the increased speeds and feeds. This is accomplished by interconnections between the Nodes and the I/O Bays, each Node has multiple connection to the I/O Bays. The number of paths grow or shrink by the number of licenses, or as IBM says &lt;em&gt;Pay as you Grow&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;../2013-12-02-ibm-pure-systems-networking-images/Screen-Shot-2013-11-02-at-3.53.34-PM.png&#34;&gt;&lt;img src=&#34;../2013-12-02-ibm-pure-systems-networking-images/Screen-Shot-2013-11-02-at-3.53.34-PM.png&#34; alt=&#34;IBM Blade to IOM connectivity&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Image copied from (&lt;a href=&#34;http://www.redbooks.ibm.com/abstracts/tips0864.html&#34; title=&#34;http://www.redbooks.ibm.com/abstracts/tips0864.html&#34;&gt;http://www.redbooks.ibm.com/abstracts/tips0864.html&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The portfolio of IO Modules is similar to any BladeCenter you may have seen in the past, with options for in Network Switches (BNT Switches, some supporting OpenFlow 1.0), Fiber Channel switches and passthrough modules (All the options can be found here: &lt;a href=&#34;http://www-03.ibm.com/systems/flex/networking/&#34;&gt;http://www-03.ibm.com/systems/flex/networking/&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Where I see the need for great improvement is the POWER Series networking. POWER utilizes a Virtual IO Server (VIOS) to connect the LPARs to each other and the outside world. Essentially the VIOS is a AIX server that acts as a layer 2 bridge. The VIOS lacks the ability most network switches have had to do private VLAN configurations and layer 3 inspection. There also currently is no support at this time for next generation such as OpenFlow, IBM DOVE, or VXLAN.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;../2013-12-02-ibm-pure-systems-networking-images/Screen-Shot-2013-11-02-at-3.16.35-PM.png&#34;&gt;&lt;img src=&#34;../2013-12-02-ibm-pure-systems-networking-images/Screen-Shot-2013-11-02-at-3.16.35-PM.png&#34; alt=&#34;IBM PURE Block Diagram&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This brings many complications in a multi-hypervisor environment. For example locating an IBM LPAR next to a VMWare workload you will need glue it together with VLANs and legacy networking. This will require networking teams maintain network controls separately from how you may treat the rest of your virtualized work loads on the VMWare platform.&lt;/p&gt;
&lt;p&gt;Even though I have a bit of a beef with the VIOS, the PURE system is a good approach for IBM shops to consolidate their workloads into a single Private Cloud style configuration.&lt;/p&gt;
</content:encoded>
        <dc:creator>suidroot</dc:creator>
        
        
        
        
          
            
              <category>blade center</category>
            
          
            
              <category>ibm</category>
            
          
            
              <category>networking</category>
            
          
            
              <category>pure</category>
            
          
            
              <category>pure system</category>
            
          
        
        
          
            
              <category>Networking</category>
            
          
        
        
      </item>
      
      <item>
        <title>How does Riverbed Steelhead Auto Discovery work?</title>
        <link>https://ben.the-collective.net/posts/2013-09-14-how-does-riverbed-steelhead-auto-discovery-work/</link>
        <pubDate>Sat, 14 Sep 2013 15:41:18 -0400</pubDate>
        <author>locutus@the-collective.net (Ben Mason)</author>
        <atom:modified>Sat, 14 Sep 2013 15:41:18 -0400</atom:modified>
        <guid>https://ben.the-collective.net/posts/2013-09-14-how-does-riverbed-steelhead-auto-discovery-work/</guid>
        <description>Riverbed Steelhead devices have a method they use to find each other on the network. Riverbed has named this Enhanced Auto Discovery. This is intended to reduce time to deployment and simplify the configuration on the devices. The core of this method uses setting Options in the TCP headers within the initial 3 way handshake. There are a few concepts to go over to fully understand the process of Steelhead Auto Discovery.</description>
        <content:encoded>&lt;p&gt;Riverbed Steelhead devices have a method they use to find each other on the network. Riverbed has named this Enhanced Auto Discovery. This is intended to reduce time to deployment and simplify the configuration on the devices. The core of this method uses setting Options in the TCP headers within the initial 3 way handshake. There are a few concepts to go over to fully understand the process of Steelhead Auto Discovery.&lt;/p&gt;
&lt;h2 id=&#34;the-steelhead-is-a-layer-2-bridge&#34;&gt;The Steelhead is a Layer 2 Bridge&lt;/h2&gt;
&lt;p&gt;Every Riverbed is a layer 2 bridge, for traffic to enter the optimization engine it must be bridged through the Steelhead. In the appliance there are 2 interfaces that make of the bridge, they are named the LAN and WAN interfaces. The LAN interface connects the network where the client machines, or server machines are located. The WAN interfaces connects to the external network where the router for the VPN, MPLS, P2P, 3G Radio, or whatever medium may be in use resides.&lt;/p&gt;
&lt;p&gt;These interfaces together are called the IN PATH interfaces. In a Cisco device that is doing IRB style bridging the IN PATH interface would be similar to a BVI interface. The IN PATH interface is required to have an IP address assigned to it, this is the IP Steelheads use to communicate to each other on. For example Inner Channel is negotiated between IP addresses of IN PATH interfaces, this is one reason that IP reachability between the IN PATH IP addresses is important.&lt;/p&gt;
&lt;h2 id=&#34;clients-and-servers&#34;&gt;Clients and Servers&lt;/h2&gt;
&lt;p&gt;There are a couple of designations that help to clarity which devices initiate which connections. The Client Steelhead (CSH) is the Steelhead that receives the first Naked SYN from the client machine initiating the connection. A Server Steelhead (SSH) is a Steelhead that receives the SYN+ from a Client Steelhead and is the Steelhead closest to the destination server.&lt;/p&gt;
&lt;h2 id=&#34;the-channels&#34;&gt;The Channels&lt;/h2&gt;
&lt;p&gt;Channels denote areas where specific devices communicate with each other, and where traffic is optimized or not optimized. There are 2 separate Outer Channels and a single Inner Channel.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;../2013-09-14-how-does-riverbed-steelhead-auto-discovery-work-images/Screen-Shot-2013-08-18-at-10.38.49-PM.png&#34;&gt;&lt;img src=&#34;../2013-09-14-how-does-riverbed-steelhead-auto-discovery-work-images/Screen-Shot-2013-08-18-at-10.38.49-PM.png&#34; alt=&#34;Screen Shot 2013-08-18 at 10.38.49 PM&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Outer Channel (local) – This channel is between the Steelhead LAN interface and the client machine sourcing of the Naked SYN. This may be a branch workstation for example.&lt;/p&gt;
&lt;p&gt;Outer Channel (Remote) – This is the channel between the Steelhead LAN interface and the server machine that the initial SYN was intended to be received by. This may be some sort of application or file server at a data center for example.&lt;/p&gt;
&lt;p&gt;Inner Channel – This is the network between the WAN interfaces of the Steelheads. This is a TCP connection between the IN PATH IP address where all optimized traffic between Steelheads passes. The default for used for this connection is TCP&lt;span style=&#34;font-size: 13px; line-height: 19px;&#34;&gt; 7800.&lt;/span&gt;&lt;/p&gt;
&lt;h2 id=&#34;the-process&#34;&gt;The Process&lt;/h2&gt;
&lt;p&gt;Now on to the steps used for the Steelhead devices to find each other. There are 7 main steps involved, in the following example you are initiating a TCP connection from a Client workstation to a Server to copy a file.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;../2013-09-14-how-does-riverbed-steelhead-auto-discovery-work-images/Screen-Shot-2013-08-18-at-10.54.42-PM.png&#34;&gt;&lt;img src=&#34;../2013-09-14-how-does-riverbed-steelhead-auto-discovery-work-images/Screen-Shot-2013-08-18-at-10.54.42-PM.png&#34; alt=&#34;Screen Shot 2013-08-18 at 10.54.42 PM&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The client machine sends a Naked SYN packet, this is a SYN with out the PROBE TCP option set. This SYN packet is received on the LAN interface of the CSH and is intercepted by the CSH. At this stage the Steelhead checks licenses to make sure this traffic is entitled, if it is not the traffic is just passed through unchanged. If all is well the CSH will add the TCP header Option number 76. This option header is named AUTO-DISCOVERY PROBE and will include such information as the IN PATH IP address and what role this Steelhead is assuming. A packet with an TCP option is noted by a ‘+’ in documentation, for example SYN+. After the header is set the packet is forwarded out the WAN interface.&lt;/li&gt;
&lt;li&gt;This SYN+ is received by the Steelhead that will become the SSH (in this example) on the WAN interface. Again at this stage licenses on this Steelhead are checked to make sure this traffic is entitled, if not the traffic is just passed through untouched. If the SYN does not for the option headers set it is also passed through untouched.&lt;/li&gt;
&lt;li&gt;Since this packets is a SYN+ the Steelhead then sends a SYN/ACK+ with FWD Negotiation option back towards Client machine. This SYN/ACK+ is then intercepted by the CSH on the return path.&lt;/li&gt;
&lt;li&gt;The Steelhead near the Server machine starts a negotiates 3 way handshake with Server machine. If this Steelhead does not encounter another Steelhead between itself and the Server machine it will assume the role of SSH and complete an 3 way handshake with the Server machine. If a Steelhead is encountered this process repeats down the line towards the server.&lt;/li&gt;
&lt;li&gt;The newly declared SSH will then send a SYN/ACK+ with PROBE RESPONSE option in headers towards CSH.&lt;/li&gt;
&lt;li&gt;The SYN/ACK+ is intercepted by the CSH and the CSH initiates the Inner channel between the CSH to the SSH.&lt;/li&gt;
&lt;li&gt;Once the Inner Channel is formed the CSH completes the 3 way between itself and the Client machine.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now that the above steps are completed the traffic between the Client machines and Server machines is on its way and the Steelhead is transparently (to the client and server) doing its optimization magic. All of the traffic in this flow, after it has been optimized is transmitted, over the Inner Channel. If a new traffic flow needs to communicate between the Client and Server the process starts again for that new traffic flow and this is the case for every TCP connection that occurs from site to site.&lt;/p&gt;
&lt;h2 id=&#34;where-trouble-can-occur&#34;&gt;Where Trouble can Occur&lt;/h2&gt;
&lt;p&gt;There are a few basic items that can easily stop this process from occurring, therefor blocking optimization from occurring.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If there is something strips the Option headers out of TCP packets such as a firewall or IDS.&lt;/li&gt;
&lt;li&gt;The IN PATH interfaces do not have Layer 3 reachability between each other. This will prevent the Inner Channel from forming.&lt;/li&gt;
&lt;li&gt;The traffic does not follow from the LAN to WAN and WAN to LAN interfaces on both the SSH and CSH.&lt;/li&gt;
&lt;li&gt;The boxes are improperly licensed or the amount of traffic/tcp session is exceeding the license&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Over all this is a pretty simple process and not to different from how other vendors handle things such as Cisco WAAS. Even though they use technologies such as WCCPv2. There are other scenarios that such as Virtual In Path and Server Side Out of Path that are a bit different, but this is the Riverbed recommended way of doing things.&lt;/p&gt;
</content:encoded>
        <dc:creator>suidroot</dc:creator>
        
        
        
        
          
            
              <category>autodiscovery</category>
            
          
            
              <category>riverbed</category>
            
          
            
              <category>steelhead</category>
            
          
        
        
          
            
              <category>Networking</category>
            
          
        
        
      </item>
      

    
  </channel>
</rss>
