PPPPaaaacccckkkkeeeetttt RRRRaaaaddddiiiioooo aaaannnndddd IIIIPPPP ffffoooorrrr tttthhhheeee UUUUnnnniiiixxxx[1] OOOOppppeeeerrrraaaattttiiiinnnngggg SSSSyyyysssstttteeeemmmm Clifford Neuman, N1DMM Wayne Yamamoto Department of Computer Science University of Washington Seattle, WA 98195 _A_B_S_T_R_A_C_T Many services are currently available on the ARPA Internet that would be of interest to amateur packet radio users. The ARPA Internet connects universities and other organizations around the world that speak TCP/IP. One advantage of running TCP/IP on packet radio is the ability to access these services, and to interconnect with other systems that are part of the internet. This paper describes the implementation of AX.25 as a link layer protocol for the Unix operating system and the use of this system as an IP gateway between our local amateur packet radio network and our department's ethernet at the University of Washington, which in turn provides access to the entire Internet. The potential role of such a system for amateur packet radio is discussed, and a mechanism to allow users that don't have the resources to run TCP/IP themselves to access such services is described. _1. _I_n_t_r_o_d_u_c_t_i_o_n In the past year, we have started to see wider accep- tance and use of layer three protocols in amateur packet radio. So far, most of this activity has been by people who are interested in advanc- ing the state of amateur _________________________ 9 [1] UNIX is a trademark of AT&T 77777777777778 packet radio. Many are people who deal with computer net- works outside of amateur radio, and would like to see similar facilities available within packet radio. Others have worked on mechanisms to solve some of the problems that amateur packet radio pro- duced, and their solutions have made a significant difference in the way people use packet radio in the parts of the country where their September 8, 1988 solutions are being tested. In order to get more use of layer three protocols by the users instead of the developers, there are two requirements that should be met. First, they need incen- tive. There should be some- thing that they can do using layer three protocols that they can't do using connection [2] mode. One incentive is the ability to access some of the services available on more established networks such as the ARPA Internet. Among these services are nameser- vice, file transfer, access to various databases, a more flexible system for electronic mail, and the ability to log into hosts on connected net- works. These services can be made available in two ways. Servers can exist directly on amateur packet radio hosts, or they can exist on other net- works with a gateway set up between the two networks. By connecting our local packet radio subnet to the internet, it is possible to access files on, and log into, computers at other internet sites (or at least, those where we have accounts). Secondly, we have to lower the cost of entry. Most packet users do not have IBM PCs, or computers of equivalent or greater power. Many are simply using termi- nals connected to their TNC. This is probably one of the _________________________ 9 [2] By ``connection'' mode we mean the existing connection mechanism provided with TNCs when higher level protocols are not being used. 777777777777777777777777777777777777777777777777777778 reasons that NET/ROM is so popular. With a packet sta- tion and no special hardware, one is able to connect to a NET/ROM node, connect to another node through the net- work, and come out the other end. If we are to generate as much interest in layer three protocols such as TCP/IP, then we must make it easy for con- nection mode users to connect to, and use, a system that speaks IP. We can then point out the advantages they would have if their own system spoke IP directly. Among these advantages are the abilities to exchange mail and transfer files while simultaneously connected to one or more other systems. _2. _S_y_s_t_e_m _O_v_e_r_v_i_e_w We decided one way to approach the above problems would be to get a machine that is on our department's ether- net onto packet radio. We had a MicroVax-I[3] available for our use. The advantage of using such a machine is that it already supports many of the network services that are desirable in the packet radio community. Among these are electronic mail, remote login, file transfer, and name ser- vice. Although not presently running on the machine, there are other applications avail- able too, such as NNTP[4] which could be used as a bul- letin distribution mechanism. _________________________ 9 [3] MicroVax is a trademark of Digital Equipment Corporation 9 [4] Netnews Transfer Protocol September 8, 1988 The existence of such a system gives users who have brought up TCP/IP something to connect to. The next step is to give people who aren't yet running TCP/IP something with which they can connect. To do this, we want to allow users to connect to our system in connection mode, and for them to be able to login to our system by this mechanism. The only other service we want to support in connection mode is mail. We would like to be able to exchange mail with PBBSs, which don't speak TCP/IP. _3. _R_o_l_e _i_n _a _p_a_c_k_e_t _n_e_t_w_o_r_k A machine such as the one I described above serves several functions in a packet radio network. It functions as a server for various net- work services. It is useful as a ``home'' machine for those users who do not have computers of their own. It also can serve as a gateway between multiple packet sub- nets, and perhaps even non- amateur networks. I have already described its use as a server. In this section I describe its use in some of these other functions. _3._1. _H_o_m_e _m_a_c_h_i_n_e_s For those users who don't have IP running, our machine can serve as a home machine. Users can connect to it by using connection mode. The system can support multiple connections of this type simultaneously. When a user is connected to our system, he can use the various services available to IP hosts. He also will be allocated a lim- ited amount of disk space, and 777777777777777777777777777777777777777777777777777777 will be able to retrieve files in which he is interested. The mail interface the user will be able to use presents a better interface than the cen- tral BBOARD mechanism which is currently in use. The user will be able to store messages indefinitely as long as he doesn't exceed his quota. _3._2. _L_e_v_e_l _2 _t_o _L_e_v_e_l _3 _G_a_t_e_- _w_a_y Since the user can con- nect to the system using con- nection mode, and since the system also speaks TCP, the system serves as a Level 2 to Level 3 gateway. Users will not have to give up connec- tivity with the old in order to begin using the new. _3._3. _I_P _G_a_t_e_w_a_y A machine such as the one described above is also a log- ical machine to use as an IP gateway, at least until such time as we have dedicated machines for such purposes. Gatewaying could be between multiple packet radio net- works, and even between non- radio networks such as the ARPA Internet. There are services avail- able on the ARPA Internet that are of interest to packet radio users. If there is a university in the area, it is likely that there may be an online database of upcoming events. There are also many mailing lists on the Internet that might be of interest to Amateurs. Connecting to non-amateur networks does bring up a number of issues, such as screening of messages in both September 8, 1988 directions. I discuss solu- tions to this problem later in this paper. _3._4. _N_E_T/_R_O_M NET/ROM fits in nicely with TCP/IP. IP can be run on top of NET/ROM. In such an arrangement, users on a LAN would speak IP on top of AX.25. Multiple LANs could then be linked together using NET/ROM. An IP gateway would exist on each local area net- work and would appear as a NET/ROM node to other NET/ROM stations. This arrangement is similar to the way that local area networks are linked by the ARPAnet. NET/ROM nodes correspond to the IMPs on net 10. _4. _R_e_l_a_t_e_d _W_o_r_k There has been a lot of work recently in the TCP/IP arena. Work has been done on Phil Karn's IBM-PC code, and it has been ported to other machines such as the Amiga, the Mac, and others. Steve Ward and Mike Chepponis have been working on additional features in order to give users greater incentive to upgrade to TCP/IP. Implementations of the TCP/IP code are needed for many more machines. Services such as the ones I have described also are needed for these machines. Not many peo- ple have access to a MicroVax as I did. It is a good machine to use in order to determine how network users react to such services. The more machines such services are available on, the more people will be able to set them up. 777777777777777777777777777777777777777777777777777777 _5. _I_m_p_l_e_m_e_n_t_a_t_i_o_n The Ultrix[5] kernel already had all the code necessary for Internet Proto- col. Because we did not modify the ``upper'' IP inter- face, layers riding on top of IP were able to use the packet radio medium without modifica- tion. Thus, TCP and UDP did not need to be modified and, similarly, applications run- ning on top of those protocols worked without modification. The IP code in the kernel did not require modification either. All we had to do was to find a way to take the IP packets generated by the ker- nel, encapsulate them in AX.25 packets, and send them off, using SLIP, to the KISS interface of the TNC. _5._1. _I_P _a_n_d _A_X._2_5 _a_n_d _t_h_e _g_a_t_e_w_a_y We chose to implement a pseudo-device driver for the packet radio interface. The driver supports the same calls as network device drivers do for other media such as ether- net. Our driver is a pseudo driver because there is not really any hardware on the bus for our packet radio con- troller. Instead, our con- troller is plugged into a dz[6] port, and the kernel must communicate with it through that port. Teaching the kernel to recognize the new interface _________________________ 9 [5] Ultrix is a trademark of Digital Equipment Corporation 9 [6] A controller for multiple RS-232 ports September 8, 1988 was easy. There is a struc- ture called if_net that is associated with each inter- face. This structure contains pointers to the kernel pro- cedures, which are used to initialize the interface, send a packet, change parameters, and a few other operations. The next trick was to figure out how we could receive pack- ets. This was done by includ- ing a routine similar to the one that gets called in the ethernet driver when a packet arrives. The difference, though, is that our routine is called by the dz driver when- ever a character is received on the line to which the TNC is connected. As each character is read, we do some initial pro- cessing on the fly. In par- ticular, we unescape frame end characters that are embedded in the packet. When the final frame end is read, we check the header of the message, note the callsigns, note the layer three protocol type, and if it is IP, we add the encap- sulated IP packet to the queue of incoming IP packets to be dealt with by the existing upper layers. In order to implement the routines described above, we started with a few routines from Phil Karn's code for the IBM PC. These routines encap- sulated and decapsulated AX.25 packets. With a few modifica- tions these routines were made to work in the Ultrix kernel. The gateway functionality came for free. The way an IP gateway works is that when a packet is received, the system looks at its IP header to determine the destination 777777777777777777777777777777777777777777777777777777 address. If the destination address is not its own, it then decides which is the correct destination interface, and which system is the correct next hop. This is all done at the IP layer, and the same code that existed for gatewaying packets on ether- nets works for AX.25 subnets too. _5._2. _A_d_d_r_e_s_s _R_e_s_o_l_u_t_i_o_n _P_r_o_- _t_o_c_o_l The final task was to translate internet addresses into AX.25 addresses. This is done using ARP, the address resolution protocol, in the same manner that IP addresses are translated into ethernet addresses. But, AX.25 addresses look like amateur radio callsigns followed by a 4 bit system ID. To make matters worse, some entries may contain additional callsigns for digipeaters that are to repeat the packet. Thus, what is needed is a dif- ferent set of ARP routines for the packet radio interfaces. Phil Karn's IBM-PC code includes an ARP implementation that supports both AX.25 and ethernet addresses. Because we did not want to modify the code for our system that is used on the ethernet side, we decided not to take this code. ARP lookup occurs at layer two, and thus, gets called inside either the ethernet driver, or the AX.25 driver. The routing tables at the IP layer determine which driver is called. Since the ARP lookup occurs inside our code, we are able to call a separate routine that deals specifi- cally with AX.25 addresses. September 8, 1988 _5._3. _C_o_n_n_e_c_t_i_o_n _m_o_d_e As already discussed, we would like to support connec- tion mode on our gateway. Doing so would allow users who do not have the resources to run TCP/IP to be able to access IP network services. Further, users can give IP a try, and if they like it, then they might consider running it themselves. However, there is no reason, though, that con- nection mode should be sup- ported in the kernel as is IP. The way our implementa- tion is set up, it is easy to allow user level process deal with connection mode. We can tell the kernel that if a packet comes in, and its pro- tocol ID is not IP, that the packet should be placed on the input queue for the appropri- ate tty line. A user program can then read packets that the system isn't interested in from that line, and deal with the packets itself. By set- ting appropriate parameters for the kernel, additional filtering could be provided, though one would not want to do anything too complex in the kernel. The user level process that reads such packets would have to keep track of any con- nections and support connec- tion mode itself. Such a pro- gram could maintain multiple connections, and direct input to and output from pseudo ter- minals. This would allow con- nection mode users to log into the system. Such a program could accept connections to multiple SSIDs, thus allowing one SSID to be used for the transfer of mail with local non-IP bulletin boards. 777777777777777777777777777777777777777777777777777777 _5._4. _O_t_h_e_r _l_a_y_e_r _3 _p_r_o_t_o_c_o_l_s In addition to supporting connection mode, support could be provided in a similar manner for other layer 3 pro- tocols. I already mentioned how NET/ROM can be used to forward IP packets. One could conceivably support the rest of the NET/ROM interface in the same manner as connection mode is supported. Of course, NET/ROM users would not have the benefit of the additional services available using IP. _6. _U_n_r_e_s_o_l_v_e_d _i_s_s_u_e_s The ability to intercon- nect amateur packet radio net- works and non-amateur networks introduces a few problems which have not been completely resolved as of this time. In this section, I present those problems, and for some of them, I suggest some possible solutions. _6._1. _T_i_m_e_o_u_t_s One problem that comes up is the difference in bandwidth for the two networks. Hosts on the ethernet side expect fast response, and if they don't get a response quickly, they time out and retry their transmission. We have found that when connected to a sys- tem on our department's ether- net from a machine on the packet side of the gateway, the system on the ethernet side initially retransmits packets several times before a response makes it back. This results in wasted bandwidth on the radio side as the packet is needlessly retransmitted, and this in turn delays other packets. Fortunately for some implementations of TCP, once September 8, 1988 the connection has been esta- blished, the system on the ethernet side learns the correct timeout, and things settle down. _6._2. _I_n_t_e_r_n_e_t _r_o_u_t_i_n_g Routing is another prob- lem that arises if we want to allow connections to internet hosts beyond our department's ethernet. In order for a response to come back, all the gateways between the source and the destination must know the route to the appropriate packet radio subnet. Since a class `A' network is allocated for AMPRnet, and since most systems by default will main- tain a single route for a class `A' network, only one path exists for all of AMPRnet, whereas what is desired is different gateways for different subnets. It is conceivable that something like this could be handled using ICMP[7] redirects, but at this time, no mechanism is in place. _6._3. _A_c_c_e_s_s _C_o_n_t_r_o_l Another problem we face is access control. Since operation is on frequencies assigned to the amateur radio service, any communication must be initiated by licensed amateurs. One way we can solve this is to maintain a table of authorized addresses on the non-amateur side of the gateway. Associated with each of these addresses is a list of hosts on the amateur side of the gateway with which that host can communicate. Ini- _________________________ 9 [7] Internet Control Message Protocol 777777777777777777777777777777777777777777777777777778 tially the table starts off empty. Whenever a packet is received on the amateur side destined for a non-amateur host, an entry is made in the table, enabling the non- amateur host to send packets in the other direction. After a certain period of time, these entries time out if packets have not been received from the amateur side of the gateway. This scheme can be aug- mented with a few new ICMP messages. One message can force an entry to be removed from the table of authorized non-amateur systems. This allows the amateur radio operator that initiated the link to exercise his control operator function to cut off the link if he detects inap- propriate use. Another mes- sage would allow one to add an authorized non-amateur host to the tables with an appropriate time to live. Both these mes- sage are allowed to come from either side of the gateway, but if they come from the non-amateur side, they must include a call sign and a password of for an authorized control operator for the gate- way. _7. _S_t_a_t_u_s The packet radio imple- mentation of IP works. We have successfully connected from an IBM PC with a packet radio controller to a machine on our department's ethernet using telnet.[8] The connec- tion was made using our MicroVax-I as a gateway. We _________________________ 9 [8] One of several remote login protocols. 9 September 8, 1988 also were able to telnet from the machine on the ethernet to the PC. In the Seattle area, we are using a duplex repeater as the base for our local area network. Our network extends from Seattle, south to Tacoma, west to a station on the other side of Puget sound, and east to the Cascades. We have not yet written the user program to support connection mode logins, but that is being considered. We also have not yet done any- thing towards using NET/ROM to interconnect our local area networks with others, but we would like to do that soon. _8. _C_o_n_c_l_u_s_i_o_n_s The Unix operating system provides a nice base upon which network services can be provided for the amateur packet radio community. At the same time, such a system can serve as a central node in the interconnection of local area networks running IP, and even those that don't run IP. By linking packet radio net- works with more established networks, additional services become available. Such ser- vices are available in the Seattle area. These services are necessary if we are to interest people in running TCP/IP. Further, interconnec- tion with non-IP packet radio users is necessary if we are to interest users who would like to try IP, but still want to maintain connectivity with those still using connection mode. 777777777777777777777777777777777777777777777777777777 _9. _A_c_k_n_o_w_l_e_d_g_m_e_n_t_s A number of people were helpful in getting our imple- mentation running and in dis- cussing some of the ideas presented in this paper. Among them are Bob Albrightson (N7AKR), Bob Donnell (KD7NM), Dennis Goodwin (KB7DZ), Mike Chepponis (K3MC), Steve Ward (W1GOH), and Ed Lazowska (KG7K). Thanks are also in order to Bob Hoffman (N3CVL) for typesetting this paper. _1_0. _B_i_b_l_i_o_g_r_a_p_h_y 1. Fox, Terry L.: AX.25 Ama- teur Packet-Radio Link- Layer Protocol. Version 2.0. American Radio Relay league, October 1984. 2. Karn, Phil: ``TCP/IP, A Proposal for Amateur Packet Radio Levels 3 and 4'', _F_o_u_r_t_h _A_R_R_L _C_o_m_p_u_t_e_r _N_e_t_w_o_r_k_i_n_g _C_o_n_f_e_r_e_n_c_e, San Francisco, 1985. 3. Leffler, S; Joy W.; Fabry R.; Karels M.: Networking Implementation Notes 4.3 BSD Edition. Computer Systems Research Group, University of California, Berkeley. June 1986. September 8, 1988