Capítulo 22. Fundamentos de conexión a redes

Tabla de contenidos

22.1. Direcciones IP y routing
22.2. IPv6: la próxima generación de Internet
22.3. Resolución de nombres
22.4. Configuración de una conexión de red mediante YaST
22.5. Configuración manual de la red
22.6. smpppd como asistente para la conexión telefónica

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

TCP

(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.

UDP

(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.

ICMP

(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.

IGMP

(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).

Figura 22.1. Modelo de capas simplificado para TCP/IP

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 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.

Figura 22.2. Paquete TCP/IP sobre Ethernet

Paquete TCP/IP sobre Ethernet

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.

22.1. Direcciones IP y routing

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”.

22.1.1. Direcciones IP

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).

22.1.2. Máscaras de red y redes

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

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 Ejemplo 22.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 é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”.

Tabla 22.3. Rangos para direcciones IP privadas

Red/máscara de red

Rango

10.0.0.0/255.0.0.0

10.x.x.x

172.16.0.0/255.240.0.0

172.16.x.x172.31.x.x

192.168.0.0/255.255.0.0

192.168.x.x


SUSE LINUX Manual de administración 9.3