Subject: Re: RFS over TCPIP on 3B2? Q: Can WIN/TCP be used as a transport for RFS? A: YES, and here is a way to do it: INSTALLATION PROCEDURE The procedure below explains the steps necessary to use WIN/TCP as the transport provider for RFS. I should be noted that pre-R4 versions of RFS may only have one (1) transport provider. System V Release 4 versions of RFS could have multiple transport providers simultaneously. Considering the popularity of RFS ( :^) ) we really don't have to worry about that. This section describes the procedure for setting up a 3B2 computer as an RFS primary server. Once RFS is installed and you understand the concepts of RFS (refer to AT&T Remote File Sharing Utilities Guide), you will be able to set up a secondary server. The following procedures will configure the Network Listener Service and RFS: 1. Log in as root. 2. Enter: nlsadmin -i tcp This command creates a directory named "tcp" in the directory /usr/net/nls and establishes TCP as a transport protocol known to the Network Listener Service. Then, in this new tcp directory, it creates files named "addr", "dbf", and "lock". If you have already initalized these files, you will see the following message: NLSADMIN net_spec already initalized 3. Enter: nlsadmin -a 105 -c "/usr/net/servers/rfs/rfsetup" \ -y "rfsetup" tcp This command appends a line to the file /usr/net/nls/tcp/dbf that was just created. The line looks like: 105:n:listen:reserved:NULL,:/usr/net/servers/rfs/rfsetup # rfsetup The "105" is the RFS service code, as defined in the UNIX system header file /usr/include/pn.h. See the comments in the dbf file for an explanation of the different fields. 4. Enter: nlsadmin -l \x0002040159000018 tcp This command appends the -l flag argument to the addr file in the /usr/net/nls/tcp directory. In this example x0002040159000018 is now the transport address on which the network listener will listen. The Transport address consists of four fields: \xFmlyPortInternet \x, Indicates that the following number is hexadecimal. Fmly, This is a four digit field that represents the family address (AF_INET). This field is always set to 0002. Port, This is a four digit field that represents the port number of the listener. The UNIX Systen V Release 4.0 listener uses port number 0ACE. The pre-UNIX System V Release 4.0 uses 0401. Internet, This is the host IP address in hexidecimal notation. This field is always 8 digits, with each octet of the host IP address represented by 2 hexidecimal digits. Example, a UNIX System V Release 3.x machine with the IP address of 192.9.200.1 would have a transport address of: \x00020401c009c801 The numbers shown above are an example; you will have to determine these numbers for your network. TCP/IP WIN/3B includes a utility called "rfsaddr", normally installed in /usr/etc, which can be used to produce this number for your system. (Refer to rfsaddr(1M) in the AT&T Enhanced TCP/IP WIN/3B Reference Manual for more information). The "rfsaddr" command will normally produce a number identical to the one shown here, except for the Internet address (field 4). The only other field you may need to change is field 3, the TCP port number. If there is a conflict between RFS and another application over the default port number \x0401, feel free to change it. It is arbitrarily chosen, and since the RFS server handles the distribution of the port number at which it may be contacted, there is no need for a fixed port number. 5. Enter: nlsadmin -s tcp This command starts a Network Listener process and stores its identifier (pid) in a new file named /usr/net/nls/tcp/pid. It also adds an entry to the file /usr/net/nls/tcp/log, indicating that the Network Listener was started. It creates the "log" file if it does not yet exist. 6. Enter: dname -D TWG This command defines the name of the domain that the RFS primary server will service. It does this by creating a file named "domain" in the directory /usr/nserve. Domain contains the name "TWG." ("TWG" is merely an example; you should choose your own name.) When you subsequently add other hosts ("nodes in NLS/RFS terminology) to the domain, you will prefix the domain name and a period to the name of the host you are adding, as shown in step 9. 7. Enter: dname -n tcp This command specifies the network device /dev/tcp as the one RFS will use to service its domain. It does this by creating a file named "netspec", containing the string "tcp," in the directory /usr/nserve. 8. Create or edit the rfmaster file in the directory /usr/nserve. Add an entry for at least the primary server. For each host you wish to add, you will need to add two lines of information to rfmaster. See rfmaster(4) in the AT&T 3B2 Computer System Administrator's Reference Manual for the entry format. 9. Enter: rfadmin -a TWG.customer This command adds the host named "customer" to the domain named "TWG". Use this command as many times as necessary to populate your domain with the desired hosts. It appends lines to the file /usr/nserve/auth.info/TWG/passwd. At this point, the Network Listener has been configured to handle RFS traffic, the domain of the primary server has been defined and populated, and you are ready to start RFS. 10. Enter: rfstart This command starts several processes, including an rfdaemon and an rfudaemon. RFS is now operational. 11. Enter: adv m_usr /usr This is an example of the command that advertises a local host file tree as a remotely mountable filesystem. Unadvertised resources cannot be remotely accessed, so you need to decide which file trees you wish to make available. Assign each tree a name, such as "m_usr", and advertise it. This must be done on every node with files that are to be remotely accessible. ---------------------------------------------------------------- There, wasn't that simple? Unlike the BNU over WIN/TCP I cannot confirm that the above works since I've not tried it myself (yet). I know of one installation of 3B2s and a 3B15 where RFS *is* working over TCP/IP so it must work. YMMV, good luck! -Bob Martel (bob@cua2.csuohio.edu)