For a long time, GateD was the prevalent routing engine of the research community and Internet test beds under the custody of the Merit GateD Consortium (http://www.gated.org).
It was first used to connect the original NFSNET and the emerging regional networks. At that point in time, the source code was basically free. Later, the Merit GateD Consortium changed the licensing and finally handed it over to NextHop. Over time, NextHop Technologies continued the development of the code base and made the product commercially available after adding significant improvements (http://www.nexthop.com). Unfortunately, NextHop removed all traces of the original Merit GateD Consortium 3.6 public release (GateD 3.6), including the manuals from the original http://www.gated.org repository, instead of maintaining the code as an open-research branch. In addition to the 3.6 public release, several 4.0.x development snapshots were made available to the public during the late days of the Consortium. This was alpha software with a lot of IPv6 and multicast stuff and did not compile on my test systems. Give it a try if you are a good and patient programmer. You can also find GateD 3.6.x binaries in most RPM Linux repositories. NextHop is in the business of selling source licenses to big companies such as Riverstone. Some of their customer's command-line interfaces (CLIs) still look a lot like GateD (a hierarchical and structured representation, as you will see) due to their heritage. The following list presents some useful details about the GateD 3.6 public software:
Version? GateD 3.6, Merit GateD Consortium public release, 1999.
Architecture? Modular routing engine, single daemon.
Resources? "Homeless and abandoned." Ask your favourite search engine for GateD 3.6 and retrieve gated-3-6.tar.gz together with the original postscript manual. Some documentation mirrors are still up as well. Due to unclear licensing, I cannot provide these at my repository.
The GateD public release supports RIPv1/v2, EGP, OSPFv2, BGP4, and RDP. There exists a great deal of inaccuracy as to which protocols the public version supports. Its syntax is structured and differs conceptually from what engineers are used to in Cisco IOS Software (several sections and layers of parentheses).
The following installation steps are rather straightforward, but they might assist those of you who are unfamiliar with UNIX installation procedures:
gated relies on services of the UNIX kernel for the TCP/IP stack. These services include the following:
IP forwarding enabled.
Setting of UDP checksum for RIP on BSD (sysctl net.inet.udp.checksum = 1).
Optional SNMP support (via snmpd/smux).
Interfaces with the kernel to query interface status, routes, and timers.
Multicast support (for OSPFv2 and RIPv2).
On Linux, gated uses the netlink interface. Activate the kernel/user netlink socket under Network Options in the kernel configuration.
SIGINT causes the current state of all gated tasks, timers, protocols, and tables to be written to /usr/tmp/gated_dump or /var/tmp/gated_dump. GateD comes with several accompanying tools such as ospf_monitor, ripquery, and the gdc user interface.
GateD 3.6 is a stable, scalable, and mature system but is no longer maintained. Nevertheless, it is suitable for production deployment, keeping in mind its current state of evolution and feature sets. It has proven its value as an Internet routing platform, especially for BGP, during years of stable operation. If you are looking for state-of-the-art supported code, talk to the folks at NextHop Technologies. Zebra/Quagga and GateD 3.6 are the routing packages used most frequently throughout this book. From now on, GateD will be used as an abbreviation for the "public GateD 3.6 research release."