GATED(8)

NAME
gated - gateway routing daemon

SYNOPSIS
gated [ -c ] [ -C ] [ -n ] [ -N ] [ -t<trace_options> ] [ -f<config_file> ] [trace_file]

DESCRIPTION
Gated is a routing daemon that handles multiple routing protocols and replaces routed(8), egpup(8), and any routing daemon that speaks the HELLO routing protocol. Gated currently handles the RIP, BGP, EGP, HELLO, and OSPF routing protocols. The gated process can be configured to perform all routing protocols or any combination of the five.

The command-line options are:

-c  Specifies that the configuration file will be parsed for syntax errors and then gated will exit, if there were no errors, gated will leave a dump file in @(_path_dump). Gated does not need to be run as the super user to use the -c option but it may not be possible to read the kernel routing table and interface configuration if not run as super user. The -c option implies -tgeneral,kernel,nostamp. All traceoption and tracefile clauses in the configuration file will be ignored.

-C  Specifies that the configuration file will just be parsed for syntax errors. Gated will exit with a status 1 if there were any errors and 0 if there were not. Gated does not need to be run as the super user to use the -C option but it may not be possible to read the kernel routing table and interface configuration if not run as super user. The -c option implies -tnostamp.

-n  Specifies that gated will not modify the kernel's routing table. This is used for testing gated configurations with actual routing data.

-N  Specifies that gated will not daemonize. Normally, if tracing to stderr is not specified gated will daemonize if the parent process ID is not 1. This allows the use of an /etc/inittab-like method of invoking gated that does not have a PID of 1.

-t  Specifies a comma separated list of trace options to be enabled on startup. If no flags are specified, "general" is assumed. No space is allowed between this option and it's arguments.

    This option must be used to trace events that take place before the config file is parsed, such as determining the interface configuration and reading routes from the kernel.

The trace options are explained in greater detail in gated-config(5).

-f  Use an alternate config file. By default, gated uses @(_path_config).

If on the command line a trace file is specified, or no trace flags are specified, gated detaches from the terminal and runs in the background. If trace flags are specified without specifying a trace file, gated assumes that tracing is desired to stderr and remains in the foreground.

SIGNAL PROCESSING

Gated catches the following signals and does special processing.

SIGHUP:
    Re-read configuration.

    A SIGHUP causes gated to reread the configuration file. Gated first performs a clean-up of all allocated policy structures. All BGP and EGP peers are flagged for deletion and the configuration file is re-parsed.

    If the re-parse is successful, any BGP and EGP peers that are no longer in the configuration are shut down, and new peers are started. Gated attempts to determine if changes to existing peers require a shutdown and restart.

    It should also be possible to enable/disable any protocol without restarting gated.

    Reconfiguration is currently disabled when OSPF is enabled, this will hopefully be fixed in a future release.

SIGINT:
    Snap-shot of current state.

    The current state of all gated tasks, timers, protocols and tables are written to @(_path_dump).

    On systems supporting fork(), this is done by forking a subprocess to dump the table information so as not to impact gated's routing functions. On systems where memory management does not support copy-on-write, this will cause the gated address space to be duplicated; this may be cause a noticeable impact on the system. On system not supporting fork(), the main process immediately processes the dump, which may impact gated's routing functions.

SIGTERM:
    Graceful shutdown.

    On receipt of a SIGTERM, gated attempts a graceful shutdown. All tasks and protocols are asked to shutdown. Most will terminate immediately, the exception being EGP peers which wait for confirmation. It may be necessary to repeat the SIGTERM once or twice if it this process takes too long.

    All protocol routes are removed from the kernel's routing table on receipt of a SIGTERM. Interface routes, routes with RTF_STATIC set (from the route command where supported) and static routes specifying `retain' will remain. To terminate gated with the exterior routes intact, use SIGKILL or SIGQUIT (which causes a core dump).

SIGUSR1:
    Toggle tracing.

    On receipt of a SIGUSR1, gated will close the trace file. A subsequent SIGUSR1 will cause it to be reopened. This will allow the file to be moved regularly.

    It is not possible to use SIGUSR1 if a trace file has not been specified, or tracing is being performed to stderr.

SIGUSR2:
    Check for interface changes.

    On receipt of a SIGUSR2, gated will rescan the kernel interface list looking for changes.

AUTHORS
Mark Fedor <fedor@psi.com>, Jeffrey C Honig <jch@gated.cornell.edu>, Rob Coltun <rcoltun@ni.umd.edu> and Dennis Ferguson <dennis@ans.net>

SEE ALSO
gated-config(5), gated-copyright(8), @(GDC)(8), arp(8), ifconfig(8), netstat(8), @(RIPQUERY)(8), routed(8)

RFC 891
    DCN Local-Network Protocols (HELLO)
RFC 904
    Exterior Gateway Protocol Formal Specification
RFC 1058
    Routing Information Protocol
RFC 1163
    A Border Gateway Protocol (BGP)
RFC 1164
    Application of the Border Gateway Protocol in the Internet
RFC 1247
    OSPF Specification, Version 2

COPYRIGHT INFORMATION
This software and associated documentation is Copyright 1990, 1991, 1992 Cornell University., all rights reserved.

This daemon contains code that is Copyright 1988 Regents of the University of California., all rights reserved.; it also contains code that is Copyright 1989, 1990, 1991 The University of Maryland, College Park, Maryland., all rights reserved; and also contains code that is Copyright 1991 D.L.S. Associates., all rights reserved.