Thoughts on Cisco's Modular IOS


Add a Comment Now - We Want to Hear From You

benhaley.jpgBy Ben Haley

I’m a developer for NetQoS, and I’ve been mulling over the idea that Cisco is planning to take the IOS in their routers and break it into different modules, which they can then provide separately. As a developer I am always interested in architecture, but as a customer do I really care how the code is implemented? After all, I buy a router to direct traffic. My main interests are that it does this reliably, quickly and for a reasonable cost. What difference does it make if the IOS comes feature-by-feature or in a single package deal? In this case I believe the change will be very positive.

The IOS is the Internet operating system for the router. Everyone tends to think of the router as a piece of hardware you plug in, but it’s really a specialized computer that has an operating system on it that can be tweaked to do different things. Every switch and every router has some type of operating system built into it. In fact, people have been able to figure out how to install Linux on a few models of consumer routers and add new capabilities.

Moving to a modular system provides some interesting ideas. For IT administrators, it might increase the cost, or if relatively few features are needed, save money. (Cisco, I think, tends to make money on the hardware, not on the software.) Either way, it’s an interesting concept to say “How would you do this, and what would be the impact?”

(Continued...)

Cisco’s trying to put more emphasis in the intelligence in their software by breaking it up in different modules and offering it a la carte. You only install the functionality that you need. This is opposed to an IOS with a suite of services for each level of IOS, where you would determine which services you wanted to enable and which services you wanted to disable. It saves a little space on the router, and instead of having disabled code on the router, I’m installing only what I want. At one extreme I could customize each router to do its job in the best way. That sounds great, but how would I manage customizing every router to have a different image? Testing every configuration and maintaining them would be a bear. Personally I would assemble the set of features that are needed in my enterprise (probably a few configurations based on deployment) and standardize on that.

If I were an IT manager, the questions I would look at are: Does this have an impact when you get ready to roll out a new service? Say, if I wanted to turn on access control, I am now adding a new module to my router, as opposed to turn on a feature in the IOS. Either way, you really should test any configuration change, but in the past, we’ve seen some people not paying attention to that – they just thought of it as flicking a switch on an installed IOS. With separate modules it is obvious that there is more going on here. Since the upgrade requires new software on the router, hopefully everyone will go through a good checklist: Is this feature compatible with the other modules? Does it add too much load for the RAM or CPU? Have we tested this configuration? There is nothing new here, but hopefully the act of installing software will encourage people not to bypass these checks. This extra discipline alone would make the effort a success.

In many ways the modular design is similar to the way Linux allows me to install just the services I want. In some cases the services are interchangeable. Do I want a user interface or just a command line? If I take a UI, do I want KDE or Gnome? What shell do I want? As long as the interface between modules is maintained, the parts are interchangeable. The modules can be developed and tested independently. This greatly simplifies development by letting each module focus on a single function. Simple development usually means faster progress, fewer bugs and often gives better performance. The trick is coming up with a good architecture to efficiently analyze the traffic and take advantage of hardware assistance. If each module has to do much analysis then scalability will suffer.

The open-source XORP project, which allows you to turn a standard PC into a router, also has a modular design and is seeking to go a step further by creating a market for router applications - third-party plug-ins to enhance the basic operation. It will be interesting to see whether new companies pop up to exploit that niche. The biggest limitation for a PC-based router is the lack of hardware acceleration – there’s no straight-through path for the packets. Every packet that comes in has to be analyzed by the PC and passed through another port. Commercial routers have specialized hardware that directs that traffic very quickly. I wonder what a PC could do with some specialized hardware and a plug-in to control it. It's doubtful there would be enough market to make this worthwhile, but I would love to see the types of applications developed if Cisco decided to provide an API to its processing pipeline.

XORP is an interesting platform except for the NIC performance. That is limited by the number of interrupts the CPU can handle and the PCI bandwidth. If someone had a NIC that fed more directly to the CPU then Opterons would be incredible for routing. I believe the current NICs use PCI slots limited to 133 MHz while the Opterons have something like separate 2GHz buses for each core. All data would run through the module pipeline so you could write a module to prioritize, buffer, monitor... Whatever module you want to add could be plugged in. I think whichever major player develops a plug-in architecture first could have a big head start on this market and be hard to keep up with by leveraging the energies of other vendors.

But I digress. Providing an API to third parties would be very attractive in terms of functionality. It is difficult in terms of support. If a third party product takes down the router, do you call Cisco or the third party vendor? Do you need a big compatibility lab with a "Cisco Certified" sticker? PCs have a lot of built-in support now for tracking down application bugs. I don't know how much support is built into the IOS.

A few are concerned, (correctly, in my opinion,) that breaking up the IOS into modules is an attempt by Cisco to get greater revenue from software. But, it makes sense that if they add features like NAC, WAN optimization, etc., that Cisco should be able to charge more. Otherwise it gets hard to compete by offering more features in the IOS. One way around this is to put the power in a blade like with WAAS. The disadvantage is they then have to redirect traffic to the blade instead of instead of handling the operations in the main data path. If the CPU has the power then the feature should really be implemented in IOS. The restraint on increasing prices is competition. The price of the sale includes hardware and software. Cisco will not be able to charge more for the combination of hardware and software than customers believe is an appropriate value compared to other vendors.

Besides, I have always heard in the rumor mills that “nobody really buys the IOS,” and that salespeople often give away whatever is required to get the hardware orders in order to meet quota. If so, the salespeople might throw in a couple of IOS modules to get deals in the future. This is probably even truer for big companies, which makes it even harder to justify designing products for the major enterprises where the product will likely be given away. The justification would be if the software is required in order to get the big hardware orders.

Ben Haley is Senior Product Architect in the Software Engineering Department at NetQoS.

Technorati Tags:




TrackBack

TrackBack URL for this entry:
http://www.netqos.com/MT/mt-tb.cgi/102

Comments

I’m V.P. of Marketing at NetQoS. From a marketer’s point of view, Cisco’s software architecture announcements make perfect sense. Cisco is broadly viewed as a hardware company but more than half of its engineers develop software. Competing on hardware speeds and feeds is brutal, even if you are the 800lb gorilla, and it drives down profit margins. Cisco software is where the value is. Today, much of that value is lumped into one place—the IOS. So, from a purely financial perspective, it is smart for Cisco to modularize its software and drive up revenues in the process. (I am skeptical of claims that moving to modular software has no link to new revenue generation.)

Of course, Cisco benefits in other ways from a modular software architecture. Cisco doesn’t have all the answers when it comes to managing network infrastructure and the performance of applications that run over networks. No system vendor can provide best-in-class software in every category. IBM doesn’t. HP doesn’t. EMC doesn’t. Cisco doesn’t. Independent software vendors fill those product voids. Cisco’s SONA is a great step forward; it articulates a vision and a roadmap for a plug and play architecture where Cisco and third party software co-exists in a somewhat integrated whole. Embracing third party products that add value to its own helps Cisco retain a competitive edge. However, this also means embracing software offerings that compete directly or indirectly with its own to offer choice to the enterprise buyer. The smart IT enterprise demands the freedom to choose which products it uses to configure, monitor, and secure its network. And for Cisco, that should be OK because, at the end of the day, that choice will help them sell more hardware.

Service-Oriented Architecture is an attempt to abstract software away from underlying platforms, so why can't the same principles be applied to the network. If anyone can pull it off it will be Cisco.

Hi, as a potential implementer of this Modular IOS, I was wondering if somebody could comment on the current (march 2007) stability of this IOS, and if it is really ready for Enterprise Production use, or if there are still substancial (known or unknown) bugs that make the High Availability, not so High?
Any user experiences much appreciated.
Thanks,
Luis

hi, thank you for this great information

Regards,
Meki Chan
Cisco Trick

Post a comment

Verification (needed to reduce spam):

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)