Cisco Blogs


Cisco Blog > Architect & DE Discussions

Programmability in Python: Confessions of a Networking Guy

I am not qualified to discuss it much, but can you guess what this does?

     ne = NetworkElement("172.16.66.1", "JasonsApp")
     conn = ne.connect("admin", "cisco", sc)
     intf1 = ne.get_interface_by_name("FastEthernet0/1")
     intf1.shut_down(1)
     sleep(5)
     intf1.shut_down(0)

 

If you guessed that it logs into a switch at 172.16.66.1 and disables interface F0/1 for 5 seconds and re-enables it, then you guessed right.

Let us talk a little about putting the “ability” in programmability.  Did I code in college? Yes. Was I good at it? Not really. Dijksta’s algorithm (the actual coding bit) drove me crazy, however, actually using and operating networks quickly became my cup of tea. I became a network geek. Subnets? Awesome! Cisco CLI? Sweet. Using Enhanced Interior Gateway Routing Protocol (EIGRP)? Yay! AVVID? Even better. But I never wanted to see C++ or another “program” again.

Fast forward to 2014.  I’m still a networking guy but now I’m seeing code again.  The good news is, maybe like you, I hang out with some really cool people. I challenged a couple of them to help me demonstrate program “ability” to networking people on the show floor at CiscoLive Milan…with me as the test subject! Read More »

Tags: , , , , , , ,

My App anywhere: On devices, on controller, on both!

Current differences in app development on devices and controllers disappear. Devices and controllers will share a common programming environment – offering a unified development and deployment experience.

While SDN is moving from concept to reality, we notice that many deployments which focus on creating new network features interpret the role of the “controller” very pragmatically. In these deployments, the controller is not used as an independent layer of software which abstracts the entire underlying infrastructure as in the traditional view of SDN (see for example ONF’s SDN Definition). The pragmatic approach to network programming simply extends the distributed development environment of the network devices using a set of qualities offered by the controller.  Developers move those components of their distributed apps to the controller that benefit from the logical centralization or the enhanced resources (CPU, memory) that a controller typically offers while keeping other components on the network devices. Example use cases fall into the categories of distributed network analytics, DDoS thread mitigation, or routing optimization based on performance measurements. What does this mean for our development environment?

Read More »

Tags: , , ,

Autonomic Networking at Cisco Live Milano!

Welcome to Milano!

Wow, what an activity on the first day at the Cisco Campus / World of Solutions. It’s great to see all these people thirsty for knowledge, and all these people looking for intelligent solutions for their business needs.

One of those business needs is removing complexity from networks by making networks self-managing, or in other words Autonomic Networking.  2014 will be the year that we are shipping the first sets of functionality in this space, so that makes us really exited.  After all we have been working on this for more than 3 years internally, and its great to finally see the fruits of that hard work.

Michael has explained in his blog that Autonomics is all around us, but until now there wasn’t a solution that allowed other applications to leverage a common autonomic infrastructure.  Finally it is here!  The Autonomic Networking Infrastructure allows Service Providers to bootstrap new devices completely zero touch, in a secure fashion, without pre-staging the devices and/or a back-end DHCP Server, and this totally topology independent!  Just plug in the device, and watch it getting authenticated, receiving a Domain Certificate, joining the Autonomic Domain, and joining the Autonomic Control Plane, which provides indestructible IPv6 end-to-end connectivity!  If an mdns-enabled TFTP server is connected to the network, it will leverage the Autonomic Control Plane to announce its service, upon which the devices will pull in their configuration! Read More »

Tags: , , , , , , , , ,

Hands On with SDN in Milan

Those of you who follow me know that one of the milestones I have for SDN is when we start turning those unicorns into plough horses.  While I don’t think we are quite there yet, the partner demos you can check out on the floor in Milan show that we are certainly moving the needle with SDN: Read More »

Tags: , , , ,

Top Things to Know About DFA Before Cisco Live Milan

Two weeks ago, I presented a webinar on Dynamic Fabric Automation (DFA) and went over the allocated 1 hour to cover the content.  Yesterday, as I was doing follow up with a hands-on demo, I went over time too. This illustrates how rich DFA is, and how much there is to say about it! Dynamic Fabric Automation is an environment for data center automation that is centered on the CPOM (Central Point of Management), a set of services that are provided with the new Data Center Network Manager (DCNM) release 7.0(1).

The services available on the CPOM provide the following:

  1. Power On Auto Provisioning (POAP)
  2. Inter-switch link connection verification
  3. A single console for configuration
  4. Network Auto-Config Profile provisioning
  5. Message processing for external orchestrator
  6. Automatic host provisioning
  7. Embedded management for network monitoring and data collection

All of these services are provided using standard protocols and applications. For example, the POAP service uses DHCP, TFTP and SCP/SFTP, but using a combination of templates and a very intuitive and easy-to-use GUI, DCNM provides a simplified and systematic way of bringing up your data center fabric. The inter-switch link validation or cable consistency check allows the operator to verify the fabric connections against a predefined template and prevent unexpected connections to come up.

The Jabber process provides the single console for configuration, statistics and troubleshooting. Using any XMPP client, an operator can “chat” with the fabric devices; this approach offers the possibility to organize devices in chat groups that match their role, their location or simply some administrative set. With XMPP, a single command can be sent to multiple devices in a secure way.

The most important element of the CPOM is certainly the network profile provisioning. Read More »

Tags: , , , , , , , , ,