Although Linux is generally considered a general-purpose OS, it's increasingly being used in various specialized applications, such as palmtop computers (http://www.agendacomputing.com, http://www.gmate.com/english/overview.htm, and others) and digital video recorders (http://www.tivo.com). Some of these specialized applications use specialized hardware. One that does not (or at least need not) is using Linux as a router OS. Routers are unglamorous devices that aren't much in the public eye, but they serve the vital function of linking together the computers that form the Internet. Routers range from small and simple devices sold to individuals and small businesses that tie a handful of computers to the Internet via a broadband connection to devices that cost thousands of dollars and that link together Internet backbones. Linux can serve as a low-end router with little fuss, but if you want it to handle more than a few dozen computers, you may want to investigate Linux's advanced router options. These allow the OS to use various techniques to prioritize packet delivery and to communicate with other routers.
Basic router configuration in Linux is relatively straightforward, but the advanced router options can be very intricate . Thus, this chapter can present only an overview of the issues and tools involved. For more information, you should consult the documentation for specific tools, such as Malkin's RIP: An Intra-Domain Routing Protocol (Addison Wesley, 2000); or a general routing book such as LeBlanc et al.'s Linux Routing (New Riders, 2002).