Tabla de contenidos
Resumen
Linux, que de hecho nació en Internet, proporciona todas las herramientas y prestaciones de red necesarias para la integración en estructuras de red de todo tipo.
A continuación se expone una introducción al protocolo de red TCP/IP – normalmente utilizado por Linux – con sus características y particularidades. Después de los fundamentos se explica cómo configurar una tarjeta de red mediante YaST. Se explica el significado de los ficheros de configuración más importantes y algunas de la herramientas más comunes. Puesto que la configuración de una red puede llegar a ser muy compleja, en este capítulo sólo le explicaremos los conceptos más fundamentales.
Con YaST también puede configurar cómodamente la conexión a Internet vía PPP, módem, RDSI o DSL, lo cual se explica en Manual del usuario.
Linux utiliza al igual que otros sistemas operativos un protocolo de comunicación que se llama TCP/IP. En realidad no se trata de un solo protocolo de red sino de una familia de protocolos con diferentes prestaciones. TCP/IP se desarrolló a base de una aplicación militar y su especificación actual se fijó en el año 1981 en un documento RFC (Request For Comments). Los RFC son documentos que describen los diferentes protocolos de Internet y la implementación de ellos en un sistema operativo o en aplicaciones. Estos documentos se encuentran en Internet en la dirección http://www.ietf.org/.
Desde 1981 el protocolo sólo se ha modificado en algunos detalles; la base del protocolo sigue siendo la misma.
![]() | Sugerencia |
|---|---|
Los documentos RFC describen la estructura de los protocolos de Internet. Para profundizar sobre un determinado protocolo, en el documento RFC del protocolo concreto, encuentra una fuente de información muy buena; consulte http://www.ietf.org/rfc.html. | |
Para el intercambio de datos vía TCP/IP entre dos ordenadores con Linux, existen los servicios que se mencionan en la tabla 13.1, “Diferentes protocolos de la familia TCP/IP”.
Tabla 13.1. Diferentes protocolos de la familia TCP/IP
Todas las redes interconectadas vía TCP/IP a nivel mundial forman una sola red que se suele llamar Internet.
Casi todos los protocolos de hardware están basados en paquetes. Los datos a transmitir se han de dividir en pequeños “paquetes”, ya que es imposible transmitirlos “de golpe”.
TCP/IP también trabaja con paquetes cuyo tamaño máximo es de casi 64 kilobytes. En realidad los paquetes suelen tener un tamaño mucho menor, ya que el tamaño máximo de un paquete sobre una Ethernet es de 1500 bytes. Por eso el tamaño de cada paquete TCP/IP se limita a estos 1500 bytes cuando el paquete pasa por una red del tipo Ethernet. Para transmitir más datos, el sistema operativo tiene que enviar la cantidad correspondiente de paquetes.
Para ser exactos, el protocolo no se debería llamar TCP/IP sino sólo IP. Con IP (Internet Protocol) no se asegura la transferencia. TCP (Transmission Control Protocol) es una capa de control por encima del protocolo IP que garantiza la transmisión de los datos.
Finalmente el protocolo IP es superpuesto al protocolo que se encuentre por debajo y que depende directamente del hardware (por ejemplo Ethernet). Los expertos hablan aquí de “modelo de capas”. Ver la figura 13.1, “Modelo de capas simplificado para TCP/IP”.
La imagen muestra uno o dos ejemplos para cada capa. Las capas se ordenan según su nivel de abstracción; la capa inferior se encuentra más próxima al hardware, mientras que la capa superior “envuelve” el nivel de abstracción mas alto. Cada capa tiene una determinada función que se explica a continuación.
La función de cada capa se deduce en buena medida de su denominación. La red está representada por la capa de transmisión de bits y por la capa de seguridad.
La primera capa se encarga de detalles como los tipos de cables, tipos de señales, la codificación de las mismas, etc y se denomina “capa física”. La segunda capa se encarga del procedimiento de acceso a los datos y de la corrección de errores, por eso la capa se denomina capa de enlace.
La tercera capa es la capa de red que se encarga de la transmisión de datos a través de grandes distancias. Esta capa asegura que los datos encuentren el camino al destinatario a través de diversas redes.
La capa de transporte como cuarta capa se encarga de la llegada de los datos de las aplicaciones y del orden de los mismos. La capa de enlace sólo asegura la llegada correcta de los datos, mientras que la capa de transporte evita la “pérdida” de estos.
La quinta capa representa finalmente el procesamiento de datos por parte de la aplicación.
Cada capa necesita un cierta información adicional para poder cumplir con su tarea. Esta información se encuentra en la cabecera (header) de cada paquete. Cada capa añade un pequeño bloque de datos (denominado “cabecera de protocolo” (protocol header) al paquete que se está formando. La figura 13.2, “Paquete TCP/IP sobre Ethernet” muestra el ejemplo de la composición de un paquete TCP/IP que viaja sobre un cable de una red tipo Ethernet.
Una excepción de la estructura de la cabecera son los dígitos de control que no se encuentran en la cabecera sino al final. De esta forma el hardware de red lo tiene más fácil. Como se puede observar, el máximo útil de datos en un paquete sobre una red Ethernet es de 1460 bytes.
Cuando una aplicación quiere enviar datos por la red, los datos pasan por las diferentes capas que se encuentran (con excepción de la primera) implementadas en el kernel de Linux. Cada capa se encarga de preparar los datos de tal forma que puedan ser pasados a la capa inferior. La capa más baja se encarga finalmente del envío de los datos.
Al recibir los datos, todo el proceso se invierte. Similar al proceso de pelar una cebolla, cada capa separa los encabezamientos de la parte útil de datos. Finalmente la cuarta capa se encarga de preparar los datos para la aplicación en la máquina remota.
Durante el proceso de transferencia, cada capa sólo se comunica con aquella que se encuentra directamente encima o debajo. Por eso para una aplicación es totalmente irrelevante si los datos viajan a través de una red de 100 MBit/s-FDDI o a través de una línea de módem de 56 kbit/s. Igualmente para la línea no son importantes los datos que se han de transferir sino que estos estén correctamente empaquetados.
![]() | Importante |
|---|---|
Las siguientes secciones se refieren a las redes IPv4. Puede obtener más información sobre su sucesor, el protocolo IPv6, en el apartado 13.2, “IPv6 — La próxima generación de Internet”. | |
Cada ordenador en Internet dispone de una dirección IP única de 32 bits. Estos 32 bits o 4 bytes se representan normalmente como se muestra en la segunda fila del ejemplo 13.1, “Formas de anotar una dirección IP”.
Ejemplo 13.1. Formas de anotar una dirección IP
Dirección IP (binario): 11000000 10101000 00000000 00010100 Dirección IP (decimal): 192. 168. 0. 20
Como se puede observar, los cuatros bytes se anotan en el sistema decimal como cuatro cifras de 0 a 255 separadas por un punto. Esta dirección asignada al ordenador o a su interfaz de red es única y no puede ser utilizada en ningún otro lugar del mundo. Hay excepciones, pero estas no tienen relevancia en el ejemplo expuesto.
La tarjeta Ethernet posee un número único llamado MAC (Media Access Control). Este número es de 48 bits y único en el mundo; su fabricante lo almacena de forma fija en la tarjeta red. La asignación de los números MAC por parte de los fabricantes tiene una desventaja fatal: No hay ninguna jerarquía entre las tarjetas, sino que están distribuidas “al azar”. Por eso no es posible utilizarlas para comunicarse con un ordenador a mucha distancia. Sin embargo la dirección MAC es de mucha importancia en una red local (es la parte importante de la cabecera del protocolo en la capa 2).
Volviendo a las direcciones IP: Los puntos separadores ya indican la estructura jerárquica de las direcciones. Hasta mediados de los noventa, había una separación estricta en clases. Este sistema resultó muy poco flexible por lo que se ha dejado de utilizar. Ahora se usa “routing sin clases” (CIDR (classless inter domain routing)).
Puesto que los ordenadores con la dirección IP 192.168.0.0 no pueden saber dónde se encuentra la máquina con la dirección IP 192.168.0.20, se crearon las máscaras de red.
Simplificando se puede decir que la máscara de (sub)red define para un ordenador lo que se encuentra “fuera” y lo que se encuentra “dentro”. Se puede acceder directamente a aquellos ordenadores que se encuentren “dentro” (dentro de la misma subred) mientras que a las máquinas que estén “fuera” sólo se llega a través de un enrutador (router) o una pasarela (gateway). Como cada interfaz de red recibe una IP propia, todo puede llegar a ser muy complejo.
Antes de que un paquete empiece a tomar rumbo por la red, el ordenador realiza lo siguiente: la dirección de destino se enlaza bit a bit con la máscara de red (por medio de la operación lógica Y) y la dirección del remitente se enlaza con la máscara (ver tabla 13.2, “Enlace de direcciones IP con una máscara de red”). Si existen varias interfaces de red disponibles se comprueban todas las direcciones de remitente posibles.
Los resultados de los enlaces se comparan; en caso de que fueran idénticas, la máquina remota se encuentra en la misma subred que la máquina local. En cualquier otro caso hace falta acceder al ordenador remoto a través de una pasarela. Es decir, cuantos más bits con valor 1 se encuentren en la máscara de red, más ordenadores se accederán a través de la pasarela y menos se encontrarán en la propia subred. Para una mejor compresión, la tabla 13.2, “Enlace de direcciones IP con una máscara de red” contiene algunos ejemplos.
Ejemplo 13.2. Enlace de direcciones IP con una máscara de red
Dirección IP (192.168.0.20): 11000000 10101000 00000000 00010100 Máscara de red (255.255.255.0): 11111111 11111111 11111111 00000000 ___________________________________________________________________ Resultado binario: 11000000 10101000 00000000 00000000 Resultado decimal: 192. 168. 0. 0 Dirección IP (213.95.15.200): 11010101 10111111 00001111 11001000 Máscara de red (255.255.255.0): 11111111 11111111 11111111 00000000 ------------------------------------------------------------------- Resultado binario: 11010101 10111111 00001111 00000000 Resultado decimal: 213. 95. 15. 0
La máscara de red se expresa – al igual que la dirección IP – por medio de valores decimales separados por puntos. Esta máscara es también un valor de 32 bit y por eso se anota igualmente en forma de cuatro cifras de tres dígitos cada una.
El usuario se encarga de definir qué ordenadores trabajan como pasarelas y a qué rangos de direcciones se accede mediante qué interfaces de red.
Un ejemplo práctico son todas las máquinas que se encuentran conectadas al mismo cable Ethernet. Estas se encuentran por lo general en la misma subred y se puede acceder a ellas directamente. Asimismo, si la Ethernet está dividida por switches o bridges, sigue siendo posible acceder directamente a estos ordenadores.
Para atravesar distancias largas, ya no se puede utilizar Ethernet sino que hace falta pasar los paquetes IP por un soporte diferente (por ejemplo FDDI o RDSI). Tales aparatos se denominan router (enrutador) o gateway (pasarela). Un ordenador con Linux también se puede encargar de ello; esta funcionalidad se denomina “ip_forwarding”.
En caso de trabajar con una pasarela, el paquete IP se manda a esta y la pasarela trata de pasar el paquetes según el mismo esquema. Este proceso se repite hasta el momento de alcanzar el ordenador de destino o hasta que el “tiempo de vida del paquete” TTL (time to live) se haya agotado.
Tabla 13.2. Direcciones especiales
| Tipo de direcciones | Descripción |
|---|---|
| Dirección base | Es la dirección de la máscara de red operada con la conjunción lógica AND (Y) con cualquier dirección de la red. Es exactamente lo que se refleja en la tabla 13.2, “Enlace de direcciones IP con una máscara de red” como Resultado de la conjunción. No se puede asignar esta dirección a ningún ordenador. |
| Dirección broadcast | Con esta dirección se puede contactar con todas las computadoras de la subred al mismo tiempo. La dirección se crea invirtiendo su valor binario y realizando una OR lógica con la dirección base de la red. En el caso del ejemplo mencionado resulta el valor 192.168.0.255. Esta dirección tampoco puede ser asignada a ninguna computadora. |
| Localhost | En cada ordenador la dirección 127.0.0.1 corresponde al dispositivo “loopback”. La dirección sirve para crear una conexión en la propia máquina. |
No se pueden utilizar direcciones IP al azar, ya que estas deben ser únicas en todo el mundo. Para configurar un red privada con direcciones IP existen tres rangos de direcciones que pueden ser utilizados sin problema. Como desventaja, no es posible realizar con estas direcciones una conexión directa a Internet sin realizar algunas conversiones.
Gracias al DNS no hace falta recordar direcciones IP, ya que este sistema realiza la asignación de una dirección IP a uno o varios nombres así como la asignación inversa de un nombre a una dirección IP. En Linux, un software especial llamado bind es el que se encarga de establecer el vínculo entre nombres y direcciones IP. Un ordenador que presta este servicio se denomina servidor de nombres (name server).
Los nombres también están estructurados dentro de una jerarquía; las diferentes partes funcionales de los nombres se separan por puntos. Esta jerarquía de nombres es independiente de la ya mencionada jerarquía de direcciones IP.
laurent.suse.de escrito en formato nombre_ordenador.dominio. Un nombre completo se denomina nombre de dominio totalmente cualificado (Fully Qualified Domain Name o FQDN) y se compone del nombre del ordenador y de la parte del dominio. Este nombre de dominio se compone de una parte de libre elección — en el ejemplo suse — y del dominio de primer nivel (Top Level Domain TLD).
Por razones históricas la asignación de los TLDs resulta algo confusa. En los EE.UU. se utilizan TLDs de tres letras mientras que el resto del mundo utiliza los códigos de país ISO de dos letras. Desde el año 2000 existen TLDs adicionales para campos específicos que en ocasiones cuentan con más de 3 letras (por ejemplo .info, .name, .museum, etc.).
En los primeros días de Internet (antes de 1990) el archivo /etc/hosts albergaba los nombres de todos los ordenadores disponibles en Internet. Esta forma de resolución de nombre se tornó poco práctica debido al rápido crecimiento de Internet. Por eso se diseñó una base de datos descentralizada, capaz de guardar los nombres de las máquinas de forma distribuida.
Esta base de datos o un servidor de nombres no dispone de los datos de todos los ordenadores en Internet, sino que es capaz de consultar otros servidores de nombres en un nivel más alto.
En la cúspide de la jerarquía de servidores de nombres se encuentran los “Root-Nameserver” que administran los dominios de primer nivel (TLD). El “Network Information Center” (NIC) se encarga de la administración de estos servidores. El Root-Nameserver conoce los servidores de nombres que se encargan de cada dominio de primer nivel. En el caso de la TLD de Alemania (de) es DE-NIC que se encarga de todos los dominios de este tipo. En la página web http://www.denic.de hay más información sobre DE-NIC; http://www.internic.net informa sobre el NIC.
El ordenador de sobremesa tiene que conocer la dirección IP de al menos un servidor de nombres para que sea capaz de convertir nombres en direcciones IP. Con YaST es muy fácil configurar el servidor de nombres. En el caso de una conexión vía módem, puede que no sea necesario configurarlo manualmente, ya que el protocolo utilizado para la conexión proporciona esta información durante el proceso de conexión.
DNS es capaz de realizar otras tareas además de la resolución de nombres. El servidor de nombres “conoce” igualmente el ordenador que acepta los mensajes de todo un dominio. Este ordenador se conoce como Mail Exchanger (MX).
El apartado 13.6, “DNS – Domain Name System” explica la configuración de un servidor de nombres en SUSE LINUX.