Annotation of 43BSD/contrib/pathalias/pathalias.1, revision 1.1.1.1

1.1       root        1: .\" Thanks to Alan Silverstein for help with the manual entry.
                      2: .TH PATHALIAS 1 
                      3: .SH NAME
                      4: pathalias, makedb \- electronic address router
                      5: .SH SYNOPSIS
                      6: .B pathalias
                      7: [
                      8: .B \-ivc
                      9: ] [
                     10: .BI \-t \0link
                     11: ] [
                     12: .BI \-l \0host
                     13: ] [
                     14: .BI \-d \0link
                     15: ] [
                     16: .ig
                     17: .\" the -g option is for pathparse.  it's not really used by pathalias.
                     18: .BI \-g \0file
                     19: ] [
                     20: ..
                     21: .I files
                     22: ]
                     23: .PP
                     24: .B makedb
                     25: [
                     26: .B \-a
                     27: ] [
                     28: .BI \-o \0dbmfile
                     29: ] [
                     30: .I files ...
                     31: ]
                     32: .ad b
                     33: .SH DESCRIPTION
                     34: .I pathalias
                     35: computes the shortest paths and corresponding routes from one host
                     36: (computer system) to all other known, reachable hosts.
                     37: .I pathalias
                     38: reads host-to-host connectivity
                     39: information on standard input or in the named
                     40: .IR files ,
                     41: and writes a list of
                     42: host-route pairs on the standard output.
                     43: .PP
                     44: .I makedb
                     45: takes
                     46: .I pathalias
                     47: output and creates or appends to a
                     48: .IR dbm (3)
                     49: database.
                     50: .PP
                     51: Here are the
                     52: .I pathalias
                     53: options:
                     54: .TP 6
                     55: .B \-i
                     56: Ignore case:  map all host names to lower case.
                     57: By default, case is significant.
                     58: .TP
                     59: .B \-c
                     60: Print costs: print the path cost (see below) before each host-route pair.
                     61: .TP
                     62: .B \-v
                     63: Verbose: report some statistics on the standard error output.
                     64: .ig
                     65: .\" the -g option is for pathparse and is not for public consumption (yet!).
                     66: .TP
                     67: .BI \-g \0file
                     68: Dump the edges of the graph into the named file.
                     69: ..
                     70: .TP
                     71: .BI \-l \0host
                     72: Set local host name to
                     73: .IR host .
                     74: By default,
                     75: .I pathalias
                     76: discovers the local host name in a system-dependent way.
                     77: .TP
                     78: .BI \-d \0arg
                     79: Declare a dead link, host, or network (see below).
                     80: If
                     81: .I arg
                     82: is of the form ``host1!host2,'' the link from host1 to host2
                     83: is treated as an extremely high cost (\fIi.e.\fP, \s-1DEAD\s0) link.
                     84: If
                     85: .I arg
                     86: is a single host name,
                     87: that host is treated as dead
                     88: and is be used as an intermediate host of last resort on any path.
                     89: If
                     90: .I arg
                     91: is a network name, the network requires a gateway.
                     92: .TP
                     93: .BR  \-t \0arg
                     94: Trace input for link, host or network on the standard error output.
                     95: The form of
                     96: .I arg
                     97: is as above.
                     98: .PP
                     99: Here are the
                    100: .I makedb
                    101: options:
                    102: .TP 6
                    103: .B \-a
                    104: Append to an existing database;
                    105: by default,
                    106: .I makedb
                    107: truncates the database.
                    108: .TP
                    109: .BI \-o \0dbmfile
                    110: Identify the output file base name.
                    111: .SS \fIpathalias\fP Input Format
                    112: A line beginning with white space continues the preceding line.
                    113: Anything following `#' on an input line is ignored.
                    114: .PP
                    115: A list of host-to-host connections consists of a ``from'' host in column 1,
                    116: followed by white space,
                    117: followed by a comma-separated list of ``to' hosts, called
                    118: .IR links .
                    119: A link may be preceded or followed by a network character to use
                    120: in the route.
                    121: Valid network characters are `!' (default), `@', `:', and `%'.
                    122: A link (and network character, if present) may be
                    123: followed by a ``cost'' enclosed in parentheses.
                    124: Costs may be arbitrary
                    125: arithmetic expressions involving numbers, parentheses, `+', `\-', `*',
                    126: and `/'.
                    127: The following symbolic costs are
                    128: recognized:
                    129: .PP
                    130: .RS
                    131: .nf
                    132: .ta 14mR 17m
                    133: \s-1LOCAL\s0   25      (local-area network connection)
                    134: \s-1DEDICATED\s0       95      (high speed dedicated link)
                    135: \s-1DIRECT\s0  200     (toll-free call)
                    136: \s-1DEMAND\s0  300     (long-distance call)
                    137: \s-1HOURLY\s0  500     (hourly poll)
                    138: \s-1EVENING\s0 1800    (time restricted call)
                    139: \s-1DAILY\s0   5000    (daily poll, also called \s-1POLLED\s0)
                    140: \s-1WEEKLY\s0  30000   (irregular poll)
                    141: .fi
                    142: .RE
                    143: .PP
                    144: In addition,
                    145: .SM DEAD
                    146: is a very large number (effectively infinite),
                    147: and
                    148: .SM HIGH
                    149: and
                    150: .SM LOW
                    151: are \-5 and +5 respectively,
                    152: for baud-rate or quality bonuses/penalties.
                    153: These symbolic costs represent an imperfect measure of bandwidth,
                    154: monetary cost, and frequency of connections.
                    155: For most mail traffic, it is important to minimize the number
                    156: of intermediaries in a route,
                    157: thus,
                    158: .IR e.g. ,
                    159: .SM HOURLY
                    160: is far greater than
                    161: .SM DAILY
                    162: / 24.
                    163: If no cost is given,
                    164: a default of 4000 is used.
                    165: .PP
                    166: For the most part, arithmetic expressions that mix symbolic constants
                    167: other than
                    168: .SM HIGH
                    169: and
                    170: .SM LOW
                    171: make no sense.
                    172: .IR E.g. ,
                    173: if a host calls a local neighbor whenever there is work,
                    174: and additionally polls every evening,
                    175: the cost is
                    176: .SM DIRECT,
                    177: .B not
                    178: .SM DIRECT+EVENING.
                    179: .PP
                    180: Some examples:
                    181: .PP
                    182: .RS
                    183: .nf
                    184: .ta 10m 15m
                    185: down   princeton!(\s-1DEDICATED\s0), tilt,
                    186:        %thrash(\s-1LOCAL\s0)
                    187: princeton      topaz!(\s-1DEMAND\s0+\s-1LOW\s0)
                    188: topaz  @rutgers(\s-1LOCAL\s0)
                    189: .fi
                    190: .RE
                    191: .PP
                    192: If a link is encountered more than once,
                    193: the least-cost occurrence dictates the cost and network character.
                    194: Links are treated as bidirectional, to the extent that a
                    195: .SM DEAD
                    196: reverse link is assumed unless better information is available.
                    197: .PP
                    198: The set of names by which a host is known by its neighbors is
                    199: called its
                    200: .IR aliases .
                    201: Aliases are declared as follows:
                    202: .PP
                    203: .RS
                    204: name = alias, alias ...
                    205: .RE
                    206: .PP
                    207: The name used in the route to or through aliased hosts
                    208: is the name by which the host is known
                    209: to its predecessor in the route.
                    210: .PP
                    211: Fully connected networks, such as the
                    212: .SM ARPANET
                    213: or a local-area network,
                    214: are declared as follows:
                    215: .PP
                    216: .RS
                    217: net = {host, host, ...}
                    218: .RE
                    219: .PP
                    220: The host-list may be preceded or followed by a routing
                    221: character, and may be followed by a cost:
                    222: .PP
                    223: .RS
                    224: .nf
                    225: princeton-ethernet = {down, up, princeton}!(\s-1LOCAL\s0)
                    226: \s-1ARPA\s0 = @{sri-unix, mit-ai, su-score}(\s-1DEDICATED\s0)
                    227: .fi
                    228: .RE
                    229: .PP
                    230: See also the sections on
                    231: .I gateways
                    232: and
                    233: .I domains
                    234: below.
                    235: .PP
                    236: Connection data may be given while hiding host names
                    237: by declaring
                    238: .PP
                    239: .RS
                    240: private {host, host, ...}
                    241: .RE
                    242: .PP
                    243: .I pathalias
                    244: will not generate routes for private hosts, but may produce routes
                    245: through them.
                    246: The scope of a private declaration extends from the declaration to the end of
                    247: the input file in which it appears.
                    248: It is best to put private declarations at the beginning of the appropriate
                    249: input file.
                    250: .SS Output Format
                    251: A list of host-route pairs is written to the standard output,
                    252: where route is a string appropriate for use with
                    253: .IR printf (3),
                    254: .IR e.g. ,
                    255: .PP
                    256: .RS
                    257: .nf
                    258: .ta 10m 20m
                    259: rutgers        princeton!topaz!%s@rutgers
                    260: .fi
                    261: .RE
                    262: .PP
                    263: The ``%s'' in the route string should be replaced by the
                    264: user name at the destination host.
                    265: (This task is normally performed by a mailer.)
                    266: .PP
                    267: Except for
                    268: .I domains
                    269: (see below),
                    270: the name of a network is never used in
                    271: expansions.
                    272: Thus, in the earlier example, the path from down to
                    273: up would be ``up!%s,'' not ``princeton-ethernet!up!%s.''
                    274: .SS Gateways
                    275: A network is represented by
                    276: a pseudo-host and a set of network members.
                    277: Links from the members to the network have the weight given in
                    278: the input, while the cost from the network to the members is zero.
                    279: If a network is declared dead on the command line (with the
                    280: .B \-d
                    281: option),
                    282: the member-to-network links are marked dead,
                    283: which discourages paths to members by way of the network.
                    284: .PP
                    285: If the input also shows a link from a host to the network,
                    286: then that host will be preferred as a gateway.
                    287: Gateways need not be network members.
                    288: .PP
                    289: .IR E.g. ,
                    290: suppose
                    291: .SM CSNET
                    292: is declared dead on the command line
                    293: and the input contains
                    294: .PP
                    295: .RS
                    296: .nf
                    297: .ta 10m 20m
                    298: \s-1CSNET\s0 = {...}
                    299: csnet-relay    \s-1CSNET\s0
                    300: .fi
                    301: .RE
                    302: .PP
                    303: Then routes to
                    304: .SM CSNET
                    305: hosts will use csnet-relay as a gateway.
                    306: .PP
                    307: .I pathalias
                    308: discourages forwarding beyond dead networks.
                    309: .SS Domains
                    310: A host or network whose name begins with `.' is called
                    311: a domain.
                    312: Domains are presumed to require gateways,
                    313: .IR i.e. ,
                    314: they are \s-1DEAD\s0.
                    315: The route given by a path through a domain is similar to
                    316: that for a network, but here
                    317: the domain name is tacked onto the end of the next host.
                    318: Subdomains are permitted.
                    319: .IR E.g. ,
                    320: .PP
                    321: .RS
                    322: .nf
                    323: .ta 1i
                    324: .ta 10m 20m
                    325: harvard        .\s-1EDU\s0
                    326: \&.\s-1EDU\s0 = {.\s-1BERKELEY\s0}
                    327: \&.\s-1BERKELEY\s0     ernie
                    328: .fi
                    329: .RE
                    330: .PP
                    331: yields
                    332: .PP
                    333: .RS
                    334: .nf
                    335: .ta 10m 20m
                    336: ernie  ...!harvard!ernie.\s-1BERKELEY\s0.\s-1EDU\s0!%s
                    337: .fi
                    338: .RE
                    339: .PP
                    340: Output is given for the nearest gateway
                    341: to a domain,
                    342: .IR e.g. ,
                    343: the example above gives
                    344: .PP
                    345: .RS
                    346: .nf
                    347: .ta 10m 25m
                    348: \&.\s-1EDU\s0  ...!harvard!%s
                    349: .fi
                    350: .RE
                    351: .PP
                    352: Output is given for a subdomain if it has a different
                    353: route than its parent domain, or if all of its ancestor domains are private.
                    354: .SS Databases
                    355: .I Makedb
                    356: builds a
                    357: .IR dbm (3)
                    358: database from the standard input or from the named
                    359: .IR files .
                    360: (\fIMakedb\fP replaces the obsolete 
                    361: .B \-b
                    362: option of
                    363: .IR pathalias ,
                    364: which is no longer recognized.)
                    365: Input is expected to be sequence of
                    366: .SM ASCII
                    367: records,
                    368: each consisting of a key field and a data field separated by a single tab.
                    369: If the tab is missing, the data field is assumed to be empty.
                    370: .SH FILES ET AL.
                    371: .ta \w'/usr/local/lib/palias.{dir,pag}     'u
                    372: /usr/local/lib/palias.{dir,pag}        default dbm output
                    373: .br
                    374: newsgroup mod.map      likely location of some input files
                    375: .br
                    376: .IR getopt (3),
                    377: available from newsgroup mod.sources (if not in the C library).
                    378: .SH BUGS
                    379: The order of arguments is significant.
                    380: In particular,
                    381: .B \-i
                    382: and
                    383: .B \-t
                    384: should appear early.
                    385: .PP
                    386: .I pathalias
                    387: can generate hybrid (\fIi.e.\fP ambiguous) routes, which are
                    388: abhorrent and most certainly should not be given as examples
                    389: in the manual entry.
                    390: .PP
                    391: Multiple `@'s in routes are prohibited by many mailers, so
                    392: .I pathalias
                    393: resorts to the ``magic %'' rule when appropriate.
                    394: This convention is not documented anywhere, including here.
                    395: .PP
                    396: Domains constitute a futile attempt to defeat anarchy and otherwise
                    397: retard progress.
                    398: .SH AUTHORS
                    399: Steve Bellovin (ulysses!smb)
                    400: .br
                    401: Peter Honeyman (princeton!honey)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.