For many environments there is no need for AppleTalk anymore. In Mac OS X 10.6, AppleTalk has been removed entirely by Apple. On Linux, AppleTalk support depends on the kernel configuration (see the HELIOS Support website for details). All HELIOS EtherShare services are supported over TCP/IP, including HELIOS printer drivers for Mac OS X and Mac OS 9.
Therefore we decided to make the AppleTalk support optional in HELIOS UB2. The legacy services “atalkd”, “admsrv”, “mailsrv”, “termsrv” and “timesrv”, which are only needed for Mac OS 9 or older clients, are also optional.
AppleTalk support is off by default. The AppleTalk kernel modules are not loaded, and the legacy services are not started. The EtherShare file server, print server etc. run using TCP/IP only. If AppleTalk support is required, it can be enabled after the UB2 installation (see below).
Upgrading to HELIOS UB2 does NOT remove AppleTalk support. The kernel modules and all services continue running. But you can remove AppleTalk support and the legacy services after the installation of HELIOS UB2.
To remove AppleTalk support, enter the following commands as superuser:
# cd /usr/local/helios # bin/stop-helios # sbin/atsupport uninstall # bin/start-helios
This unloads the AppleTalk kernel modules from the system, and also disables the services “atalkd”, “admsrv”, “mailsrv”, “termsrv”, and “timesrv”.
To enable AppleTalk support, enter the following commands as superuser:
# cd /usr/local/helios # bin/stop-helios # sbin/atsupport install # bin/start-helios
This installs the AppleTalk kernel modules and also enables the services “atalkd”, “admsrv”, “mailsrv”, “termsrv”, and “timesrv”.
If you need AppleTalk support (e.g. for printing via PAP), but not the legacy services, execute the following commands as superuser:
# cd /usr/local/helios # bin/stop-helios # sbin/atsupport driver-only # bin/start-helios
This installs the AppleTalk kernel modules (and “atalkd”), but disables the services “admsrv”, “mailsrv”, “termsrv”, and “timesrv”.
On Mac OS X 10.4/10.5, AppleTalk must be activated or deactivated in “System Preferences > Network > Advanced … > AppleTalk”. The “atsupport” script (in “HELIOSDIR/sbin”) is only used to enable or disable the services “admsrv”, “mailsrv”, “termsrv”, and “timesrv”.
Mac OS X 10.6 does not support AppleTalk at all. The services “admsrv”, “mailsrv”, “termsrv”, and “timesrv” are disabled automatically.
The EtherShare AppleTalk protocol stack is either contained in a UNIX loadable module, which is designed to be added to the operating system during runtime or in a driver which is built into the UNIX kernel during the EtherShare installation.
The AppleTalk protocol stack is closely connected to the “atalkd” (AppleTalk Daemon) program. The protocol stack and “atalkd” provide important basic functions for AppleTalk networks. The HELIOS servers (print server, file server, etc.) are designed around this base system.
The Mac OS X platform uses its generic AppleTalk implementation
and not the HELIOS “atalkd” daemon. All parameters
are set in the Network
panel.
The “atalkd” program implements permanent services on the AppleTalk network which are required to operate the EtherShare system. For example, all EtherShare components depend on the functions of this program in order to be able to communicate with the network. None of the servers will start until “atalkd” is running (otherwise you will get a “… cannot register” error message, see also 4.4 ““atalkd” error messages”). The host is normally configured to start “atalkd” automatically when UNIX is booted.
“atalkd” is also responsible for making the names of all AppleTalk services, which are available on the UNIX host (i.e. EtherShare file server, print server, Terminal server, mail server, and Time server), known to the AppleTalk network.
When a HELIOS service is started, the chosen AppleTalk name for the server (defined in the configuration) is passed to “atalkd”, which also receives a corresponding message from the server when it is shut down. “atalkd” automatically checks whether the chosen name is unique to the network zone. If the name is already in use the server is immediately aborted with the error message “Duplicate name exists already”, and it is necessary to change the name in the configuration.
“atalkd” is also responsible for the AppleTalk routing table maintenance, to allow the kernel modules to route between all active network interfaces.
Another task of “atalkd” is to manage all information about connected AppleTalk networks. On AppleTalk, different logical networks are grouped into zones. “atalkd” automatically maintains an internal routing table to keep track of changes in the network configuration. The routing table allows services and information to be routed through different segments of the network, if required.
Changes in the routing table are also passed on to the AppleTalk protocol modules to allow data packets to be routed between different network segments.
The HELIOS “netconf” utility offers a very convenient user interface for network configuration.
Note that HELIOS “netconf” is only a configuration tool. Messages, like information about whether Automatic configuration is possible or not, are issued by the respective server programs, not by “netconf” itself.
“netconf” automatically recognizes and displays the network interfaces that are supported by EtherShare, i.e. Ethernet. Even though it is possible to enter new interfaces not yet known to EtherShare, you should keep in mind that these new interfaces may, under certain conditions, cause a system crash.
You do not need to stop EtherShare before configuring your interfaces and zones with “netconf”. However, you must stop and start EtherShare after the work is done in order to let the new configuration take effect. “netconf” is described in detail in 4.3.4 “Manual network configuration”.
You can use the HELIOS “zones” program to check your network for existing zone information. See 12.4 “zones” for a more detailed description of this program.
The following figures show example network setups, from one up to four NICs (Network Interface Card):
Fig. 4.1 shows a network setup which is comprised of a server (with one NIC), two clients, and a network printer. This configuration is simple because all nodes are attached directly to the bus.
In the second example configuration, the setup is comprised of one server, but now with two NICs. The server has to link two networks, which include two clients each. Additionally, a network printer is connected to one “single” network (Fig. 4.2). A set of single networks linked together by routers and forming a larger network is called an internet.
In the last example configuration (Fig. 4.3) three single network segments form an internet. Two servers route the networks via four (2+2) NICs. The nodes in each segment are accessible from any other network on this particular internet.
If your EtherShare host has only a single network interface, or you do not want to configure EtherShare as a “seed router” (see 4.3.3 “Seed routers, non-seed routers”), EtherShare’s AppleTalk protocol stack can be configured to “interrogate” network numbers and zone information automatically each time it loads, and thus avoid the necessity of manually specifying these parameters during the EtherShare configuration. This situation is automatically detected by the “netconf” program. If automatic configuration is possible, you will get the following message when you select the network interface:
There is only one network interface detected, thus there is no need to configure any network numbers!
If only one interface is existing, the installation program does not allow manual configuration with “netconf”.
The Automatic configuration option requires other AppleTalk routers to be connected up and online during EtherShare startup. If “atalkd” does not detect any available external routers it starts in single-network mode.
For all EtherShare supported UNIX operating systems (except for Linux), the Automatic configuration option is also allowed if you have more than one network interface.
Automatic configuration is enabled by a simplified interface specification in the “Preferences” file:
[][Programs][atalkd][if] flags=0 type=Stringlist value=[1] [4]eth0
[][Programs][atalkd][if] flags=0 type=Stringlist value=[2] [4]eth0 [4]eth1
The entries are inserted automatically by the HELIOS Installer for all recognized hardware interfaces. To reinstate automatic configuration after you have already configured the interfaces, you can use “netconf” as described in 4.3.4 “Manual network configuration”. Alternatively, you can change the “Preferences” using the “prefvalue” command (see HELIOS Base manual). The relevant preferences are described in 13.3 “AppleTalk preference keys”.
If your network includes other, external routers in addition to EtherShare, or if it includes certain other types of AppleTalk entities, then it is necessary to specify network numbers and zone information for each physical segment in your network. Routers are configured in accordance with the manufacturer’s instructions. The EtherShare configuration is described below.
When you consider an example network with two standalone routers, you can either “hard-configure” both routers with identical zone information or configure one of them to “interrogate” the zone information broadcast by the other one. In the first case, both routers are so-called seed routers. In the latter case, one of the routers is a seed router, because it is responsible for broadcasting the zone information, and the other router is a passive, non-seed router.
The latter case requires less work, because you only have to hard-configure one of the routers. If you change the configuration of the seed router, the non-seed router automatically reconfigures itself after a short delay. Configuration changes become effective after a restart of the HELIOS software by use of the “stop-helios” and “start-helios” scripts (see the HELIOS Base manual).
However, the first case is technically safer because the network is left completely without zone information if the seed router fails or loses power. This can cause serious disruption of your entire network.
EtherShare can be configured as a seed router by manually configuring the network connection as described below. However, even if you have chosen to use the EtherShare Automatic configuration option instead, it is still not a true non-seed router, because it only “interrogates” network numbers and zone information of the local network segments once, when the AppleTalk module loads, and not on-the-fly like a conventional non-seed router. Of course, it always adjusts automatically to changed network numbers and zone names of remote network segments (on the far side of external routers).
You may use the HELIOS “zones” program to check your network for existing zone information. See 12.4 “zones” for a more detailed description of this program.
Automatic configuration is described earlier in this chapter. Manual configuration is only necessary if automatic configuration is not possible or not desired.
This is done by calling the “netconf” routine in the “HELIOSDIR/sbin” directory. We strongly recommend that you configure your network connection in this way, and not by changing the “Preferences” file, because “netconf” checks the validity of your entries, and in particular the use of valid network numbers.
If required, you may read 4.3 “Configure EtherShare as AppleTalk network router” above for technical details of network configuration parameters.
Start “netconf” with the following UNIX command:
# cd /usr/local/helios/ # sbin/netconf
Do not run “netconf” from a HELIOS Terminal connection under Mac OS 9. Stopping the HELIOS services by use of the “stop-helios” script would cut the connection to the server! Better use either the host’s console, or a terminal connection other than HELIOS Terminal.
The “netconf” startup screen shows the program’s main menu (Fig. 4.4).
The following keys are available to handle the “netconf” program:
TAB key: navigate within a “netconf” dialog
“CTRL -J”, “CTRL -K” (or ARROW) keys: navigate within a list of items
“+” and “-” (or SPACE bar): mark/unmark items from a list
ESC key (or CTRL-X): quit the current dialog
Further keys that are required in a specific dialog only are listed in the bottom line of the respective dialog. Alternatively, they are described in the help windows.
“netconf” includes a convenient online help system which can be activated by pressing “?”. An example is shown in Fig. 4.5.
Please note that:
“netconf” gets its information from the “Preferences” file (see zone in 13.1 “Global preference keys”).
If you are doing an upgrade installation, the HELIOS Installer automatically preserves your previous “Preferences” file so that previously entered zone, network, and printer information, etc. do not get lost.
If you temporarily deactivate one interface, the configuration will also be saved in “Preferences”, and will be available again upon reactivating the interface.
If you have an IBM RS/6000 host, note that two logical interface names exist for each card. “et0” is used for AppleTalk (and is used by EtherShare), and “en0” is used for TCP/IP. You should see an “et0” entry in the list for the AppleTalk connection.
The Configure Adapter
option in the main menu displays
a list of all available interfaces.
Fig. 4.6 shows a network with one single interface only, where no configuration is necessary. If you press RETURN in order to open the configuration dialog, a corresponding message pops up.
Fig. 4.7 shows a network with two interfaces. As mentioned before, “netconf” automatically checks for all recognized Ethernet interfaces in your host and displays them. If an interface cannot be recognized it will be missing in the list. In that case, you can press “CTRL-V” (on some machines it may be necessary to press “CTRL-V” two times) to open a dialog that lets you specify and configure a new interface. This dialog is shown in Fig. 4.8. For instructions on how to fill in the dialog, please read the paragraph Changing an interface entry.
Remember that for a new entry, you need to know the correct name of the interface and whether it supports AppleTalk. Incompatibilities may cause system crashes.
If you wish to change the configuration of an existing interface, you have to switch off automatic configuration by using the “a” key, and then press RETURN.
Note that you can enter a manual configuration and then toggle between active and non-active. The manual settings will be stored in the “Preferences” file when you switch automatic configuration on, and they will be available when you switch automatic configuration off again.
You may (de)activate entries in the “AppleTalk Network Setup” dialog by means of the space bar (compare bottom line info in Fig. 4.7).
In the dialog shown in Fig. 4.8, you must enter a network number range from Start-End, where Start can be equal to End.
If you have either an external or an internal router, a valid number for Start and End is any number between 0 and 65279. Numbers between 65280 and 65534 are only used if you do not have a router, otherwise they are reserved. Note that EtherShare provides an internal router automatically if you have more than one network connection, as in this example.
Each range, e.g. 10-10, allows approx. 250 entities (nodes).
The correct choice of the network number range is subject to the following restrictions:
If you have no router (i.e. only one internal Ethernet
connection in your host and no other, external routers)
do always use the Automatic configuration
option.
If you want to connect your host to an external router box on the same network segment, you must use the same network number range (Start-End) and the same zone names in the same order as the router. Please refer to the router’s manual to find out how to determine its configuration. This is often done via web-based configuration.
If an external router broadcasts information that differs from the configuration you have entered, you will receive a warning when EtherShare starts. The system will always rely on the router’s information, in that case, and will ignore your entries.
If your host has more than one network connection, as in this example, network numbers and network number ranges must be unique and must not overlap each other or those of other, external routers to which you do not want to establish a connection.
Proceed to the Zones
list in the dialog and press RETURN
to open a second dialog that lets you specify the name of the
default zone for the current interface (Fig. 4.9).
You may use the New Zone
dialog again to define additional
zones for the interface later.
When entering names, please keep the following in mind:
Zone names must not exceed 31 characters.
After entering the default zone name, you may enter additional zone names for the same network number range.
If you wish to connect your host to an external AppleTalk router box, you must use exactly the same zone name(s) in the same order as the router. Please refer to the router’s instruction manual to find out how to determine its configuration.
If an external router provides one or more zone names for the local network segment, you must either specify all of them or none of them. In the latter case, EtherShare “interrogates” the router for the names. This is, however, less safe (see 4.3.3 “Seed routers, non-seed routers” above).
If your network has more than 12 zones, they can be specified manually by editing the “Preferences” file.
If you wish to replace an entry, use the BACKSPACE key first to delete the existing one.
In the New Zone
dialog, you can use the “*” key to open
a pop-up menu that shows all recently used zone names.
Fig. 4.10 shows the completed dialog.
The settings will be saved on selecting the Ok
button.
They appear in the list of interfaces as illustrated
in Fig. 4.11.
Zones are stored as UTF-8 encoded names in the preference file. “netconf” cannot handle non-ASCII names, therefore we recommend to set zone names with special characters, e.g. Umlauts, via “prefvalue” using an UTF-8 terminal, e.g. the Mac OS X Terminal.
Fig. 4.12 shows the dialog for the interface “eth0”. In that dialog, we have entered two zones, and have made the second one the default zone by pressing the space bar.
The final example configuration is shown in
Fig. 4.13. The configuration
includes two interfaces with three zones. One of the
zones is a shared one. You can now press the ESC
key to return to the main menu and then select item
Configure Zones
to register the available
zones (Fig. 4.14).
Fig. 4.15 shows the dialog that lets you register zones, i.e. specify zones where EtherShare services should be listed.
You can move a zone between the left and right column of the dialog by using the “CTRL-L” or the “CTRL-H” key. This is illustrated in Fig. 4.15 above and Fig. 4.16 below.
The Auto Zones
button in the dialog can be
used to make sure that for each active interface at least
one of its zones is registered.
EtherShare services can only be registered in local zones, i.e. in zones that have been set up on a network segment which is directly connected to the server.
The lists in the dialog (Available Zones
and Zones providing ES Services
) are empty
if Automatic configuration
is active.
The default zone can be determined when using the zones -l
command (see 12.4 “zones”) on a UNIX shell. In the list of
zones, the default zone is marked by an “*”.
New zones can be added with “CTRL-V” (see List interfaces/Add interface entries entries above).
If your network changes (on segments where EtherShare is installed), for example if you have added a new router, you can use “netconf” again to reconfigure the network connection at a later date, without re-installing EtherShare. To do this, EtherShare must be stopped using the “stop-helios” command on the host’s console.
The connections will be active as soon as you restart EtherShare with “start-helios”.
If you have chosen the Automatic configuration
option rather than manual configuration with “netconf”, all you
need to do is stop EtherShare with “stop-helios” and restart
it again – EtherShare’s AppleTalk protocol stack will
“interrogate” the network numbers and zone information
again when it reloads.
“atalkd” is the first program started by EtherShare and is responsible for configuring the network interfaces. Thus, most of the error messages are concerned with network errors. All error messages are prefixed with “atalkd:”. This is left out in the following for brevity. “atalkd” can also issue any of the “license” and “generic” error messages (see HELIOS Base manual).
Some error messages depend on the class of operating system (OS). “atalkd” divides the variations in two classes: stream-based OS (e.g. Solaris) and socket-based OS (AIX …).
“atalkd” could not open the DDP streams multiplexor. This will happen if the kernel modules are not installed (stream-based OS only).
An error occurred while opening an AppleTalk socket. The first “%s” is the socket (rtmp, nbp …) and the second “%s” is the error cause. The most likely reason is that an attempt was made to start a second “atalkd” process while one is already running.
“atalkd” could not understand the syntax of the if
entry in “Preferences”. Use “netconf” (in “HELIOSDIR/sbin”) for
network configurations instead.
The interface “%s” could not be opened due to “%m”. You
will get this error, e.g. if you specify a non-existent
interface with the if
flag in “Preferences”
(stream-based OS only).
With a stream-based OS, you will get this error if you specify an interface unit number which is not supported by the underlying network driver (e.g. “le2” if you have only “le0” and “le1”).
With a stream-based OS, this can happen if the specified service access point is already in use. For example, this could happen if you start “atalkd” twice or if you have another product installed that already uses AppleTalk.
The interface “%s” was supposed to be configured automatically, but no external seed router was found to supply network numbers and zone names. For example, more than one interface card is installed on your server and none of the network segments has an active seed router.
The interface “%s” was configured with a network number
range that conflicts with other network interfaces. Use the
Automatic configuration
option in “netconf”
(in “HELIOSDIR/sbin”) to let “atalkd” automatically configure
the interface.
The interface “%s” was configured manually to use a particular network range, but an external seed router did supply a different range for this cable segment. “atalkd” will use the value from the external seed router and ignore the manual configuration.
While the network was already up and running a new router on network interface “%s” was sending conflicting routing table information. The conflicting information will be ignored. This can happen if a router starts up later (e.g. on a dialup line) or two previously independent AppleTalk networks are merged. All routers that seed that cable segment must be checked for proper configuration.
The routing information received on interface “%s” shows that the maximum hop count of AppleTalk packets would be exceeded attempting to reach network “%d”. In parentheses appears the actual number of hops. Check your AppleTalk network topology in order to provide no network is more than 15 hops away from any other part of the network.
With a socket-based OS, “atalkd” could not create an AppleTalk socket. If “%m” = “Protocol not supported”, this means that no AppleTalk kernel modules are found in the currently running UNIX. If “%m” = “Can’t assign requested address”, this means that none of the network interfaces specified in “Preferences” succeeded to configure.
“atalkd” could not get the flags associated with interface
“%s”. This can happen if the interface specified in the if
flag in “Preferences” does not exist (socket-based OS only).
“atalkd” could not set the AppleTalk address for an interface. This happens on all interface cards that do not support AppleTalk.
The named routine (nbp, rtmp, …) could not write a packet to network “%d”. If “%s” = “Network unreachable”, this usually means that network numbers are misconfigured.
A route could not be added by “atalkd” to the kernel-resident routing table. This usually means that network numbers are misconfigured.
“atalkd” could not register its serial number on the network. This can happen if you use the same enduser serial number twice on the network, e.g. you have transferred EtherShare to a new host and not deleted the old copy.
“atalkd” has detected that there is another end user copy of EtherShare on the network which is using the same serial number.
With a socket-based OS, “atalkd” can only configure one network interface automatically. All following interfaces are ignored. See 4.3.2 “Automatic network configuration” for more details. This “atalkd” error message can only occur with EtherShare under Linux.