Classical IP Over ATM
Problem
You want to configure your router to support ATM SVCs and Classical IP over ATM.
Solution
For Classical IP over ATM, you must define at least one ATMARP server:
Router1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router1(config)#interface ATM1/0 Router1(config-if)#no ip address Router1(config-if)#atm ilmi-keepalive Router1(config-if)#pvc 0/5 qsaal Router1(config-if-atm-vc)#exit Router1(config-if)#pvc 0/16 ilmi Router1(config-if-atm-vc)#exit Router1(config-if)#exit Router1(config)#interface ATM1/0.1 multipoint Router1(config-subif)#ip address 192.168.123.1 255.255.255.0 Router1(config-subif)#atm esi-address A000C0A87B01.01 Router1(config-subif)#atm arp-server self Router1(config-subif)#exit Router1(config)#end Router1#
The remaining ATM devices in the network can be clients of this server:
Router2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router2(config)#interface ATM1/0 Router2(config-if)#no ip address Router2(config-if)#atm ilmi-keepalive Router2(config-if)#pvc 0/5 qsaal Router2(config-if-atm-vc)#exit Router2(config-if)#pvc 0/16 ilmi Router2(config-if-atm-vc)#exit Router2(config-if)#exit Router2(config)#interface ATM1/0.1 multipoint Router2(config-subif)#ip address 192.168.123.2 255.255.255.0 Router2(config-subif)#atm esi-address A000C0A87B02.01 Router2(config-subif)#atm arp-server nsap 47.00918100000000e014cd0001.A000C0A87B01.01 Router2(config-subif)#exit Router2(config)#end Router2#
Discussion
The previous ATM recipes in this chapter all used ATM PVCs. Because ATM has become primarily a WAN protocol, as opposed to a LAN protocol, and because WANs tend to have relatively fewer nodes and more static configurations, Permanent Virtual Circuit (PVC) configurations are much more common than Switched Virtual Circuit (SVC) configurations. However, there are several different ways to work with SVCs in an ATM network.
This recipe uses the Classical IP over ATM model for ATM SVCs, which is discussed in RFCs 1577 and updated in 2225. It's important to note that there are other models for using ATM SVCs, most notably Local Area Network Emulation (LANE) and Multiple Protocols over ATM (MPOA), but they all have a few things in common.
First, there must be some mechanism to allow end nodes to request an ATM connection to a particular ATM destination. This is handled using the Quasi Signaling Application Adaptation Layer (QSAAL) protocol. And they need a way to map an ATM Layer 2 address to Layer 3 protocol address. In LANE and MPOA, a specialized server, called the LAN Emulation Server (LES), manages a list of every device connected to a particular Emulated LAN (ELAN), and can map the Layer 2 to Layer 3 addresses. These protocols also have a server called the Broadcast and Unknown Server (BUS), which can handle broadcasts, multicasts, and other packet flooding operations.
In Classical IP over ATM, there is no BUS. The mapping of Layer 2 to Layer 3 addresses is handled by the ATMARP server, and this server must also handle whatever broadcasts and multicasts are to be supported. We note in passing that the key difference between the Classical IP protocol discussed in RFC 1577 and the updated version in RFC 2225 is the ability to define multiple redundant ATMARP servers. Cisco does provide support for multiple ATMARP servers, as we discuss in a moment.
Another important element that is common to all of these methods for handling ATM SVCs is the use of Interim Local Management Interface (ILMI) to dynamically communicate addressing information between the ATM end devices and the switch. Technically, this step is optional, however, as the information can be configured statically.
Each device must have a configured VC for QSAAL and, optionally, for ILMI. There are well-known VC numbers for these services. QSAAL service is generally provided on VPI/VCI 0/5, while ILMI is usually on 0/16. You can change these values, although we have never seen a compelling reason to do so in practice, and it is far easier to troubleshoot problems later when you adhere to standard practices:
Router1(config)#interface ATM1/0 Router1(config-if)#pvc 0/5 qsaal Router1(config-if-atm-vc)#exit Router1(config-if)#pvc 0/16 ilmi Router1(config-if-atm-vc)#exit
In Classical IP over ATM, each end device must have a static ATM address configured for the ATMARP server. Each time it wants to connect to an ATM device on the network, it will connect first to the ATMARP server and query for the ATM address of the destination device. Then it will set up a call to the end device using the information provided.
There are two example configurations in the Solution section of this recipe. The first shows the ATMARP server, and the second shows a client device. In general, you could have an arbitrary number of clients, but we show only one here.
We have put the IP address and ATM mapping information on a multipoint subinterface:
Router1(config)#interface ATM1/0.1 multipoint Router1(config-subif)#ip address 192.168.123.1 255.255.255.0 Router1(config-subif)#atm esi-address A000C0A87B01.01 Router1(config-subif)#atm arp-server self
The ESI address noted here is an arbitrary 12-digit hex value, followed by a two-digit interface selector code. In this example, we have decided to encode the IP address in the ESI address. If you convert C0A87B01 to decimal, you will get 192.168.123.1. Then we have padded the ESI address with the hex number A000, just to get the right length. We recommend using logical and locally meaningful mnemonics like this.
As this is the ATMARP server, the interface must know that it should answer ARP queries and keep a local ARP cache for the ATM network. This is done by using the atm arp-server self command:
The configuration of the client device is similar, except that it must include the full ATM address of the ATMARP server:
Router2(config)#interface ATM1/0.1 multipoint Router2(config-subif)#ip address 192.168.123.2 255.255.255.0 Router2(config-subif)#atm esi-address A000C0A87B02.01 Router2(config-subif)#atm arp-server nsap 47.00918100000000e014cd0001.A000C0A87B01.01
You should immediately notice that the ATM NSAP address for the ATMARP server in the atm arp-server command is much longer than the ESI address that we actually configured on our ATMARP server router. This is because the ATM NSAP address includes a long prefix that denotes the ATM switch to which this device is connected. In our case, this is a Cisco Lightstream 1010 switch. On this device, you can determine the prefix address by using the command show atm address, as follows:
ATM_switch#show atm address Switch Address(es): 47.0091.8100.0000.00e0.14cd.0001.00e0.14cd.0001.00 active NOTE: Switch addresses with selector bytes 01 through 7F are reserved for use by PNNI routing PNNI Local Node Address(es): 47.0091.8100.0000.00e0.14cd.0001.00e0.14cd.0001.01 Node 1 Soft VC Address(es): 47.0091.8100.0000.00e0.14cd.0001.4000.0c80.1000.00 ATM0/1/0 47.0091.8100.0000.00e0.14cd.0001.4000.0c80.1010.00 ATM0/1/1 47.0091.8100.0000.00e0.14cd.0001.4000.0c80.1020.00 ATM0/1/2 47.0091.8100.0000.00e0.14cd.0001.4000.0c80.1030.00 ATM0/1/3 Soft VC Address(es) for Frame Relay Interfaces : ILMI Switch Prefix(es): 47.0091.8100.0000.00e0.14cd.0001 ILMI Configured Interface Prefix(es): LECS Address(es): ATM_switch#
Here we have highlighted prefix portion of the switch's NSAP address. The ATMARP server's full NSAP address is this prefix concatenated to the ATMARP server's ESI address: 47.00918100000000e014cd0001.A000C0A87B01.01.
The ATM network is now ready to handle IP traffic:
Router2#ping 192.168.123.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.123.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/8 ms Router2#
If we look at the client router's ARP cache, we can see that it has added an entry for 192.168.123.1, associating it with the new SVC on VPI/VCI 0/35:
Router2#show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.1.104 - 00e0.1e7f.9e41 ARPA Ethernet0/0 Internet 192.168.123.1 4 0 / 35 ATM ATM1/0.1 Internet 192.168.132.3 - 00e0.1e7f.9e42 ARPA Ethernet0/1 Router2#
You can see further information about this ATM SVC, including NSAP addresses and status by using the show atm map command:
Router2#show atm map Map list ATM1/0.1_ATM_ARP : DYNAMIC arp maps to NSAP 47.00918100000000E014CD0001.A000C0A87B01.01 , connection up, VC 3, VPI 0, VCI 35, ATM1/0.1 ip 192.168.123.1 maps to NSAP 47.00918100000000E014CD0001.A000C0A87B01.01 , broadcast, connection up, VC 3, VPI 0, VCI 35, ATM1/0.1 Router2#
You can configure additional ATMARP servers on a Cisco router. However, as this is not supported by the original RFC, you have to first enable protocol extensions with the command atm classic-ip-extensions BFI. We note in passing that there is no consensus on what the acronym BFI actually stands for. Cisco says that the acronym is "undefined." Other sources suggest "Bad Frame Indicator," despite the absence of anything resembling a bad frame indicator, while others more plausibly claim it stands for "Brute Force and Ignorance." In any case, once you have enabled this command, you can freely implement additional ATMARP servers:
Router2(config)#interface ATM1/0.1 multipoint Router2(config-subif)#atm classic-ip-extensions BFI Router2(config-subif)#atm arp-server nsap 47.00918100000000e14cd0001.A000C0A87B01.01 Router2(config-subif)#atm arp-server nsap 47.00918100000000e14cd0001.A00C0A140A0.01 Router2(config-subif)#exit
See Also
RFCs 1577 and 2225