This document describes the OpenROUTE Networks implementation of the AppleTalk® protocol. It includes the following sections:
AppleTalk Overview
The AppleTalk Protocol Stack
Features Supported
Configuration Procedures
AppleTalk Commands
AppleTalk Overview
At the basic level of the AppleTalk network, connected devices are known as nodes. Nodes can be personal computers, file servers, print servers, and routers. At the next level are networks. A network is a group of nodes connected to a single logical cable. Groups of networks connected by routers or bridges comprise an internet. User-defined groups of nodes from one or more networks within an internet are zones.
The OpenROUTE Networks implementation of AppleTalk supports Ethernet, Token Ring, and FDDI LAN connections and PPP, Frame Relay, and ISDN WAN connections. Figure 1 shows a sample of an AppleTalk internet.
Figure 1 Sample AppleTalk Internet

AppleTalk Addressing
AppleTalk nodes use a 24-bit internet address. A 16-bit network number and an 8-bit node number (node ID). The node ID is an 8-bit number that, when combined with the AppleTalk network number of a node, uniquely identifies each node on a network. Values 0, 254, and 255 are invalid.
Network Range
You can assign more than one network number to an AppleTalk network by assigning a network range. The network range is set of consecutive network numbers. Each network within the AppleTalk internet is assigned a unique, non-overlapping network range. This allows you to have more than 253 devices on one network. Each network can have (253 x network range) nodes.
Dynamic Addressing
AppleTalk uses dynamic addressing. With this process, AppleTalk hosts on the network negotiate a device's node number. A node first tries the node number that was its most recent address. If that value is not available, the node then searches for the next available address. If it reaches 254 without finding an available node number, it tries the next network number in the range.
Seed Routers
With dynamic addressing, you do not need to specify all fields of an AppleTalk address to configure a router. If a preconfigured AppleTalk router, known as seed router, is on the network, it supplies network numbers for new routers. The seed router sends out the address information to all other routers on its connected network. The seed router must come up first and verify the configuration of the other routers. If the configuration is valid, the other routers start functioning. Routers that are not seed routers must first communicate with a seed router before they can function.
As long as one seed router exists on each the network, you do not need to configure the other interfaces and routers connected to that cable because they obtain their routing information from the seed. There are usually several seed routers on a network in case one of them fails. Also, a router can be a seed router for some or all of its network interfaces.
Nonseed Routers
A nonseed router cannot begin routing until the router determines its network number. If you set the network number to zero, the interface does not forward any packets until it receives a valid network number. Upon receiving a Routing Table Maintenance Protocol (RTMP) update, the router is informed of the network number for the interface receiving the packet with the update. Every table update contains the network number of the network on which the packet was sent. Through this exchange, the router determines the network number of the receiving interface.
The AppleTalk Protocol Stack
Figure 2 shows the AppleTalk protocols that this implementation supports along with the corresponding Open Systems Interconnection (OSI) protocol layers.
Figure 2 AppleTalk Protocol Stack and
Corresponding OSI Protocol Layer
TLAP and ELAP
This implementation supports TLAP and ELAP at the data link layer to transmit AppleTalk packets on Token Ring and Ethernet networks. LocalTalk Link Access Protocol (LLAP) is not supported.
AARP
Each node on the network must have a unique hardware address, for example, a 48-bit Ethernet node address.
Ethernet node addresses are derived from the hardware address or from a user-defined initial address. When an Ethernet AppleTalk node dynamically assigns a node address, the AARP probe confirms that the address is unique. If the address is not unique, it selects a new address. AARP maintains a set of AppleTalk protocol-to-hardware address mappings for the AppleTalk protocol. AARP stores and updates these address mappings in an address mapping table.
DDP
This network layer protocol is responsible for forwarding AppleTalk packets from a source node to a destination node.
RTMP
RTMP specifies how AppleTalk maintains the routing table for the entire internet.
Every 10 seconds RTMP transmits packets with good and suspect entries to routing tables in connected routers. The routers receive these packets and update the corresponding entries to good or suspect. Every 20 seconds RTMP also updates the age of each entry in the routing table. Entries with a state of good become suspect and entries with a state of suspect become bad. After an entry has been bad for 20 seconds, RTMP deletes the entry.
RTMP updates and maintains routing table hop counts, and it deletes all entries with a hop count of 16 or greater.
Hosts can send RTMP request packets to a router on an internet to learn the local network number. The router responds with an RTMP response packet.
NBP
AppleTalk uses entity names to specify the function, attributes, and location of an entity in a network. The Name Binding Protocol maps these human- readable names to machine-readable addresses.
An entity name is an 8-bit ASCII character string that has three fields: object, type, and zone. Each of these fields is a string of not more than 32 characters.
Object is the type of service offered by the entity, such as printing, file sharing, or mail service.
Type specifies the attributes of the entity, such as a laser printer.
Zone identifies the location of the entity.
Filtering zone names and network numbers
Split-horizon routing
Half routers
Split-horizon Routing
The RTMP broadcasts routing information every 10 seconds. In large internetworks where many routers are connected to a backbone, RTMP packets can take up a significant portion of available bandwidth. Split-horizon routing, which is enabled as a default on the router, reduces the size of RTMP packets. To do so, it does not send routing information out of the same port in which it was received. It removes these entries from the RTMP packet.
However, in a partially-meshed Frame Relay network, as shown in Figure 3, the routers at the branches cannot communicate with each other unless the router at headquarters broadcasts all routing information to all other routers. In this case, you need to disable split-horizon on the Frame Relay interface at headquarters. You should leave split-horizon enabled at each of the branches to keep them from generating unnecessary traffic.
Figure 3 Partially-Meshed Frame Relay Network

Half Routers
When you connect an interface to a serial line, you can set up the interface as a half router. In half-router mode, the serial line connection is invisible to other routers, but it still transmits AppleTalk routing information and data packets. If you have a half router at one end of a serial line, you must configure the router interface at the other end of the serial line as a half router. This feature makes the router interoperable with other vendor's half routers.
Figure 4 Sample Half Router Configuration

Configuration Procedures
This section describes how to configure AP2. The tasks you need to perform are
Enabling AP2
Setting network parameters
Setting up zone filters
Setting up network filters
Disabling checksumming
Config>protocol ap2
AP2 protocol user configuration
AP2 config>
AP2 config>enable ap2
AP2 config>enable interface 1
AP2 config>set net-range
Interface # [0]? 1
First Network range number (1-65279, or 0 to delete) []? 1
Last Network range number (1-165279) []? 5
Enter the same first and last values for a single numbered network.
AP2 config>set node-number
Interface # [0]? 1
Node number (decimal) []? 23
AP2 config>add zone
Interface # [0]? 1
Zone name []? Finance
To add an input zone filter, use the add zfilter in command. To add an output zone filter, use the add zfilter out command. The software prompts you for the interface number and the name of the zone that you want to filter.
AP2 config>add zfilter in
Interface # [0]? 1
Zone name []? Admin
To enable an input zone filter, enter enable zfilter in. To enable an output zone filter, enter enable zfilter out. The software prompts you for the interface number and for whether or not the filter is inclusive or exclusive. Inclusive filters forward only the zone information in a filter. Exclusive filters block only the zone information in a filter.
AP2 config>enable zfilter in
Interface # [0]? 1
INCLUSIVE/EXCLUSIVE [INCLUSIVE]? exc
Figure 5 Sample AppleTalk Internet

Example 1
This example explains how to filter the Manufacturing zone from all other networks. To do so, you would set up an input filter on Interface 1 of Router A to exclude the Manufacturing zone.
AP2 config>add zfilter in
Interface # [0]? 1
Zone name []? Manufacturing
AP2 config>enable zfilter in
Interface # [0]? 1
INCLUSIVE/EXCLUSIVE [INCLUSIVE]? exc
AP2 config>add zfilter out
Interface # [0]? 3
Zone name []? Manufacturing
AP2 config>enable zfilter out
Interface # [0]? 3
INCLUSIVE/EXCLUSIVE [INCLUSIVE]? exc
AP2 config>add zfilter in
Interface # [0]? 0
Zone name []? Admin
AP2 config>enable zfilter in
Interface # [0]? 0
INCLUSIVE/EXCLUSIVE [INCLUSIVE]? inc
AP2 config>add nfilter out
Interface # [0]? 0
First Network range number (decimal)[0]? 11
Last Network range number (decimal) [0]? 15
The network range you enter here must match the range that you assigned to that network.
AP2 config>enable nfilter in
Interface # [0]? 0
INCLUSIVE/EXCLUSIVE [INCLUSIVE]? exc
Figure 6 Sample AppleTalk Internet

AP2 config>add nfilter out
Interface # [0]? 2
First Network range number (decimal) [0]? 6
Last Network range number (decimal) [0]? 10
AP2 config>enable nfilter out
Interface # [0]? 0
INCLUSIVE/EXCLUSIVE [INCLUSIVE]? exc
Press Space twice after you type a command to display the available options for each command. [C] means the command is available at the AP2 config> prompt. [M] means the command is available at the AP2> prompt. To display the AP2> prompt, enter protocol ap2 at the + prompt.
Add [C]
Adds a zone name to an interface, adds a zone name as the default for the interface, or adds network and zone filters.
Syntax: add
add zone
Interface # [0]? 0
Zone name []? Finance
add defaultzone
Interface # [0]? 0
Zone name []? Headquarters
add nfilter in
Interface # [0]? 0
First Network range number (decimal) [0]? 1
Last Network range number (decimal) [0]? 10
add nfilter out
Interface # [0]? 0
First Network range number (decimal) [0]? 11
Last Network range number (decimal) [0]? 20
add zfilter in
Interface # [0]? 1
Zone name []? Marketing
add zfilter out
Interface # [0]? 0
Zone name []? Corporate
cache
Destination Net Number Usage Next Hop
122/2 2 1 127/5
138/5 1 0 127/5
23/7 1 1 Direct
Clear-Counters [M]
Clears all cache usage counters and packet overflow counters that you display using the cache command and counters command.
Syntax: clear-counters
clear-counters
counters
APL2 Input Packet Overflows
Net Count
FR/0 0
Eth/1 4
PPP/2 22
TKR/3 0
delete zone
Interface # [0]? 2
Zone name []? corporate
delete nfilter in
Interface # [0]? 0
First Network range number (decimal) [0]? 1
Last Network range number (decimal) [0]? 12
delete nfilter out
Interface # [0]? 0
First Network range number (decimal) [0]? 11
Last Network range number (decimal) [0]? 20
delete zfilter in
Interface # [0]? 1
Zone name []? Marketing
delete zfilter out
Interface # [0]? 1
Zone name []? Marketing
disable ap2
disable checksum
disable interface
Interface # [0]? 2
disable nfilter in
Interface # [0]? 2
disable nfilter out
Interface # [0]? 2
disable zfilter in
Interface # [0]? 1
disable zfilter out
Interface # [0]? 1
Example:
disable split-horizon-routing
Interface # [0]? 1
dump
You can also use the dump command with a specific interface to display the routes that are visible on that interface. You can use this feature to make sure filters are configured correctly because it shows whether or not filtered zones or networks are visible to an interface. Example:Dest Net Cost Stat Next hop Source Zone
10-19 0 Dir 0/0 "Ethertalk", "Sales"
40-49 1 Good 10/13 "Marketing",
"CustomrSer","TokenTalk"
20-29 2 Sspct 10/13 "Fuchsia", "Backbone",
"Engineering","MKTING"
dump 0
View for interface 0
Dest net Cost State Next hop Zone
214-214 1 Good 152/152 "fddi-214"
153-153 0 Dir "eth153"
152-152 0 Dir "ser152"
3 entries
Enable [C]
Globally enables AP2 on the router or on a specified interface, enables checksumming, network or zone filters, and split-horizon routing.
Syntax: enable
enable ap2
enable checksum
enable interface
Interface # [0]? 1
enable nfilter in
Interface # [0]? 1
INCLUSIVE/EXCLUSIVE [INCLUSIVE]? inc
enable nfilter in
Interface # [0]? 1
INCLUSIVE/EXCLUSIVE [INCLUSIVE]? exc
enable zfilter in
Interface # [0]? 0
INCLUSIVE/EXCLUSIVE [INCLUSIVE]? inc
enable zfilter out
Interface # [0]? 0
INCLUSIVE/EXCLUSIVE [INCLUSIVE]? inc
enable split-horizon-routing
Interface # [0]? 1
exit
interface
You can also enter interface followed by a specific interface number to view the AP2 configuration of that interface. Example:Interface Addresses
PPP/0 0/1 on net 1000-1000 default zone "SerialLine"
Eth/0 10/52 on net 10-19 default zone "Sales"
SL/1 0/0 in startup range
TKR/0 0/0 on net 20-29 default zone "Backbone"
interface 1
Eth/0 1/30 on net 1-5 default zone "marketing"
Input Net filters inclusive 1-5
Output Zone filters inclusive "finance"
Output Net filters exclusive 1-5
list
APL2 globally enabled
Checksumming disabled
Cache size 500
List of configured interfaces:
Interface netrange/ node Zone
0 1000-1000/ 1 "SerialLine" (Def)
Input ZFilters disabled
Input NFilters (inclusive)
Output ZFilters disabled
Output NFilters disabled
Split-horizon-routing enabled
1 10-19/ 52 "EtherTalk","Sales"(Def)
Input ZFilters disabled
Input NFilters (inclusive)
Output ZFilters disabled
Output NFilters disabled
Split-horizon-routing enabled
2 unseeded net/ 0
Input ZFilters disabled
Input NFilters (inclusive)
Output ZFilters disabled
Output NFilters disabled
Split-horizon-routing disabled
Set [C]
Defines the cache-size of fastpath, the network range of seed routers, and the node number.
Syntax: set
set cache-size
number of cache entries (100-10000), or 0 to disable [500]? 700
set net-range
Note: If you define a network number for an interface, use the add zone command to define the zone names for the interface.Interface # [0]? 1
First Network range number(1-65279, or 0 to delete)[0]? 1
Last Network range number (1-65279) [0]? 15
set node-number
Interface # [0]? 2
Node number (1-253, or 0 to delete) []? 45