pathalias(1)pathalias(1)NAMEpathalias - electronic address router
SYNOPSIS
host] link] link] [files]
DESCRIPTION
computes the shortest paths and corresponding routes from one host
(computer system) to all other known, reachable hosts. reads host-to-
host connectivity information on standard input or in the named files,
and writes a list of host-route pairs on the standard output.
Options
recognizes the following options and command-line arguments:
Ignore case: map all host names to lowercase.
By default, case is significant.
Print costs.
Print the path cost (see below) before each host-route
pair.
Verbose. Report some statistics on the standard error output.
Terminal domains.
Domain members are terminal.
First hop cost.
The printed cost is the cost to the first relay in a
path instead of the cost of the path itself; implies
(and overrides) the option.
Set local host name to
host. By default, discovers the local host name in a
system-dependent way.
Declare a dead link, host, or network (see below).
If link is of the form the link from host1 to host2 is
treated as an extremely high cost (i.e., link. If
link is a single host name, that host is treated as
dead and is used as an intermediate host of last
resort on any path. If link is a network name, the
network requires a gateway.
Trace input for link, host, or network
on the standard error output. The form of link is as
above.
The public domain version of includes two undocumented options that are
briefly described in the Special Options section below.
Input Format
A line beginning with white space continues the preceding line. Any‐
thing following on an input line is ignored.
A list of host-to-host connections consists of a ``from'' host in col‐
umn 1, followed by white space, followed by a comma-separated list of
``to' hosts, called links. A link may be preceded or followed by a
network character to use in the route. Valid network characters are
(default), @, and A link (and network character, if present) may be
followed by a ``cost'' enclosed in parentheses. Costs can be arbitrary
arithmetic expressions involving numbers, parentheses, and Negative
costs are prohibited. The following symbolic costs are recognized:
LOCAL 25 (local-area network connection)
DEDICATED 100 (high speed dedicated link)
DIRECT 200 (toll-free call)
DEMAND 300 (long-distance call)
HOURLY 500 (hourly poll)
EVENING 2000 (time restricted call)
DAILY 5000 (daily poll, also called POLLED)
WEEKLY 30000 (irregular poll)
In addition, is a very large number (effectively infinite), and and are
−5 and +5 respectively, for baud-rate or quality bonuses/penalties, and
is -80, for adjusting costs of links that use high-speed (9.6 Kbaud or
more) modems. These symbolic costs represent an imperfect measure of
bandwidth, monetary cost, and frequency of connections. For most mail
traffic, it is important to minimize the number of hosts in a route,
thus, e.g., is far greater than divided by 24. If no cost is given, a
default of 4000 is used.
For the most part, arithmetic expressions that mix symbolic constants
other than and make no sense. For example, if a host calls a local
neighbor whenever there is work, and additionally polls every evening,
the cost is
Some examples:
If a link is encountered more than once, the least-cost occurrence dic‐
tates the cost and network character. Links are treated as bidirec‐
tional but asymmetric: for each link declared in the input, a reverse
link is assumed.
If the ``to'' host in a link is surrounded by angle brackets, the link
is considered terminal, and further links beyond this one are heavily
penalized. For example, with input
the path from to is direct, but the path from to uses as a relay; not
The set of names by which a host is known by its neighbors is called
its aliases. Aliases are declared as follows:
The name used in the route to or through aliased hosts is the name by
which the host is known to its predecessor in the route.
Fully connected networks, such as the ARPANET or a local-area network,
are declared as follows:
The host-list can be preceded or followed by a routing character by
default), and can be followed by a cost (4000 by default). The network
name is optional; if not given, creates one.
ringhosts = @{gimli, alida, almo}(DEDICATED)
= {etherhosts, ringhosts}(0)
The routing character used in a route to a network member is the one
encountered when ``entering'' the network. See also the sections on
gateways and domains.
Connection data can be given while hiding host names by declaring
does not generate routes for private hosts, but can produce routes
through them. The scope of a private declaration extends from the dec‐
laration to the end of the input file in which it appears, or to a pri‐
vate declaration with an empty host list, whichever comes first. The
latter scope rule offers a way to retain the semantics of private dec‐
larations when reading from the standard input.
Dead hosts, links, or networks can be presented in the input stream by
declaring
where arg has the same form as the argument to the option.
To force a specific cost for a link, delete all prior declarations with
and declare the link as desired. To delete a host and all its links,
use
Error diagnostics refer to the file in which the error was found. To
alter the file name, use
Fine-tuning is possible by adjusting the weights of all links from a
given host, as in
If no cost is given, a default of 4000 is used.
Input from compressed (and uncompressed) files can be piped into with
the following script.
for i in $*; do
case $i in
*.Z) echo "file {`expr $i : '.Z'`}
zcat $i ;;
*) echo "file {$i}"
cat $i ;;
esac
echo "private {}"
done
Output Format
A list of host-route pairs is written to the standard output, where
route is a string appropriate for use with (see printf(3S)), suchas
rutgers princeton!topaz!%s@rutgers
The in the route string should be replaced by the user name at the des‐
tination host (this task is normally performed by a mailer).
Except for domains (see below), the name of a network is never used in
routes. Thus, in the earlier example, the path from to would be not
Gateways
A network is represented by a pseudo-host and a set of network members.
Links from the members to the network have the weight given in the
input, while the cost from the network to the members is zero. If a
network is declared dead, the member-to-network links are marked dead,
which effectively prohibits access to the network from its members.
However, if the input also shows an explicit link from any host to the
network, then that host can be used as a gateway (in particular, the
gateway need not be a network member).
For example, suppose is declared dead on the command line and the input
contains
Then routes to hosts will use as a gateway.
Domains
A network whose name begins with is called a domain. Domains are pre‐
sumed to require gateways; i.e., they are The route given by a path
through a domain is similar to that for a network, but here the domain
name is appended to the end of the name of the next host. Subdomains
are permitted. For example:
yields
Output is given for the nearest gateway to a domain; e.g., the example
above gives
Output is given for a subdomain if it has a different route than its
parent domain, or if all its ancestor domains are private.
If the option is given on the command line, treats a link from a domain
to a host member of that domain as terminal. This property extends to
host members of subdomains, etc., and discourages routes that use any
domain member as a relay.
Special Options
The public domain version of includes two undocumented options that re‐
write named files with intermediate data of limited usage. Here are
brief descriptions:
Dump graph edges into
file in the form for simple connections and
host@<tab>host for network connections (from
hosts to networks only).
Dump shortest path tree into
file in the form host<tab>[@]host[, including
both connections from hosts to networks and from
networks to hosts. This data may be useful for
generating lists of one-way connections.
BUGS
The option should be the default.
The order of arguments is significant. In particular, and should
appear early in the command line.
can generate hybrid (i.e., ambiguous) routes, which are abhorrent and
most certainly should not be given as examples in a manual entry.
Experienced mappers largely shun '@' when preparing input; this is his‐
torical, but also reflects UUCP's simplistic syntax for source routes.
Mixed-mode paths are ambiguous because the precedence of @ versus ! is
not specified, varies from host to host, and is configurable. They
should rarely be used.
Multiple @s in routes are prohibited by many mailers. To circumvent
this restriction, mailers instead support the ``magic %'' rule,
described below. When would otherwise generate a path containing mul‐
tiple @s, it instead generates a path to which the ``magic %'' rule can
be correctly applied.
Basically, the ``magic %'' rule for generating paths is ``when con‐
structing a path that would require multiple @s, replace all but the
right-most @ with
When a mailer that supports the ``magic %'' rule receives a message
that was routed to it via ..path..@host, it processes the route as fol‐
lows:
1. Remove the trailing "@host" part of the route.
2. Examine the remaining route from right to left, proceeding
to the next step when a "!" is seen. If a `%' is seen,
change it to `@' and proceed to the next step immediately.
3. Continue processing the message using the modified route.
If the modified route contains both `!' and `@' characters,
the exact selection of the next host to route the message is
governed by the specific precedence of `!' vs. `@' at this
host.
For example, if a host, received a message with a path @the
mailer would convert the path to @and then forward it appro‐
priately. If the host were configured such that `!' were of
higher precedence than `@', the message would be forwarded
to host which would then deliver the message to @If instead
were configured with `@' as higher in precedence, it would
forward the message to host which would then deliver it to
(Clearly, could only correctly generate such a path if it
knew the precedence at host since the database does not con‐
tain that information, such paths from should be viewed with
suspicion.)
The option suppresses insignificant routes to domain members.
This is benign, perhaps even beneficial, but confusing, since
the behavior is undocumented and somewhat unpredictable.
AUTHOR
was developed by Peter Honeyman and Steven M. Bellovin.
FILES
Likely location of some input files.
SEE ALSO
P.Honeyman and S.M. Bellovin, in Atlanta, 1986.
pathalias(1)