UUCP over TCP/IP

Conor P. Cahill cpcahil at virtech.uucp
Sun Mar 24 11:33:59 AEST 1991


stlouis at unixg.ubc.ca (Phill St. Louis) writes:

>I am trying to get UUCP to function over TCP/IP on InterActive Unix 2.2. 

Here is a posting by Bill Kennedy discussing the above subject.  It should
help you solve your problems.

+ Before I start this, many many thanks to Doug Mc Callum and Dick Dunn
+ at ISC for getting me straightened out on the address that nlsadmin
+ wants to make this work, to Bill Bunton at Tools & Techniques, Austin
+ for persevering as I stumble blundered through it, and to Bob Tracy
+ at CDC San Antonio for getting me started.
+ 
+ If you have no interest in a TLI based uucp over TCP/IP, hit `n' now,
+ but if you ever might, save this article, it will save your hair.
+ 
+ Here's the configuration and the problem.  I have two machines that are
+ networked together using ISC TCP/IP.  One of them has both printers that
+ used to be on a third machine connected by a direct 19.2Kbps uucp link.
+ My old lp scripts sort of went by the board when I no longer had a uucp
+ link to the system that had the printers.  It became obvious to me that I
+ had to figure out how to get uucp to work using TLI across the network.
+ TFM has some information on getting RFS to work, but it's silent with
+ respect to uucp using TLI.  A generous and TLI savvy neighbor, Bob Tracy,
+ was able to get things to almost work, but we kept failing in t_bind, it
+ couldn't allocate the address.  ISC lept to the rescue by explaining how
+ the address had to look for the listener to fundtion but we still (by now,
+ Bill Bunton had agreed to help but was falling into similar potholes)
+ couldn't get the originator's uucico to connect with its destination.  What
+ follows is a step-by-step recipe for something that works.  If there is a
+ more elegant way to do it, please feel free to mark it up and re-post.  If
+ there is any generally available documentation (cookbook please, not theory),
+ please tell us too.
+ 
+ Begin by editing /etc/services and create a port for nls.  We used
+ nls	256/tcp		# TLI port
+ if that doesn't suit you, keep track of the port number because you
+ need it to develop the nls address.  Now choose a name for the nls
+ "net_spec" (see NLSADMIN(1M)), we chose tcp.
+ 
+ Initialize the nls net_spec with nlsadmin -i tcp, it will create a
+ directory, /usr/net/nls/tcp and will create some files in it that it
+ uses to actually start the listener.  Now set up the nls service_code
+ nlsadmin -a 101 -c"/usr/lib/uucp/uucico -r0 -iTLI -u loginid" -y "comment" tcp
+ Here loginid is the name of the system who's going to be logging in, on
+ ssbn it's udunsel and on dunsel it's ussbn, both are no password logins
+ since they are local uucp over the ethernet.  I used "dunsel/ssbn uucico"
+ for the comment, all of this ends up in /usr/net/nls/tcp/dbf, you can make
+ a similar entry for cu, choose another service_code, avoid 105 because
+ that's rfs.
+ 
+ Now you have to work up your network address.  We'd have _never_ figured this
+ out without ISC's help!  This is a hex string that is composed of address
+ family (AF_INET), port number, IP address, and padding zeroes.  Here is the
+ format and an example:
+ \x02000100c0fafa010000000000000000    mapped as
+   aaaappppiiiiiiiizzzzzzzzzzzzzzzz
+   |   |   |       +------------------ sixteen padding zeroes
+   |   |   +-------------------------- IP address 192.250.250.1 co.fa.fa.01
+   |   +------------------------------ port address fm /etc/services (256)
+   +---------------------------------- address family, socket address
+ Obviously your mileage is going to vary, but it shouldn't be hard to figure
+ out from this example.  Hang on to it, you're going to use it more than one
+ place...  You have to tell the listener what address he's going to use
+ nlsadmin -l "\x02000100c0fafa010000000000000000" tcp
+ and that number will appear in /usr/net/nls/tcp/addr to be used when you
+ start nls with nlsadmin -s tcp.  Look at /usr/net/nls/tcp/log to be sure
+ that you've gotten started, "Couldn't allocate address" means he can't
+ get to the address you specified, "Invalid argument" means you don't have
+ the right length.
+ 
+ Now you need to make some entries in /usr/lib/uucp/Systems, Devices, and
+ Dialers.  Remember that ssbn and dunsel don't have passwords on each
+ other, we can drop directly into uucico which is what we specified when
+ we added the 101 service code.
+ 
+ Systems:
+ # ssbn's Systems line for contacting dunsel, 192.250.250.2
+ dunsel Any wlknet Any \x02000100c0fafa020000000000000000
+ # dunsel's Systems line for contacting ssbn, 192.250.250.1
+ ssbn   Any wlknet Any \x02000100c0fafa010000000000000000
+ 
+ Devices:
+ wlknet,eg tcp - - TLI \D nls
+ 
+ Dialers:
+ nls "" "" NLPS:000:001:101\N\c
+ 
+ If you used a service_code other than 101 in the nlsadmin -a, replace the
+ 101 in the Dialers entry with the code you used.  Also note that the Systems
+ lines need the address of the system that they are "calling", choose any
+ convenient Devices name, I used wlknet because that's the network name in my
+ /etc/networks.  Now you're ready to test the connection with Uutry.  It
+ goes by too fast to watch, but it's all recorded in /tmp/systemname.  You
+ might have to go through the usual /usr/lib/uucp/Permissions exercise to
+ make them actually talk to each other, but that's unrelated to nls or TCP/IP
+ (I _think_ :-)
+ 
+ Back to the original problem I had set out to solve, my ssbn resident lp
+ scripts just uux the stuff over to dunsel who is physically connected to
+ the printers.  Here's what I use to get to the dot matrix printer:
+ 
+ user=$2
+ options=$5
+ copies=$4
+ shift; shift; shift; shift; shift
+ files="$*"
+ for file in $files
+ do
+ 	uux -  -a$user "dunsel!lp -o$options -n$copies 2>/dev/null" < $file
+ done
+ 
+ The lp setup on dunsel contains all the stuff that worries about lines
+ per inch, pitch, etc.  That's all passed in options, I don't try to use
+ more than one, so beware of quotes/apostrophes.
+ 
+ You'll get some astonishing transfer rates!  My lamebrained lp approach is
+ what I cobbled together because I don't have lpr/lpd and (you can probably
+ tell :-) probably wouldn't understand them if I did.  Don't forget, I didn't
+ claim that this was elegant, just that it works...
-- 
Conor P. Cahill            (703)430-9247        Virtual Technologies, Inc.
uunet!virtech!cpcahil                           46030 Manekin Plaza, Suite 160
                                                Sterling, VA 22170 



More information about the Comp.unix.sysv386 mailing list