United States-English |
|
|
HP-UX Reference > Ppathalias(1)HP-UX 11i Version 3: February 2007 |
|
NAMEpathalias — electronic address router DESCRIPTIONpathalias computes the shortest paths and corresponding routes from one host (computer system) to all other known, reachable hosts. pathalias 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. Optionspathalias recognizes the following options and command-line arguments:
The public domain version of pathalias includes two undocumented options that are briefly described in the Special Options section below. Input FormatA line beginning with white space continues the preceding line. Anything following # on an input line is ignored. A list of host-to-host connections consists of a ``from'' host in column 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:
In addition, DEAD is a very large number (effectively infinite), and HIGH and LOW are -5 and +5 respectively, for baud-rate or quality bonuses/penalties, and FAST 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., HOURLY is far greater than DAILY 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 HIGH, LOW, and FAST make no sense. For example, if a host calls a local neighbor whenever there is work, and additionally polls every evening, the cost is DIRECT, not DIRECT+EVENING. Some examples: down princeton!(DEDICATED), tilt, %thrash(LOCAL) princeton topaz!(DEMAND+LOW) topaz @rutgers(LOCAL+1) If a link is encountered more than once, the least-cost occurrence dictates the cost and network character. Links are treated as bidirectional but asymmetric: for each link declared in the input, a DEAD 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 seismo <research>(10), research(100), ihnp4(10) research allegra(10) ihnp4 allegra(50) the path from seismo to research is direct, but the path from seismo to allegra uses ihnp4 as a relay; not research. The set of names by which a host is known by its neighbors is called its aliases. Aliases are declared as follows: name=alias, alias ... 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: net = {host, host, ...} 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, pathalias creates one. etherhosts = {rahway, milan, joliet}!(LOCAL) 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 private {host, host, ...} pathalias does not generate routes for private hosts, but can produce routes through them. The scope of a private declaration extends from the declaration to the end of the input file in which it appears, or to a private declaration with an empty host list, whichever comes first. The latter scope rule offers a way to retain the semantics of private declarations when reading from the standard input. Dead hosts, links, or networks can be presented in the input stream by declaring dead {arg, ...} where arg has the same form as the argument to the -d option. To force a specific cost for a link, delete all prior declarations with delete {host1!host2} and declare the link as desired. To delete a host and all its links, use delete {host} Error diagnostics refer to the file in which the error was found. To alter the file name, use file {filename} 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 pathalias 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 FormatA list of host-route pairs is written to the standard output, where route is a string appropriate for use with printf() (see printf(3S)), suchas rutgers princeton!topaz!%s@rutgers The %s in the route string should be replaced by the user name at the destination 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 rahway to milan would be milan!%s, not etherhosts!milan!%s. GatewaysA 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 CSNET is declared dead on the command line and the input contains CSNET = {...} csnet-relay CSNET Then routes to CSNET hosts will use csnet-relay as a gateway. DomainsA network whose name begins with . is called a domain. Domains are presumed to require gateways; i.e., they are DEAD. 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: harvard .EDU # harvard is gateway to .EDU domain .EDU = {.BERKELEY, .UMICH} .BERKELEY = {ernie} yields ernie ...!harvard!ernie.BERKELEY.EDU!%s Output is given for the nearest gateway to a domain; e.g., the example above gives .EDU ...!harvard!%s 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 -D option is given on the command line, pathalias 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 OptionsThe public domain version of pathalias includes two undocumented options that rewrite named files with intermediate data of limited usage. Here are brief descriptions:
BUGSThe -i option should be the default. The order of arguments is significant. In particular, -i and -t should appear early in the command line. pathalias 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 historical, 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 pathalias would otherwise generate a path containing multiple @s, it instead generates a path to which the ``magic %'' rule can be correctly applied. Basically, the ``magic %'' rule for generating paths is ``when constructing 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 follows:
|
Printable version | ||
|