I had dealt with AppleTalk a little in my career, but never enough to have to know much about it. After converting my college over to a new Cisco Catalyst switch, I discovered that I also had to enable AppleTalk in order for the Macs to be able to communicate on the network. Doing so was difficult, but it wasn't as hard as I thought it would be.
Different ways to route AppleTalk
There are two ways you can enable AppleTalk: Bridged or Routed. In this article, we'll work with the Routed implementation of AppleTalk and assume that your Catalyst is running in Native (i.e., IOS mode) instead of hybrid (CatOS mode). We'll use the term interface to refer to either a particular port or a VLAN on the switch.
Getting AppleTalk running on the Catalyst starts by logging in to the router, going into configuration mode, and typing AppleTalk Routing. You'll do this at the global level of IOS so that all interfaces on the switch will speak to AppleTalk when they have been configured to do so. This command enables AppleTalk on the router and lets you proceed to configuring AppleTalk on the switch.
The next step is done at the interface level, whether that's at the port or VLAN level. The level will depend on how your switch is configured. If you're using VLANs that allow several ports to be connected as if they were on one network, enable AppleTalk at the VLAN level instead of at the port level. If a particular port isn't in a VLAN, configure it at the port level. Either way, the configuration steps are the same. Remember to save the configuration as you make changes to the router so that you won't lose your work if the power to the router is disrupted.
Letting the router do the configuration for you
If you already have servers/routers present on a particular subnet with AppleTalk configured, you have a good chance of letting IOS do the configuration work for you. Go into configuration mode (i.e., conf t) and select the port or VLAN you want to enable AppleTalk on. Type appletalk cable-range 0-0 and press [Enter]. Follow this up by typing appletalk discovery. You have now enabled AppleTalk on this interface, and IOS actively listens for AppleTalk traffic to decide what the cable range for this subnet is and what the zone name(s) will be.
Press [Ctrl]Z until you're out of configuration mode. Immediately type term mon and press [Enter]. This will redirect any console messages to your telnet session (assuming that you are telneted in instead of directly attached to the console port via a PC with HyperTerminal).
Depending on what IOS does or doesn't find on the interface you're configuring, you'll see a series of messages that indicate what the "discovered" zone name(s) and the cable ranges are. This process can take five to 10 minutes or longer depending on what IOS sees on the subnet you're working with.
Once the messages have stopped coming up on the screen, go back into configuration mode for the port/VLAN you're working with and type no appletalk discovery. This will turn off the auto discovery process.
If you type show run int followed by the interface name (i.e., fa3/3 or VLAN1), you should see the "discovered" AppleTalk cable range, the assigned AppleTalk device number assigned to this port, and the zone names that were shown during the discovery process.
If IOS doesn't see any servers/routers on the subnet, you'll see an error that indicates there are no routers on the subnet. The exact text of the error message from the switch should look something like this:
date Aug 511:00:15:%AT-6-ONLYROUTER: FastEthernet4/2: AppleTalk
interface enabled; noneighbors found
In this case, you'll need to manually set up AppleTalk. That isn't as bad as it sounds. First, demystify the numbers after the AppleTalk cable-range command. This refers to the number of AppleTalk networks that are on a particular subnet.
Each AppleTalk network can contain up to 255 Macs. If you enter the command as AppleTalk cable-range 1-1, you're enabling an AppleTalk network with a network number of 1. Since you used 1-1, this means that only 255 Macs can be supported on this particular subnet.
For the average network, this may be more than sufficient. If you used 1-2 instead, you would be able to support up to 510 Macs on that subnet. As with IPX and IP, if you're using these network numbers on one port/VLAN, you shouldn't use those same network numbers on another port/VLAN. That could lead to potential routing problems.
When you go the manual route in setting up AppleTalk, you'll need to give the Mac network a minimum of one zone name. Type appletalk zonename maczone (replacing maczone with the actual zone name you want to use) and press [Enter].
Even after you manually enter the zone name for this interface, IOS will still "listen" for a while before making that zone name active. If you've entered the term mon command that was mentioned earlier, you should see a message on the screen that indicates that no router was found.
Using the show appletalk route command will show you that your desired zone name has been made active as well as the zone names and cable range numbers for the other AppleTalk segments on the catalyst switch you're on. This is a good command to use when you're adding another AppleTalk zone to make sure that you use the right zone name and don't use a cable range number that is already in use on another segment.
What about the workstations?
As a general rule, the Macs should immediately realize any change in cable range numbers and/or zone name if they're running Mac OS version 9 or later. An indication that the Macs are seeing the change will be a message on the switch console that looks something like this:
Aug 513:05:02:%AT-6-NODEWRONG:FastEthernet 4/2:AppleTalk node 3.26
misconfigured;reply has been broadcast.
This means that the Mac or device supporting AppleTalk has been sent corrected configuration information for the AppleTalk cable range number and/or zone names. If you have any AppleTalk-enabled devices such as print servers on the network, a simple reboot of those devices may be all that is needed to get them to see the new configuration. Some devices may have to be powered off and back on for them to realize the change.