Linux, a shareware operating system, supports a number of advanced networking features, thanks largely to the huge linux networking community. Besides the reliable TCP/UDP/IP protocol suite, a number of new features like firewalls, QoS, tunneling etc. has been added to the networking kernel. This document reviews these advanced networking features that have been implemented in the linux kernel, from a configuration, implementation and usage standpoint. Examples of usage and pointers to references have been given when appropriate.
The advanced networking features that have been dealt with in this document include the Quality of Service support in linux, which encompasses a description of the differentiated services effort, the firewall implementation using ipchains, the VPN implementation using GRE tunnels and the advanced routing implementation using netlink sockets.
The later part of this document discusses briefly some of the common tools that are available on linux. This section will discuss "zebra", a distributed routing software that is used to configure a linux box as a router, and a configuration tool to set up firewalls.