EtherShare UB2 User manual (Version 5.0.0)  
 

4 The “atalkd” server

4.1 AppleTalk is optional in HELIOS UB2

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.

New HELIOS UB2 installations

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).

Upgrade existing installations

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.

hsymInstruction

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”.

hsymInstruction

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”.

hsymInstruction

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”.

AppleTalk on Mac OS X

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.

4.2 The “atalkd” service

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.

Note:

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.

Network administration

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.

4.3 Configure EtherShare as AppleTalk network router

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.

4.3.1 Example network setups

The following figures show example network setups, from one up to four NICs (Network Interface Card):

Single network

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.

Network with one NIC

Fig. 4.1: Network with one NIC

Internet with router and two NICs

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.

An internet with two NICs and one router

Fig. 4.2: An internet with two NICs and one router

Internet with two routers and 2+2 NICs

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.

An internet with 2+2 NICs and two routers

Fig. 4.3: An internet with 2+2 NICs and two routers

4.3.2 Automatic network configuration

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”.

Note:

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:

Single Ethernet interface
[][Programs][atalkd][if]
flags=0
type=Stringlist
value=[1]
[4]eth0
Two Ethernet interfaces
[][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”.

4.3.3 Seed routers, non-seed routers

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.

4.3.4 Manual network configuration

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.

Note:

If required, you may read 4.3 “Configure EtherShare as AppleTalk network router” above for technical details of network configuration parameters.

hsymInstruction

Start “netconf” with the following UNIX command:

# cd /usr/local/helios/ 
# sbin/netconf
Important:

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).

Main menu of the “netconf” program

Fig. 4.4: Main menu of the “netconf” program

Using “netconf”

The following keys are available to handle the “netconf” program:

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.

Online help system

“netconf” includes a convenient online help system which can be activated by pressing “?”. An example is shown in Fig. 4.5.

The “netconf” online help system

Fig. 4.5: The “netconf” online help system

General remarks

Please note that:

Configure Adapter

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.

“No need to configure” information

Fig. 4.6: “No need to configure” information

List interfaces/Add interface entries

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.

Network with two interfaces

Fig. 4.7: Network with two interfaces

Creating a new interface entry

Fig. 4.8: Creating a new interface entry

Changing an interface entry

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:

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.

Entering an individual zone name

Fig. 4.9: Entering an individual zone name

When entering names, please keep the following in mind:

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.

Saving the settings in the interface dialog

Fig. 4.10: Saving the settings in the interface dialog

Note:

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.

List of interfaces showing the new settings for “eth0”

Fig. 4.11: List of interfaces showing the new settings for “eth0”

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.

Adding zones to an interface and changing the default zone setting

Fig. 4.12: Adding zones to an interface and changing the default zone setting

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).

Example of a final adapter configuration

Fig. 4.13: Example of a final adapter configuration

Opening the “Configure Zones” dialog

Fig. 4.14: Opening the “Configure Zones” dialog

Fig. 4.15 shows the dialog that lets you register zones, i.e. specify zones where EtherShare services should be listed.

Moving entries between two lists of zones

Fig. 4.15: Moving entries between two lists of zones

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.

Removing items from “Zones providing ES Services”

Fig. 4.16: Removing items from “Zones providing ES Services”

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.

Note:

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).

Reconfiguring network connections

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.

4.4 “atalkd” error messages

“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 …).

/dev/ddp: %m

“atalkd” could not open the DDP streams multiplexor. This will happen if the kernel modules are not installed (stream-based OS only).

PopenSkt %s: %s

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.

addif: garbled interface “%s”

“atalkd” could not understand the syntax of the if entry in “Preferences”. Use “netconf” (in “HELIOSDIR/sbin”) for network configurations instead.

addif %s: %m

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).

addif DL_ATTACH_REQ %s to %d: cannot attach

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”).

addif DL_BIND_REQ %s: cannot bind to sap 0x%x

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.

ignoring interface %s, no seed router found

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.

network range conflict on %s:%d-%d, ignoring interface

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.

conflicting seed info on %s, using %d-%d instead of %d-%d

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.

routing conflict on %s from net %d, node %d

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.

too many hops via %s to %d (%d)

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.

autoconf: socket %m

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.

autoconf %s: SIOCGIFFLAGS %m

“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).

autoconf: SIOCSIFADDR %m

“atalkd” could not set the AppleTalk address for an interface. This happens on all interface cards that do not support AppleTalk.

routine: DDPWrite to %d: %s

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.

rtmp_kupdate: %m

A route could not be added by “atalkd” to the kernel-resident routing table. This usually means that network numbers are misconfigured.

register_me: cannot register %s

“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.

nbp_listener: duplicate EtherShare serial

“atalkd” has detected that there is another end user copy of EtherShare on the network which is using the same serial number.

addif: cannot autoconf more than one interface, entry “%s” ignored

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.


HELIOS Website © 2011 HELIOS Software GmbH  
HELIOS Manuals August 17, 2012