Página siguiente Página anterior Índice general

4. Información general sobre las redes en Linux.

4.1 Breve historia del desarrollo del Linux Networking Kernel.

Desarrollar una nueva implementación núcleo de la pila para el protocolo tcp/ip que rinda tan bien como las implementaciones existentes no es una tarea fácil. La decisión de no portar una de las implementaciones existentes se tomó en un tiempo en que había cierta incertidumbre al respecto de si las implementaciones existentes serían lastradas con copyrights restrictivos por el precedente sentado por U.S.L. y en que había un gran entusiasmo por hacerlo diferente y quizás incluso mejor de lo que se había hecho.

El voluntario original para liderar el desarrollo del núcleo del código de red fue Ross Biro, biro@yggdrasil.com. Ross produjo una implementación simple e incompleta pero aprovechable en su mayor parte de rutinas que fueron completadas con un controlador de Ethernet para la interfaz de red WD-8003. Esto era suficiente para tener a mucha gente probando y experimentando con el software y algunas personas incluso intentaron conectar máquinas con esta configuración a conexiones reales en Internet. La presión dentro de la comunidad de Linux conduciendo el desarrollo de la implementación de la red estaba creciendo y, al final, el coste de una combinación de cierta presión aplicada sobre Ross y sus propios compromisos personales le sobrecargaron y se descolgó del puesto de desarrollador jefe. Los esfuerzos de Ross por iniciar el proyecto y la aceptación de la responsabilidad de producir realmente algo útil en tan controvertidas circunstancias fue lo que catalizó todo el trabajo futuro y por lo tanto supone un componente esencial en el éxito del producto actual.

Orest Zborowski, obz@Kodak.COM, produjo la interfaz original de programación de sockets BSD para el núcleo de Linux. Fue un gran paso adelante ya que permitió portar a Linux muchas de las aplicaciones de red existentes sin modificaciones serias.

Por aquel momento, Laurence Culhane, loz@holmes.demon.co.uk desarrolló los primeros controladores de dispositivo para la implementación del protocolo SLIP en Linux. Esto permitió a mucha gente que no tenía acceso a redes Ethernet experimentar con el nuevo software de red. De nuevo, hubo gente que cogió este controlador y lo puso en servicio para conectarse a Internet. Esto dio a mucha gente una idea de las posibilidades que podrían hacerse realidad si Linux tuviera un soporte total de red y creciera el número de usuarios usando y experimentando de forma activa el software de red que existía.

Una de las personas que también había estado trabajando activamente en la tarea de construir la implementación de red era Fred vam Kempen, waltje@uwalt.nl.mugnet.org. Después de un periodo de incertidumbre tras la renuncia de Ross al cargo de desarrollador jefe, Fred ofreció su tiempo y esfuerzos y aceptó el papel esencialmente sin oposición. Fred tenía planes ambiciosos sobre la dirección que quería que siguiese el software de red de Linux y orientó el progreso hacia esos objetivos. Fred desarrolló varias versiones del código de red llamado el núcleo de código NET-2 (el código NET era el de Ross) que mucha gente pudo usar de manera más útil. Fred puso formalmente algunas innovaciones en la agenda de desarrollo, como la interfaz dinámica de dispositivo, la implementación del protocolo Amateur Radio AX.25 y una interfaz de red diseñada más modularmente. El código NET-2 de Fred fue usado por un gran número de entusiastas, que crecía continuamente según se iba corriendo la voz de que el software funcionaba. El software de red en esos momentos aún estaba constituido por un gran número de parches a la versión estándar del núcleo y no estaba incluido en la versión normal. El NET-FAQ y el subsecuente NET-2-HOWTO describían el por entonces relativamente complejo procedimiento de ponerlo todo en marcha. Fred se concentraba en desarrollar innovaciones frente a las implementaciones estándar de red y eso estaba llevando tiempo. La comunidad de usuarios estaba impacientándose por algo que funcionase eficazmente y satisficiera al 80% de usuarios y, como con Ross, la presión sobre Fred como desarrollador en jefe creció.

Alan Cox, iialan@www.uk.linux.org propuso una solución al problema diseñada para resolver la situación. Propuso que él podría coger el código NET-2 de Fred para quitar fallos, haciéndolo eficaz y estable para que satisficiera al impaciente usuario de base al tiempo que retiraba esa presión de Fred permitiéndole continuar con su trabajo. Alan se puso a ello, obteniendo buenos resultados y su primera versión del código de red de Linux fue llamada it/Net-2D(ebugged)/. El código funcionaba bien en muchas configuraciones típicas y el usuario de base estaba feliz. Alan puso claramente sus propias ideas y habilidad para contribuir al proyecto y como consecuencia comenzaron a aparecer muchas discusiones relativas a la dirección del código NET-2. Esto desarrolló dos tendencias distintas dentro de la comunidad de red de Linux, una que tenía la filosofía «hazlo funcionar primero, y luego hazlo mejor» y la otra «hazlo mejor primero». Linus terminó arbitrando y ofreciendo su apoyo a los esfuerzos de desarrollo de Alan e incluyó el código de Alan en la distribución estándar de las fuentes del núcleo. Esto puso a Fred en una posición difícil. Cualquier desarrollo continuado podría debilitar la gran base de usuarios usando y probando activamente el código y eso significaría que los progresos serían lentos y difíciles. Fred continuó trabajando un tiempo y a la larga acabó dejándolo y Alan se convirtió en el nuevo jefe del esfuerzo de desarrollo de red para Linux.

Donald Becker, becker@cesdis.gsfc.nasa.gov reveló pronto su talento para los aspectos de bajo nivel de las redes y produjo un amplio abanico de controladores de red. Casi todos los incluidos en los núcleos actuales fueron desarrollados por él. Hay más gente que ha hecho contribuciones significativas, pero el trabajo de Donald es prolífico y eso le garantiza una mención especial.

Alan continuó refinando el código NET-2-Debugged durante un tiempo mientras trabajaba en solucionar algunos de los problemas que quedaban sin mirar en la lista PORHACER. Por la época en que al código fuente 1.3.* del núcleo les estaban creciendo los dientes, el código de red había migrado a la entrega NET-3 que es en la que las versiones actuales están basadas. Alan trabajó en muchos aspectos diferentes del código de red y con la asistencia de mucha otra gente con talento de la comunidad de red de Linux hizo crecer el código en todas direcciones. Alan produjo dispositivos de red dinámicos y las primeras implementaciones de los estándares AX.25 e IPX. Alan ha continuado jugueteando con el código, estructurándolo y mejorándolo lentamente hasta el estado en que se encuentra hoy día.

Michael Callahan, callahan@maths.ox.ac.uk y Al Longyear longyear@netcom.com aportaron la implementación del protocolo PPP, lo cual fue crítico para incrementar el número de gente que usaba activamente Linux para trabajar en red.

Jonathon Naylor, sn@cs.nott.ac.uk ha contribuido mejorando significativamente el código de AX.25 de Alan, añadiendo los protocolos NetRom y Rose. La implementación de AX.25/NetRom/Rose es en sí misma bastante significativa, porque ningún otro sistema operativo puede enorgullecerse de trabajar de forma nativa con estos protocolos aparte de Linux.

Por supuesto, ha habido centenares de otras personas que han hecho contribuciones significativas al desarrollo del software de red de Linux. A algunas de estas personas las encontrará más adelante en la sección de tecnologías específicas; otras personas han contribuido con módulos, controladores, correcciones de errores, sugerencias, informes de pruebas y apoyo moral. En cada caso, cada uno puede decir que ha puesto su granito de arena y que ofreció lo que pudo. El código de red del núcleo de Linux es un excelente ejemplo de los resultados que se pueden obtener del anárquico estilo de desarrollo de Linux. Si aún no se ha sorprendido, lo hará pronto. El desarrollo no se ha detenido.

4.2 Recursos referentes al tratamiento de redes con Linux.

Hay varios sitios en los que puede encontrar información acerca de la implementación de red de Linux.

Tiene a su disposición un montón de asesores. Podrá encontrar un listado en la LinuxPorts Consultants Database, http://www.linuxports.com

Alan Cox, quien en estos momentos se encarga de mantener el código de red del núcleo de Linux tiene una página WWW con los últimos titulares y eventos de interés relativos al estado de desarrollo de las funcionalidades presentes y futuras en cuanto al código de red linux en: www.uk.linux.org.

Otro buen sitio es un libro escrito por Olaf Kirch titulado la Guía para Administradores de Redes. Es parte del Proyecto de Documentación de Linux http://www.linuxdoc.org y puede leerlo de forma interactiva en su versión HTML http://metalab.unc.edu/LDP/LDP/nag/nag.html, u obtenerlo en varios formatos mediante FTP (y en castellano) desde el archivo del proyecto LuCAS ftp://lucas.hispalinux.es/pub/LuCAS/Manuales-LuCAS/GARL. El libro de Olaf es bastante extenso y procura una buena iniciación de alto nivel a la configuración de redes en Linux.

Hay un grupo de noticias en la jerarquía de noticias de Linux dedicado a las redes y a materias relacionadas: comp.os.linux.networking

Hay una lista de correo a la que se puede suscribir, donde hacer preguntas relacionadas al trabajo en redes con Linux. Para suscribirse debe mandar un mensaje:

A: majordomo@vger.rutgers.edu
Asunto: cualquier cosa
Mensaje:

subscribe linux-net

En las diferentes redes de IRC suele haber canales #linux en los que suele haber gente que responde preguntas sobre linux y redes.

Por favor, cuando vaya a informar de cualquier problema, recuerde incluir todos los detalles que pueda relevantes al respecto. Debería informar, específicamente, de las versiones de los programas que esté usando, sobre todo la versión del núcleo, la versión de herramientas como pppd o dip y la naturaleza exacta del problema que está experimentando. Esto significa tomar nota de la sintaxis exacta de cualquier mensaje de error que reciba y de cualquier orden que esté ejecutando.

4.3 Dónde conseguir información sobre redes no específica de Linux.

Si está buscando información básica de aprendizaje sobre redes tcp/ip en general, entonces le recomiendo que eche un vistazo a los siguientes documentos:

TCP/IP Introduction

este documento está tanto en versión texto ftp://athos.rutgers.edu/runet/tcp-ip-intro.doc como en versión PostScript ftp://athos.rutgers.edu/runet/tcp-ip-intro.ps.

TCP/IP Administration

este documento está tanto en versión texto ftp://athos.rutgers.edu/runet/tcp-ip-admin.doc como en versión PostScript ftp://athos.rutgers.edu/runet/tcp-ip-admin.ps.

Si busca información algo más detallada sobre redes tcp/ip entonces le recomiendo:

Internetworking with TCP/IP, Volume 1: principles, protocols and architecture, de Douglas E. Comer, ISBN 0-13-227836-7, Prentice Hall publications, Tercera edición, 1995.

Si quiere aprender a escribir aplicaciones de red en entornos compatibles Unix entonces también le recomiendo:

Unix Network Programming, by W. Richard Stevens, ISBN 0-13-949876-1, Prentice Hall publications, 1990.

También debería probar el grupo de noticias comp.protocols.tcp-ip. Otra fuente importante de información técnica específica relativa a la Internet y al conjunto de protocolos tcp/ip son los RFC. RFC es un acrónimo de Request For Comments y es el medio estándar de enviar y documentar los protocolos estándar de Internet. Hay muchos sitios de donde tomar los RFC. Muchos de estos sitios son de FTP y otros proporcionan acceso por World Wide Web con un buscador asociado que le permite buscar palabras clave en la base de datos de RFC.

Un posible lugar donde encontrar lo RFC es la base de datos de Nexor http://pubweb.nexor.co.uk/public/rfc/index/rfc.html.


Página siguiente Página anterior Índice general