Category Archives: Networking & SDN

Network device configuration using templates with Jinja2 and YAML

This blog is part of my series on Devops for Networking. Typically, Network device configurations for CLI based systems are stored as text files and when its necessary to change parameters like gateway address, vlan, ntp server etc, the script is manually edited and then reapplied to the device. This process is manual and prone to errors. In this blog, I will cover how to automate generation of configuration scripts using Jinja2 and YAML. I will also provide an sample application that I created. For more details, please refer to the references section below.

Tools overview:

Jinja2:

Jinja2 is a Python library for creating configuration based on templates. Jinja2 defines a templating language with which templates are created. The templates can be as simple as a hostname variable that needs to be updated or it can be an array of vlans that needs to be populated. Jinja2 also provides complex templates to cover different scenarios. Following is a very simple example of a template which says ntp_server is a variable that needs to be updated dynamically. We will see later how we can feed in the dynamic values to update.

ntp server {{ ntp_server }}

Continue reading Network device configuration using templates with Jinja2 and YAML

Cisco device configuration using Netconf

This blog is part of my series on Devops for Networking. In this blog, I will cover how to configure and monitor Cisco NXOS devices using Netconf. In 1 of my earlier blogs, I have provided basics of Netconf and Yang.

I have used Nexus 3k switch for my experiments below.

Netconf has the following layers:

devops8

  • Transport protocol is sshv2.
  • rpc request section contains namespace related details.
  • Operations section could be different operations like edit-config, get-config, commit, lock etc.
  • Content section contains the actual device operation in XML format. The schema for the content can either be specified in XSD format or using Yang. Cisco NXOS devices support XSD format and I will use it in this blog.

Continue reading Cisco device configuration using Netconf

Cisco device configuration using OnePK

This blog is part of my series on Devops for Networking. onePK is Cisco’s attempt to expose a standard set of APIs to configure and monitor across multiple different Cisco devices. Orchestration and automation applications can use these standard APIs to talk to Cisco devices. In this blog, I will cover a brief overview of onePK and how to get started with onePK to write applications on top of it.

OnePK overview:

Following block diagram from Cisco gives different blocks involved in onePK.

devops6

Continue reading Cisco device configuration using OnePK

Nexus devices CLI parsing using Python, XML and JSON

This blog is part of my series on Devops for Networking. As I indicated in 1 of my earlier blog, majority of Network devices still have CLI as the only means of configuration and monitoring. CLI is not automation friendly because of obvious reasons. In the last few years, Cisco NXOS devices provides CLI output in XML and JSON format. This allows much easier ways to parse the CLI output which aids in automation. In this blog, I will cover some examples of monitoring Cisco NXOS devices using Python interface to interact with the device and get useful information.

Prerequisites:

Continue reading Nexus devices CLI parsing using Python, XML and JSON

Cisco UCS automation using Python SDK

This blog is part of my series on Devops for Networking. In this blog, I will cover a brief overview of UCS management model, management tools and how to automate configuration and monitoring of Cisco UCS using Python SDK. UCS is Cisco’s Unified computing system that provides a tightly integrated compute, networking and storage solution.

UCS Management

Cisco UCS management information model is a hierarchical tree with each node in the tree representing either physical or logical entity. The node is referred to as MO(Managed object). Physical entities could be chassis, servers, switches and logical entities could be policies, service profiles etc. XML based interface is provided to set and get managed objects. Following picture shows a sample Management tree with Chassis, blades and adapters.

Continue reading Cisco UCS automation using Python SDK

DevOps and Network Automation

Devops is now a widely used term. I recently read few articles on Devops in relation to Network Automation and that prompted me to do some research on this topic. In this blog, I will cover what I think comprises the Devops Networking domain and in the next series of blogs, I will try to explore individual areas in more detail. Devops allows infrastructure to be treated as a code and it makes the infrastructure programmable. The term Devops refers to a merger between Development and Operations role and it encourages Developer to look at Operations angle and Network operator to look from Developer angle. As everyone knows, automating infrastructure deployment improves efficiency, removes operator error and allows us to scale. Server automation has been present for quite some time and Network Automation is still very much in infancy stage at this point. Following article from Ivan describes Devops as a lifestyle or mindset on how infrastructure is treated rather than as tools associated with Devops.

How is Network Automation different from Server automation?

Continue reading DevOps and Network Automation

SDN Openflow commercial applications – Part 2

This blog is a continuation from my previous blog on SDN Openflow commercial applications. In this blog I will cover SDN applications in Network performance optimization and monitoring and Data center fabric.

Network performance optimization and monitoring

Networks have a lot of information and by looking at Network state and statistics collectively rather than at individual device level provides a lot of useful information. This information can be used to optimize the network based on application needs. The next set of applications are targeted towards monitoring Network state and statistics as well as improving the performance of the network.

Kemp SDN Adaptive load balancer

Kemp has integrated its Load master ADC with HP VAN SDN controller to provide adaptive load balancing based on the traffic load on the switches.  Normally ADC makes load balancing decisions based on L4-L7 characteristics. Kemp’s Load master ADC interacts with HP VAN SDN controller which in turn gets the traffic load on switches using Openflow. Based on the L2/L3 network statistics and the L4-L7 characteristics, Kemp’s Load master makes intelligent decisions on traffic steering and load balancing.

Continue reading SDN Openflow commercial applications – Part 2

SDN Openflow commercial applications – Part 1

In this blog, I will cover some commercial SDN Openflow applications available in the market now. SDN is the most overused term in the Networking industry now and there are different applications and technologies claiming as SDN.  I am going to cover SDN Openflow applications which rely on the model of switches supporting Openflow agent and a centralized controller running the control plane and programming the data path in the switches using Openflow protocol. The switches can either be virtual or physical switches. Following are the topics that I am planning to cover in this blog.

  • SDN Openflow application model
  • SDN Openflow applications. Following are some broad categories and examples of vendors providing the solutions in that category. This is not an exhaustive list..
    1. TAP Monitoring fabric – Bigswitch Big Tap monitoring fabric, Microsoft DEMon(Distributed Ethernet monitoring)
    2. Security – F5 Big Ddos, Bluecat DNS director,  HP Network protector, Radware Defenseflow, Guardicore Defense suite
    3. Network performance optimization and monitoring – Kemp adaptive load balancer, Realstatus hyperglance, Ecode Evolve, HP Network optimizer
    4. Data center fabric – Big switch big cloud fabric, HP VCN, NEC Programmable network fabric
  • Final thoughts

In the first blog, I will cover the SDN Openflow application model and TAP monitoring fabric and Security applications. In the next blog, I will cover Network performance optimization and monitoring, Data center fabric and some final thoughts from my side.

Continue reading SDN Openflow commercial applications – Part 1

Open Compute – Networking project

This is a continuation of my previous blog on White box switches. White box switches allows for dis-aggregation of switch hardware from the software running on the switch. This approach allows the buyer to purchase hardware from 1 vendor and software from another vendor. Open compute project is an Open source project that was started around 4 years back by Facebook to open up the Data center hardware. Multiple other companies like Intel, Microsoft, Goldman Sachs have joined the community since.  Around a year back, Networking charter was started in Open compute project to open up the Networking part of Data center hardware. Facebook, Intel, Broadcom, Cumulus, Arista are some of the vendors participating in this project. In this blog, I will cover the following:

  • Components/Charter of Open compute networking project.
  • Current contributions to the project
  • Facebook’s Wedge and FBOSS
  • Final thoughts

Continue reading Open Compute – Networking project

NFV Solutions

This is a continuation from my previous blog on NFV overview. In this blog, I will cover popular NFV solutions in the market. This is not an exhaustive list, these are the NFV solutions that I am aware of. Following are the ones that I will cover:

  • Cisco Evolved services platform(ESP)
  • Alcatel-Lucent Cloudband
  • CloudNFV
  • Overture’s Ensemble OSA

Continue reading NFV Solutions