Improving performance on a PC-based router
Internet Protocol version 6 (IPv6) has been designed as an update of the current version, IPv4, which is beginning to show its age. The much vaunted improvement over IPv4 is focused on the simple fact that IPv6 offers a virtually infinite number of Internet addresses. Countless trillions of assignable IPv6 addresses along with many improvements in areas such as network auto-configuration are seen as a significant benefit compared to its ancestor. Within the rapidly changing landscape of IP protocols, the 6NET project partners contributed with several novel ideas. Liberouter has been developed at CESNET, the operator of the academic network of the Czech Republic, as a dual-stack gigabit router that would host both the IPv4 and IPv6 versions of the Internet Protocol. Based on the standard personal computer architecture and equipped with a high performance hardware accelerator of packet forwarding, it promises improved throughput at a lower cost. In the Czech academic network, PCs with operating systems such as Linux and BSD (Berkeley Software Distribution) variants had been used as routers since the early nineties. Nonetheless, they lag behind their modern commercial counterparts in performance, ease of configuration and functions offered in the control plane. To more efficiently handle the trade-off between interrupt latency and throughput of the peripheral component interconnect (PCI) bus, an accelerator that performs packet switching in hardware, COMBO6 was developed. Complemented by alternative network interface cards, it is presented as a standard four-port Ethernet card to allow configuration to be performed with standard Unix utilities. Instead of merely creating a new command line shell for the new PC router, a more general configuration system, Netopeer, was developed. Based on the idea of a platform-independent description of the router configurations, it allows configuration of large networks using XML as its internal data format. One of the main virtues of the Liberouter is its openness. All its software and even hardware schematics are available at the Liberouter webpage, http://www.liberouter.org/