Extensive Message Protocol (XMPP) is an open standard protocol based on XML (Extensible Markup Language). XMPP is designed to transport instant messages (IM) between entities and to detect online presence. It supports authentication of IM application and secure transport of messages over SSL/TLS. In XMPP entities can be bots, physical users, servers, devices or components. It’s really a powerful tool that has great potential for system administrators to add to their toolbox because:
XMPP is powerful
XMPP with Python is only 12 lines of code – trust me, it’s easy!
XMPP only requires a single query for multiple nodes
Status message can be used to track host presence
The Power of XMPP
For those of you that are not familiar with XMPP, it not only supports one-to-one messaging between entities but it also supports multi-party messaging (which enables an entity to join a chat room for the exchange of messages with several participants). The messages can be text messages embedded in XML format but XML can also be used to send control messages between entities as we will see with the presence stanza in a bit.
XMPP is widely used; Google uses it (for its Hangout application – formerly google chat) and so does Yahoo and MSN. At Cisco, we use Cisco Jabber extensively to communicate internally. The XMPP client function is now integrated in the Cisco Nexus 5000 series with the release 5.2(1)N1(7) and the Nexus 6000 series with the release of 7.0(0)N1(1). XMPP is an integral part of the single console access for Dynamic Fabric Automation (DFA) which is a powerful framework described in my previous blog.
The new Data Center Network Manager (DCNM) 7.0(1) is delivered as an OVA file that can be deployed quickly on an existing VMware-enabled server. Although DCNM comes with a lot of features that simplify the deployment of the Data Center fabric, we can pick and choose any service we want to use independently – which is great since DCNM comes with Cisco Jabber XCP and is license free. If you already have a XMPP service installed (like Openfire or ejabberd), it will not be a problem because everything discussed here is valid on any standard XMPP implementation.
On NX-OS devices, the XMPP feature is activated by configuring ‘feature fabric access’ and is part of the Enhanced L2 license (ENHANCED_LAYER2_PKG). Once activated, the switch becomes a XMPP client that needs to be registered on the server. In order to register it, XMPP requires the use of fully qualified domain names (FQDNs) to identify the domain server. If the switch does not have access to a DNS service, I recommend that you use the switch management network for messaging and a static host–to–IP address mapping in the switch configuration.
The switch will use its hostname to login to the XMPP service. If your XMPP server does not support auto-registration, you will need to register the switch and the rooms in the XMPP database beforehand. The DCNM OVA requires users and groups to be created via the CLI, and example of this user and group creation is:
[root@dcnm-ova ~]# appmgr add_user xmpp -u leaf0 -p cisco123
[root@dcnm-ova ~]# appmgr add_user xmpp -u leaf1 -p cisco123
User added. Read More »
We at Cisco are really excited to introduce the new Cisco Nexus 5600 platform! It is the third generation of industry’s leading Data Center Server-Access Nexus 5000 series of switches. Cisco Nexus 5600 is the successor of industry’s most widely adopted Cisco Nexus 5500 series switches (with over 20,000 customers and 25 million ports shipped) that maintain all the existing Nexus 5500 features such as LAN/SAN convergence, Fabric Extenders (FEX) and Fabric Path.
The new Nexus 5600 was unveiled at CiscoLive Milan in January 2014 with quite a bit of interest
Nuts and Bolts
We are introducing 2 models under the 5600 platform:
Cisco Nexus 5672UP – A 1 RU 10/40G Ethernet switch offering wire-speed performance for up to 48 10G Ethernet ports (16 of which are Unified Ports) and 6 true 40G ports.
Cisco Nexus 56128P – A 2 RU 10/40G Ethernet switch offering wire-speed performance for up to 96 10G Ethernet ports (48 of which are Unified Ports) and 8 true 40G ports..
In addition to the existing features of the Nexus 5000, 5600 platform brings new features such as True 40 GE support, VXLAN bridging and routing and Cisco Dynamic Fabric Automation (DFA) innovation. With a latency of about 1 µsec, the 5600 platform is ideal for applications which need low latency. For those of you who need network programmability, the Nexus 5600 supports Cisco OnePK and Openflow.
Why these new features matter
Extensibility with VXLAN support
The Cisco Nexus 5600 with its VXLAN support is very well suited for multi-tenant cloud deployments. In large scale, multi-tenant cloud deployments, there is a need for VMs to migrate across layer-3 boundaries. Traditional VLANs only support about 4000 VLANs which are insufficient in the deployments of thousands of VMs. With the migration need across layer-3 boundaries complexities of layer-3 routers are introduced. To solve the scalability as well as the migration issues VXLAN was developed. For more details on VXLAN, watch the video: http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9902/vidoe_fundamentals_vxlan.html
Ease of management with Cisco Dynamic Fabric Automation (DFA)
Our customers are also faced with complex, manual network configurations and have a hard time keeping up with application requirements. To solve these challenges, Cisco has developed an architecture called Dynamic Fabric Automation (DFA) which simplifies management and automation – such as automatic device and fabric configuration, automatic VM deployment, migration and seamless integration of bare-metal and virtualized resources in the data center. The Cisco Nexus 5600 platform with DFA implemented in the hardware as well as software is ideal for the multi-tenant and mixed (physical and virtual) cloud infrastructure.
The difference between a 40G and True 40G port is that you can push an entire 40G flow in the True 40G port and in the normal 40G port, the port really is divided into 4 10G ports via Etherchannels, Thus in the True 40G, you get full 40G bandwidth. The Cisco Nexus 5600 platform switches has True 40G ports, which help in servicing the full 40G flows.
The Big Picture
Cisco has one of the most comprehensive portfolios for the Data Center and Cloud Networking and this Nexus 5600 platform is but one of the pieces of this portfolio. You may want to read this excellent blog, which explains Cisco’s Data Center and Cloud Networking portfolio.
The next generation Nexus 5600 family offers VXLAN bridging and routing capability, line rate L2/L3, and 40G uplinks, to deliver high performance in a compact form factor for 10G Top of Rack, 1/10G FEX aggregation deployments.
AND THERE HAS BEEN BROAD CUSTOMER ADOPTION ACROSS THE DATA CENTER!
From Nexus 1000V to the Nexus 9000, Cisco’s holistic approach resonates with customers because it provides increased business agility, operational efficiency, and empowers IT to rapidly evolve as business requirements change.
Here are the latest examples of why our customers chose Nexus:
As IT departments move to private cloud offerings, DevOps methodologies, and continuous integration capabilities, many segments of the data center market have a strong need for more open, programmable, and application-led networks. In these fully automated environments, network automation for infrastructure as a service (IaaS) or applications on demand is becoming essential. As discussed in a recent blog postby Ravi Balakrishnan, the Cisco Nexus 9000 offers the industry’s 1st open and extensible application policy model helping businesses increase agility, flexibility, and scalability and automate repetitive manual tasks, reducing the time to deployment and easing maintenance tasks.
A recently-issued Lippis Report provides validation that the Cisco Nexus 9000 product line offers the most comprehensive open programming tools and functions available that can either be leveraged independently, or put to work in unison with other platform capabilities. The report found that the benefits of Cisco Nexus 9000 programming environment include investment protection and improved business agility through support of open protocols, APIs and standards that leverage customers’ existing networking, services including security, physical and virtual compute, and storage assets and accelerate network application deployment times to minutes improving business agility through centralized management.
Cisco 9000 programmability enables use cases across the whole IT delivery chain in terms of being able to orchestrate and automate provisioning of network infrastructure. Applications now have special, real-time access to network buffers, congestion and state information, so that they can actually make better choices and decisions on how they’re delivering services to end-users. In addition, troubleshooting can be automated through applications having much deeper visibility into the network.
The specific use cases for Cisco NX-OS API enhancements span data center network engineers and experienced DevOps personnel in cloud and large enterprise IT organization. For network engineers, NX-OS APIs can simplify and automate common network infrastructure provisioning challenges as well as offer automated troubleshooting through enhanced network visibility.
DevOps personnel may leverage NX-OS APIs and automation tools to create their own custom scripts and leverage the NX-API into other tools with which they are already familiar to customize network device data and use it in the way that’s important for them to either deliver competitive business value or to reduce OpEx through automation.
Cisco 9000 Programmability Highlights
The Cisco NX-OS enhancements for the Cisco Nexus 9000 Series supports numerous capabilities that aid automation and orchestration including providing investment protection through the support of new automation capabilities in the future. Centralized, fine-grained access to Cisco 9000 networking resources is enabled through support for XML, JSON, representational state transfer (REST), remote procedure call (RPC), NetConf, Python scripting, Bash and Broadcom chip-level shell access, and Linux containers for development of custom applications. These APIs have full read and write access to the Cisco 9000 platform, providing programmability, automation, and system access. Cisco-NX-OS also supports APIs enabling rapid integration with existing management and orchestration frameworks. These include OpenStack interfaces to provide Cisco policy consistency across physical, virtual, and cloud environments.
If you are an open source fan, in particular GitHub, I have good news for you.
Yes, we now have a Cisco Nexus 9000 community on GitHub. While many of the initial contributions were created by Cisco employees, ANYONE is allowed and in fact encouraged to participate and share code. Pull requests are monitored and reviewed by a group of administrators to maintain a level of quality and protect users consuming code as well.
Our GitHub presence comprises two sections:
1. Cisco NX-OS Standalone Mode: Focuses on the Nexus 9000 series of switches running enhanced Nexus OS. These products include NX-API, Puppet, Chef, and scripting capabilities using Python and other shell scripts.
2. Cisco Application Centric Infrastructure (ACI) Mode: Focuses on the Cisco APIC controller and Cisco ACI Object Model. This includes Python, Puppet, and Chef code samples. Additionally, it includes Tenant creation examples, Application profiles which are XML-based configurations that model applications, and southbound device automation scripts, which can be used to integrate 3rd party L4-7 devices.
If you are wondering how you take advantage of this offering, first and foremost I can assure you these code samples can speed up your learning curve with Cisco ACI and Nexus 9000 programmability aspects. Refer my Cisco ACI blog on Cisco Nexus 9000 programmability details.