<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Network Operations - Medium]]></title>
        <description><![CDATA[Vendor neutral topics around network automation - Medium]]></description>
        <link>https://medium.com/network-operations?source=rss----cbd0094bce13---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Network Operations - Medium</title>
            <link>https://medium.com/network-operations?source=rss----cbd0094bce13---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 22 May 2026 13:31:39 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/network-operations" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Network device discovery and storage]]></title>
            <link>https://medium.com/network-operations/network-device-discovery-and-storage-b57afcc02ac0?source=rss----cbd0094bce13---4</link>
            <guid isPermaLink="false">https://medium.com/p/b57afcc02ac0</guid>
            <dc:creator><![CDATA[Allan Feid]]></dc:creator>
            <pubDate>Fri, 18 Apr 2014 01:00:43 GMT</pubDate>
            <atom:updated>2014-04-18T01:00:38.885Z</atom:updated>
            <content:encoded><![CDATA[<h4>nmap, snmp, and elasticsearch</h4><p>A few years ago I first heard about a system that let you run code in parallel over thousands of machines. It didn’t involve SSH and relied heavily on facts to discover the nodes you were about to run code on. That system is known as the <a href="http://docs.puppetlabs.com/mcollective/">Marionette Collective</a> or mcollective.</p><p>Inspired by the idea of device discovery, I wanted to come up with something similar for network devices on my network. The inability to install arbitrary code on today’s traditional vendor hardware, makes this a bit more challenging than I’d like. However, with a little work, you can get a decent system going.</p><p><em>Note: I’m only going to go over some techniques that I’ve used, rather than point out actual code. Unfortunately, the code behind this needs to be scrubbed before I can put it out there publicly.</em></p><p><strong>Finding the devices</strong></p><p>In my network, and I’d assume most others, there is a management subnet that can be used for monitoring your devices and basic management. Typically your device is not considered “online” until it is active here first.</p><p>Powered with that knowledge, and assuming you have your baseline config installed, you can use a network scanner to find these devices. I chose nmap since it is the one I’m most familiar with, and there are decent libraries out there for interacting with it.</p><p>I’m using the python library libnmap to kick off this scan:</p><pre>nmap -T4 -sn 10.1.1.0/24 10.2.1.0/24</pre><p>This is a simple ping scan, so you don’t have to wait too long to get your results in. The python library takes care of converting this data into usable objects.</p><p><strong>Gathering facts about the devices</strong></p><p>Now that you have a list of devices, it’s easy to start gathering data in a for loop. I’m assuming that you have some sort of provisioning workflow, and your workflow includes setting up things like NETCONF, RADIUS, and SNMP. In this case, the easiest protocol to retrieve facts about your device is SNMP.</p><p>I like to mimic the facts outlined by <a href="http://puppetlabs.com/facter">Facter</a>, because this is what I use on Linux machines. When all your facts have similar keys, it makes search queries much easier and allows you to return Linux + Network devices in the same query. Here are the basics I like to grab:</p><ul><li>macaddress — <em>associated with your management interface</em></li><li>fqdn — <em>fully qualified domain name of the device</em></li><li>serialnumber — <em>serial number of the device</em></li><li>interfaces — <em>comma separated string of all device interfaces</em></li><li>boardmanufacturer — <em>vendor name</em></li><li>location — <em>snmp location of the device</em></li><li>ipaddress — <em>IP associated with the management interface</em></li><li>description — <em>sysDescr output from snmp</em></li></ul><p>Of course there are plenty of other things you can gather and insert into a simple dictionary. For some guidance, I recommend taking a look at <a href="https://github.com/Juniper/py-junos-eznc">python-junos-eznc</a>, though making a full NETCONF connection is a bit much when dealing with hundreds of devices.</p><p><strong>Storing the data somewhere for querying later</strong></p><p>I have a lot of internal systems that were built around storing Linux node information. So because of that, I’m biased towards using <a href="https://github.com/optopus/optopus">Optopus</a>. However, choose a store that works for your environment. I highly recommend something like <a href="http://www.elasticsearch.org/">Elasticsearch</a>, because it is cluster-able and can be replicated across datacenters for availability.</p><p>The storage you choose, should be easy to query. Preferably from a REST based API so that it’s easy to use from any language without much need for a full fledged library. You can always opt for a simple relational database like MySQL or PostgreSQL, but it really depends on how you’re going to use this data.</p><p>I personally enjoy being able to search for devices in order to perform actions on them. For example, a query such as:</p><pre>location:tx01 ex2200</pre><p>Would return all Juniper EX2200 devices in my “tx01&quot; datacenter.</p><p><strong>What are you doing for network device discovery?</strong></p><p>I realize there are plenty of for-sale solutions out there, but I’m a firm believer of knowing what happens under the hood. You gain tons of flexibility and integration with other parts of the company by building your own systems. I’d be interested in what other people do to solve this problem, and possibly working to release code I’ve already written if there’s enough interest.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b57afcc02ac0" width="1" height="1" alt=""><hr><p><a href="https://medium.com/network-operations/network-device-discovery-and-storage-b57afcc02ac0">Network device discovery and storage</a> was originally published in <a href="https://medium.com/network-operations">Network Operations</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Virtualization on network hardware]]></title>
            <link>https://medium.com/network-operations/virtualization-on-network-hardware-21d50182327d?source=rss----cbd0094bce13---4</link>
            <guid isPermaLink="false">https://medium.com/p/21d50182327d</guid>
            <dc:creator><![CDATA[Allan Feid]]></dc:creator>
            <pubDate>Wed, 16 Apr 2014 01:34:24 GMT</pubDate>
            <atom:updated>2014-04-16T01:34:19.584Z</atom:updated>
            <content:encoded><![CDATA[<h4>We need more of this</h4><p>During the last year of my college education, I fell in love with Open Solaris. That’s not something you hear everyday, but the guys at Sun were and still are smart people. If you’ve ever had the chance to play with Zones, ZFS, or even their handy admin commands, you’d agree. One of the smaller features at the time which was still fairly new, was the <a href="http://en.wikipedia.org/wiki/OpenSolaris_Network_Virtualization_and_Resource_Control">Crossbow project</a>.</p><p>Crossbow combined with Zones and even Xen virtual machines, allowed you to create a “network in a box.” This is where I learned a lot about how basic layer 3 connectivity worked. It was easy to create virtual NICs and attach them to a virtual switch. These could then be attached to Zones or VMs which acted as routers between other networks. The commands were relatively easy to to use, and made sense.</p><p>I bring this up, because I recently <a href="http://forums.juniper.net/t5/Data-Center-Technologists/The-QFX5100-Takes-Virtualization-to-Heart/bc-p/230759">read an article</a> by <a href="https://twitter.com/douglashanksjr">Doug Hanks</a> about Juniper’s new QFX5100.</p><blockquote>Everywhere you look there’s virtualization. Hypervisors, NAS, and Containers. What about networking? Some people say VLANs. Others say MPLS. A topic of recent discussion is overlay technologies and VXLAN. But what if it went deeper than that? What would happen if you apply some of the server virtualization to networking? What would the result be?</blockquote><blockquote>Under the hood each networking switch has a control plane, which is basically full blown computer. It has a CPU, memory, and local storage. What would happen if the QFX5100 virtualized its control plane? Well, it did.</blockquote><blockquote>The QFX5100 natively boots into Linux and uses KVM as a hypervisor to create virtual machines. Junos, the network operating system, runs inside of a VM. At first glance, one might ask what’s the big deal? You just added to layers of abstraction between the switch and Junos. However with abstraction comes the ability to do more than what was previously possible.</blockquote><p>This has me extremely excited. I’m a big fan of KVM and have been using it for years. It’s a bit more heavy handed than Solaris Zones, FreeBSD Jails, or Docker, but it’s a start. Being able to run VMs on your network hardware opens the doors for limitless capabilities.</p><p>Imagine a day when all hardware vendors had this functionality, and you were able to drop a lightweight Linux installation on your core routing device. You could run something like mcollective in there to execute NETCONF commands in parallel, or gather metrics directly with collectd and pipe them into graphite. Of course, this is assuming the network operating system running along side this VM provides access.</p><p>Virtualization If other vendors are doing something similar, I’d love to know about it. I’m hoping this becomes a standard practice soon.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=21d50182327d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/network-operations/virtualization-on-network-hardware-21d50182327d">Virtualization on network hardware</a> was originally published in <a href="https://medium.com/network-operations">Network Operations</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Where’s the community for network automation?]]></title>
            <link>https://medium.com/network-operations/wheres-the-community-for-network-automation-4bcf04feacd9?source=rss----cbd0094bce13---4</link>
            <guid isPermaLink="false">https://medium.com/p/4bcf04feacd9</guid>
            <dc:creator><![CDATA[Allan Feid]]></dc:creator>
            <pubDate>Tue, 15 Apr 2014 01:13:21 GMT</pubDate>
            <atom:updated>2014-04-15T01:14:38.277Z</atom:updated>
            <content:encoded><![CDATA[<h4>Lots of small projects, lack of community</h4><p>I’ve been working in the tech industry now for about 7 or 8 years. While that’s not a huge amount of time, I have jumped all over the operations spectrum. Starting in a call center fixing AT&amp;T DSL connections, interned at a small IT outsourcing shop, building “private clouds,” doing the DevOps thing, and now I spend a lot of time playing with routers.</p><p>Through out my various positions, I’ve always been able to find free and open source software with amazing communities built around them. It’s been easy to submit patches on GitHub, find advice on Freenode, or keep up with the latest news on Reddit (or hacker news).</p><p>Maybe I’m not looking hard enough, but it would appear the community around network automation is scattered through a few different medias. There are a lot of smart people with great aspirations, but there seems to be a lack of communal direction. Everything is spread thin between Twitter, Google+ (yes really), and a few small IRC channels.</p><p>You’ve got amazing work being done by <a href="https://twitter.com/nwkautomaniac">Jeremy Schulman</a> to bring network devices (junos at the moment) up to par with a standard Linux box. Meaning <a href="https://github.com/jeremyschulman/jctyztp">he’s got something together for deploying brand new devices</a>, <a href="http://puppetlabs.com/solutions/juniper-networks">puppet running on junos</a>, and his latest work appears to make <a href="https://github.com/Juniper/py-junos-eznc">using NETCONF as simple as possible</a>.</p><p>When you’re trying to work on massive amounts of systems in parallel, I came across <a href="http://jathan.com/">Jathan McCollum</a>, who’s got a pretty impressive amount of code <a href="https://github.com/trigger/trigger">exposing the CLI and NETCONF</a> over a variety of different vendors.</p><p>Digging a bit deeper into network protocol manipulation, you’re likely to run into <a href="https://plus.google.com/+ThomasMangin/posts">Thomas Mangin</a> who makes it fairly trivial to modify <a href="https://github.com/Exa-Networks/exabgp">BGP routes using software</a>.</p><p>To be fair, I’ve only been looking into network automation stuff for the last few months. I know there are plenty of other great projects out there, and people talking about <a href="http://www.enterprisetech.com/2013/10/04/facebook-operations-chief-reveals-open-networking-plan/">white box networking devices</a>, but we need more collaboration and knowledge share. If you’ve done something cool or exicting with the network, be proud of it and get the word out.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4bcf04feacd9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/network-operations/wheres-the-community-for-network-automation-4bcf04feacd9">Where’s the community for network automation?</a> was originally published in <a href="https://medium.com/network-operations">Network Operations</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>