Capítulo 6. Administración de una red con Linux

Tabla de contenidos
Redes, protocolos e Internet
Dispositivos para interconexión y Linux
Direcciones, enrutamiento y transporte
Protocolos de soporte y de usuario

Público y logros

Administrador de Red del colegio, quien solucionará problemas con una red LAN de la institución o la instalará de acuerdo a la plataforma de referencia.

Redes, protocolos e Internet

Indicadores de Logros

Lectura: Redes, protocolos e Internet

Las redes de computadores constan de medios de transmisión (e.g cables), dispositivos (e.g tarjetas de red) y programas (e.g módulos para TCP/IP del kernel) que permiten transmitir información entre computadores. Pueden clasificarse de acuerdo al tamaño (WAN de cobertura amplia como un país, MAN de cobertura metropolitana o LAN para edificios o salones) o de acuerdo a la estructura de sus protocolos (e.g el módelo OSI que consta de 7 capas de protocolos: física, enlace, red, transporte, sesión, presentación y aplicación), o de acuerdo a la distribución física de los medios de transmisión y dispositivos (e.g estrella, bus).

LAN es acrónimo de Local Area Network, con este término se hace referencia a redes pequeñas (comúnmente menos de 100 computadores) cuyos computadores están generalmente en un mismo espacio físico. Los principales usos de una red LAN son:

  • Compartir información distribuida en los discos duros o medios de almacenamiento de cada computador.

  • Emplear recursos de un computador desde otro, o recursos conectados en red (por ejemplo una impresora).

  • Compartir una conexión a Internet.

  • Conformar una Intranet con servicios como correo, web, ftp, news.

Este tipo de redes, es apropiada para conectar pocos computadores (menos de 100) en un espacio relativamente pequeño.

Un protocolo [1] es una serie de reglas que indican como debe ocurrir una comunicación entre dos computadores de una red; las reglas de un protocolo son seguidas por programas que se ejecutan en los computadores interconectados. Su computador puede tener procesos activos que esperan conexiones de otros computadores o procesos para iniciar protocolos (por ejemplo con ps -ax es posible que vea: portmap, inetd, lpd, xfs, postgres). A estos programas, que esperan conexiónes, se les llama daemons o servidores. Usted puede iniciar un protocolo con otro computador empleando el programa cliente adecuado, por ejemplo el cliente ping con:


ping 127.0.0.1
	
iniciará el porotocolo de ping (ICMP, ECHO_REQUEST) con el computador con dirección IP 127.0.0.1 (su propio computador), un programa de su computador estará pendiente de conexiones de este tipo y seguira el protocolo[2].

Conjunto de reglas que determinan como se realiza la comunicación entre computadores conectados a una red.

Internet es una red mundial de redes que están interconectadas vía satelite, por cables submarinos, fibra óptica y muchos otros medios de transmisión financiados por estados y organizaciones. Las heterogeneidad de las redes que interconecta (e.g una LAN de un colegio con Linux, una LAN de una empresa con Windows, una WAN de un banco con X.25) es superada con los protocolos TCP/IP. Linux soporta bien estos protocolos y la red que sugerimos se basa en este protocolo. Por esto y para facilitar la conexión de una LAN a Internet, en esta sección se presenta una introducción a los aspectos de redes de Internet; los temas introducidos serán tratados en detalle en otras secciones aplicandolos especialmente al caso de redes Ethernet (ver Dispositivos para interconexión y Linux, Direcciones, enrutamiento y transporte y Protocolos de soporte y de usuario).

Internet

Hay muchas personas que aportan su trabajo (muchos de forma voluntaria) para mantener Internet en funcionamiento, para solucionar problemas que ocurren y para planear su futuro. Quienes dirigen el rumbo de Internet están organizados en comités encargados de diversas actividades:

IETF Internet Engineering Task Force

Compuesta enteramente de voluntarios autoorganizados que colaboran en la ingeniería requerida para la evolución de Internet, es decir identifican problemas y proponen soluciones. Quien lo desee puede participar, asisitir a las reuniones, ayudar a dar forma o proponer estándares. La IETF recibe borradores (Internet Draft) de autores que renuncian al control del protocolo que proponen. Tras refinamiento estos borradores pueden llegar a ser RFC (Request for Comment) de uno de estos tipos: estándar propuesto, protocolo experimental, documento informativo o estándar histórico. Un estándar propuesto puede después convertirse en borrador de estándar y en casos muy contados en estándar de Internet.

ISOC Internet Society

Organización sin ánimo de lucro, da soporte legal y financiero a otros grupos.

IESG Internet Engineering Steering Group

Ratifica o corrige estándares propuestos por la IETF.

IAB Internet Architecture Board

Planeación a largo plazo y coordinación entre las diversas áreas.

IANA Internet Assigned Numbers Authority

Mantienen registros de diversos nombres y números asignados a organizaciones. Es financiado por ICANN (Internet Corporation for Assigned Names and Numbers).

La interconexión de las redes conectadas a Internet y su mantenimiento se basa en el protocolo IP, que asigna a cada red y a cada computador un número único (dirección IP) que permite identificarlo y enviarle información.

Protocolo en el que se basa Internet. Este procotolo asigna a cada computador un número único que permite ubicarlo.

La asignación de direcciones IP[3] es manejada por IANA, que a su vez la ha delegado a registros en diversas regiones. Las regiones de América y Africa debajo del Sahara son manejadas por el registro ARIN (American Registry for Internet Numbers), que recibe solicitudes para asignar bloques a provedores de servicio a Internet (ISP), estos proveedores deben contar con la infraestructura para conectar sus computadores a Internet (e.g con cables submarinos, vía satélite) y a su vez ofrecen bloques de direcciones y conexión a otros proveedores o a usuarios.

Dada que la comunicación de dos computadores es un proceso complejo (aún más dada la variedad de redes conectadas a Internet), además de una basta infraestructura física, Internet se basa en varios protocolos que siguen todos los computadores y enrutadores conectados. Algunos de estos protocolos dependen de otros, dando lugar a varias capas de protocolos: aplicación, transporte, internet, enlace[4]. El siguiente diagrama presenta algunos protocolos en las diversas capas de una red TCP/IP sobre una red física Ethernet o sobre una conexión con modem:


Capa de aplicación:
     Protocolos de usuario             FTP Telnet ssh   http   SMTP ...
                                        |     |     |      |    | 
     Protocolos de soporte    DNS       |     |     |      |    | 
                             |   \      |     |     |      |    |
Capa de transporte           UDP   TCP --------------------------
                              \  /
Capa de internet (red):      IP -  ICMP                  
                             ___|___
                            /       \
Capa de enlace:	          ARP        PPP
                           |          |
Capa física:	       Ethernet     Modem
                        |              | 
                     Par trenzado    Línea telef.

Capas de una red TCP/IP sobre algunos medios físicos

Capa física

Esta capa de red se refiere a conexiones eléctrica y mecánicas de la red. Por ejemplo codificiación/decodificación de información y arbitramento en caso de coliciones.

Se refiere a las conexiones eléctricas y mecánicas de la red. Ejemplos de protocolos a este nivel son: Ethernet, Inalámbrico IEEE 802.11, Modem y fibra óptica. La información por transmitir se codifica en últimas como una señal electríca que debe transmitirse por cables o como una señal electromagnética (luz, ondas). En medios de transmisión compartidos por más computadores (Ethernet, fibra óptica, aire), el protocolo de este nivel debe tener en cuenta: codificación/decodificación de información del bus al medio de transmisión y arbitrar en caso de colisión de datos. Este tipo de protocolos es implementado por hardware, comúnmente por una tarjeta o dispositivo dedicado que se debe conectar al bus de cada computador. Las tarjetas de los computadores que se comunican se conectan empleando el medio de transmisión. Linux, a nivel físico soporta dispositivos ethernet, fddi, token ring, ax25 y cuenta con controladores para diversos modems. En el caso particular de Ethernet, existen en el momento de este escrito estándares para 10Mbps, 100Mbps, 1Gbps y 10Gbps, la versión de 10Mbps puede emplearse en estrella (i.e. todos los computadores conectados por cables de pares trenzados a un concentrador) o en bus (i.e. un sólo cable coaxial al que se conectan las tarjetas de todos los computadores), puede configurarse como Half-duplex o como Full-Duplex. Describiremos el uso del esquema más popular y económico en este momento: 10Mbps, Half-duplex con cable de pares trenzados [5]. Cada tarjeta Ethernet tiene una dirección única (llamada dirección MAC), que en una transmisión permite indicar tarjeta fuente y tarjeta destino (la dirección MAC de ambos es transmitida también).

Capa de enlace

En el caso de redes Ethernet la capa de enlace corresponde al protocolo ... Este protocolo permite traducir direcciones IP a direcciones MAC.

Los protocolos de esta capa permiten interconectar la capa de internet (IP) con la red que se use. En el caso de una red Ethernet se trata del protocolo ARP[6] que en Linux está implementado como parte de IP, y que se encarga de traducir direcciones IP a direcciones MAC [7].

Cada vez que un computador de una LAN identifica una dirección IP de otro computador conectado a la LAN y su correspondiente dirección ARP, almacena la información en una tabla (se borra automáticamente después de 15 minutos o manualmente si se instala el paquete iproutecon algo como ip neigh delete 192.168.1.32 dev eth0). Esta tabla puede consultarse en /proc/net/arp o con ip neigh show.

Para monitorear una red Ethernet y detectar nuevos computadores que se conecten, puede emplearse el programa arpwatch (paquete arpwatch) que cada vez que detecta cambios envía un correo a la cuenta root.

En el caso de una conexión por modem el protocolo es PPP[8], que se encarga de establecer, terminar y verificar la conexión. Durante la conexión autentica el computador que se conecta ante el servidor (bien con el protocolo PAP o con CHAP) y durante la operación preparar los paquetes enviados por otros protocolos (como IP) para transmitirlos por modem.

Capa de internet

Este protocolo fragmenta y envia información empleando la capa física. Cada computador se identifica con un número de 4 bytes (en la versión 4 de este protocolo).

En esta capa la información es fragmentada y envíada empleando el protocolo de la capa física. Los protocolos de esta capa deben tener en cuenta la retransmisión de la información en caso de error al enviar y el verificar información recibida. En esta capa está el Internet Protocol (IP) que es un protocolo diseñado para Internet y del cual hay dos versiones: IPv4 e IPv6. Describiremos la versión 4 [9] (la versión 6 fue diseñada para soportar más computadores conectados a Internet aunque en el momento de este escrito no es ampliamente usada [10]).

Este protocolo permite la transmisión de paquetes (llamados datagramas) en redes donde cada computador interconectado se identifica con una dirección única. Tales direcciones están diseñadas para interconectar varias redes, identificar los computadores que pertenecen a una red (empleando una máscara de red que indica que parte de la dirección del computador corresponde a la dirección de la red) y facilitar el enrutamiento. Si el medio de transmisión lo requiere el protocolo IP se encarga de la división de los datagramas en paquetes más pequeños para su tranmisión y de la posterior reagrupación (fragmentación), el tamaño máximo que un paquete puede tener para un protocolo de nivel físico se llama MTU (Maximal Transfer Unit), en el caso de Ethernet es 1500 bytes.

Cada datagrama por transmitir es pasado a la capa de IP por otro protocolo de una capa superior (e.g TCP) junto con dirección destino, IP mantiene una tabla de enrutamiento que asocia direcciones destino con compuertas (computadores intermediarios en inglés gateways). Así que envía el datagrama empleando el nível físico a la dirección de la compuerta que mantenga en su tabla de enrutamiento. La tabla de enrutamiento puede ser modificada manualmente (con el programa route) o puede ser modificada automáticamente cuando una compuerta envía un mensaje indicando la dirección de otra compuerta más apropiada para llegar a un dirección. Hay siempre una compuerta por defecto a la que se envían paquetes que IP no sepa como enrutar.

Con este programa puede modificarse la tabla de enrutamiento del protocolo IP.

Este protocolo no es fiable, no asegura que un paquete llegue a su destino y no realiza retransmisiones. Para informar algunas situaciones anomalas emplea el protocolo ICMP [11].

Este protocolo es empleado por IP para transmitir mensajes de error y para realizar algunas consultas para verificar el funcionamiento de una red o medir (e.g eco, estampilla de tiempo).

Los kernels 2.2 y 2.4 cuentan con buenas implementaciones de IPv4 con multicasting nivel 2 (RFC 1112), enmascaramiento [12], con posibilidad de enrutar paquetes y de filtrar paquetes. Entre las posibilidades no estándar que ofrece están: balanceo de carga si hay múltiples provedores de acceso a Internet, políticas avanzadas de enrutamiento (por ejemplo con base en usuarios), túneles que permiten interconectar dos redes con la misma dirección de red pero con una red entre ellas, IPv6, y otras que se describen en: http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.iproute2.explore.html

Capa de enlace

En Internet este protocolo está en la capa de enlace, se encarga de procurar una conexión continua, libre de errores.

Los protocolos de esta capa asegura una conexión continua y posiblemente libre de errores entre emisor y receptor. Un protocolo de esta capa debe tener en cuenta mantener los paquetes en orden y asegurar que están completos. Esto se requiere porque el nivel de red puede enrutar diversos paquetes de forma diferente. En esta capa hay dos protocolos: TCP[13] y UDP[14]. El primero es fiable, asegura que la transmisión enviada sea recibida, UDP por su parte no busca confirmar que la información llegue a su destino (aunque permite hacer broadcast y multicast mientras TCP no). Ambos protocolos emplean puertos para permitir más de una conexión con uno o más computadores, un puerto se identifica con un número entre 0 y 65536, los primeros 1024 números sólo pueden ser usados por servidores iniciados desde la cuenta root, los demás pueden ser usados por todos los usuarios.

En este archivo pueden examinarse conexiones a puertos TCP.

En este archivo pueden examinarse conexiones a puertos UDP.

Puede examinar información sobre conexiones a puertos TCP en /proc/net/tcp y a puertos UDP en /proc/net/udp.

Capa de aplicación

Consta de protocolos empleados por aplicaciones con propósitos específicos. Emplean los protocolos de la capa de transporte para establecer comunicación. Los protocolos de esta capa pueden dividirse a su vez en protocolos de usuario y protocolos de soporte. Los primeros son para programas empleados directamente por usuarios y los segundos son empleados por el sistema operativo o por otros protocolos.

Protocolos de usuario

Telnet

Telnet está definido en el RFC 854 y complementado en el RFC 1123 Permite la operación remota de otro computador (ver telnet y ssh y Configuración de servicios básicos), además puede usarse para interactuar con otros protocolos (por ejemplo puede interactuar con el protocolo de correo SMTP de su propio computador ---puerto 25--- con telnet localhost 25)

(File Transfer Protocol) FTP

FTP está definido en el RFC 959 y complementado en el RFC 1123, permite transmisión de archivos (ver FTP y Servicio FTP)

TFPT

Está definido en el RFC 1350 (Trivial File Transfer Protocol), es análogo a FTP pues permite transmitir archivos, aunque es mucho más simple, es apropiado para transmitir el sistema operativo a computadores sin disco duro que arrancan por red

SMTP

SMTP se definió en el RFC 822 y se complementó en el RFC 1123 (Simple Mail Transfer Protocol) que especifica como se realiza la transmisión de correo electrónico (ver Correo electrónico y Servicio de correo).

Protocolos de soporte

DNS

Definido en los RFC 1034 y 1035 y complementado en el RFC 1123. Es empleado para dar nombres descriptivos a direcciones IP (e.g structio.sourceforge.net es el nombre DNS de la dirección 66.35.250.209)

BOOTP

Empleado por algunas estaciones sin disco para solicitar su dirección IP

SMMP

Empleado para monitorear uso de una red.

Lecturas recomendadas: Redes, protocolos e Internet

Ejercicios: Redes, protocolos e Internet

1. Discuta en clase las posibilidades que ofrece Linux en una red LAN y estrategias para aprovecharlas en su institución.
2. Cotice con uno o más proveedores de acceso a Internet posibilidades y costos para dar conexión a Internet esporádica o permanente a su colegio.
3. Consulte la posibilidad de emplear fibra óptica como medio de transmisión con Linux.

1. Discuta en clase las posibilidades que ofrece Linux en una red LAN y estrategias para aprovecharlas en su institución.

Cómo se documenta en estas guías puede usarse en todos los clientes como sistema de escritorios además un servidor puede configurarse para: dar conexión a Internet a todos los computadores, servidor de nombres, servidor de correo, servidor web, servidor ftp, compartir archivos con NFS, centralizar manejo de usuarios con NIS, compartir impresora, dar acceso remoto de forma segura con ssh, servidor cvs. Además puede servir por ejemplo como: servidor de nntp, servidor de ntp, servidor de bases de datos relaciones, servidor con clientes delgados (sin disco duro).

2. Cotice con uno o más proveedores de acceso a Internet posibilidades y costos para dar conexión a Internet esporádica o permanente a su colegio.

La propuesta de un colegio colombiano en 2002, incluyendo costos está disponible en: http://www.gfc.edu.co/proyectos/conexioninternet/conectainternet.html

3. Consulte la posibilidad de emplear fibra óptica como medio de transmisión con Linux.

Para transmisión por fibra óptica se emplea el protocolo ANSI FDDI (Fiber Distributed Data Interface), que puede transmitir información hasta 100Mb por segundo (datos en http://www.iol.unh.edu/training/fddi/htmls/ y http://www2.rad.com/networks/1995/fddi/fddi.htm). Puede emplearse para LANs aunque soporta una distancia máxima de 100Km. De acuerdo al Net-HOWTO se usan tarjetas que se conectan al computador, de forma análoga al caso de Ethernet. De acuerdo a Hardware-HOWTO son soportadas las tarjetas DEC DEFA (EISA) y DEFPA (PCI) en kernels posteriores al 2.0.24.

Notas

[1]

Para ampliar el significado de los términos técnicos introducidos en estas guías (como protocol o daemon), se sugiere consultar el diccionario FOLDOC en su sistema (ver Edición de texto) o en Internet http://foldoc.doc.ic.ac.uk/foldoc

[2]

El programa que sigue este protocolo hace parte de la implementación de IPv4 en el kernel (archivo net/ipv4/icmp.c).

[3]

Puede verse más sobre asignación de IPs en el RFC 2050 y sobre asignación de direcciones in redes IP privadas en RFC 1918.

[4]

El RFC 1122 presenta las capas de una red TCP/IP

[5]

El estándar que define este esquema es IEEE 802.3, que se basa en el uso de un sólo medio de transmisión compartido por todos los dispositivos en el que sólo trasmite un sólo dispositivo durante un tiempo para evitar colisiones, se elige el siguiente dispositivo por transmitir con el algoritmo CSMA/CD --cuando un dispositivo detecta que la línea está libre transmite parte de la información si detecta colisión da oportunidad de transmisión a otros un intervalo aleatorio de tiempo.

[6]

ARP se define en el RFC 826

[7]

Un computador envía un mensaje a todos los demás de la red (broadcast que es posible en Ethernet), solicitando la dirección MAC de una dirección IP, el dispositivo con esa MAC responde enviando su dirección MAC al dispositivo que hizo la solicitud.

[8]

PPP se describe en el RFC 1661.

[9]

El protocolo IPv4 está descrito en el RFC 791, aunque puede verse una descripción en conjunto con otros protocolos en el RFC 1122

[10]

El sitio de desarrollo de IPv6 para Linux es http://www.linux-ipv6.org

[11]

ICMP Internet Control Message Protocol, se describe en el RFC792, permite enviar mensajes de error (e.g dirección inalcanzable, tiempo excedido) y algunos mensajes para hacer consultas (e.g eco, estampilla de tiempo).

[12]

Enmascaramiento del inglés masquerading

[13]

TCP se describe en el RFC 793 y se complementa y corrige en el RFC 1122

[14]

UDP está descrito en el RFC 768 y corregido en el RFC 1122