|
|
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)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.