1.4. Redes con Linux

Siendo el resultado del esfuerzo concentrado de programadores de todo el mundo, la creación de Linux no habría sido posible sin la red global. Tanto así, que no sorprende que ya en los primeros pasos del desarrollo, varias personas comenzaran a trabajar para dotarlo de capacidades de red. Casi desde el principio existía ya una implementación de UUCP para Linux. En el otoño de 1992 se comenzó a desarrollar el soporte de TCP/IP, cuando Ross Biro y otros crearon lo que ahora se conoce como Net-1.

Después de que Ross dejara el desarrollo activo en Mayo de 1993, Fred van Kempen comenzó a trabajar en una nueva implementación, reescribiendo gran parte del código. Este esfuerzo continuado se conoce como Net-2. En el verano de 1993 salió la primera versión publica de Net-2d (como parte del kernel 0.99.10), y ha sido mantenida y ampliada por varias personas, muy especialmente por Alan Cox[1], dando lugar al Net-2Debugged. Tras una dura corrección y numerosas mejoras en el código, se cambió su nombre a Net-3 luego de que Linux 1.0 fuera sacado al público. El Net-3 fue desarrollado exclusivamente para Linux 1.2 y Linux 2.0. Los núcleos de versiónes 2.2 en adelante, utilizan el soporte para redes Net-4, el cual es la versión del código de red que se incluye actualmente en las versiónes oficiales del kernel.

La versión del código de red de Linux, Net-4, ofrece una gran variedad de controladores para dispositivos, y muchas características avanzadas. Dentro de los protocolos estándar de Net-4 se incluyen SLIP y PPP, (para el envío de tráfico de redes sobre líneas series), PLIP (para líneas paralelas), IPX (para redes compatibles con Novell, sobre las cuales se discutirá en Capítulo 15), Appletalk (para redes Apple), y AX.25, NetRom y Rose, (para redes de radio-aficionados). Otros rasgos característicos de Net-4 son la inclusión de cortafuegos IP, contabilidad IP (tema estudiado más a detalle en Capítulo 9 y Capítulo 10), y Enmascaramiento IP (discutido más adelante, en Capítulo 11)[2]. Está soportada la encapsulación IP, en una unión de diferentes gustos y políticas avanzadas de encaminamiento (routing). También se da sostén a una gran variedad de dispositivos Ethernets, además de algunos FDDI, Token Ring, Frame Relay, y tarjetas ISDN, y ATM.

Además de lo que ya se ha citado, hay algunas otras características que acentúan de gran manera la flexibilidad de Linux. Dentro de las mismas se destaca una implementación del sistema de archivos SMB, el cual interacciona con aplicaciones como lanmanager y Microsoft Windows. Esta implementación se llama Samba, y fue escrita por Andrew Tridgell. También se destaca una implementación de Novel NCP, o Protocolo Central de NetWare (NetWare Core Protocol).[3]

1.4.1. Diferentes Etapas de Desarrollo

Dentro del ambiente Linux, en varias ocasiones, se han presentado varios esfuerzos de desarrollo a la vez.

Mientras tanto, luego de finalizada y lanzada la implementación oficial de Net-2Debugged, Fred siguió desarrollando el Net-2e, que dispone de un diseño mas revisado de la capa de red. Fred trabajó para llegar a un estándar, llamado Interfaz de Controlador de Dispositivo, (Device Driver Interface, DDI). Sin embargo, hoy en día el desarrollo de Net-2e ha terminado.

Otra implementación más para redes TCP/IP, es la realizada por Matthias Urlichs, quien escribió un controlador de ISDN para Linux y FreeBSD. Para ello, integró algo del código de red de BSD, en el núcleo Linux. Al igual que el anterior, ya no se trabaja más en este proyecto.

Los cambios son acelerados en las implementaciones de red para el núcleo de Linux, y “cambio” sigue siendo el lema, tanto que el desarrollo continúa. Muchas veces, esto también significa que los cambios deberán llegar a otro software, como por ejemplo, las herramientas de configuración de la red. Aunque este ya no es un problema esencial, como antes lo era, se puede encontrar con que al actualizar el núcleo, también se deban actualizar las herramientas de configuración de la red. Afortunadamente, gracias a la gran variedad de distribuciónes disponibles hoy en día, esto es una tarea relativamente fácil de llevar a cabo.

La implementación para redes Net-4 está actualmente en una etapa bastante madura, y es usada en un gran número de sitios alrededor del mundo. Ha costado mucho trabajo el mejorar su rendimiento, y ahora compite con las mejores implementaciones disponibles para su misma plataforma de trabajo. Linux está extendiéndose rápidamente en el ambiente de Proveedores de Servicio de Internet, y muchas veces es elegido por pequeñas organizaciones que necesitan de servidores World Wide Web, de correo y noticias, realmente baratos y confiables. Hoy en día, existe el suficiente interés en el desarrollo de Linux, como para decir que se puede mantener el ritmo de los cambios tecnológicos en cuanto a redes. Por ejemplo, las últimas liberaciones del núcleo de Linux ofrecen como estándar, la próxima generación del protocolo IP, IPv6.

1.4.2. Dónde Conseguir el Código

Parece extraño el recordar aquellos primeros días del desarrollo del código de red para Linux[4]. El núcleo estándar requería de un gran conjunto de parches, para dar soporte a redes. En la actualidad, sin embargo, el desarrollo del soporte para redes, tiene lugar como parte misma, del flujo principal del proceso de desarrollo de Linux. Los núcleos Linux estables más recientes, se pueden encontrar en ftp.kernel.org dentro de /pub/linux/kernel/v2.x/, dónde x es un número par. Análogamente, los núcleos Linux experimentales más recientes se pueden obtener en ftp.kernel.org dentro de /pub/linux/kernel/v2.y/, donde esta vez y, es un número impar. Existen réplicas de las distintas versiónes del núcleo Linux repartidas por todo el mundo[5]. Luego, sería difícil de imaginar a Linux sin soporte estándar de red.

Notas

[1]

Se puede contactar a Alan, en alan@lxorguk.ukuu.org.uk

[2]

“Cortafuegos IP”, “Auditoría IP”, “Enmascaramiento IP” y “Encapsulación IP”, son las respectivas traducciónes de los términos “IP Firewalling”, “IP accounting”, “IP Masquerade”, y “IP Tunnelling”

[3]

NCP es el protocolo en el cual se basa el servicio de archivos e impresión de Novell.

[4]

Claro que para algunos usuarios nos sería imposible el recordar tal cosa, dado que en aquellos años ni siquiera sabíamos lo que era una computadora. ;-). Nota del T.

[5]

Y hasta en distintos idiomas. Nota del T.