=head1 NAME

NetInfo - Defines machine interfaces to register with AFS servers

=head1 DESCRIPTION

There are two F<NetInfo> files, one for an AFS client and one for an AFS
File Server or database server.  The AFS client F<NetInfo> file specifies
the IP addresses that the client should register with the File Servers it
connects to.  The server F<NetInfo> file specifies what interfaces should
be registered with AFS Database Servers or used to talk to other database
servers.

=head2 Client NetInfo

The client F<NetInfo> file lists the IP addresses of one or more of the
local machine's network interfaces. If it exists in the F</usr/vice/etc>
directory when the Cache Manager initializes, the Cache Manager uses its
contents as the basis for a list of local interfaces. Otherwise, the Cache
Manager uses the list of interfaces configured with the operating
system. It then removes from the list any addresses that appear in the
F</usr/vice/etc/NetRestrict> file, if it exists. The Cache Manager records
the resulting list in kernel memory. The first time it establishes a
connection to a File Server, it registers the list with the File Server.

The File Server uses the addresses when it initiates a remote procedure
call (RPC) to the Cache Manager (as opposed to responding to an RPC sent
by the Cache Manager). There are two common circumstances in which the
File Server initiates RPCs: when it breaks callbacks and when it pings the
client machine to verify that the Cache Manager is still accessible.

The F<NetInfo> file is in ASCII format. One of the machine's IP addresses
appears on each line, in dotted decimal format. The File Server initially
uses the address that appears first in the list. The order of the
remaining addresses is not significant: if an RPC to the first interface
fails, the File Server simultaneously sends RPCs to all of the other
interfaces in the list.  Whichever interface replies first is the one to
which the File Server then sends pings and RPCs to break callbacks.

To prohibit the Cache Manager absolutely from using one or more addresses,
list them in the F<NetRestrict> file. To display the addresses the Cache
Manager is currently registering with File Servers, use the B<fs
getclientaddrs> command. To replace the current list of interfaces with a
new one between reboots of the client machine, use the B<fs
setclientaddrs> command.

=head2 Server NetInfo

The server F<NetInfo> file, if present in the F</usr/afs/local> directory,
defines the following:

=over 4

=item *

On a file server machine, the local interfaces that the File Server
(B<fileserver> process) can register in the Volume Location Database
(VLDB) at initialization time.

=item *

On a database server machine, the local interfaces that the Ubik database
synchronization library uses when communicating with the database server
processes running on other database server machines.

=back

If the F<NetInfo> file exists when the File Server initializes, the File
Server uses its contents as the basis for a list of interfaces to register
in the VLDB. Otherwise, it uses the list of network interfaces configured
with the operating system. It then removes from the list any addresses
that appear in the F</usr/afs/local/NetRestrict> file, if it exists. The
File Server records the resulting list in the F</usr/afs/local/sysid> file
and registers the interfaces in the VLDB. The database server processes
use a similar procedure when initializing, to determine which interfaces
to use for communication with the peer processes on other database
machines in the cell.

The F<NetInfo> file is in ASCII format. One of the machine's IP addresses
appears on each line, in dotted decimal format. The order of the addresses
is not significant.

Optionally, the File Server can be forced to use an IP address that does
not belong to one of the server interfaces. To do this, add a line to the
F<NetInfo> file with the IP address prefixed with "f" and a space. This is
useful when the File Server is on the internal side of a NAT firewall.

To display the File Server interface addresses registered in the VLDB, use
the B<vos listaddrs> command.

=head1 EXAMPLES

If the File Server is on the internal side of a NAT firewall, where it
serves internal clients using the IP address 192.168.1.123 and external
clients using the IP address 10.1.1.321, then the F<NetInfo> file should
contain the following:

   192.168.1.123
   f 10.1.1.321

=head1 SEE ALSO

L<NetRestrict(5)>,
L<sysid(5)>,
L<vldb.DB0(5)>,
L<fileserver(8)>,
L<fs_getclientaddrs(1)>,
L<fs_setclientaddrs(1)>,
L<vos_listaddrs(1)>

=head1 COPYRIGHT

IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.

This documentation is covered by the IBM Public License Version 1.0.  It was
converted from HTML to POD by software written by Chas Williams and Russ
Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
