2.11BSD/new/man/cat1/pathalias.0

Compare this file to the similar file:
Show the results in this format:




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



NAME
     pathalias, makedb, arpatxt - mail routing tools

SYNOPSIS
     pathalias [ -ivcDf ] [ -t _l_i_n_k ] [ -l _h_o_s_t ] [ -a _h_o_s_t ] [
     -d _l_i_n_k ] [ _f_i_l_e_s ... ]

     makedb [ -a ] [ -o _d_b_m_f_i_l_e ] [ _f_i_l_e_s ... ]

     arpatxt [ -@fi ] [ -g _g_a_t_e_w_a_y ] [ -p _p_r_i_v_a_t_e_f_i_l_e ] [
     -d _d_i_r_e_c_t_o_r_y ] [ _f_i_l_e_s ... ]

DESCRIPTION
     _P_a_t_h_a_l_i_a_s computes  the  shortest	paths  and  corresponding
     routes  from  one host (computer system) to all other known,
     reachable hosts.  _P_a_t_h_a_l_i_a_s reads host-to-host  connectivity
     information  on  standard	input  or in the named _f_i_l_e_s, and
     writes a list of host-route pairs on the standard output.

     Here are the _p_a_t_h_a_l_i_a_s 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 _h_o_s_t
	   Set local host name to _h_o_s_t.   By  default,	_p_a_t_h_a_l_i_a_s
	   discovers  the  local  host name in a system-dependent
	   way.

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

     -d _a_r_g
	   Declare a dead link, host, or network.  If _a_r_g  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 _a_r_g 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 _a_r_g 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 _a_r_g
	   Trace input for link, host or network on the  standard
	   error output.  The form of _a_r_g is as above.

     _M_a_k_e_d_b takes _p_a_t_h_a_l_i_a_s output and creates or  appends  to	a
     _d_b_m(3) database.

     Here are the _m_a_k_e_d_b options:

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

     -o _d_b_m_f_i_l_e
	   Identify the output file base name.

     _A_r_p_a_t_x_t converts the Internet  hosts  table  _h_o_s_t_s._t_x_t  into
     _p_a_t_h_a_l_i_a_s input.

     Here are the _a_r_p_a_t_x_t options:

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

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

     -i    Map output to lower case.

     -g _a_r_g
	   Declare a gateway to the Internet or one of	its  sub-
	   domains.   If _a_r_g 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, _a_r_g is declared a gateway to the Internet as a
	   whole.

     -p _p_r_i_v_a_t_e_f_i_l_e
	   _P_r_i_v_a_t_e_f_i_l_e contains a list of host	names  that  con-
	   flict with other names.

     -d _d_i_r_e_c_t_o_r_y
	   Write output files in _d_i_r_e_c_t_o_r_y.

     _P_a_t_h_a_l_i_a_s 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 _l_i_n_k_s.   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  _t_e_r_m_i_n_a_l, 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 _a_l_i_a_s_e_s.  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 _g_a_t_e_w_a_y_s and _d_o_m_a_i_n_s .

     Connection data may be given  while  hiding  host	names  by
     declaring

	  private {host, host, ...}

     _P_a_t_h_a_l_i_a_s 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 _a_r_g 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
     _p_r_i_n_t_f(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 _d_o_m_a_i_n_s, 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,	_p_a_t_h_a_l_i_a_s
     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
     _M_a_k_e_d_b builds a _d_b_m(3) database from the standard	input  or
     from  the	named _f_i_l_e_s.  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
     _g_e_t_o_p_t(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.

     _P_a_t_h_a_l_i_a_s 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 _p_a_t_h_a_l_i_a_s  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 _o_r The	Care  and
     Feeding  of  Relative  Addresses,''  in  _P_r_o_c. _S_u_m_m_e_r _U_S_E_N_I_X
     _C_o_n_f., Atlanta, 1986.














































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