UNIX, TCP/IP, and Macs
Donald C. Stone
Until recently, I was the system administrator for a
group of UNIX
workstations used mainly for CAD and highway-design
In that capacity, I was given responsibility for implementing
as well as taking on some development for Internet applications.
UNIX setup consist of 70+ HP/Apollo 3500/425t/700 workstations
Aegis/BSD4.3/HP-UX and 15 Intergraph workstations running
Apollos are connected as a Domain Ring network, with
that serves as a gateway hanging on the same ethernet
LAN as the Intergraph
workstations. The LAN exits our office via a Cisco router
to the rest
of the department's statewide network.
Meanwhile, we have 80+ Macintosh's AppleTalking to each
standard phonelines hubbed at a Tribe switch then connected
Systems' GatorBox. The GatorBox serves as a gateway
to other AppleTalk
networks throughout the department. The GatorBox is
to the same LAN as the Intergraph workstations and Apollo
it also uses the Cisco router to exit the office.
We had a problem, in that our Macs could not talk to
our UNIX workstations.
The Macs were using AppleTalk while the workstations
were using TCP/IP.
After doing some investigating and querying the Internet,
I came across
NCSA/BYU Telnet (& MacTCP), a software packaged
developed by Jim Logan
of BYU and Scott Bulman of NCSA (at UIUC). The NCSA
software was public
domain (and thus was within our budget constraints)
and easy to install,
requiring only the specification of a few parameters.
process for the NCSA Telnet software minimally requires
the MacTCP driver be configured, a process which is
The GatorBox did not require additional software. However,
the GatorKeeper software (the administrative software
for the GatorBox)
I had to turn on the TCP/IP option, assign a static
IP address, provide
the IP address for the Cisco router, establish a range
of IP addresses
(64 maximum) to be used for dynamic assignment, and
On the Mac side, each machine had to have the MacTCP
in the "Control Panels" folder and the NCSA/BYU
installed in a folder of the user's choice. The MacTCP
configured to obtain its IP address from the GatorBox
on the server mode and providing the static IP address
of the GatorBox.
NCSA/BYU Telnet includes three files that can be configured,
is optional. The first of these,config.tel, is configured
similarly to an /etc/hosts file; it contains IP addresses
and logical names. The second, passwd, is configured
usernames and passwords, like the /etc/passwd file.
file is empty or does not exist, anyone can connect
to a Mac running
telnet. The third file is a session file; it can contain
or logical names that the user can access via icons
on the Mac desktop.
For our situation, I decided to use the dynamic IP addressing
on the GatorBox that serves as our AppleTalk gateway.
required a static IP address, with the next 64 addresses
for dynamic assignment. I then configured the MacTCP
on each Mac to obtain its address from the GatorBox.
Each time a Mac
executes telnet, the Gatorbox assigns it an IP address
allocated until the Mac is rebooted. Since the GatorBox
64 connections and we have 80+ Mac's, the dynamic addressing
well. A few spot checks revealed that we rarely had
more than 30+
Macs using telnet simultaneously.
A MacIntosh-Style File Transfer
At this point, the handshaking was complete. Users could
or ftp between the Macs and the UNIX workstations. However,
Mac users being what they are, I knew I needed to come
up with a point-and-drag
process for file transferring. To provide this, I set
up one of the
Mac file servers with a static IP address (the GatorBox
addressing even though the default may be dynamic) and
the server to execute NCSA/BYU Telnet at boot-up. I
then created a
folder named "File Transfer" on the file server.
I then placed
an alias (Mac version of links, sort of) on each Mac
pointing to the folder on the file server. This configuration
Mac users to simply drag files to the alias, which automatically
a copy on the file server.
UNIX users can then execute a shell script I wrote,
(Listing 1), which ftps a file from the Mac file server.
shell script is configured with the server's static
IP address and
folder name. I also entered the Mac's static IP address
in the /etc/hosts
file, so that UNIX users could execute ftp manually
would rather do so.
The reverse transfer process worked the same way. UNIX
users use the
shell script mcftp (or ftp) to transfer the file to
the folder on the file server. Mac users simply double-click
alias on their local desktop and point-and-drag the
file to their
machine. Mac users are happy because they can still
UNIX users are happy because all transferring is centralized
Mac file server; and my boss was happy because the only
cost to the
department was my time.
This solution lent itself to another development. The
are networked to three B&W/color electrostatic plotters
that are used
for CAD files. Mac users were limited to B&W/color
which are only able to generate tabloid size or smaller.
that I could use the same concept for plotting as I
used for file
transfer. In this case, each Mac client has aliases
Plots" and "B&W Plots," which point
to their respective
folders on the Mac file server. I wrote a shell script
(Listing 2) -- to run as a daemon on the UNIX workstation
the plotters. The daemon uses ftp to check the folders
the Mac file server for postscript files. If it finds
it copies the files to a local scratch directory on
the UNIX workstation
and then submits them to the plotting environment. Every
the daemon returns a text file containing queue status
to the plot folders on the Mac file server. Mac users
can use these
aliases to view the queue status file by double-clicking
on the object.
The mcftp shell script requires simply designating a
IP address and a folder on a Mac and then defining two
the script itself. The mcplot script may require a little
more modification if your plotting software/hardware
from mine. Since there are many plotting products, my
point here was
to illustrate a possible peripheral-sharing scenario.
A Small Problem
As happens with all development, I did run into a snag.
the Mac server running NCSA/BYU Telnet would lock up.
would run for a week; sometimes, just a couple of days.
I used a product
already installed on the Mac server -- from CE Software,
Inc. -- QuicKeys,
to create a macro that reboots the Mac server at midnight.
ever uses the system at that time of night, this solution
I would like to thank the folks at Cayman Systems, Inc.
and NCSA who
provided technical expertise along the way via their
would also like to thank some co-workers who contributed
this effort: Mark Amundsen of Intergraph Corp. (on-site
Juanita Holley (Mac Coordinator), and Brad Miller (CADD
NCSA/BYU Telnet (& MacTCP) software can be obtained
by sending a request
to firstname.lastname@example.org or by using snailmail:
NCSA Software Development
152 Computing Applications Building
605 East Springfield Avenue
Champaign, IL 61820
For more information concerning Cayman Systems' GatorBox,
to email@example.com, call their front desk at (617)
or use snailmail:
Cayman Systems, Inc.
400 Unicorn Park Drive
Woburn, MA 01801
You can request the mcftp and mcplot shell scripts
and their accompanying readme file by sending the following
Send to: firstname.lastname@example.org
The readme file contains configuration requirements.
If you have any questions, you can contact me through
email at email@example.com
or by phone at (901) 751-4893.
About the Author
Donald C. Stone is UNIX System Administrator with Corporate
Marketing Concepts, Cordova, Tennessee. You can reach
him via email