The XORP Vision
XORP is called an extensible router platform for good reason. We believe that by designing for extensibility from the outset, we can simultaneously satisfy several different user groups:- Network researchers needing a platform for experimentation.
- Network operators needing a low-cost stable routing platform on commodity hardware.
- Network equipment vendors with special purpose hardware.
- Network application writers looking for an open platform to support their applications.
Network Research
There are a lot of very smart people in the network research community, but it's difficult for many of these people to do experiments that give meaningful results. A lot of work happens in simulation, but often it's hard to know whether the simulation bears much relationship to reality. There's really no substitute for trying something out in the real world. This is where XORP comes in.Here are some examples of how XORP can be used:
- If XORP is used as a production router, it is easy to instrument it to perform measurements of traffic, routing messages, or practically anything else that goes on in a router.
- XORP can be used as a platform to develop new routing protocols. XORP has no built-in concept of which routing protocols exists, so you can easily add your own, together with an ASCII configuration template file, so the XORP command line interface knows what new functionality is available.
- XORP can be used as a network emulator. XORP's Forwarding Engine Abstraction (FEA) process provides an abstract interface through which the whole control plane communicates with the forwarding plane and the outside world. It is possible to modify the FEA so that multiple emulated routers all exist on the same host. This allows experiments using XORP's real routing code to take place in a carefully controlled environment. It also facilitates new protocol development without needing a large lab of machines.
- XORP is scriptable. XORP's internal communication between
processes uses XRLs.
These have a canonical form that is ASCII, such as
finder://fea/fti/0.1/add_route?net:ipv4net=10.0.0.1/8&\ gateway:ipv4=192.150.187.1There's a command line program call_xrl that allows any scripting language to make calls to any XORP process and get back the response. How you use this scripting capability is up to you, but we think it is unique in its ability to allow novel uses of existing router code.
XORP as a Low-Cost Router
There are many organizations that need router functionality, but cannot justify buying an expensive commercial router. Although there are low-cost home routers available these days, they are not really intended to run any non-trivial routing configuration. A modern $300 PC has enough forwarding capability to saturate a few 100Mb/s network links, and ethernet NICs are extremely cheap, so with a little knowledge, it's very viable to build your own PC-based router.
The goal is that you shouldn't need to know anything about how XORP works internally to run it as a router. XORP has a single unified command line interface which allows all the routing protocols, network interfaces, and so forth to be configured. In future releases, this CLI will also be extended to encompass additional router functionality such as queue manangement, QoS configuration, firewalls, NATs and DHCP configuration.
XORP already supports IPv4 and IPv6, together with BGP4+ and RIP for unicast routing, PIM-SM and IGMP/MLD for multicast, and limited SNMP support.
We offer XORP as a Live CD - a CD image that you can burn to a bootable CD which allows you to run XORP without installing any software or knowing anything about Unix system administration. As it runs from a read-only CD, this configuration is more secure than a normal Unix installation.
On the subject of security, the XORP architecture permits different routing protocols to run in different security sandboxes. For example, BGP does not need access to the router's filesystem or need privileged access to communicate with its peers so, should something go wrong, it's much harder to compromise the rest of the router. The aim is for XORP to be more robust and secure than alternative router platforms.
It is very important to us that XORP is both very stable and has sufficient features for mission-critical production use. We'll realise this goal only with extensive feedback from our users with regards to what works well in the real world, and what doesn't.
XORP for Equipment Vendors
Once XORP has proven itself as a stable software stack for PC routers, and its functionality and feature set filled out fully, we hope it will prove an attractive alternative to commercial stacks for network equipment vendors.
XORP is licensed under a BSD-style license, which allows you to use it for any purpose whatsoever. If you use XORP in a product, you don't need to tell anyone, or provide source code to customers, unless of course you want to.
Why didn't we use the GPL for our license? We believe that the network effect of having many vendors using the same open platform outweighs the desire for secrecy. While some vendors will no doubt choose to be secret about their use of XORP, we believe most vendors will benefit from the ability of third party developers to develop for XORP. Furthermore, we believe that most vendors will contribute back important changes and improvements to the XORP core so that the reputation of XORP improves, carrying all XORP users with it.
We believe XORP's architecture is well suited as a software stack to control an advanced hardware forwarding plane. Our forwarding engine abstraction (FEA) process provides a key abstraction layer providing isolation between all the higher level routing functionality and the underlying operating system and forwarding engines. This should make XORP comparatively easy to port to new platforms.
XORP for Network Application Writers
In the long run, we hope that XORP will enable a class of software that currently doesn't exist: the router application. Currently, there is no market for third party software for mainstream commercial router platforms. This is clearly because there are no open APIs for commercial router platforms.
We believe that XORP's extensible architecture is a possible solution to this problem. XORP's novel inter-process communication mechanism, combined with it's run-time extensible router-manager process and command line interface should permit a router operator to install a new binary application process on a XORP router, and for it to appear as an integrated part of the router from an operational point of view. We are very interested to see what novel network functionality this enables in the future.
Document id $XORP: www/xorp_vision.html,v 1.14 2006/10/16 23:25:35 atanu Exp $.
Generated on 16/Oct/2006 at 16:23:55.
Feedback, comments, flames to feedback@xorp.org
