PATHALIAS(1)	    UNIX Programmer's Manual	     PATHALIAS(1)


NAME
     pathalias, makedb, arpatxt - mail routing tools

SYNOPSIS
     pathalias [ -ivcDf ] [ -t link ] [ -l host ] [ -a host ] [
     -d link ] [ files ... ]

     makedb [ -a ] [ -o dbmfile ] [ files ... ]

     arpatxt [ -@fi ] [ -g gateway ] [ -p privatefile ] [
     -d directory ] [ files ... ]

DESCRIPTION
     Pathalias 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.

     Here are the pathalias options:

     -i    Ignore case:  map all host names to	lower  case.   By
	   default, case is significant.

     -c    Print costs: print the path	cost  before  each  host-
	   route pair.

     -v    Verbose: report some statistics on the standard  error
	   output.

     -D    Terminal domains: domain members are terminal.

     -f    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 -c option.

     -l host
	   Set local host name to host.   By  default,	pathalias
	   discovers  the  local  host name in a system-dependent
	   way.

     -a host
	   Avoid host; penalize all links out of host by a  small
	   amount.  The -a option is cumulative.

     -d arg
	   Declare a dead link, host, or network.  If arg  is  of
	   the	form  ``host-1!host-2,''  the link from host-1 to
	   host-2 is treated as an  extremely  high  cost  (i.e.,
	   DEAD)  link.   If arg is a single host name, that host
	   is treated as dead and is used as a relay host of last
	   resort  on  any  path.   If arg is a network name, the


Printed 11/24/99	     10/4/87				1


PATHALIAS(1)	    UNIX Programmer's Manual	     PATHALIAS(1)


	   network requires a gateway.

     -t arg
	   Trace input for link, host or network on the  standard
	   error output.  The form of arg is as above.

     Makedb takes pathalias output and creates or  appends  to	a
     dbm(3) database.

     Here are the makedb options:

     -a    Append to an existing  database;  by  default,  makedb
	   truncates the database.

     -o dbmfile
	   Identify the output file base name.

     Arpatxt converts the Internet  hosts  table  hosts.txt  into
     pathalias input.

     Here are the arpatxt options:

     -@    Generate pathalias  input  that  specifies  `@'  style
	   addressing.	The default is to produce pathalias input
	   that specifies `!' style addressing.

     -f    ``Filter mode'' - write output on  stdout.	Normally,
	   arpatxt  writes  the description of each domain into a
	   separate file.

     -i    Map output to lower case.

     -g arg
	   Declare a gateway to the Internet or one of	its  sub-
	   domains.   If arg contains one or more dots, the left-
	   hand side component that contains no dots is  declared
	   a gateway to the domain to the right of the dot.  Oth-
	   erwise, arg is declared a gateway to the Internet as a
	   whole.

     -p privatefile
	   Privatefile contains a list of host	names  that  con-
	   flict with other names.

     -d directory
	   Write output files in directory.

     Pathalias Input Format
     A line beginning with white space	continues  the	preceding
     line.  Anything following `#' on an input line is ignored.


Printed 11/24/99	     10/4/87				2


PATHALIAS(1)	    UNIX Programmer's Manual	     PATHALIAS(1)


     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  may  be  arbitrary	arithmetic  expressions involving
     numbers, parentheses, `+', `-', `*', and `/'.  The following
     symbolic costs are recognized:

	  LOCAL       25   (local-area network connection)
	  DEDICATED   95   (high speed dedicated link)
	  DIRECT     200   (toll-free call)
	  DEMAND     300   (long-distance call)
	  HOURLY     500   (hourly poll)
	  EVENING   1800   (time restricted call)
	  DAILY     5000   (daily poll, also called POLLED)
	  WEEKLY   30000   (irregular poll)

     In addition, DEAD is a very large number (effectively infin-
     ite), 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 * 24 is much
     larger than DAILY. 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.
     E.g., 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  brack-
     ets,  the	link  is  considered  terminal, and further links
     beyond this one are heavily penalized.  E.g., with input


Printed 11/24/99	     10/4/87				3


PATHALIAS(1)	    UNIX Programmer's Manual	     PATHALIAS(1)


	  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 way to think  of  this  is  to  imagine  two  copies  of
     research,	one that's cheap to get to, but has no neighbors,
     and one that's expensive  to  get	to,  but  has  neighbors.
     (This  is	an  exception  to  the	``least-cost  link'' rule
     above.)

     The set of names by which a host is known to  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 may be preceded or followed by a routing char-
     acter, and may be followed by a cost:

	  princeton-ethernet = {down, up, princeton}!(LOCAL)
	  ARPA = @{sri-unix, mit-ai, su-score}(DEDICATED)

     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 may be given  while  hiding  host	names  by
     declaring

	  private {host, host, ...}

     Pathalias will not generate routes for  private  hosts,  but
     may  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 may be presented in the input
     stream by declaring


Printed 11/24/99	     10/4/87				4


PATHALIAS(1)	    UNIX Programmer's Manual	     PATHALIAS(1)


	  dead {arg, ...}

     where arg has the same  form  as  the  argument  to  the  -d
     option.

     Output Format
     A list of host-route pairs is written to the  standard  out-
     put,  where  route  is  a	string	appropriate  for use with
     printf(3), e.g.,

	  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, the name of a network is never  used  in
     routes.  Thus, in the earlier example, the path from down to
     up would be ``up!%s,'' not ``princeton-ethernet!up!%s.''

     Gateways
     A network is represented by a pseudo-host and a set of  net-
     work  members.   Links  from the members to the network have
     the weight given in the input, while the cost from the  net-
     work to the members is zero.  If a network is declared dead,
     the member-to-network links are marked  dead,  which  effec-
     tively 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 gate-
     way.  (In particular, the gateway	need  not  be  a  network
     member.)

     E.g., if CSNET is declared dead and the input contains

	  CSNET = {...}
	  csnet-relay	      CSNET

     then routes to CSNET hosts will use csnet-relay as  a  gate-
     way.

     Domains
     A 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 tacked
     onto the end of the next host.  Subdomains are permitted.

     E.g.,

	  harvard   .EDU      # harvard is gateway to .EDU domain
	  .EDU	    = {.BERKELEY, .UMICH}


Printed 11/24/99	     10/4/87				5


PATHALIAS(1)	    UNIX Programmer's Manual	     PATHALIAS(1)


	  .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 discourages the use of routes that use	a
     domain member as a relay.

     Databases
     Makedb builds a dbm(3) database from the standard	input  or
     from  the	named files.  Input is expected to be sequence of
     ASCII records, each consisting of a key  field  and  a  data
     field separated by a single tab.  If the tab is missing, the
     data field is assumed to be empty.

FILES ET AL.
     /usr/local/lib/palias.{dir,pag}	 default dbm output
     newsgroup comp.mail.maps		 likely location of  some
     input files
     getopt(3), available from comp.sources.unix archives (if not
     in the C library).

BUGS
     Terminal nets are not implemented.

     The -i option should be the default.

     The order of arguments is significant.   In  particular,  -i
     and -t should appear early.

     Pathalias can generate hybrid (i.e. ambiguous) routes, which
     are  abhorrent  and  most	certainly  should not be given as
     examples in the manual entry.  Experienced  mappers  largely
     shun  `@' when preparing input; this is historical, but also
     reflects UUCP's facile syntax for source routes.

     Multiple `@'s in routes are loathsome, so pathalias  resorts
     to  the ``magic %'' rule when necessary.  This convention is
     not documented anywhere, including here.


Printed 11/24/99	     10/4/87				6


PATHALIAS(1)	    UNIX Programmer's Manual	     PATHALIAS(1)


     The -D option elides insignificant routes to domain members.
     This  is  benign,	perhaps  even  beneficial, but confusing,
     since the behavior is undocumented and  somewhat  unpredict-
     able.

SEE ALSO
     P. Honeyman and S.M. Bellovin, ``PATHALIAS or The	Care  and
     Feeding  of  Relative  Addresses,''  in  Proc. Summer USENIX
     Conf., Atlanta, 1986.


Printed 11/24/99	     10/4/87				7


 
Generated: 2016-12-26
Generated by man2html V0.25
page hit count: 1452
Valid CSS Valid XHTML 1.0 Strict