Los Protocolos de Packet Radio y Linux

2. Los Protocolos de Packet Radio y Linux.

El protocolo AX25 te ofrece modos de trabajo con y sin conección, y se usa tanto para enlaces punto a punto, como transporte para otros protocolos como el TCP/IP y el NetRom.

Su estructura es similar a la del X.25 Level 2, con algunas extensiones para hacerlo más útil al entorno de la radioafición.

El NetRom es un intento de protocolo completo de red y usa al AX.25 como protocolo de enlace de nivel inferior. Provee un nivel de red que es una adaptación del AX.25, permitiendo ruteos dinámicos y alias de nodos.

El protocolo Rose fue concebido por vez primera por Tom Moulton W2VY, y es una implementación del X.25 designado para operar con el protocolo AX.25 a nivel de enlace de datos. También provee un nivel de red. Las direcciones de Rose usan 10 dígitos numéricos. Los primeros 4 son llamados DNIC (Data Network Identification Code) y son tomados de la recomendación X.121 del apéndice B de la CCITT. Se puede obtener más información del Servidor Web de RATS.

Alan Cox desarrollo el primer kernel para soporte de AX.25 en Linux. Jonathon Naylor continuó el desarrollo, agregó soporte para NetRom y Rose y es el actual creador del código kernel. DAMA fue desarrollado por Joerg, DL1BKE. Baycom y SoundModem fue agregado por Thomas Sailer. En la actualidad el software AX.25 Utility es mantenido por multitud de colegas y programadores en la WEB SourceForge.

El código Linux soporta TNC´s en modo KISS y 6PACK , tarjetas Ottawa PI, Gracilis PacketTwin y otras tarjetas basadas en el Z8530 SCC con el controlador genérico SCC, y también tanto el puerto paralelo como el serie de los módem Baycom y los serie de los módem YAM.

Los nuevos drivers SoundModem de Thomas Sailer soportan Soundblaster y tarjetas de sonido basadas en  los chips Crystal, por medio del uso de los drivers estardar de sonido del Kernel , igualmente las tarjetas de sonido soportadas por Linux.

Los programas de Usuarios (User) contienen un sencillo PMS (Sistema Personal de Mensajes), un emisor de balizas, una utilidad para conexión en línea, un ejemplo de captura de frames a nivel interface y un programa de configuración de NetRom. También incluye un servidor de AX.25 para gestionar entradas y salidas de AX.25 y un demonio de NetRom que hace la mayoría del trabajo pesado de NetRom.

También programas de utilidad de soporte de APRS, incluyendo un repetidor digital y una puerta de enlace con Internet.

2.1 Como trabajan juntos.

La implementación del AX.25 para Linux esta escrita totalmente de nuevo. Aunque se parezca de alguna manera a NOS, o BPQ u otro AX.25, no lo es y no es igual a ninguna otra. Si bien es capaz de poderse configurar para obtener los mismos resultados que los citados, el proceso es muy diferente.

Para ayudarte a entender como tienes que pensar para configurarlo, en esta sección describo la estructura básica del AX.25 y como encaja dentro del contexto de la estructura del Linux.

Diagrama Simple de los Niveles de Protocolo

<aling=center> 
                      
   ______________________________________________ |AF_AX25 |     AF_NETROM  |
AF_INET|AF_ROSE||=========|===========|=============|=========|
|         |           |             |         |
|         |           |    TCP/IP   |         |
|         |           |________     |         |
|         |   NET/ROM          |    | ROSE    |
|         |____________________|____|_________|
|            AX.25                            |
|_____________________________________________|

Este diagrama muestra que NetRom, Rose y TCP/IP corren sobre el AX.25, pero que a nivel de programación de interface, cada uno de ellos es tratado como un protocolo separado. Cuando escribimos un programa para usarlos, los “AF_” son simplemente nombres dados a las “Address Family” (Familia de dirección) de cada uno de ellos. Lo importante de notar es la implícita dependencia de la configuración del AX.25, antes de configurar los dispositivos NetRom, Rose o TCP/IP.

Diagrama modular de software de la Implementación de Trabajo en Red de Linux.

 ___________________________________________________________________________
|         |           |                       ||          |                 |
| User    | Programs  |   call        node    ||  Daemons | ax25d  mheardd  |
|         |           |   pms         mheard  ||          | inetd  netromd  |
|_________|___________|_______________________||__________|_________________|
|         | Sockets   |open(), close(), listen(), read(), write(), connect()|
|         |           |_____________________________________________________|
|         |           |   AF_AX25   |  AF_NETROM  |   AF_ROSE   |  AF_INET  |
|         |___________|_____________|_____________|_____________|___________|
|Kernel   | Protocols |   AX.25     |   NetRom    |     ROSE    | IP/TCP/UDP|
|         |___________|_____________|_____________|_____________|___________|
|         | Devices   |   ax0,ax1   |  nr0,nr1    | rose0,rose1 | eth0,ppp0 |
|         |___________|_____________|_____________|_____________|___________|
|         | Drivers   | Kiss   PI2   PacketTwin   SCC   BPQ     | slip ppp  |
|         |           |     Soundmodem      Baycom              | ethernet  |
|_________|___________|_________________________________________|___________|
|Hardware | PI2 Card, PacketTwin Card, SCC card, Serial port, Ethernet Card |
|_________|_________________________________________________________________|

Este diagrama, es un poco más general que el anterior, trata de mostrar las relaciones entre las aplicaciones del usuario, el kernel y el hardware. También muestra la relación con los Sockets aplicaciones de programación de interfaces, los módulos actuales de protocolos, los dispositivos de trabajo en red del kernel y los manejadores de dispositivos. Cualquier cosa de este diagrama depende de lo que está bajo de él, y en general se debe configurar de abajo hacia arriba.
Por ej., si quieres correr el programa CALL,

  • Hay que configurar el Hardware
  • Comprobar que el kernel tiene el drive necesario, que creo el correspondiente dispositivo de red.
  • Que el kernel tiene ese protocolo
  • Y que este protocolo presenta una interface programada que el programa CALL pueda usar.

He tratado de desarrollar este documento en ese orden estricto.