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 archivos 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.
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. Para el intercambio de datos vía TCP/IP entre dos ordenadores con Linux, existen los servicios que se mencionan en la Tabla 22.1, “Diferentes protocolos de la familia TCP/IP”. Las redes basadas en TCP/IP y que están interconectadas a nivel mundial se denominan en su conjunto como “ Internet.”.
RFC son las siglas de 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. Los documentos RFC describen la estructura de los protocolos de Internet. Para profundizar sobre un determinado protocolo se recomienda consultar el documento RFC del protocolo correspondiente. Visite http://www.ietf.org/rfc.html para más información.
Tabla 22.1. Diferentes protocolos de la familia TCP/IP
Protocolos | Descripción |
|---|---|
(Transmission Control Protocol) es un protocolo asegurado orientado a la conexión. Desde el punto de vista de las aplicaciones, los datos se transmiten como un caudal y es el sistema operativo el que se encarga de convertirlos al formato adecuado para su transmisión. Las aplicaciones en la máquina remota reciben el caudal de datos tal como fue enviado y TCP se encarga de que el caudal llegue completo y ordenado. Por eso TCP se utiliza cuando el orden de los datos importa y cuando se puede hablar de una conexión. | |
(User Datagram Protocol) es un protocolo no asegurado y sin conexión. La transferencia de datos está orientada a paquetes creados directamente por la aplicación. El orden de llegada de los paquetes no está garantizado y tampoco la llegada en sí. UDP sirve para aplicaciones que transmiten bloques de datos y tiene menos tiempo de respuesta que TCP. | |
(Internet Control Message Protocol) es un protocolo que básicamente no puede ser usado por el usuario, ya que su tarea es la de transmitir errores y de controlar los ordenadores que participan en el intercambio de datos. Además ICMP incorpora un modo especial de eco, que se puede comprobar mediante ping. | |
(Internet Group Management Protocol) es un protocolo que controla el comportamiento de los ordenadores utilizando IP multicast. |
Como se muestra en la Figura 22.1, “Modelo de capas simplificado para TCP/IP”, el intercambio de datos tiene lugar en distintas capas. En la capa de comunicación se lleva a cabo la transferencia de datos insegura a través de IP (Internet Protocol). Por encima de IP, el protocolo TCP (Transmission Control Protocol) garantiza la seguridad de la transferencia de datos hasta cierto punto. Por debajo de la capa IP se encuentra el protocolo que depende del hardware (por ejemplo Ethernet).
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 red está representada por la capa de transmisión de bits y por la capa de seguridad..
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.
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 22.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.
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. Como en 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.
Las siguientes secciones se refieren a las redes IPv4. Puede obtener más información sobre su sucesor, el protocolo IPv6, en la Sección 22.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 22.1, “Formas de anotar una dirección IP”.
Ejemplo 22.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).
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” (Classless Inter Domain Routing o CIDR).
Puesto que los ordenadores con la dirección IP 192.168.0.1 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 Ejemplo 22.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 Ejemplo 22.2, “Enlace de direcciones IP con una máscara de red” contiene algunos ejemplos.
Ejemplo 22.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 ésta 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 22.2. Direcciones especiales
Tipo de direcciones | Descripción |
|---|---|
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 Ejemplo 22.2, “Enlace de direcciones IP con una máscara de red” como | |
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
| |
En cada ordenador la dirección |
No se pueden utilizar direcciones IP al azar, ya que éstas 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.
Estos tres rangos están especificados en RFC 1597 y se muestran en la Tabla 22.3, “Rangos para direcciones IP privadas”.