View
128
Download
16
Category
Preview:
Citation preview
Indice
i
Contenido
Introducción a Networking TCP/IP ................................................................... 1
Introducción ............................................................................................................... 3 Antecedentes Históricos ....................................................................................................... 4
Comprendiendo TCP/IP ........................................................................................... 5
Sección 1: Definición y Arquitectura de TCP/IP ............................................... 9
Qué es TCP/IP? ....................................................................................................... 13 RFC´s, Request for Comments ........................................................................................... 14
Capas del Protocolo ................................................................................................. 15 Capa Acceso a Redes ......................................................................................................... 15 Capa de Internet ................................................................................................................. 16 Capa de Transporte ............................................................................................................ 16 Capa de Aplicaciones ......................................................................................................... 16
La importancia de los números de puerto ............................................................. 17
El modelo OSI .......................................................................................................... 18
Terminología TCP/IP y Protocolos ........................................................................ 20 Componentes del Frame ..................................................................................................... 21
ARP, Address Resolution Protocol ....................................................................... 22
ICMP, Internet Control Message Protocol ........................................................... 25
IP, Internet Protocol................................................................................................ 26
TCP, Transmission Control Protocol .................................................................... 27
UDP, User Datagrama Protocol ............................................................................. 28
Herramientas para TCP/IP .................................................................................... 29 ifconfig ............................................................................................................................... 29 Route .................................................................................................................................. 31 Herramienta ARP ............................................................................................................... 33 Herramienta netstat ............................................................................................................ 35 Herramienta ping ................................................................................................................ 40 Herramienta tcpdump ......................................................................................................... 45 Herramienta traceroute ....................................................................................................... 51 Herramienta ethereal .......................................................................................................... 55 Utilería IPROUTE2 ............................................................................................................ 59
Sección 2: Classfull IP Addressing .................................................................. 61
Qué son las Direcciones IP? .................................................................................... 65 Convirtiendo direcciones IP ............................................................................................... 65
Clases de Redes ........................................................................................................ 67
Informática Integrada Internetworking
ii
Redes Clase A .................................................................................................................... 67 Redes Clase B .................................................................................................................... 68 Redes Clase C .................................................................................................................... 68 Redes Clase D .................................................................................................................... 68 Redes Clase E ..................................................................................................................... 68 Guía de Direcciones IP ....................................................................................................... 69
Máscara de Red ....................................................................................................... 70 Subnet Mask Bits ............................................................................................................... 71 Examen 2-1 ........................................................................................................................ 73
Sección 3: Classless Addresing y Enrutamiento IP ......................................... 77
Definiendo Subnetting ............................................................................................. 81 Implementando una Sub-red .............................................................................................. 81 Examen 3-1 ........................................................................................................................ 85 Examen 3-2 ........................................................................................................................ 86
Supernetting ............................................................................................................. 89 Examen 3 - 3 ...................................................................................................................... 91
CIDR, Classless Inter-Domain Routing ................................................................ 93 CIDR y Clases de Redes .................................................................................................... 93 IP´s disponibles para Hosts ................................................................................................ 96
Sección 4: Implementando IPv6 ....................................................................... 97
Historia de IPv6 ..................................................................................................... 101 IPv5 .................................................................................................................................. 102 Network Address Translation ........................................................................................... 103
Características de IPv6 ......................................................................................... 104 Dirección de un espacio más grande ................................................................................ 104 Accesibilidad global ......................................................................................................... 105 Los niveles de direccionamiento jerárquico ..................................................................... 105 Encabezado eficiente ........................................................................................................ 106 Etiqueta de flujo ............................................................................................................... 106 Cabezal ............................................................................................................................. 107 Movilidad ......................................................................................................................... 108 Seguridad ......................................................................................................................... 108 Transición ......................................................................................................................... 109
Encabezado IP ....................................................................................................... 110 Formato básico del encabezado IPv6 ............................................................................... 110
Representación de las direcciones IPv6 ............................................................... 112 Representación preferida de direcciones IPv6.................................................................. 112 Representación comprimido ............................................................................................. 113 Examen 4.1 ....................................................................................................................... 115
Sección 5: Encaminamiento IP ................................................................. 117
Encaminamiento .................................................................................................... 121 Configuración del encaminamiento .................................................................................. 121
Indice
iii
La tabla de encaminamiento ............................................................................................. 122 Adición y eliminación de rutas estáticas .......................................................................... 123
Encaminamiento dinámico ................................................................................... 126 Protocolos de encaminamiento ......................................................................................... 126 Otros protocolos ............................................................................................................... 127 Demonios de encaminamiento ......................................................................................... 127 Casos complejos de encaminamiento ............................................................................... 128 Ejecución de gated ........................................................................................................... 129 Configuración de /etc/gated.conf ..................................................................................... 129 Configuración del encaminamiento de un host ................................................................ 130 Configuración de una pasarela interior............................................................................. 130
Sección 6: Protocolo de Configuración Dinámica de Hosts ......................... 133
Introducción al Servicio DHCP ............................................................................ 137 Las raíces del DHCP ........................................................................................................ 137 Los mecanismos de DHCP ............................................................................................... 138 El servidor DHCP ............................................................................................................ 138
Descarga, compilación e instalación de un servidor DHCP. ............................. 139 Configuración del servidor DHCP ................................................................................... 139 Declaraciones ................................................................................................................... 140 Parámetros ........................................................................................................................ 141 Opciones ........................................................................................................................... 144 Ejemplo de dhcpd.conf ..................................................................................................... 144 Comportamiento general en tiempo de ejecución ............................................................ 145
El Demonio DHCP del Cliente ............................................................................. 146 Descarga, compilación e instalación de un cliente DHCP ............................................... 146 Configuración del cliente DHCP ...................................................................................... 146 Administrando las máquinas a distancia .......................................................................... 148 Examen 6-1 ...................................................................................................................... 150 Examen 6-2 ...................................................................................................................... 152
Introducción a Networking TCP/IP
Informática Integrada Internetworking
2
Introducción a TCP/IP Networking
3
Introducción
Para mantener una comunicación efectiva y conectarse con locaciones remotas, las organizaciones necesitan configurar y administrar redes de computadoras. Con Linux Red Hat encontrará un conjunto de servicios de redes basados en protocolos de networking estándar y de tecnologías que ofrecen fiabilidad y una infraestructura de red ínter operable. Cuenta con servicios y herramientas para la instalación, configuración, administración y soporte para hacer más sencilla la infraestructura de su red. Una infraestructura de red cuenta con los siguientes elementos:
Intranet: Se refiere a la red privada dentro de una organización que usualmente cuenta con distribución de información interna. Una Intranet también puede ser llamada LAN. Incluye servicios como la distribución de documentos y software, accesos a bases de datos y entrenamiento. Además de servicios de archivos e impresoras compartidas, una Intranet usualmente utiliza aplicaciones asociadas con Internet como páginas Web, navegadores para Internet, sitios FTP, e-mail, newsgroups y listas de correo a las que sólo la organización tiene acceso.
Accesos Remotos: Provee de trabajo en red remoto para las telecomunicaciones, trabajadores móviles y administradores de sistemas que necesitan monitorear y administrar servidores de múltiples sucursales. Todos los servicios deben estar disponibles para los usuarios conectados en la LAN remota, incluye por supuesto compartir archivos e impresoras, acceso Web y mensajería a través de la conexión remota.
Oficinas Remotas: Parte de una organización se encuentra ubicada geográficamente en un área separada. Una LAN de una oficina remota conectada a una red corporativa forma una WAN. La conexión WAN es una conexión remota compartida a la red que habilita a usuarios en la oficina remota la comunicación y el uso de los recursos compartidos a la organización entera. Los enlaces WAN son persistentes, lo que involucra disponibilidad conectarse cuando se necesita y desconectarse cuando no se requiere.
Internet: La colección de redes mundiales y routers que utiliza la suite de TCP/IP para comunicarse una con otra. Internet comprende líneas para la comunicación de alta velocidad entre la mayoría de los nodos o computadoras, que se clasifican en comerciales, educacionales de gobierno, milicia, etc.
Extranet: Una extranet es una red “colaborativa” que utiliza tecnologías de Internet para facilitarse las relaciones de confianza entre empresas con proveedores clientes u otra relación de negocio. Esta compuesta por un lado de la Intranet o red corporativa y por otro lado las compañías que pueden accederla o también puede ser una red compartida de varias compañías que colaboran entre si. La información compartida debe estar disponible solo para las partes que colaboran y en algunos casos la información puede ser pública.
Para levantar una infraestructura de red adecuada, requiere de los conocimientos y la configuración de los protocolos de red necesarios, settings y servicios que serán utilizados para cada elemento dentro de la estructura de red.
TCP/IP provee de la conectividad básica para su red, es una industria estándar que comprende un set de protocolos de red y los servicios más importantes. Hoy en día se
Informática Integrada Internetworking
4
ha convertido en el protocolo por excelencia para las telecomunicaciones y la ínter conectividad. Existen actualmente diferentes versiones de ésta suite de protocolos para diferentes sistemas operativos y para diferentes proveedores de hardware, todos por supuesto; orientados a la comunicación y siguiendo los estándares establecidos.
La escalabilidad de TCP/IP se adapta a todos los tamaños de redes. Red Hat incluye todas las implementaciones y requerimientos estándar de la IETF para hosts y servidores TCP/IP.
TCP/IP depende de la resolución de nombres para trabajar apropiadamente. La resolución de nombres es un proceso que ofrece a los usuarios una manera sencilla de recordar los nombres de los servidores en vez de utilizar direcciones numéricas para identificarlos dentro de la red.
Antecedentes Históricos
Las redes están compuestas generalmente por un pequeño número de máquinas localizadas en el mismo edificio, o incluso en una sola planta que están interconectadas para proporcionar un entorno de trabajo homogéneo. Es típico que se quiera compartir archivos entre estos nodos, o ejecutar aplicaciones distribuidas en diferentes máquinas.
Estas tareas requieren una aproximación completamente diferente a las redes. En lugar de reenviar archivos completos con una descripción del trabajo, todos los datos se fragmentan en pequeñas unidades (paquetes), que se envían inmediatamente al nodo destino, donde son reensamblados. Este tipo de redes son llamadas redes de intercambio de paquetes. Entre otras cosas, esto permite ejecutar aplicaciones interactivas a través de la red. El costo de esto supone, por supuesto, una complejidad adicional al software.
La solución que han adoptado los sistemas es conocida como TCP/IP. El TCP/IP tiene sus orígenes en un proyecto de investigación fundado en Estados Unidos por el DARPA (Defense Advanced Research Projects Agency, Agencia de Proyectos Avanzados de Investigación en Defensa) en 1969. Una vez comprobado el éxito, esta red ARPANET fue operativa en 1975.
En 1983, fue adoptado como estándar el nuevo conjunto de protocolos TCP/IP, y todos los nodos de la red empezaron a utilizarlo. Cuando ARPANET por fin dio paso a Internet (con la propia ARPANET integrándose en su existencia en 1990), el uso del TCP/IP se había extendido a redes más allá de la propia Internet. Las más destacables son las redes locales UNIX, pero con la llegada de los equipos telefónicos digitales rápidos, como la RDSI, también tiene un futuro prometedor como transporte en redes telefónicas.
Introducción a TCP/IP Networking
5
Comprendiendo TCP/IP
Actualmente los sistemas de redes están construidos sobre un concepto de “niveles o capas de servicio” cuando nosotros tratamos de mandar información de un lugar a otro corremos el peligro de perder algunos bits en el trayecto. Definiendo cuales serían los diferentes niveles en este proceso tenemos que:
La primera capa de nuestro sistema lo compone el hardware, es decir, la computadora, tarjeta de red y algunos cables que no son precisamente muy confiables. Después, una capa de software básico que nosotros agregamos y que nos permite aislar los problemas del hardware. Se incorpora otra capa más de software para dar al software básico algunas características deseadas y continuamos agregando funcionalidad e inteligencia a la red, capa por capa, hasta que se obtiene algo amigable y útil.
Bien, con esta sencilla explicación se comenzará la descripción de uno de los protocolos de comunicación mas usado en el mundo por cientos de diferentes empresas que elaboran tanto software como hardware para las telecomunicaciones. La descripción de éste sistema de protocolos inicia con una sencilla analogía desde como funciona y como es el flujo de la información en los diferentes niveles o capas que lo componen. Igualmente, sigue la misma ruta de transmisión.
Un modelo excelente para describir el funcionamiento de TCP/IP es el Servicio Postal. El Servicio Postal es una red de conmutación de paquetes, donde nosotros contamos con una red dedicada a enviar información que se mezcla con los mensajes de otras personas, se ponen en un conducto, se transfieren a otra oficina postal y se clasifica todo nuevamente. Aunque las tecnologías son completamente diferentes, el Servicio Postal es sorprendentemente similar.
Un cable puede llevar información de un lugar a otro, pero cómo lo hace? Las redes son un conjunto de computadoras que están conectadas por todo el mundo por unos dispositivos llamados routers (mejor conocidos como ruteadores o enrutadores) que su función principal es interconectar fragmentos físicos de redes, las cuales pueden ser Ethernets, token rings, etc.
Las líneas telefónicas y las redes Ethernets son el equivalente a los camiones y aviones del Servicio Postal, es decir, el medio a través del cual el correo va de un lugar a otro. Los routers son las sucursales postales; estos equipos deciden cómo dirigir la información " o los paquetes de información", de la misma forma que una oficina postal decide cómo distribuir los sobres por correo.
No todas las oficinas de correos o todos los routers cuentan con una conexión a cada uno de los otros destinos de la red; es decir, si se envía un sobre por correo desde Mérida con destino a Tijuana, el sistema no reserva un avión especial para llevarlo, sino que envía el sobre a una sucursal de correo y ésta a su vez lo envía a otra, y así sucesivamente hasta alcanzar su destino final. Esto significa que cada sub estación sólo necesita conocer las conexiones con las que cuenta y cuál es el mejor "siguiente salto" para acercar el paquete a su destino. El protocolo trabaja de una manera similar: un router se fija en el destino de la información y decide a dónde enviarla. El router elige cuál es el enlace más apropiado para enviar el paquete.
Informática Integrada Internetworking
6
Si se quiere enviar una carta, no basta con poner el papel escrito en el buzón y esperar a que sea entregado. Es necesario poner el papel con la información dentro de un sobre, escribir el domicilio del destinatario y pegar los timbres postales. De esta misma manera que el servicio postal tiene sus reglas que definen la operación de su red, también existen reglas que definen la operación de Internet. Las reglas son los llamados protocolos.
Uno de los más importantes de nuestro esquema es el Protocolo Internet (IP) que se encarga de establecer domicilios o se asegura que los routers sepan qué hacer con la información que les llega; continuando con nuestro ejemplo, el protocolo IP tiene la función del sobre donde enviamos una carta.
Una parte de la información del domicilio va al principio del mensaje; estos datos dan a la red información suficiente para hacer la entrega del paquete. Las direcciones IP, constan de cuatro cifras de números, cada uno de ellos menor que 256 y cuando se escriben, se separan por puntos, como se muestra a continuación: 192.112.36.5. Así como los domicilios están compuestos por varias partes y son únicos en el mundo. El protocolo IP le da a todas las computadoras de la red una dirección que es única en el mundo y que como ya dijimos se divide en cuatro segmentos.
Los primeros números de la dirección IP indica a los ruteadores cuál es la red a la que pertenece el paquete y los últimos números indican qué computadora personal o equipo anfitrión de la red debe recibir la información. Consideremos la siguiente dirección:
Priv. De San Enrique 976 Col. Chapalita 04590 Guadalajara, Jal. En este caso, la ciudad es como la parte de la dirección IP que permite que el sobre llegue a la oficina postal correcta; el código postal indica el segmento de la red y el domicilio el buzón particular en el área de servicio de la oficina de correos. El sistema concluye su trabajo cuando entrega el paquete en la oficina correcta y ésta la pone en el buzón correcto. De la misma manera, el protocolo de comunicación concluye su trabajo cuando entregó la información en el ruteador correcto y éste a su vez en el equipo correcto localizados en la red.
Por muchas razones prácticas, la información enviada a través de las redes IP se divide en fragmentos de distintos tamaños llamados paquetes. La cantidad de información en un paquete normalmente se encuentra entre 1 y aproximadamente 1500 caracteres de largo. Esto previene que cualquier usuario monopolice la red, permitiendo que todos tengan un acceso equitativo.
Una de las propiedades más impresionantes de Internet es que, en un nivel básico, el protocolo IP es todo lo que se necesita para participar en la red. No será muy amigable, pero sí suficientemente capaz, siempre y cuando la información se ponga en un sobre IP. Con esto, la red tiene toda la información necesaria para llevar el paquete hasta su destino. No obstante, habrá que resolver varios problemas:
La mayoría de las transferencias de información es mayor que 1500 caracteres. El servicio postal no sería realmente funcional, si sólo recibiera tarjetas postales y no paquetes o sobres más grandes.
Introducción a TCP/IP Networking
7
En ocasiones se pueden presentar errores; así como el Servicio Postal puede perder una carta, algunas veces las redes pierden paquetes o pueden dañarse durante la transmisión. A diferencia de lo que sucede con el servicio del correo, TCP/IP puede resolver estos problemas exitosamente.
Los paquetes de información pueden llegar en desorden. Si se envían dos cartas al mismo lugar en días consecutivos no existe la garantía de que viajarán por la misma ruta o llegarán en el mismo orden. Lo mismo sucede con Internet.
Para evitar esto, la siguiente capa de la red nos permitirá enviar grandes cantidades de información y corregirá todas las alteraciones que puedan ser causadas por la red. El Protocolo de Control de Transmisión (TCP) es el protocolo que se utiliza para resolver los problemas mencionados.
¿Qué pasaría si usted deseara enviar un libro a alguien y el Servicio Postal sólo aceptara cartas? ¿Cómo podría solucionar este problema? Una de las soluciones sería arrancar todas las hojas del libro, ponerlas en un sobre cada una y depositarías en un buzón. La persona que reciba las cartas tendrá que asegurarse de recibirlas todas y volverlas a empastar en el orden original. Esto es lo que hace el protocolo TCP.
TCP toma la información que se desea enviar y la divide en segmentos, además enumera cada uno de ellos para que el receptor pueda verificar la información y ponerla en el orden adecuado.
Para que el protocolo TCP pueda enviar esta secuencia de números a través de la red, cuenta con su propio sobre que le permite "escribir" en él la información requerida para su re-ordenamiento. Un segmento de la información a transmitir se coloca en el sobre del protocolo TCP. Este sobre es puesto, a su vez, dentro del sobre del protocolo IP y posteriormente es transmitido a la red. Una vez que se pone algo en un sobre IP, la red lo puede transmitir.
Del lado del destinatario, una parte del software del TCP reúne los sobres, extrae la información de ellos y la pone en el orden adecuado. Si algún sobre se pierde en la transmisión, el receptor solicita su retransmisión al emisor. Una vez que el protocolo TCP tiene toda la información en el orden adecuado, la pasa a la aplicación del programa que esté utilizando sus servicios.
En realidad los paquetes de información no sólo se pierden en una transmisión, sino que además de esto, pueden ser modificados por el mal funcionamiento de las líneas telefónicas. TCP también resuelve este tipo de problemas. Así como coloca la información en un sobre, el protocolo calcula algo llamado número de verificación (checksum). Este número de verificación es un número que permite que el receptor TCP detecte errores en el paquete transmitido. Cuando un paquete llega a su destino, el receptor calcula el número de verificación y lo compara con el enviado por el transmisor. Si no coinciden, significa que ocurrió un error en la transmisión. El receptor deshecha el paquete y solicita la retransmisión.
El protocolo TCP crea la apariencia de que existe una conexión permanente entre dos aplicaciones, garantizando de esta forma que lo que se transmite de un lado llegue al otro.
Ahora bien, en el caso de que sea poca la información que estamos enviando TCP pueda llegar a ser demasiado complicado y no necesario; para estos efectos,
Informática Integrada Internetworking
8
contamos con un protocolo más llamado “Protocolo de Datagramas de Usuario” ó UDP que es utilizado por algunas aplicaciones en lugar del TCP. Lo cual sería, en lugar de tomar la información y ponerla en un sobre TCP para después ponerla en un sobre IP, esta aplicación pone la información en un sobre UDP y después en un sobre IP.
El protocolo UDP es mucho más sencillo porque no se preocupa por que los paquetes se pierdan, ni por que la información llegue en orden o cualquier situación de ese tipo. El UDP se usa comúnmente en programas que envían mensajes cortos y que sólo reenvían la información si no reciben una respuesta en un tiempo determinado.
Ahora que se tiene la habilidad de transferir información entre dos nodos, es posible trabajar en una capa mas que hace que la red sea más amigable. Esto es utilizando el software adecuado para la tarea que se quiera realizar y poniendo nombres con letras en lugar de sólo números para referirse a las computadoras.
La mayor parte de la gente no se emociona cuando tiene o cuenta con un flujo garantizado de bits entre dos máquinas, sin importar lo veloz que éste sea o lo exótico de la tecnología que lo hace posible. Generalmente desean usar ese flujo de bits para hacer algo útil, ya sea mover un archivo, obtener información o divertirse. Las aplicaciones son partes del software que permiten que lo anterior suceda fácilmente. De hecho son otra "capa" del software, que actúa por encima de los servicios de TCP o UDP. Las aplicaciones ofrecen al usuario una forma de realizar la tarea que se requiera.
Las aplicaciones pueden variar desde un programa hecho en casa hasta un programa propietario proporcionado por una compañía de software. Hay tres aplicaciones "básicas" sesión de trabajo remota, transferencia de archivos y correo electrónico (Telnet, Gopher, FTP, SNMP, etc.) así como otras usadas comúnmente, pero que no son estandarizadas.
Como hemos descubierto hasta ahora, TCP/IP no es otra cosa mas que una suite de diferentes protocolos de comunicación que se divide en diferentes capas y que igualmente incluye aplicaciones.
Sección 1: Definición y Arquitectura de TCP/IP
Informática Integrada Internetworking
10
Definición y Arquitectura de TCP/IP
11
Sección 1: Definición y Arquitectura de TCP/IP
Introducción
Esta sección presenta en detalle los conceptos y definiciones de los protocolos de TCP/IP, así como sus antecedentes históricos y documentos que lo regulan.
Objetivos Particulares
Al finalizar esta sección, Usted podrá:
Comprender y describir la función de TCP/IP
Identificar y describir las capas del Modelo DoD
Comparar el modelo de TCP/IP con el modelo OSI
Identificar y describir los principales protocolos y aplicaciones con TCP/IP y sus grupos
Terminología de paquetes
Informática Integrada Internetworking
12
Definición y Arquitectura de TCP/IP
13
Qué es TCP/IP?
Si queremos definir TCP/IP, podemos decir que es un conjunto de protocolos de red que proporcionan comunicaciones a través de redes interconectadas de computadoras con diversas arquitecturas hardware y variados sistemas operativos. Por ser un sistema abierto, TCP/IP incluye estándares de cómo se han de comunicar las computadoras y reglas para conectar redes y encaminar el tráfico. Las siglas significan: Protocolo de Control de Transmisiones/Protocolo Internet y se deben a los dos protocolos más importantes los cuales quedaron definidos en 1982.
Cuando se inició este experimento a finales de la década los 60‟s, fue conducido por el Departamento de Defensa de los Estados Unidos de Norteamérica y por muy pocas universidades; el origen de su investigación fue de fines bélicos principalmente por la llamada “Guerra Fría” y fue la Agencia de Recursos de Proyectos Avanzados del DoD, (DARPA), quien llevó la batuta en el proyecto. El experimento fue un éxito y surgió de él, una pila de protocolos relacionados entre sí con un solo objetivo: Conectividad entre diferentes tipos de computadoras. Rápidamente se convirtió en el estándar para redes de tipo UNIX y se extendió por todo el mundo su uso. Hoy en día, se puede encontrar en versiones comerciales y públicas de TCP/IP para todo tipo de procesador. A continuación, tenemos una lista de fechas significativas del proceso:
En 1970, los host de ARPANET empezaron a usar el Protocolo de Control de Redes (NCT).
En 1972 se dieron a conocer las primeras especificaciones de Telnet.
En 1973, se introdujo el Protocolo de Transferencia de Archivos FTP.
En 1974, TCP se dio a la luz como el Programa de Control de Transmisiones.
En 1981, se publico por primera vez el estándar del Protocolo de Internet IP.
En 1982, la Agencia de comunicaciones de la Defensa DCA y la ARPA, establecieron el Protocolo de Control de Transmisiones TCP y el Protocolo de Internet IP; como la suite de protocolos TCP/IP.
En 1983, la ARPANET emigro de NTC a TCP/IP y se convirtió en el protocolo estándar de los organismos militares para el trabajo en redes y de inter-redes.
En 1984, el Sistema de Nombres de Dominio DNS, fue introducido.
Son varias las asociaciones y organismos que intervienen en la regulación de TCP/IP, entre ellas podemos identificar a la ISOC, Internet Society como la más importante; ya que son los responsables de aprobar las tecnologías que aplican a su desarrollo. A su vez, esta es integrada por:
IAB, Internet Arqchitecture Board; le corresponde la aprobación de los RFC‟s
IANA, Internet Assigned Number Authority
IRFT, Internet Research Task Force
IETF, Internet Eingeener Task Force
Informática Integrada Internetworking
14
RFC´s, Request for Comments
Son los documentos oficiales del IETF, que definen los estándares de TCP/IP. Su propósito es proporcionar un medio a un grupo diverso de usuarios de Internet para comunicarse y conciliarse dentro de la arquitectura y funcionalidad de Internet.
Hay mucho tipos de RFC‟s pero todos tienen la misma intención y algún aspecto similar en su formato, algunos son proyectos que ambicionan llegar a ser estándares, otros tienen naturaleza de tutorial o los hay bastante técnicos; pero todos los RFC son de hecho, el medio para que Internet pueda ser organizada y permitir a sus usuarios comunicarse. En general, se clasifican en cinco categorías; Requeridos, Recomendados, Electivos, Uso limitado y No recomendados.
Si alguno de estos documentos se puede considerar como un estándar, entonces sigue un proceso de desarrollo, prueba y aceptación, que igualmente contamos con tres niveles de maduración: Propuesta de Estándar, Borrador Estándar e Internet Estándar.
Cuando un RFC‟s es aprobado y publicado se le asigna un número, un documento nunca es actualizado, más bien es publicado en un nuevo RFC y se le asigna un número nuevo. Encontramos una lista que hace referencia a los documentos que parece son los más importantes, todos ellos se pueden consultar por Internet y están al alcance de cualquier usuario que desee profundizar en la investigación.
RFC 791 Protocolo Internet (IP)
RFC 792 Protocolo de mensajes de control de Internet (ICMP)
RFC 793 Protocolo de control de transmisiones (TCP)
RFC 768 Protocolo de datagrama de usuario (UDP)
RFC 854 Protocolo de Telnet
RFC 959 Protocolo de transferencia de archivos (FTP)
RFC 821 Protocolo simple de transferencia de correo (SMTP)
RFC 822 Estándar para el formato de los mensajes de texto ARPA de Internet
RFC 1117 Números asignados
RFC 991 Protocolo oficial de ARPA en Internet
RFC 1034 DNS - conceptos y facilidades
RFC 1035 DNS - implementación y especificaciones
Una vez aclarado, vamos a describir a continuación cada una de las capas de TCP/IP y de que protocolos se componen.
TCP/IP esta dividido en cuatro capas que definen el llamado Modelo DoD, cada una de éstas, se encarga de realizar una función o tarea especifica dentro de una red y también puede incluir diferentes protocolos. Figura no.1.1.
Definición y Arquitectura de TCP/IP
15
Capas del Protocolo
Vamos a presentar una breve descripción de las capas y cómo es la comunicación entre ellas cuando se entrega o se recibe un paquete.
Capa Acceso a Redes
Es la base del modelo y el nivel mas bajo. Esta capa es responsable de poner los frames dentro de los cables y fuera de ellos; es decir, es responsable de la transmisión de los datagramas sobre la capa física de la red y hasta el destino.
Cuando llega el paquete a esta capa, se agrega un CRC y un preamble; al recibirse en el host destino se descarga el preamble y se calcula el CRC si esta correcto la dirección MAC es examinada.
CRC: Cyclic Redundancy check, cálculo matemático que se añade para verificar que no ha sido corrupto el paquete.
Preamble: Secuencia de bits que identifican el inicio del paquete.
MTU, Unidad Máxima de Transferencia: Cada tipo de medio físico tiene un tamaño máximo de trama que no se puede superar, el nivel de redes o el nivel de enlace (modelo OSI) es el responsable de obtener esta unidad y de informar a los protocolos situados por encima.
Cuando se establece una conexión, los dos hosts involucrados intercambian sus valores MSS (tamaño de segmento máximo), y que para la conexión se utiliza el valor más pequeño de los dos MSS, el cálculo es él siguientes: MTU menos 40 bytes para los encabezados de IP y TCP.
Aplicación
Transporte
Internet
Redes
Telnet
FTP
SNMP
NFS
Otros
TCP UDP
Ethernet
Token
Ring
FDDI
Otros
IP ICMP
RARP ARP BOOTP
Figura no.1.1. Descripción del modelo DOD y su referencia con TCP/IP
Informática Integrada Internetworking
16
Capa de Internet
Es el segundo nivel y es el responsable proveer la comunicación hots-to-host. Aquí es donde el paquete es encapsulado en un datagrama de Internet, los algoritmos de ruteo son cargados (ya sea estático o dinámico) y el datagrama es enviado a la capa de Redes para su transmisión. Los protocolos mas importantes son:
ARP: que es usado para obtener la dirección física de los hosts localizados en la misma red física.
ICMP: envía mensajes y reportes de error de los paquetes.
IP: es el principal responsable de la dirección y ruteo de los paquetes entre hosts y redes. IP para enviar un paquete le agrega su propio encabezado con las direcciones IP del host origen y del host destino, el protocolo que lo entrega, checksum y el TTL. Si el host esta en el mismo segmento de red lo envía directamente si no es el caso, el paquete es enviado al router.
Capa de Transporte
Provee la comunicación entre computadoras, El método deseado para la entrega de paquetes lo define el protocolo, de los cuales tenemos:
TCP que es orientado a conexión, establece comunicación para aplicaciones de transferencia larga y que requiere un mensaje de conocimiento de la información enviada.
UDP no es orientado a la comunicación por lo que no garantiza que los paquetes hayan sido entregados. Las aplicaciones que utilizan UDP son pequeñas y es su responsabilidad la entrega de los paquetes.
Son cuatro las características que hay que considerar cuando se habla de un protocolo orientado a conexión:
1. El camino para los paquetes se establece por adelantado
2. Los recursos necesarios para la conexión se establecen por adelantado.
3. Se asegura la reserva de los recursos durante toda la conexión
4. Cuando la transferencia de datos se ha completado, la conexión finaliza y se liberan los recursos.
Capa de Aplicaciones
Es la capa más alta, es donde las aplicaciones inician la cadena hacia el acceso por la red. Esta capa es la interfase con el usuario, contiene aplicaciones especificas. Entre las cuales tenemos: FTP, Telnet y SNMP, lo que son transferencias de Archivos y correos electrónicos, entre otras y varían de acuerdo al sistema operativo con el que estamos trabajando. Estas aplicaciones usualmente incluyen un cliente y un programa de servidores. A este programa se le refiere como daemon, que en la mitología griega significa “espíritu guardián”
Definición y Arquitectura de TCP/IP
17
La importancia de los números de puerto
Cada máquina en una red IP tiene al menos una dirección IP. Además, cada máquina tiene muchos procesos individuales en ejecución. Cada proceso puede llegar a ser un cliente de red, un servidor de red, o ambos. Obviamente, si el destino de un paquete se identifica sólo con la dirección IP, el sistema operativo no tiene forma de saber a qué proceso se envían los contenidos del paquete. Para resolver este problema, TCP/IP añade un componente identificado como puerto TCP o UDP. Cada conexión de una máquina a otra tiene un puerto de origen y un puerto destino. Cada puerto se etiqueta con un número entero del 0 al 65,535.
A fin de identificar cada conexión única posible entre dos máquinas, el sistema operativo tiene cuatro fuentes de información: la dirección IP origen, la dirección IP destino, el número e puerto origen y el número de puerto destino. La combinación de estos cuatro valores se garantiza que es única para todas las conexiones entre máquinas.
Una máquina inicia una conexión especificando la dirección IP y el número de puerto destino. Obviamente, la dirección IP origen ya se conoce. Pero el número de puerto origen, el valor que hará que la conexión sea única, se la asigna el sistema operativo origen. Por convención, el número es mayor a 1024 (los números de puerto del 0 al 1023 se reservan para usos del sistema). Técnicamente, la máquina origen también puede seleccionar su número de puerto origen. Sin embargo, para hacer esto ningún otro proceso puede ocupar ese puerto. Generalmente, muchas aplicaciones dejan que el sistema operativo gestione el número de puerto origen por ellas.
Conociendo esta disposición, podemos ver cómo la máquina origen A puede abrir varias conexiones para un solo servicio hacia la máquina destino B. La dirección IP y el número de puerto B siempre es constante, pero el número de puerto A será diferente en cada conexión. La combinación de IP y números de puerto origen y destino (4 datos) es única, y ambos sistemas pueden tener muchos flujos de datos (conexiones) entre ellas.
Para que un servidor ofrezca servicios, debe ejecutar programas que escuchen en un número de puerto específico. Muchos de esos números de puertos se llaman servicios bien conocidos, porque el número de puerto asociado con el servicio es un estándar aprobado. Por ejemplo, el puerto 80 es un puerto de servicio bien conocido para el protocolo http.
Los puertos se pueden ver como puntos de anclaje para conexiones de red. Si una aplicación quiere ofrecer un cierto servicio, se engancha a un puerto y espera a los clientes (a esto también se le llama escuchar en un puerto). Un cliente que quiera usar este servicio consigue un puerto libre en su nodo local, y se conecta al puerto del servidor en el nodo remoto.
Para que un cliente sepa el número de puerto adecuado, se ha tenido que llegar a un acuerdo entre los administradores de los dos sistemas para asignar estos números. Para servicios ampliamente usados, como rlogin, estos números tienen que administrarse centralmente. Esto lo realiza el IETF (o Internet Engineering Task Force), que regularmente publica un RFC denominado Assigned Numbers (Números Asignados). Describe, entre otras cosas, los números de puerto asignados a servicios reconocidos.
Informática Integrada Internetworking
18
El modelo OSI
Los sistemas abiertos son sistemas diseñados para incorporar a cualquier dispositivo independientemente de su origen y aceptar también de otros fabricantes, para esto se generan los llamados estándares.
Los estándares se catalogan de dos maneras: estándares de facto y estándares de jure. Los estándares de jure los respalda un organismo como la ISO, ANSI, IEEE, etc. y como ejemplo tenemos: el código ASCII, POSIX, y el modelo OSI. Los estándares de facto existen porque cubren los huecos dejados por las especificaciones de los estándares de jure.
Proceso/
Aplicación
Host-to-Host
Internet
Acceso a Redes
Aplicación
Presentación
Sesión
Transporte
Red
Enlace de Datos
Física
Modelo DOD Modelo OSI
Integridad de datos
Calidad del Servicio
Ruteo entre redes
Interconexión física entre
los dos puntos
Figura no. 1.2. Cuadro comparativo entre el Modelo DOD y el Modelo OSI
Interfaz de Usuario Aplicaciones
Definición y Arquitectura de TCP/IP
19
En 1978 fue introducido por la organización Internacional de Estándares (ISO), sus siglas OSI indican: Open System Interconnect. Se puede ver como un modelo funcional divido en módulos que contiene las reglas que se requieren para el intercambio de información entre redes y permite la solución para múltiples proveedores. Realmente no es mas que un concepto que describe como la comunicación de datos debería tener lugar y lo dividen en siete capas. Las cuales están descritas en la siguiente tabla.
El concepto básico de la responsabilidad de cada capa es que individualmente agregan valor a los servicios proporcionados por los conjuntos de capas inferiores. De esta manera para el nivel mas alto se ofrecerá el conjunto completo de los servicios para correr una aplicación de datos distribuida.
Cada capa es esencialmente independientemente de cada una de las otras capas. Por lo tanto, muchas de las funciones realizadas en las capas inferiores se removieron completamente de las tareas de software para reemplazarlas con hardware. La desventaja principal de la arquitectura de siete capas es la tremenda cantidad de sobrecarga requerida al agregar encabezados a la información que transmite.
Informática Integrada Internetworking
20
Terminología TCP/IP y Protocolos
Antes de intentar entender como se establecen las bases del direccionamiento IP y las clases de redes vamos a dar un recorrido entre los protocolos más importantes en cada una de las capas además de familiarizarnos con la terminología de paquetes.
Llamamos paquete a la unidad de transmisión de tamaño máximo fijo que consta de información binaria que representa datos y una cabecera que contiene un número ID, direcciones origen y destino y datos de control de errores.
Un paquete de datos se mueve de una capa a otra dentro del stack de TCP/IP, cada protocolo agrega al paquete su propia información. El paquete con la información que se le va agregando recibe diferentes nombres técnicos como identificación a los protocolos. Estos nombres son:
Segmento: un segmento es la unidad de transmisión en TCP. Este contiene un encabezado y datos aplicación.
Mensaje: un mensaje es una unidad de transmisión de protocolos no-fiables como: ICMP, UDP, IGMP. Este contiene un encabezado del protocolo y datos aplicación o datos-protocolo.
Datagrama: es la unidad de transmisión IP. Contiene un encabezado IP acompañado de datos de la capa de transporte y también se considera como no fiable.
Frame: un frame es una unidad de transmisión en la capa de interfaz de redes y consiste de un encabezado agregado por la capa de interfaces de red acompañado de datos capa IP.
El propósito de toda la información que contienen estos encabezados es ayudar a la red a que dirija los paquetes desde la máquina origen a la máquina destino. Una vez de que llega a la máquina destino, permite a la máquina decidir si quiere aceptarlo. El encabezado IP especifica qué máquina debería recibirlo y el encabezado TCP especifica qué aplicación de la máquina destino tomará los datos.
Revisando los encabezados IP y TCP, vemos los campos que podemos usar para decidir si queremos aceptar un paquete. Los campos más interesantes son: Direcciones IP origen /destino y números de puertos origen / destino.
Los números de origen y destino son obvios (dónde va el paquete y de dónde viene). Comprobar contra qué números de puerto origen y destino se conecta nos permite elegir que servicios queremos permitir.
Notas: Como el nombre de UDP (Protocolo de datagramas de usuarios) sugiere igual que se le refiera como datagrama. No hay que confundir aunque de cualquier manera, es aceptable el término para un mensaje de UDP. El término de segmento es aplicable cuando un dispositivo físico es utilizado para dividir una red. En el contexto de paquetes, el término de segmento hace referencia generalmente a un segmento TCP.
Definición y Arquitectura de TCP/IP
21
Componentes del Frame
Un frame que es el término para un paquete de datos en la capa de Interfaz de redes contiene tres componentes principales: el encabezado, datos y trailer.
Encabezado: incluye una señal de alerta para indicar que el paquete es transmitido, la dirección fuente y la dirección destino.
Datos: esta es la información actual enviada por la aplicación. Este componente varía en tamaño dependiendo de los límites configurados por la red. La sección de datos en la mayoría de las redes varia desde los .5 Kb hasta 4 Kb. En redes Ethernet el tamaño de los datos es aprox. 1.5 Kb.
Trailer: El contenido exacto varía dependiendo de la capa de interfaz de redes. Contiene un CRC (cyclical redundancy check) que es un número que se produce de un cálculo matemático en la fuente. Cuando el paquete llega al destino, el cálculo se hace de nuevo, si el resultado es el mismo indica que el paquete se ha mantenido estable.
Encabezado Ethernet (14 bytes)
Encabezado IP (20 bytes)
Encabezado TCP (20 bytes)
Datos de aplicación
Final Ethernet (4 Bytes)
Segmento TCP
Datagrama IP
De 46 a 1500 bytes dependiendo de la cantidad de datos de aplicación
Figura no.1.3. Un frame Ethernet con los encabezados de todos los componentes de un paquete TCP
Informática Integrada Internetworking
22
ARP, Address Resolution Protocol
Para que los host de una red se puedan comunicar, es necesario que entre ellos se conozcan sus direcciones físicas, la resolución de direcciones es el proceso del mapeo entre las IP de los hosts y sus direcciones físicas.
ARP, es el responsable de esta función y lo hace a través del envió de broadcast a los hosts si están en una red local o al ruteador si es remoto. Una vez que se obtiene un mapeo se guarda una entrada en su caché, así, cada vez que requiere de una dirección primero checa si no la ha resuelto ya.
El proceso ARP, incluye dos fases un ARP request y un ARP replay, y va como sigue:
1. Una petición ARP es iniciada cada vez que un host intente conectarse a otro host. Primero IP determina si esta en su mismo segmento de red para que el host cheque su caché y busque la dirección física del host.
2. Si no cuenta con el mapeo, ARP construye un mensaje solicitando “Quien es esta IP y cual es su dirección física”. Es enviado como una señal de tipo broadcast y es para todos los hosts de la red
3. Todos los hosts escuchan el mensaje y revisan si no es su dirección, en caso de no ser para ellos, ignoran la solicitud.
4. Cuando el host destino reconoce su IP entonces envía un replay (respuesta) directamente al host origen con su dirección MAC. Por supuesto, actualiza su
Figura no. 1.4. Proceso de resolución de direcciones en una red remota
ping 131.107.7.29
ARP Cache
131.107.7.7 08004..
Broadcast
ARP Cache
131.107.7.7 08009.. 131.107.7.28 08006.
Dirección IP= 131.107.7.28
Dirección MAC = 08004...
Dirección IP= 131.107.7.29
Dirección MAC = 08009...
1
2
4
3
Definición y Arquitectura de TCP/IP
23
caché con la información del host y al enviar su respuesta se establece la comunicación.
Si el host destino se encuentra en otra red, el proceso varía un poco porque el mensaje broadcast va dirigido al ruteador, él a su vez, envía un datagrama al host destino.
Cuando el host destino esta en una red remota el proceso es diferente; el broadcast que envía ARP es dirigido al router y este envía un datagrama directo al host, veamos:
1. Se inicia el proceso, primero checa el host su caché pare verificar si cuenta con el mapeo del host o de la red. Si no lo tiene, entonces revisa su caché para localizar el mapeo que corresponde al ruteador.
2. En caso de no contar con él, envía un broadcast solicitando la IP del router, mismo que le responde con su dirección IP y Física, una vez recibido el mensaje por el host inicio, éste le libera el paquete con el mensaje para el host destino y el router lo retransmite de nuevo a la computadora remota.
3. En el router, IP es el que determina si la dirección IP es remota o local, por supuesto el router utiliza ARP (Caché o Broadcast) para obtener la dirección física del próximo destino. En el caso de una red remota, checa su tabla de ruteo para obtener la dirección del Gateway.
4. Después de que el destino recibe el paquete, este formula una respuesta eco ICMP. Como el host es remoto, verifica su tabla local de ruteo para identificar la IP del router, cuando es encontrada ARP se encarga de resolver a la dirección IP.
Figura no. 1.5. Proceso de resolución de direcciones en una red remota
ping 121.107.7.29
ARP Cache
131.107.7.7 08004..
Broadcast
Router A
ARP Cache
121.107.7.7 08009..
121.107.7.28 08006.
Dirección IP= 131.107.7.28
Dirección MAC = 08004...
Dirección IP= 121.107.7.29
Dirección MAC = 08009...
ARP
Router B
1
2 3
4
5
Informática Integrada Internetworking
24
5. En cuanto es resuelta la dirección física, la respuesta ICMP es enviada al gateway y este la envía al host inicio.
La Caché ARP
La caché ARP mantiene entradas estáticas y dinámicas, las dinámicas se crean y se borran automáticamente cuando estamos resolviendo a direcciones IP y tienen un tiempo de vida de 10 minutos.
Las entradas estáticas se ingresan manualmente y se conservan hasta que la máquina es re-iniciada, o cuando se borran manualmente y cuando ARP recibe una dirección diferente, entonces se convierte en dinámica y reemplaza la anterior.
Nota: Cuando ingresamos entradas estáticas en la caché ARP, las direcciones IP hay que ingresarla con los guiones.
Adicionalmente, tenemos una entrada permanente que no se despliega cuando queremos ver los mapeos existentes en la caché, nos referimos a la dirección física para la red local.
Estructura de los paquetes ARP
Dentro de este proceso de resolución se generan dos tipos de paquetes, uno de petición (query) y uno más de respuesta, el primero es un paquete de difusión. La estructura de los paquetes ARP cuenta con los siguientes campos:
Campo Función
Hardware Type El tipo de tarjeta del host destino Protocol Type El tipo de protocolo que fue designado para el proceso
de resolución Hardware Address Length Longitud en bytes de la dirección física Protocol Address Length Longitud en bytes de la dirección de protocolo Operation (Opcode) La operación performada Sender´s Hardware Address Dirección MAC del que envía Sender´s Protocol Address Dirección IP del que envía Target´s Hardware Address Dirección MAC del que destino Target´s Protocol Address Dirección IP del que recibe
Definición y Arquitectura de TCP/IP
25
ICMP, Internet Control Message Protocol
El protocolo de mensajes de control de Internet es un protocolo de mantenimiento especificado en el RCF 792. Los mensajes ICMP se encapsulan dentro de los datagramas de IP para que puedan encaminarse entre varias redes interconectadas. Se utiliza para:
Construir y mantener tablas de ruteo
A descubrir la Unidad de Transferencia (PMTU); se basa en los mensajes del destino no alcanzables RFC 1,191.
Diagnosticar problemas (Ping y Tracert)
Ajustar el control de flujo para prevenir la saturación de enlace de encaminadores
Estructura del paquete ICMP
Todos los paquetes ICMP tienen la misma estructura y los siguientes campos:
Campo Función
Type Indica el tipo de paquete que es, echo request o echo replay
Code 8 bit que Indica una de las múltiples funciones
Checksum Número de 16 bit
Type-sepecific Data Datos adicionales que varían para cada tipo diferente
Sequence Secuencia del paquete
Identifier Identificador
Nota: ICMP es definido en el RFC´s 792.
Informática Integrada Internetworking
26
IP, Internet Protocol
Es el protocolo primeramente responsable del direccionamiento y ruteo de los paquetes entre los hosts. Protocolo de mensajería proporciona un sistema de envío de mínimo esfuerzo.
No esta orientado a la conexión, lo que quiere decir es que no establece una sesión antes del intercambio de datos. No garantiza la entrega de paquetes, Siempre hace su mejor esfuerzo pero por el camino puede ser extraviado, fuera de secuencia o duplicado.
Si IP identifica la dirección destino en una red local, transmite el paquete directamente al host. Si lo identifica en una red remota, entonces IP checa la tabla de ruteo para enviarlo al router que corresponde el host remoto.
Nota: Encontramos la definición de IP en el RFC 791.
Estructura del paquete IP
Campo Función
Version 4 bits son usados para indicar la versión de IP Header Length 4 bits para indicar él numero de 32 bits en el encabezado IP Type of service 8 bits que son usados para indicar la calidad deseada del
servicio por este datagrama en la entrega a través de los routers en la red
Total Length 13 bits usados para indicar el total de la longitud del datagrama
Identification 16 bits son usados como identificador para este específico paquete. Si el paquete es fragmentado, todos los fragmentos tienen el mismo numero de identificador
Fragmentation Flags 3 bits para las banderas del proceso o de fragmentación
Fragmentation Offset 13 bits para un contador que indica la posición del fragmento TTL 8 bits para indicar el TTL o brincos antes de ser descargado Protocol 8 bits para identificar el protocolo IP del cliente Header Checksum 16 bits usados como checksum Source Address 32 bits para almacenar la IP del host origen Destination Address 32 bits para la dirección destino Options and Padding Un múltiple de 31 bits usado para almacenar las opciones de
IP
Definición y Arquitectura de TCP/IP
27
TCP, Transmission Control Protocol
Es un protocolo de Internet orientado a conexión responsable de fragmentar los datos en paquetes que el protocolo IP envía a la red. Este protocolo proporciona un flujo de comunicación fiable y secuenciado para la comunicación de red.
El protocolo de control de Transmisión suministra a los programas un servicio orientado a conexión, fiable y de flujos de bytes. Los servicios de red se basan en el transporte TCP para iniciar la sesión, compartir archivos e impresión, duplicar la información entre controladores de dominio, transferencia de listas de examinadores y otras funciones comunes. Sólo puede utilizarse TCP para comunicaciones de uno a uno. TCP utiliza una suma de comprobación en ambas cabeceras y en los datos de cada segmento para reducir las probabilidades de corrupción que no se detecte en los datos.
Un mensaje de ACK (acknowledgment) es usado para verificar que los datos hayan sido recibidos por los otros hosts. Por cada segmento enviado, el host que recibe debe enviar un ACK.
Cuando no se recibe el mensaje de ACK, la información es retransmitida, igualmente, cuando un segmento es dañado se vuelve a enviar.
TCP Ports: Los ports de TCP proveen un específico punto para entregar mensajes. Son alrededor de 256 port los que estas definidos como uso común. A continuación unos cuantos para referencia: FTP, 21; Telnet, 23; DNS, 53; NetBios, 139. TCP este definido en el RFC 793.
Estructura del paquete de TCP
Todos los paquetes de TCP tienen dos partes, una de datos y otra el encabezado. Los campos que contiene el encabezado son los siguientes:
Campo Función
Source Port Port del host que envía 16 bits Destination Port Port del host destino. 16 bits Sequence Number La secuencia en bits transmitidos por segmento. El número
de secuencia es usado para verificar que todos los bytes fueron recibidos 32 bits
Acknowledgment Number
El número de secuencia de los bytes que host local espera recibir. 32 bits
Data Length Longitud del encabezado 4 bits Reserved Reservado para uso futuro 6 bits Flags Este campo especifica el contenido del segmento Windows Que espacio esta disponible en la ventana TCP Checksum Verifica que el encabezado no este corrupto 16 bits Urgent Pointer Cuando un dato urgente es enviado (se especifica en el
campo Flag). 16 bits
Informática Integrada Internetworking
28
UDP, User Datagrama Protocol
El protocolo de datagramas de usuarios suministra un servicio no orientado a la conexión y no fiable. Se utiliza frecuentemente en comunicaciones de datagramas IP de difusión. Puesto que no esta garantizada la recepción de los datagramas UDP, los programas que lo utilizan deben elaborar sus propios mecanismos de fiabilidad.
UDP Ports: Para uso de UDP, la aplicación debe contar con la dirección IP y el número de puerto de la aplicación destino. Un port es la entrada por donde se reciben los mensajes. Por mencionar algunos ejemplos: Netstat,15; Domain, 53; TFTP,69; SNMP, 161.
Nota: El RFC 768 define el protocolo UDP.
Estructura de un paquete UDP
Los siguientes campos son parte del encabezado de un paquete UDP:
Campo Función
Source Port Port UDP del host que envía, es un valor opcional si no se usa es igual a cero.
Destination Port Port UDP del host destino.
Message Length El tamaño del mensaje UDP
Checksum Verifica que el encabezado no este corrupto
Definición y Arquitectura de TCP/IP
29
Herramientas para TCP/IP
ifconfig
El comando ifconfig es la abreviatura de configuración de la interfaz, y se usa para
configurar las interfaces de red local. Este comando se invoca normalmente durante el inicio del sistema para configurar cada interfaz con una configuración predefinida. El comando ifconfig puede usarse también para cambiar los parámetros de interfaz
de la red después de que el sistema haya sido iniciado. Este comando se usa generalmente para depuración y/o actividades de afinación del sistema, y realiza las siguientes funciones:
enumera la configuración de cada interfaz de red definida
inhabilita/habilita cualquier interfaz de red definida
modifica los parámetros de configuración de la interfaz de red
crea seudo interfaces
El comando ifconfig proporciona un gran número de opciones y palabras clave que
se utilizan para configurar una o más interfaces. La tabla 1.1enumera las opciones y palabras clave más importantes, que se usan como modificadores con otras Opciones de línea de comandos.
Tabla 1.1. Opciones y palabras clave ifconfig.
Opción Descripción
-a Se aplica a todas las interfaces que estén instaladas actualmente en el sistema
arp / -arp Habilita o inhabilita el uso del protocolo ARP en esta interfaz;
Promisc/
-promisc
Habilita el modo promiscuo (es decir, está atento a todo el tráfico) en esta
interfaz. La opción –promisc lo inhabilita.
allmulti / -
allmulti
Habilita o inhabilita todo el tráfico de multidifusión que vaya a recibir la interfaz.
Broadcast / -
broadcast
Con el argumento dado, establece o borra la dirección de difusión para esta interfaz. Esta es una dirección de difusión de la capa de red.
Pointtopoint –
pointtopoint
Habillita un modo punto a punto para esta interfaz. La suposición básica es que es un enlace dedicado entre dos dispositivos. Si se proporciona el argumento de dirección, establece la dirección de protocolo para el otro lado del enlace. Inhabilita el modo point-to-point con la palabra pointtopoint.
up Hace que la interfaz suba o se active
down Hace que la interfaz baje o se desactive
netmask Establece la mascara de red IP para esta interfaz. El argumento especificado puede estar en la forma 255.0.0.0 o 0xff00000 (hexadecimal)
broadcast Establece la difusión IP para esta interfaz.
address Establece la dirección IP para esta interfaz. Esta debe ser una dirección IP única que no se haya asignado previamente a otro sistema.
Informática Integrada Internetworking
30
La opción -a indica que ifconfig debe presentar todas las interfaces instaladas en
el sistema, sin tener en cuenta su configuración actual o el estado operacional.
#ifconfig -a
eth0 link encap:Ethernet Hwaddr 00:10:5A:28:5D:7C
inet addr:10.0.2.201 Bcast:10.0.2.255
Mask: 255.255.255.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:822 errors:1 dropped:0 overruns:0 frame:1
TX packets:108 errors:0 dropped:0 overruns: 0 carrier:0
Collisions:0 txqueue 1 en:100
Interrupt:10 base address:0xfc00
lo Link encap:local loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
Collisions:0 txqueue1en:0
ppp0 Link encap:point-to-point protocol
POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
Collisions:0 txqueuelen:10
Para cada interfaz, la presentación incluye los siguientes campos:
Link encap. Especifica el protocolo de encapsulamiento de enlace que la interfaz
usará cuando, transmita frames de enlace de datos. Los tipos soportados incluyen Ethernet, Local Loopback y protocolo point-to-point.
HWaddr. Es la dirección de enlace de datos para el protocolo de encapsulamiento.
inet addr. Es la dirección IP asociada con esta interfaz.
Bcast. Representa la dirección de difusión de la capa de red
Mask. Representa la dirección de la máscara de subred.
Además, la presentación incluye los parámetros operacionales para la interfaz. Éstos incluyen UP, BROADCAST, RUNNING, PROMISC y MULTICAST. Estas opciones muestran el modo y el estado actual de la interfaz.
Luego, la presentación incluye campos que representan los contadores estadísticos, como paquetes recibidos (RX packets) paquetes transmitidos (TX packets), número de colisiones (collisions), y demás. Éstos suministran una manera relativamente fácil de hacer una prueba comparativa del desempeño de la interfaz. Por último, los campos restantes muestran el número de interrupción y la dirección Base de E/S del hardware de la interfaz.
Definición y Arquitectura de TCP/IP
31
Route
Si su máquina se conecta a una red con varias subredes, necesita un ruteador. En el caso donde una máquina ni siquiera tiene una pista sobre dónde enviar el paquete, se usa una ruta por defecto. Este camino apunta a un ruteador que idealmente tiene idea de dónde debería ir el paquete o, al menos, sabe otra ruta que pueda tomar. (Default Gateway).
Una máquina típica Linux conoce al menos tres rutas: la primera es la ruta de bucle local que simplemente a su dispositivo de loopback. La segunda es la ruta a la red de área local de forma que los paquetes destinados a las máquinas de esa misma red se envían directamente a ellas. Por último, la tercera ruta es la ruta por defecto. Esta ruta se usa para paquetes que necesitan abandonar la red de área local para comunicarse con otras redes. Si configura su red en tiempo de instalación, este valor es probable que se ocupe el sistema de él. Así que no necesitará cambiarlo, lo cual no quiere decir que no pueda.
El comando route típico se estructura de esta forma:
[root@ford /root] # route cmd tipo dirección netmask masc gw
IP_gateway
Parámetro Descripción
Cmd Valor add o del dependiendo de si añade o borra una ruta. Si
elimina una ruta, sólo necesita otro parámetro, dirección.
Tipo Valor –net o –host dependiendo si dirección representa una
dirección de red o una dirección de ruteador
Dirección La red destino que quiere ofrecer para enrutar
Netmask masc Configura la máscara de red de la dirección.
Gw gatew Configura la dirección del ruteador.
Dev destino Envía todos los paquetes destinados a dirección a través de la red del dispositivo según se configura con ifconfig
Ejemplo: ésta es la manera como se configura una ruta por defecto en mi máquina, la cual tiene un dispositivo Ethernet y un Router 192.168.1.1:
[root@ford/root]#route add –net default gw 192.168.1.1 dev ethe0
Ejemplo: esta línea de comandos configura un sistema para que todos los paquetes destinados a 192.168.1.42 se envíen a través del primer dispositivo PPP:
[root@ford /root]#route add –host 192.168.1.42 netmask
255.255.255.0 dev ppp0
Ejemplo: así es como se borra una ruta destino a 192.168.1.42:
[root@ford /root] # route del 192.168.1.42
Informática Integrada Internetworking
32
Hay dos formas de poder ver su tabla de rutas: el comando route y netstat. El uso
de route es el más sencillo. Ésta es una ejecución completa, con esta salida:
[root@ford /root] # route
kernel IP routing table
destination gateway Genmask flags Metric Ref Use Iface
10.10.2.0 * 255.255.255.0 UH 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default firewall 0.0.0.0 UG 0 0 0 eth1
Podemos ver dos redes, la primera red es la 192.168.1.0, la cual es accesible mediante el primer dispositivo Ethernet, eth0 la segunda red es la red 10.10.2.0, la
cual se conecta mediante el segundo dispositivo Ethernet, eth2 la ruta por defecto es
10.10.2.4. Sin embargo, debido a la dirección IP resuelve el nombre de máquina firewall en DNS, route imprime su nombre de hosts en lugar de su dirección IP. Ya hemos estudiado el destino, pasarela, máscara de red (referido como genmask en la
tabla) e Iface (interfaz, configurada por la opción dev de route). Las otras entradas
de la tabla tienen el significado siguiente:
Entrada Descripción
Flags Un sumario de estado de conexión, donde cada letra tiene un significado: U: la conexión esta arriba H: el destino es una máquina G: el destino es la pasarela
Metric El costo de una ruta, normalmente medida en saltos (hops). Esto significa para los sistemas que tienen varias rutas para llegar al destino, pero se prefiere una ruta sobre el resto. La mejor ruta es la métrica más baja, el kernel de Linux no usa esta información pero sí lo hacen algunos protocolos de enrutamiento avanzados.
Ref El número de referencias de la ruta. Esto no se usa en el kernel de Linux. Está aquí debido a que la propia herramienta route es de plataformas cruzadas. Así se imprime este valor, pues otros sistemas operativos lo usan.
use El número de bucles de cache de rutas utilizados con éxito. Para ver este valor, use la opción –F cuando invoque route.
Note que route visualiza los nombres de máquinas a cualquier dirección IP que
podría buscar y resolver. Aunque es bueno leerlo, presenta un problema cuando hay dificultades de red y no se consigue llegar a los servidores DNS o NIS. El comando route esperará, tratando de resolver los nombres de máquinas y esperando para ver
si los servidores devuelven y los resuelven esta espera será de varios minutos hasta que la petición devuelva timeout. Para conseguir esto, use la opción –n con route
de forma que se muestre la misma información, pero route no hará intentos de realizar resolución de nombres sobre la dirección IP.
Normalmente, el programa netstat se usa para mostrar el estado de todas las conexiones de red de una máquina. Sin embargo, con la opción –r, también puede
mostrar la tabla de enrutamiento del kernel. Este es un ejemplo de invocación de netstat –r y la salida correspondiente:
Definición y Arquitectura de TCP/IP
33
En este ejemplo, vemos una configuración sencilla. La máquina tiene una sola tarjeta de interfaz de red conectada a la red 192.168.1.0 y tiene como una ruta por defecto 192.168.1.1.
Como el comando route, netstat también puede tomar –n de forma que no realiza
resolución de nombres.
Herramienta ARP
El comando arp presenta y manipula la tabla de direcciones de red en un sistema
local. La tabla del protocolo de resolución de direcciones, conocida como el caché ARP, contiene una lista completa de todas las transformaciones de protocolo de enlace de datos a direcciones IP para la red local. Nótese que las expresiones tabla ARP y caché ARP pueden usarse de manera intercambiable y se refieren a lo mismo. Igualmente, los términos vinculación (binding) y transformación (mapping) se refieren a una entrada ARP. Los usuarios regulares (usuarios diferentes a root) pueden presentar la caché ARP pero no pueden hacer cambios de ningún tipo. La razón es obvia: los usuarios podrían alterar la caché, lo que afectaría la conectividad de todos ellos. Con el comando arp, el súper usuario puede:
presentar el caché ARP
borrar una entrada ARP
añadir una entrada ARP
La herramienta ARP proporciona un número de opciones de línea de comandos. Sin embargo, sólo las más importantes se enumeran en la tabla 1.3 y se describen totalmente más adelante. Cada una de estas opciones soporta un solo carácter de comando o palabra clave, junto con dos guiones al principio. Por ejemplo, la opción -v
tiene una clave --verbose asociada. Éstas son equivalentes y pueden usarse de
manera intercambiable en la línea de comandos. La tabla 1.3 muestra ambas formas. La razón para escoger una en vez de la otra es simplemente cuestión de estilo. Sin embargo, el formato de la palabra clave puede facultar el recordar las opciones individuales en el futuro.
Tabla 1.3 Opciones importantes de línea de comandos arp.
Opción Palabra clave Descripción
-a --display Presenta la entrada ARP actual para un host específico -d --delete Borra una entrada ARP -f --file Carga un archivo que contiene entradas para poner en el caché .i --device Presenta sólo aquellas entradas para una interfaz especificada -n –numerico Muestra direcciones numéricas en lugar de nombres de hosts -s --set Crea una entrada ARP -v --verbose Presenta el caché ARP en el modo expresivo (verbose
[root@trillian /root] # netstat -r
kernel IP routing table
destination gateway Genmask flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 lo
default firewall 0.0.0.0 UG 0 0 0 eth0
Informática Integrada Internetworking
34
Para presentar los contenidos de la tabla ARP, se usa el comando arp -v (--verbose). Cuando se despliega, ésta incluye el nombre del dispositivo, el tipo de hardware, la dirección física, la bandera de máscara y la interfaz de la red. Una muestra de esto es la siguiente:
# arp -v
Address HWtype HWaddress Flags Mask 1face
durer.home.com ether 00:60:97:0E:A3:06 C eth0
switch.home.com ether 00:00:lD:0A:5D:Ol C eth0
probe.home.com ether 00:C0:D4:00:09:40 C eth0
rembran.home.com ether 08:60:20:82:be:05 C eth0
rubens.home.com (incomplete) eth0
monet.home.com ether D8:00:20:04:cf:2c C eth0
Entries: 6 Skipped: 0 Found: 6
El campo Address muestra el nombre del host o la dirección IP que corresponde a la
entrada ARP. Ésta es la dirección que se usa para buscar la tabla ARP, con el fin de determinar si existe la entrada deseada. Si se presenta una dirección IP (en lugar de un nombre de host), se debe concluir que la dirección IP no pudo ser resuelta correctamente para un nombre de host o que se utilizó la opción -n. Esto podría ser el
resultado de una entrada no válida o que no existe en el servidor DNS o en el archivo /etc/hosts, una mala configuración en cualquiera de ellos, o problemas de
conectividad con el servidor DNS.
El campo HWType representa la interfaz de red para la cual se obtuvo la entrada ARP.
El campo Flags Mask (banderas de máscara) suministra detalles adicionales
relacionados con la entrada ARP. La tabla 14 muestra los indicadores o las banderas disponibles y sus significados.
El campo HWaddress (dirección física) contiene la dirección de bajo nivel para cada
nodo en la red local, y se expresa con seis números hexadecimales con notación de dos puntos.
Tabla 1.4 Indicadores de entrada ARP.
Bandera ARP Significado
C entrada ARP se ha completado
M entrada ARP permanente (estática)
P publicar esta entrada ARP
El campo Iface corresponde a la interfaz de red que está conectada a la red local,
para la cual se obtuvo la entrada ARP.
Las entradas ARP transformadas incluyen un temporizador, que controla cuánto tiempo permanecerá la entrada en la caché ARP. Por defecto, muchos sistemas mantienen la entrada durante aproximadamente 20 minutos antes de retirarla. Algunos sistemas permiten que el administrador altere este valor de tiempo.
Definición y Arquitectura de TCP/IP
35
El comando arp también soporta la capacidad de agregar vínculos que son definidos en un archivo regular, en lugar de especificar la información en la línea de comandos. Este método se usa, por ejemplo, para cargar una lista de entradas ARP al tiempo, en un solo paso. El formato de un archivo utilizado con este propósito incluye los siguientes campos:
hostname datalink address [ temp ] [ pub]
Usando un editor de texto, se puede crear una lista de vínculos ARP en el formato anterior y guardarlo como un archivo de texto; por ejemplo, /etc/arp-list. A
continuación se muestra listado del ejemplo del archivo:
Bruegel 08:00:20:82:be:05 temp
rubens 08:00:20:81:ce:0l temp
rembrandt 08:00:20:86:fe:02
cezanne 08:00:20:8.l:bb:0l
michelangelo 08:00:20:84:ee;02
La opción -f del comando arp se utiliza para cargar los contenidos del archivo dentro
de la tabla ARP:
# arp -f /etc/arp-list
Si se quiere cargar esta tabla automático, se edita uno de los archivos de inicio del sistema (/etc/rc.d/init.d/network, por ejemplo). Cuando se agrega esta
secuencia de comandos, a una secuencia de comandos de inicio de red, cargará las transformaciones ARP contenidas en el archivo /etc/arp-list.
Herramienta netstat
El comando netstat proporciona una riqueza de información en cuanto al estado de
las conexiones de red, información de enrutamiento y otros datos importantes relacionados con la red. Esta herramienta cuyo nombre es la abreviatura de estado de red (network status), es estrictamente para hacer seguimiento y es una de las ayudas de depuración más populares disponibles en UNIX. Diferentes opciones de línea de comandos controlan el comportamiento de la presentación de netstat. Dado esto, la funcionalidad puede dividirse en un número de categorías y usarse para hacer lo siguiente:
enumerar las sesiones de red activa
mostrar información y estadísticas de la interfaz
presentar la información de la tabla de enrutamiento
mostrar las estructuras de datos de la red
La tabla 1.5 contiene las palabras clave más importantes que controlan qué estructuras de datos se presentan. Algunas de las claves tienen una opción de carácter único y una cadena nemotécnica. Una característica útil de esta herramienta es la ayuda en línea. Sólo se debe invocar el comando –h o –help.
netstat –help
Informática Integrada Internetworking
36
Tabla 1.5 Palabras clave netstat.
Opción Nemotecnia Descripción
-i --interfaz Muestra los parámetro y la información de la interfaz de la red
-g --groups Presenta la información de pertenencia al grupo de multidifusión.
-M --masquerade Enumera todas las sesiones que usan las capacidades de enmascaramiento en FTP
-N --netlink Muestra las interfaces y la actividad del enlace en red
-r --route Muestra las tablas de enrutamiento de la red
-t --tcp Presenta las conexiones de socket TCP activo. La opción -tcp presentará continuamente estas conexiones hasta que sea interrumpida por el usuario
La tabla 1.6 contiene los modificadores de línea de comandos que proporcionan información adicional o modifican la salida cuando se usan con las opciones de palabras clave.
Tabla 1.6 Opciones del comando netstat.
Opción Nemotecnia Descripción
-A --af Especifica una familia de dirección diferente. Las palabras clave específicas incluyen --unix, --ipx, -ax25, -netrom y --ddp
-C --continue Hace que la salida sea presentada continuamente hasta que el usuario la interrumpa
-h --help Presenta al usuario una información resumida de la línea de comandos
-n --numeric Presenta la información numérica (por ejemplo, las direcciones IP), el lugar de intentar resolver a un host puerto o nombre de usuario
-p --program Muestra el nombre e identificador del proceso para cada socket de red enumerado
-v --verbose Imprime información adicional
Cualquier sesión TCP entre el host local y otro sistema puede seguirse. Además, cualesquiera flujos de sockets que hayan sido creados se presentarán. Los flujos se usan como un canal de comunicación programa a programa. Para presentar las conexiones establecidas actualmente, se emite el netstat con la opción -t, como se
muestra a continuación:
# netstat –t
Active Internet connections (w/o servers)
Proto Recv-0 Send-0 Local Address Foreign Addrees State
tcp 0 0 110.Orlando-11-12r:1052 192.215.123.37:www ESTABLISHED
tcp 0 1 110.Orlando-11-12r:1051 192.215.123.37:www CLOSE
tcp 0 0 110.Orlando-11-12r:1049 www3.yahoo.com:www ESTABLISHED
tcp 0 0 socrates.home.com:telnet durer.home.com:1033
ESTABLISHED
tcp 0 0 socrates.home.com:telnet durer.home.com:1032
ESTABLISHED
Definición y Arquitectura de TCP/IP
37
Recordemos, de la tabla 1.5, que la opción -t presentará la actividad del socket TCP. Como se indica, la salida del comando FIN anterior incluye las conexiones en el sistema local. Cada conexión incluye información en cuanto a las direcciones locales remotas, información estadística y estado de la conexión. La dirección local es la fuente y la dirección remota es el destino. Recuérdese que TCP usa cuatro elementos para crear una conexión y utiliza un modelo de máquina de estados como parte de todo el mecanismo de transporte de TCP. En el campo State, podemos ver que esta conexión se encuentra en estado ESTABLISHED (establecido), que significa que está pasando datos en ambos sentidos.
La siguiente tabla muestra los estados más comunes e incluye una descripción general de cada uno.
Tabla 1.7. Estados TCP mostrado con netstat
Estado Descripción
ESTABLISHED La conexión es operacional
LISTEN Un servicio o aplicación está esperando una conexión de un cliente
SYN_SENT Un sistema local quiere abrir una conexión remota
SYN_RCVD Un sistema remoto quiere abrir una conexión remota
FIN_WAIT_1 Un sistema remoto quiere abrir una conexión
FIN_WAIT_2 Un sistema local está en proceso de cerrar una conexión
CLOSE_WAIT Un sistema remoto quiere cerrar una conexión
LAST_ACK Paso final a CLOSE_WAIT
TIMED_WAIT Paso final a FIN_WAIT_1 o FIN_WAIT_2
UNKNOW El estado del socket es desconocido
A veces es útil enumerar todos los servicios que están disponibles y activos en un sistema. Esto se puede lograr usando netstat con la opción -a, podemos usar las
opciones -t y -u para refinar aún más la salida, a fin de incluir sólo los sockets TCP y
UDP. La siguiente salida proporciona una lista de ambos servicios, UDP y TCP, independientemente de sus estados de conexión.
#netstat -a -t -u
Activé Internét connections (servers and established)
Proto Recv:Q Send:Q Local Address Foreign Address State tcp 0 0 socrates.home.co:telnet durer.home.com:l033 ESTA
tcp 0 0 110.orlando-11-1:domain *:* LISTEN
tcp 0 0 *:1048 *:* LISTEN
tcp 0 0 *:1047 *:* LISTEN
tcp 0 0 *:1046 *:* LISTEN
tcp 0 0 *:1045 *:* LISTEN
tcp 0 0 *:1044 *:* LISTEN
Bajo el encabezado TCP, no sólo se presentan las dos conexiones TCP del ejemplo anterior, sino que también se incluyen los servicios adicionales. Cualesquiera servicios enumerados en el estado LISTEN están esperando conexiones entrantes que son generalmente conocidas como recursos basados en el servidor, cuando un servicio está esperando solicitudes de la red, es libre de tener acceso a conexiones de
Informática Integrada Internetworking
38
cualquier dirección remota. Por eso *.* se enumera bajo el campo Foreign Address. Los servidores también colocan * por lo general en la porción de host local para indicar además que el servidor es libre de establecer una conexión si un cliente hizo una solicitud. Cuando una solicitud de un cliente se envía a un servidor, el servidor hace una copia de sí mismo para manejar la solicitud, y continúa escuchando las solicitudes adicionales de clientes. Así, cuando esto ocurre, netstat presenta
múltiples ejemplos del mismo servicio, como se muestra a continuación:
netstat -a |grep ftp
tcp 0 0 socrates.home.:ftp-data durer.home.com:l034 TIME_WAIT
tcp 0 0 socrates.home.com:ftp durer.home.com:l033 ESTABLISHED
tcp 0 0 *:ftp *:* LISTEN
A pesar de la enorme cantidad de información provista con la opción -a, netstat
puede usarse para proporcionar una rápida verificación, con el fin de asegurar que los servicios correctos están corriendo en un sistema dado.
Para presentar los flujos definidos en el sistema, se emite el comando netstat con la
opción --unix. La salida incluye las interfaces de flujo de socket UNIX. Como estas
conexiones se usan principalmente para la comunicación Inter-procesos, su uso y función específicos no se describirán en detalle. Dado que el número de flujos usado en un sistema UNIX puede ser importante, la salida del comando netstat puede ser
bastante grande. Como resultado, la siguiente salida muestra sólo algunas líneas frente a lo que podría presentarse comúnmente:
unix 1 [ ] STREAM CONNECTED 2399 /dev/log
unix 1 [ ] STREAM CONNECTED 2324 /tmp/.ICE-unix/963
unix 1 [ N ] STREAM CONNECTED 2364 /tmp/.XII-unix/X0
unix 1 [ ] STREAM CONNECTED 2220 /tmp/orbit-root/orb-
11931020341330722701
unix 1 [ ] STREAM CONNECTED 2217 /tmp/orbit-root/orb-
16956010373298973
unix 1 [ ] STREAM CONNECTED 2213 /tmp/orbit-
rootroot/orb-16956010373298973
unix 1 [ ] STREAM CONNECTED 2206 /tmp/X11-unix/X0
unix 1 [ ] STREAM CONNECTED 2196 /tmp/oribit-root/orb-
1695601037;32989731
unix 1 [ ] STREAM CONNECTED 2197 /tmp/orbi1-toot
unix 1 [ ] STREAM CONNECTED 2188 /tmp/.x11-UNIX/x0
unix 1 [ ] STREAM CONNECTED 2179 /TMP/orbit-root/orb-
16956010373298973
Estos flujos han sido creados por programas y aplicaciones del sistema como mecanismo para comunicarse entre otros programas.
Una característica muy útil de netstat es la opción –t, la cual muestra el nombre del
proceso o programas asociados que tiene abierto un sistema o lo está usando. El comando:
# netstat –t –p –a
El comando netstat puede obtener igualmente detalles en la configuración de la interfaz de red y conteos rudimentarios del paquete. La opción de línea de comandos
-i obtiene una lista cada interfaz definida en el sistema, una interfaz por línea:
Definición y Arquitectura de TCP/IP
39
#netstat –i
Kernel interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 0 0 0 0 0 1 0 0 BRU
eth0 1500 0 - no statistics available -
BRU
eth0 1500 0 3946 0 0 0 138 0 0 0 BRU
lo 3924 0 192 0 0 0 192 0 0 0 LRU
El comando netstat puede presentar información de enrutamiento en el mismo
formato del comando route. El comando netstat -r, cuando se combina con la
opción de línea de comandos -e, presenta las tablas de enrutamiento del sistema.
La multidifusión es un mecanismo que soporta de una manera muy eficiente la entrega de tráfico de gran volumen a una red y estaciones de trabajo asociadas. Un grupo de multidifusión es una colección definida de estaciones de trabajo y enrutadores de multidifusión que reenvían tráfico mediante una dirección IP de multidifusión especial. La opción –g presenta información de enrutamiento y las interfaces que se han
definido en el sistema. El comando netstat –g mostrará los grupos de multidifusión
configurados:
Ipv4 group Member ships
Interface RefCnt Group
---------- ------ ----------
lo 1 224.0.0.1
eth0 1 224.0.0.1
eth1 1 224.0.0.1
En este ejemplo, cada una de las interfaces definidas en el sistema es un miembro del grupo de multidifusión predeterminado, conocido como 224.0.0.1. Este grupo, que es un grupo de multidifusión estándar se utiliza para enviar tráfico de multidifusión a todos los sistemas en una red local. Así, cuando una aplicación use la dirección 224.0.0.1 para transmitir tráfico, este sistema recibirá la información. En ocasiones es que se emplea multidifusión usando aplicaciones de multidifusión estándar, pueden definirse usando aplicaciones de multidifusión adicionales para restringir el tráfico de multidifusión sólo para aquellos sistemas en los que se requiere la información.
La opción –statistics, por sí misma, presentará los protocolos soportados,
incluidos TCP, UDP y RAW. RAW es una combinación de los paquetes IP e ICMP y pueden presentarse por separado usando la palabra raw.
# netstat –statistic
Ip:
3003 total packets received
0 forwarded
0 incoming packets discarded
212 incoming packets deliverd
2847 requests sent out
icmp:
489 ICMP messages received
0 input ICMP message failed.
ICMP input histogram:
Informática Integrada Internetworking
40
Destination unreachable:486
Echo replies: 3
487 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
Destination unreachable: 487
Tcp:
0 active connections openings
0 passive connection openings
0 failed connection attemps
0 connection resets received
1 connections established
2295 segments received
1700 segments send out
2 segments retransmitted
0 bad segments received.
0 resets sent
udp:
171 packets received
2 packets to unknown port received.
0 packet receive errors
657 packets sent:
Por otro lado podría presentarse tan sólo uno de los protocolos listados en el lugar de la lista completa. Esta situación usa sólo una de las palabras claves opcionales –raw,
-tcp o –udp. Después de emplear una de estas palabras clave, será presentado sólo
ese protocolo. Por ejemplo, para presentar sólo paquetes IP de ICMP, se usa el siguiente comando:
netstat –statistics --raw
Herramienta ping
El comando ping suministra dos servicios básicos. Primero, se puede usar para
determinar si un nivel básico de conectividad está disponible entre uno o más puntos finales o sistemas. La herramienta ping puede usarse para determinar si un dispositivo remoto se puede alcanzar en una red desde el sistema local, y ayuda a depurar problemas de conectividad entre sistemas. Segundo, puede proporcionar estadísticas de desempeño de red rudimentarias, las cuales pueden usarse para diagnosticar problemas de red relacionados con el tráfico. El término ping se deriva de la frase packet internet groper (programa de diagnóstico de Internet). La herramienta ping puede usarse en una de dos formas: especificando un nombre de host o dirección IP válido, o usando la opción de línea de comando con un nombre de host o dirección IP. Si se usa la primera forma, ping suministra una forma útil para determinar que un dispositivo remoto está disponible en la red.
Como mencionamos, ping usa el protocolo de mensajes de control de Internet
(ICMP) para emitir solicitudes ICMP, y espera respuestas ICMP válidas. Debido a que ICMP es un protocolo requerido en la familia TCP/IP, ping puede usarse generalmente con todos los dispositivos que soportan TCP/IP y está disponible en muchos sistemas operativos y otros dispositivos de trabajo en red. La herramienta ping es sólo una
Definición y Arquitectura de TCP/IP
41
aplicación del lado del cliente; no se necesita ni se requiere software adicional para que funcione e interactúe directamente con la capa de protocolo del sistema remoto para cumplir su tarea.
#ping durer
ping durer.home.com (10.0.2.10): 56 data bytes
64 bytes from 10.0.2.10: icmp_seq=0 ttl=128 time=0.9 ms
64 bytes from 10.0.2.10: icmp_seq=0 ttl=128 time=0.9 ms
64 bytes from 10.0.2.10: icmp_seq=0 ttl=128 time=0.9 ms
64 bytes from 10.0.2.10: icmp_seq=0 ttl=128 time=0.9 ms
---- durer.home.com ping statistics ---
4 packets transmitted, 4 packets received. 0% packet loss
round-trip min/avg/max= 0.8/0.8/0.9 ms
En este caso, ping no presenta paquetes perdidos (packet loss) Esto establece
básicamente que durer está funcionando y operando de manera normal desde una perspectiva IP. El comportamiento predeterminado de ping significa que el usuario debe presionar ^c para detener la salida. La herramienta ping puede usarse sólo
para determinar la conectividad básica del protocolo, no la disponibilidad de las aplicaciones o los servicios de alto nivel. De hecho, algunos sistemas responderán al ping aun antes de ser totalmente iniciados.
Si el host durer no se puede alcanzar, ping presentará el siguiente mensaje
después de digitar ^c:
PING rubens.home.com (10.0.2.220): 56 data bytes
--- rubens.home.com ping statistics –
2 packets transmitted, 0 packets received. 100% packet loss
Puede especificarse un número máximo o conteo del número total de solicitudes, lo que tiene el efecto de controlar ping, para que el usuario no tenga que intervenir
manualmente. Si se utiliza la opción de línea de comandos -c con un argumento de
1, el comando ping emitirá una sola solicitud a rubens:
#ping – c l rubens
Esto es útil para que el usuario pueda determinar rápidamente el alcance de un host o anfitrión, sin perder tiempo adicional o ancho de banda de la red. La segunda forma del comando ping proporciona varias opciones para controlar la funcionalidad adicional. La tabla 1.8 suministra una lista de las opciones de línea de comandos más populares disponibles.
Tabla 1.9 Opciones de comando ping
Opción Descripción
- c Envía sólo cierto número de paquetes
- f Inunda la red con paquetes -i Aumenta la cantidad de segundos entre una y otra solicitud -n Muestra las direcciones de red -q Modo silencioso - R Alterna la opción de registro de ruta -s Especifica el número de bytes que van a ser enviados con cada solicitud -p Especifica hasta 16 bytes para rellenar un paquete con datos personalizados
Informática Integrada Internetworking
42
El comando ping puede usarse para medir la cantidad de tiempo requerida para
transmitir un mensaje a un destino remoto y la cantidad de tiempo requerida para obtener una respuesta. Mide esencialmente el rendimiento relativo de la ruta entre los dos dispositivos en un momento determinado. Una gran cantidad de factores pueden hacer que varíe el rendimiento de la red. Éstos incluyen usuarios demasiado agresivos en el uso de los recursos de la red, problemas del hardware, problemas de configuración del software, y otros relacionados.
El comando ping proporciona también medios de determinar los tiempos de
respuesta del sistema, pero le toma un poco más de trabajo determinar si el problema de rendimiento observado está relacionado con un sistema lento específico o con una demora en algún otro componente de red. La herramienta muestra la salida que puede usarse para medir y reportar el tiempo de ida y vuelta y proporciona estadísticas de pérdida de paquete. Por defecto, ping emite una solicitud ICMP cada segundo al
destino suministrado en la línea de comandos y reporta el estado de cada respuesta ICMP. La salida en el ejemplo incluye lo siguiente:
# ping didymus
PING didymus-gw2.home.com (10.0.2.127): 56 data bytes
64 bytes from 10.0.2.127: icmp_seq=0 ttl=255 time=1.2 ms
64 bytes from 10.0.2.127: icmp_seq=1 ttl=255 time=1.2 ms
64 bytes from 10.0.2.127: icmp_seq=2 ttl=255 time=1.2 ms
64 bytes from 10.0.2.127: icmp_seq=3 ttl=255 time=1.2 ms
--- didymus-gw2.home.com ping statistics –
4 packets transmitted, 4 packets received. 0% packet loss
round-trip min/avg/max=1.1/1.1/1.2 ms
Este reporte informa el tamaño del paquete, el nombre del host o la dirección IP del dispositivo objetivo, un número de secuencia, un valor de tiempo de ida y vuelta, y un resumen estadístico. El valor del tiempo muestra el tiempo de ida y vuelta en milisegundos (milésimas de segundo) para cada respuesta recibida. La parte inferior del reporte calcula los tiempos de viaje mínimo, promedio y máximo para todas las respuestas, presentados igualmente en milisegundos. El total de la longitud del paquete ICMP transmitido es de 64 bytes. Éste es el tamaño predeterminado, el cual es generalmente suficiente. Sin embargo, puede ser necesario incrementar el tamaño del paquete para obtener una mejor medida de rendimiento. En este caso, puede especificarse un tamaño grande de paquete usando la opción línea de comandos -s. Por ejemplo, el comando:
# ping -s 100 didymus
Esto podría ser necesario para obtener una mejor imagen del desempeño, ya que el rendimiento de la red puede diferir para los tamaños grandes de paquetes frente a valores menores.
La herramienta ping usa un número de secuencia para mantener el rastro de las
solicitudes y respuestas. A cada solicitud se le da el siguiente número en la secuencia y luego es cotejado con la respuesta correspondiente. Esta secuencia se usa para determinar la pérdida de paquetes si cualquier solicitud no recibe una respuesta apropiada. En general, la pérdida de paquete en una red pequeña sería muy rara y, si ocurre, podría indicar un problema relacionado con la red o con el sistema. Sin
Definición y Arquitectura de TCP/IP
43
embargo, en una red grande, Intranet o en Internet, la pérdida de paquetes es común y representa un estado normal de eventos. Dado un sitio popular de Internet, como se muestra a continuación, puede observarse cierta cantidad de pérdida de paquetes:
Ping –c 10 www.informaticaintegrada.com.mx
PING www.informaticaintegrada.com.mx (10.0.2.127): 56 data bytes
108 bytes from 10.0.2.127: icmp_seq=5 ttl=255 time=240.1 ms
108 bytes from 10.0.2.127: icmp_seq=6 ttl=255 time=240.1 ms
108 bytes from 10.0.2.127: icmp_seq=7 ttl=255 time=240.1 ms
108 bytes from 10.0.2.127: icmp_seq=8 ttl=255 time=240.1 ms
108 bytes from 10.0.2.127: icmp_seq=9 ttl=255 time=240.1 ms
--- didymus-gw2.home.com ping statistics –
10 packets transmitted, 10 packets received. 70% packet loss
round-trip min/avg/max=240.1/240.1/240.1 ms
El reporte anterior indica que 70% de los paquetes enviados no tuvieron sus correspondientes respuestas. Se perdieron. En otras palabras, enviamos diez paquetes, pero sólo se recibieron tres de vuelta; siete de diez es 70%. Una posible razón de esta pérdida visible de paquete es que algunos de los enrutadores críticos de Internet podrían estar muy ocupados o aun sobrecargados con el tráfico de la red.
A veces es deseable suministrar tiempo adicional para reconocer cada solicitud ping,
en lugar de usar el valor predeterminado de un segundo. El intervalo debe ser suficientemente largo para proporcionar la cantidad de tiempo requerida para que el sistema remoto responda. Cuando aumentamos el valor de extemporaneidad tal como se sugiere, generalmente notaremos menos pérdida de paquetes. El comando
ping – c 10 www.informaticaintegrada.com.mx -i 5
Adiciona cinco segundos de demora a cada solicitud, proporcionando así tiempo adicional para el procesamiento de las solicitudes a través de la red y al servidor de destino. Usando el comando anterior, se produce lo siguiente:
Ping –c 10 www.informaticaintegrada.com.mx
PING www.informaticaintegrada.com.mx (10.0.2.127): 56 data bytes
64 bytes from 10.0.2.127: icmp_seq=1 ttl=255 time=240.1 ms
64 bytes from 10.0.2.127: icmp_seq=2 ttl=255 time=240.1 ms
64 bytes from 10.0.2.127: icmp_seq=3 ttl=255 time=240.1 ms
64 bytes from 10.0.2.127: icmp_seq=4 ttl=255 time=250.1 ms
64 bytes from 10.0.2.127: icmp_seq=5 ttl=255 time=240.1 ms
64 bytes from 10.0.2.127: icmp_seq=6 ttl=255 time=240.1 ms
64 bytes from 10.0.2.127: icmp_seq=7 ttl=255 time=240.1 ms
64 bytes from 10.0.2.127: icmp_seq=8 ttl=255 time=240.2 ms
64 bytes from 10.0.2.127: icmp_seq=9 ttl=255 time=250.1 ms
--- www.informaticaintegrada.com.mx ping statistics –
10 packets transmitted, 9 packets received. 10% packet loss
round-trip min/avg/max=240.0/242.3/250.1 ms
Como se observa en la salida, la pérdida de paquetes en este sitio fue reducida a 10%. Debe tenerse en cuenta que otros factores podrían también contribuir a la
Informática Integrada Internetworking
44
reducción, como usuarios que abandonan el sitio, o que la red no se esté usando. En general, aumentar la cantidad de tiempo para cada solicitud debería reducir la carga total en el sistema. Sin embargo, esto no garantiza que sea siempre el caso, ya que el sistema puede estar sobrecargado, hasta un punto en que no ayudaría realmente ninguna cantidad de tiempo adicional.
Con la opción -n, ping presenta direcciones IP, en lugar de nombres de hosts. Esto
es útil, por ejemplo, cuando problemas de red que involucran DNS impactan el uso de ping.
La opción -R habilita la opción de registro de ruta con el protocolo IP. Alternar el
registro de ruta le informa a cada enrutador a lo largo de una ruta que coloque sus direcciones IP en el encabezado IP. Como consecuencia, se puede obtener una lista de enrutadores que se utilizaron para alcanzar el destino final. Otra opción interesante es el modo de inundación mediante el uso de la opción -f. Esta opción le dice a ping
que intente inundar la red con solicitudes ICMP aproximadamente 100 veces por segundo o tan rápidamente como el destino remoto pueda procesar cada solicitud. Teniendo en cuenta lo anterior, el comando:
ping -c 100 -f durer
Presenta la siguiente salida:
PING durer.home.com (10.0.2.101):56 bytes
……………..
---durer.home.com ping statistics ---
1015 packets transmitted. 1000 packets received, 1% packet loss
round-trip min/avg/max/= 1.0/14.3/121.0 ms
Lo primero que es diferente de la salida estándar son las series de puntos ( ) mostradas. Esto indica que ping ha recibido respuestas de las solicitudes enviadas.
Segundo, nótese que de los 1,015 paquetes enviados, sólo se recibieron 1,000 paquetes y ping sólo reportó 1% de la pérdida de paquetes. Realmente, la pérdida de paquetes es más cercana a 1.5%. El comando ping reporta sólo números enteros,
sin números a la derecha del punto decimal. En este caso, el problema no es significativo, ya que podemos determinar manualmente con más exactitud de pérdida, si es necesario. Sin embargo, esto es de alguna manera discutible, ya que la facilidad ping no es realmente considerada como la aproximación o el enfoque más científico y/ o empírico para medir la pérdida de datos o el rendimiento de una red.
La última opción interesante de ping es el modo silencioso. Esta opción -q se utiliza
para limitar la cantidad de salida que se produciría normalmente sólo se presentan unas pocas líneas; el comienzo y el resumen:
ping –q –c 100 didymus
PING didymus-gw2.home.com (10.0.2.127): 56 data bytes
--- didymus-gw2.home.com ping statistics ---
100 packets transmitted, 100 packets received, 0%packet lost
round-trip min/avg/max = 1.1/1.1/2.5 ms
Como se observa con claridad, esta opción reduce la salida, la cual puede ser justamente la que se necesita cuando se usa ping en una secuencia de comandos.
Definición y Arquitectura de TCP/IP
45
Herramienta tcpdump
El comando tcpdump es un seguidor de tráfico de red de propósito general que puede
capturar y presentar paquetes y sus contenidos. Este comando puede usarse como un analizador de protocolo, proporcionando una de las mejores maneras de investigar los problemas de comunicación y/o conectividad entre sistemas y dispositivos de trabajo en red. La mayor parte del tiempo, la resolución de problemas de la red se enfoca en los problemas de configuración de la red y en diagnosticar las fallas relacionadas con el hardware. Con tcpdump, los paquetes explorados se mostrarán con información, ya sea en formato corto o largo, dependiendo de las opciones de línea de comandos que se usen. Además, tcpdump tiene un mecanismo de filtrado muy poderoso que puede
buscar paquetes que correspondan a una cadena o un criterio específicos.
tcpdump suministra dos modos principales de captura: promiscuo y no promiscuo. En
el modo promiscuo, se captura cada paquete transmitido en la red, sea enviado o no el paquete al sistema en el cual tcpdump se está ejecutando. Éste es el modo, por
ejemplo, que las sondas RMON usan cuando hacen seguimiento al tráfico de la red. Las sondas de red escuchan en la red el tráfico y recolectan la información y las estadísticas del protocolo. Debido a que los protocolos de red de área local (Local Area Network, LAN), como Ethernet, están basados en la difusión, cada marco que se transmite puede ser visto por cualquier interfaz de red conectada a la LAN.
En la práctica, la interfaz debe configurarse para operación promiscua y sólo se usa en ocasiones especiales cuando se requiere el diagnóstico de red. Por lo anterior, sólo root puede habilitar el modo promiscuo en una interfaz. Ésta es la razón principal por la que a los usuarios diferentes de root no se les permite invocar tcpdump. Cuando
un usuario no-root hace el intento de ejecutar este comando, se presenta el siguiente mensaje:
tracedump: socket: Operation not permitted
Si se quiere dar a un usuario regular la habilidad de invocar el comando tcpdump, se
puede usar el programa setuid para permitirle correr como root o instalar y
configurar un programa como sudo.
Con el modo no promiscuo, sólo estarán disponibles para la interfaz los frames de difusión y los dirigidos al sistema local. En circunstancias normales, la interfaz está en modo no promiscuo.
Cuando se invoca tcpdump sin las opciones de línea de comandos, se abre la interfaz
de red principal, y comienza a capturar los frames desde la red local y a presentar sus contenidos. Debido a que tcpdump puede producir una cantidad significativa de
salida, usaremos la opción silenciosa -q para reducir la cantidad de salida
presentada. Cuando se ejecuta el comando
# tcpdump -q
Mostrará todos los frames de la red en formato de línea única, no explicativo (non-
verbose). El formato de la salida incluirá un sello de tiempo, fuente y hosts destino (o
direcciones), el protocolo de red de alto nivel, algunas banderas, información adicional del protocolo y un resumen:
Informática Integrada Internetworking
46
tcpdump: listening on eth0
15:41:58.055268 durer.home.com.l032 > socrates.home.com.telnet:
tcp 0 (DF)
[tos0x50]
15:41:58.055446 socrates.home.com.telnet. >durer.home.com.l032:
tcp 28
(DF)
15:41:58.274933 durer.home.com.l032> socrates.home.com.telnet:
tcp 0 (DF)
[tos0x50]
15:41:58.215115 socrates.home.com.telnet > durer.home.com.l032:
tcp 1 (DF)
15:41:58.494694 durer.home.com.1032 > socrates.home.com.telnet:
tcp 0 (DF)
[tos0x50]
15:41:58,494880 socrates.home.com,telnet > durer.home,com.l032:
tcp 165 (DF)
15:41:58.544828 socrates.home.com > didymus-gw2.home.com: icmp:
request
15:41:58.545719 didymus-gw2.home.com > socrates.home.com: icmp:
echo
reply5:34:10:601950 socrates.home.com.telnet >
durer:home.com.l032: tcp 165 (DF)
8 packets received by fílter
0 packets dropped by kerne1
El final de la salida incluye un conteo del número de paquetes capturados por tcpdump y el número de paquetes abandonados. En este caso, fueron capturados un
total de ocho paquetes y son descargados cero paquetes.
La herramienta tcpdump proporciona un gran número de opciones de línea de
comandos para seleccionar los modos de captura, controlar la salida, precisar las especificaciones del filtro y especificar las características adicionales de operación. Estas opciones se agrupan de acuerdo con su función, e incluyen las siguientes categorías:
modos de operación
opciones de presentación
opciones de filtro de paquete
Tabla 1.9. Opciones disponibles para tcpdump
Opción Descripción
-c Captura el número especificado de paquetes -F Usa el archivo como fuente para la expresión del filtro -i Captura los paquetes usando la interfaz de red alterna -p inhabilita la captura en el modo promiscuo -r Lee el archivo de captura en lugar de la interfaz de red -w Guarda los paquetes sin procesar, para archivar
Definición y Arquitectura de TCP/IP
47
Opciones de modos de operación
Estas opciones se usan para controlar la manera como tcpdump capturará y
presentará el tráfico de la red. Las opciones disponibles están resumidas en la tabla 1.9.
En general, tcpdump escuchará el tráfico en la interfaz de red primaria. Usualmente la
interfaz primaria tiene el identificador numérico más pequeño, si el sistema contiene dos o más interfaces del mismo tipo. Por ejemplo, eth0 se considera primaria cuando
el sistema contiene dos interfaces Ethernet: eth0 y eth1. Sin embargo, si se quiere
correr tcpdump en una interfaz diferente, se utiliza la opción -i y el nombre del
dispositivo, para especificar la interfaz alterna. Por ejemplo, para seleccionar la interfaz punto a punto (ppp0), se usa el siguiente comando:
# tcpdump -i ppp0
tcpdump: listening on ppp0
Si se desea especificar el número de paquetes a capturar, se emplea la opción -c
seguida de un valor de conteo de paquete. Para capturar diez paquetes de la interfaz eth1 se usa el siguiente comando:
tcpdump -t -q –i ethl -c 10
tcpdump: listening on ethl
chips.home:com > didyrnus-gw2.home.com: icmp: echo request
didymus-gw2.home.com> chips.home.com: icmp: echo reply
chips.home.com> didymus-gw2.home.com: icmp: echo request
didymus-gw2.home.com> chips.home.com: icmp: echo reply
socrates.home.com.l032 > switch.home.com.snmp: udp 44
switch.home.com.snmp> socrates.home.com.l032: udp 111
socrates.home.com.l032 > switch.home.com.snmp: udp 51
switch.home.com.snmp> socrates.home.com.l032: udp 61
socrates.home.com,1032 > switch.com.snmp: udp 51
La opción -t, remueve la información del sello de tiempo del paquete, se usó
igualmente en este ejemplo.
La opción -p se usa para inhabilitar el modo de captura promiscuo. Más adelante
veremos que se puede decir a tcpdump que capture los paquetes que vienen o van a
un host en particular, usando filtros.
#tcpdump -d lel -p
tcpdump: listening on eth0
En una red muy activa o un sistema ocupado, y cuando se usen ciertas opciones de línea de comandos, tcpdump puede producir una gran cantidad de salida. Para hacer
más fácil su manejo, se puede usar la opción -w a fin de redirigir la información
capturada a un archivo. Una razón para usar un archivo es guardar la información capturada para una inspección y análisis posteriores. Esto podría incluir la manipulación de datos de otras maneras, posiblemente usando los datos para construir reportes especializados, y similares.
Informática Integrada Internetworking
48
Para capturar el tráfico de red y guardarlo en un archivo llamado traffic-data, se
usa el siguiente comando:
# tcpdump traffic -data
tcpdump: listening on eth0
El archivo, traffic-data, se crea en el directorio local una vez se invoca el
comando anterior. Sin embargo, los datos capturados no se escriben en el archivo hasta que el usuario interrumpa el programa o se use la opción -c. Una vez el usuario
hace esto, se presenta lo siguiente:
48 packets received by filter
0 packets dropped by kernel
Nótese que el archivo creado no es un archivo de texto ordinario, sino que es un archivo de datos formateado especialmente que sólo entienden tcpdump y algunos
programas más.
Para aprender un poco más del archivo tcpdump, se puede usar el comando de
UNIX. Si éste se corre junto con el archivo traffic -data, reporta que está
asociado con el comando tcpdump, la versión del software, y que los datos contienen
paquetes que son del tipo Ethernet, con una longitud de frame de 68 bytes. No es un archivo de texto legible para el ser humano.
# file traffic –data
Muestra lo siguiente:
traffic -data: tcpdump capture file (little -endian) -version
2.4 (Ethernet capture length 68)
El comando tcpdump hace un trabajo razonable de compresión de los datos
almacenados en archivos. Por ejemplo, más de 3,000 paquetes ocupan aproximadamente 260K de espacio del disco. Si se va a guardar una cantidad significativa de datos capturados, puede ser necesario comprimir los datos aún más usando compress o gzip. La utilidad compress se las arregla para reducir el tamaño de este archivo de datos a un poco más de 33K, mientras el programa gzip reduce el conteo en bytes aún más, a cerca de 18K. Nada mal desde un tamaño en bytes de más de 260K Para presentar los paquetes guardados en un archivo de datos, se usa la opción -v seguida del nombre del archivo de captura de paquete. Por ejemplo, para
repetir los paquetes guardados en el archivo traffic-data, se emite el siguiente
comando:
tcpdump -r traffic-data
Definición y Arquitectura de TCP/IP
49
Opciones de presentación
Estas opciones controlan cómo tcpdump presentará los paquetes de la red. La lista
de las opciones disponibles en esta categoría se resume en la tabla 1.10 y se describe completamente a continuación:
Tabla 1.10. Opciones de presentación TCPDUMP
Opción Descripción
-e Imprime la información de encabezado del nivel de enlace en cada línea -v Especifica el modo expresivo -q Especifica el modo rápido (quick); muestra poca información del paquete - t Inhabilita la impresión del sello de tiempo -s Limita el tamaño de los paquetes capturados -x Presenta tanto el formato hexadecimal como el ASCII
La opción -x proporciona una forma de presentar un vaciado hexadecimal de los
marcos de red. Presenta la información del encabezado del nivel de enlace, como las direcciones de fuente y destino. Consideremos la serie de intercambios de paquetes cuando el host rembrandt trata de abrir una sesión FTP con un sistema llamado durer. El comando tcpdump:
tcpdump –d lel -x; 0 tcp and port 21
Capturará cualquier actividad FTP en la red. Cuando se ejecuta este comando y se arranca una sesión FTP, los paquetes se capturarán y presentarán de la siguiente manera:
0:60:97:e:a3:6 0:10:5a:28:5d:7c ip 78: durer.home.com.1044>
sócrates.home.com.f
tp: S 9262137:9262138 (0) win 8192 <mss 1460.nop.wscale
0.nop.nop.timestamp [ltcp] (DF) [tos 0xld] (ttl 128. id 19970)
45ld 0040 4e02 4000 8006 93c6 0a00 020a
0a00 02c9 0414 0015 008d 543a 0000 0000
b002 2000 a43e 0000 0204 05b4 0103 0300
0101 080a 0000
0:10:5a:28:5d:7c 0:60:97:e:a3: 6 ip 74:
Sócrates.home.com.ftp
durer.home.com.1044: S 10876677057:1087677057(0) ack 9262139
win 32120 <mss
1460.sackOK.timestamp> 1106589 [ltcp] > (DF) (ttl 64.id 490) 4500 003c 01ea 4000 4006 2000 0a00 02c9
0a00 020a 0015 0414 40d4 a281 008d 543b
a012 7d78 92b7 0000 0204 05b4 0402 080a
0010 e29d 0000
0:60:97:e:a3:6 0:10:5a:28:5d:7c ip 66 durer.home.com.1044>
socrates.home.com.f tp: .ack 1 win 8760 >nop.nop.timestamp 84320
1106589 > (DF)
[tos 0xld] (ttl 128. id 20226)
Informática Integrada Internetworking
50
45ld 0034 4f02 4000 8006 92d2 0a00 020a
0a00 02c9 0414 0015 008d 543b 40d4 a282
8010 2238 d35b 0000 0101 080a 0001 4960
0010 e29d
0:10:5a28:5d:7c: 0:60:97:e:a3:6 ip 163: Sócrates.home.com.ftp
durer.home.com.1044: p 1:98(97) ack l win 32120
<nop.nop.timestamp 110659584320> (DF) [tos 0x10] (ttl 64, id
493)
4510 0095 0led 4000 4006 lf94 0a00 02c9
0a00 020a 0015 0414 40d4 a282 008d 543b
8018 7d78 b4a1 0000 0101 080a 0010 e2a3
0001 4960 3232
0:60:97:e:a3:6 0:10:5a:28:5d:7c ip 66: durer.home.com.1044
45ld 0034 5202 4000 8006 8fd2 0a00 020a
0a00 02c9 d352 0015 008d 543b 0001 a2e3
8010 21d7 d352 0000 0101 080ª 0001 4963
0010 e2a3
Como se puede observar, la salida muestra una línea de resumen que contiene la siguiente información (estamos usando el primer paquete del ejemplo anterior):
Dirección de la fuente de enlace de datos (Datalink Source Address) 0: 60:97:e:a3:6 Dirección de destino de enlace de datos (Datalink Destination Address 0:10:5a:28:5d:7c Protocolo de alto nivel (High level Protocol) IP Tamaño del marco (Frame Size) 78 Host fuente IP (IP Source Host) durer.home.com Puerto fuente TCP (TCP Source Port) 1044 Host Destino IP (IP Destination Host) socrates.home.com
Puerto Destino TCP (TCP Destination Port) ftp
Después del puerto destino TCP, se observan las banderas de paquete TCP. La S
indica que el paquete es un SYN, o arranca de una conexión TCP, mientras c significa
que es un impulso de datos ack indica un reconocimiento. La siguiente parte del
listado muestra el marco completo en hexadecimal.
Definición y Arquitectura de TCP/IP
51
Tabla 1.11 Ejemplos del comando tcpdump.
Comando Descripción
tcpdump host barney Capturará y presentará el tráfico enviado desde el sistema llamado barney o entregado a éste. Este comando examina los campos de dirección fuente y dirección destino del encabezado IP
tcpdump host not barney Capturará y presentará el tráfico de todos los hosts en la red, a excepción del sistema llamado barney
tcpdump host barney and host fred and\ (not pebbles\)
Capturará y presentará el tráfico de los hosts barney y fred, pero no del sistema llamado pebbles. Los paréntesis se adicionaron para que el comando fuera más legible. Sin embargo, cada uno de los operadores tcpdump aritméticos y booleanos tienen precedencia y los paréntesis pueden usarse para definir el orden de la interpretación del comando.
Nota: como los paréntesis son especiales para ciertos shells, se deben cambiar por la diagonal inversa (backslash) (\)
tcpdump arp Capturará y presentará todos los paquetes de protocolo de resolución de direcciones (ARP). Esto incluye las solicitudes y respuestas.
tcpdump host durer and tcp
Capturará y presentará todos los and tcp paquetes de protocolo de control de transmisión (TCP) desde o hacia el host, durer
tcpdump host vectra and port 23
Capturará y presentará todos los paquetes que estén usando el puerto 2 desde o hacia el host vectra. Esto significa inspeccionar todos los paquetes Telnet que van a este sistema desde otros la red. Recuérdese, que el puerto 23 es el puerto del servicio Telnet para todos los paquetes que entran
Tcpdump ether multicast Capturará y presentará paquetes de multicast multidifusión. Véase el siguiente comando como alternativa
tcpdump 'ip[16] >=224' Capturará y presentará todos los paquetes que usen la dirección de multidifusión. Este comando compara el decimosexto byte (el cual es una dirección de destino) del paquete IP con o un valor de 224. Éste prefija la dirección de multidifusión estándar de 224. 0..0.1, lo que incluye todos los hosts en el grupo de multidifusión predeterminado
Tcpdump „ether[0] & 1=1‟ Capturará y presentará todos los paquetes de difusión. La secuencia ether[0] proporciona acceso al primer campo del campo de destino de enlace de datos Ethernet y se compara con el valor l. Si los campos destino contienen sólo ls (lo que sería cierto si la dirección de difusión se expresa en números binarios) y si el operador and (&) se aplica a un valor positivo, éste dará un valor de l. En este caso, la expresión es verdadera y los paquetes se presentan
tcpdump 'ip[2:2] >512' Capturará y presentará todos los paquetes IP que sean mayores que 512 bytes. La secuencia ip [ 2 : 2 ] identifica el segundo byte del encabezado IP (el cual es el tamaño del paquete) y compara este valor de 512. El 2: indica el desplazamiento del paquete IP, mientras el 2 restante es el número de bytes en ese campo
Herramienta traceroute
El comando traceroute examina y registra la ruta a un destino de red especificado.
En una red IP tradicional, se usan uno o más enrutadores para proporcionar la conectividad entre diferentes redes IP. La función de enrutamiento es principalmente la misma: reenviar paquetes IP desde una interfaz a otra con base en la información de enrutamiento establecida. El comando traceroute usa el campo tiempo de vida
Informática Integrada Internetworking
52
(TTL) contenido en un paquete IP e intenta obtener un mensaje ICMP TIME_EXCEEDED desde cada host a lo largo de la ruta, hasta el destino. Unido a un
intento de conectar al destino en un puerto que no se puede alcanzar, causará una respuesta sistemática de todos los enrutadores a lo largo del camino, hasta el último destino. Cumple esta tarea enviando solicitudes (o sondas) con un TTL de 1 y aumenta el TTL en 1 hasta que alcance el huésped deseado o 1, exceda el valor TTL máximo. De manera predeterminada, el TTL es colocado en 30 saltos, pero esto se puede cambiar.
Este comando tiene un gran número de opciones de línea de comandos, pero el único argumento que se requiere es un nombre de host o una dirección IP de destino. Por ejemplo, para presentar la ruta IP entre el sistema local corriendo traceroute y el sistema destino llamado vermeer, se emite el siguiente comando:
# traceroute vermeer
traceroute to vermeer 128.197.2.200) 30 hops max 40 byte packets
1 router-1 (10.0..2.129)\ 4.256 ms * 2.899 ms
2 vermeer (128.197.2.2'00) 7.340 ms 7.433 ms 7.526 ms
De manera predeterminada, traceroute envía un total de tres sondas, cada una con
un valor TTL diferente, para cada salto. La primera línea de la salida incluye el
destino, junto con la dirección IP, el número predeterminado de saltos que usó traceroute, y el tamaño de los paquetes enviados. La segunda línea (con un 1)
presenta el primer salto encontrado por traceroute.
Como el enrutador predeterminado en este ejemplo es router-1 (enrutador 1), el primer paquete se envía allá. El primer paquete enviado es un paquete de solicitud ICMP, con el campo TTL establecido en 1. Con IP, cualquier paquete que alcance al
enrutador disminuye el TTL en 1, lo que equivale a cero. Cuando un enrutador obtiene
un paquete y TTL es cero, se supone que descarta el paquete y le notifica al
remitente. Esto obliga al enrutador a responderle al cliente emisor con un mensaje TIME_EXCEEDED. Después de que esto sucede, traceroute mide la cantidad de
tiempo entre el momento en que envió el paquete y el momento en que obtuvo la respuesta. Esto se conoce como tiempo de ida y vuelta (round-trip time) o RTT y se
presenta en milisegundos (una milésima de segundo), como se muestra después del nombre del host y la información de la dirección IP. Esto implica que el RTT de la
primera serie de paquetes de sonda tomó 4.25 milisegundos (o 0.004 segundos), y la tercera serie tomó 2.89 milisegundos (o 0.028 segundos).
La segunda línea detalla el segundo salto de enrutamiento y muestra que traceroute alcanzó el sistema del destino vermeer con tiempos RTT más lentos
que el primero. Cuando se envió la segunda sonda, el enrutador disminuyó el TTL, y luego pasó este paquete a vermeer. Como traceroute está intentando tener acceso a
un puerto no usado, vermeer responde con el error PORT UNREACHABLE (puerto no
alcanzable). De hecho, como regla general en internets grandes (y a veces pequeñas), el rendimiento entre sistemas y redes podrá, y puede, variar considerablemente aun de un momento al siguiente. No hay restricción en lo que constituye un destino; puede ser cualquier tipo de dispositivo en el rango que va desde un sistema de host simple hasta un enrutador de Internet. El único requisito es que debe soportar IP.
Definición y Arquitectura de TCP/IP
53
Debido a las variaciones y los problemas con los dispositivos enrutadores a lo largo de ciertas rutas, las fluctuaciones generales de las rutas de red pueden llevar a salidas de traceroute impredecibles y extrañas. Como consecuencia, podrían aparecer ciertos códigos después de que se presenta la información de temporización. La tabla 1.12 muestra estos códigos y sus significados.
Tabla 1.12 Códigos de presentación de traceroute.
Código Significado
* No hay respuesta a los paquetes
! TTL en el paquete recibido se establece en 1
!H El host destino no se puede alcanzar
!N La red destino no se puede alcanzar
! P El protocolo destino no se puede alcanzar
! S La opción de la ruta fuente falló. En la práctica, esto no debe pasar, y si pasa, indica que un bug o un problema con el enrutador genero el error
! F Se necesitó fragmentación del paquete. En la práctica esto no debe suceder, y si sucede, indica que un bug o un problema con el enrutador genero el error
! X La ruta está bloqueada debido a que la comunicación está siendo inhabilitada administrativamente. En otras palabras, la ruta está cerrada o bloqueada desde el punto de vista del software
! N> Código de error ICMP N es ese número
traceroute contiene una cantidad de parámetros operacionales que pueden
modificarse para afectar la manera de cómo rastrea una ruta al destino especificado. Cada uno de estos parámetros tiene una opción de línea de comandos asociada que puede alterar sus valores predeterminados. La tabla 1.13 presenta estas opciones.
Tabla 1.13 Opciones operacionales traceroute.
Opción Descripción
-i Especifica una interfaz alterna -p Establece el puerto alterno para enviar paquetes de sonda -g Especifica un enrutador para enrutar fuentes extraviadas -f Establece el valor TTL inicial que debe usarse -s Usa la dirección especificada como la dirección fuente en la transmisión de
paquetes de sonda -q Establece el número de consultas de sonda -m Establece los saltos máximos -d Habilita la bandera de depuración (SO_DEBUG) -F Especifica no fragmentar -t Establece la bandera de tipo de servicio (TOS) -w Establece el tiempo de espera para los paquetes de sonda -x Especifica no calcular las sumas de verificación (checksums)
Informática Integrada Internetworking
54
Cuando traceroute envía paquetes de sonda, usa, de manera predeterminada, el
puerto UDP de 33434 y supone que este puerto no está siendo usado por otra aplicación o servicio de red. Usa este alto número de puerto en espera de que el destinatario responda con un mensaje de puerto inalcanzable, terminando así el rastreo de la ruta. Por otro lado, si ese puerto está en uso, causará problemas para traceroute. Si esto sucede, se usa la opción -p seguida de otro número de puerto, y
traceroute utilizará ese puerto en lugar del predeterminado.
Monet# traceroute -p 10 -m 5 128.197.2.200
traceroute to 128.197.2.200 (128.197.2.200), 5 hops max, 40 byte
packets
1 rodin (10.0.2.129) 10.193 ms * 2.158 ms
2 * * *
3 * * *
4* * *
5 * * *
Si esto aún no da resultado, debe intentarse usar la opción -i, la cual instruirá a
traceroute para que use el protocolo ICMP en lugar del UDP cuando se envíen
paquetes de sonda. Por tanto, el comando
Monet# traceroute -m 5 -i 128.197.2.200
Con la opción -i, produce los resultados correctos:
traceroute to 128.197.2.200 (128.197.2.200), 5 hops max, 40
byte packets
1 rodin (10.0.2.129) 4.412 ms * 2.235 ms
2 vermeer (128.197.2.200) 6.875 ms 6.955 ms 6.935 ms
Como se puede observar, esto significó algo de ensayo y error para obtener el resultado deseado. Sin embargo, éste no es un ejemplo artificial; más bien, vermeer representa un dispositivo real: una impresora láser. El punto real aquí es que cuando se rastrea la ruta a un destino particular, puede haber muchas razones por las cuales traceroute falla en alcanzar un destino. La falla podría no significar que el dispositivo está abajo o desconectado de la red.
Opciones de presentación
Dos opciones están disponibles para modificar la salida de traceroute. La primera,
-v, presenta, para cada salto, el tamaño y destino de los paquetes de respuesta. El
siguiente es un ejemplo:
# traceroute – i lel –v Rembrandt
traceroute to rembrant (10.0.2.75), 30
hops max, 40 byte packets 1 rembrant (10.0.2.75) 56 bytes to
10.0.2.1 3.450 ms 2.085 ms
2094 ms
La segunda opción –n, presenta direcciones en forma numérica, en lugar de usar el
nombre simbólico. Esto elimina la tarea agregada de traceroute de tener que
resolver cada uno de los nombres de host de los enrutadores.
Definición y Arquitectura de TCP/IP
55
Herramienta ethereal
El comando ethereal es una solución muy potente para hacer seguimiento de red Ethernet que puede usarse para capturar y analizar el tráfico de red en modos de tiempo real o fuera de línea, Esta herramienta capta dónde termina tcpdump, proporcionando una completa decodificación de protocolos a nivel de paquete que cuenta con el soporte para muchos protocolos de red populares y una interfaz de captura de paquete fácil de usar. Además, ethereal soporta muchos otros formatos de captura de paquetes comerciales, que brinda la oportunidad de continuar usando el software existente y procesar estos archivos de datos con ethereal.
Esta herramienta proporciona una interfaz GUI robusta que hace más eficiente la captura de los datos de red y el subsiguiente examen de tráfico de red. La ventana principal contiene un conjunto de elementos de menú, tres paneles, más tres estados o cuadros de entrada en la parte inferior. Muchos de los elementos del menú se explican por sí mismos y no se cubrirán en detalle. El primer panel contiene un resumen de todos los paquetes capturados. Este panel contiene campos de número de paquete, sello de tiempo, fuente, destino, protocolo e información.
El panel muestra una vista jerárquica (detalle del paquete) que contiene todos los protocolos de capa superior presentados en un formato de árbol. El panel restante incluye una presentación hexadecimal de todo el paquete. A medida que el usuario se mueve a través del segundo panel, por medio de la vista de árbol, el panel inferior se resalta donde el cursor está posicionado en el paquete. Una barra de progreso en el lado izquierdo de la ventana principal muestra el estado de las tareas, y se suministra un cuadro de texto filtro para aceptar el filtrado de los paquetes presentados en el primer panel. Finalmente, un cuadro de información en el lado derecho de la ventana principal indica el nombre del archivo de datos y el número de paquetes abandonados.
El software soporta varias opciones importantes de línea de comandos, que pueden ser divididas en dos categorías: opciones de modo de presentación y opciones de modo de función. Las opciones de modo de presentación pueden controlar elementos como el tamaño de los paneles individuales de presentación y el tipo y tamaño de la fuente que se utiliza. La tabla 1.14 incluye las opciones de presentación.
Tabla 1.14. Opciones de presentación ethereal. Opción Descripción
- B Controla la altura inicial del panel hexadecimal de la parte inferior
- P Controla la altura inicial del panel de resumen de paquetes
-T Controla la altura inicial del panel de vista de árbol de los paquetes
- b Usa la fuente especificada en negrilla para la presentación del campo del paquete
- m Usa la fuente especificada, en lugar de la predeterminada
- t Establece el formato del sello de tiempo del paquete cuando se presenta en el panel del paquete de resumen
Las opciones de modo funcional controlan elementos como cuál interfaz de red se utilizará para leer el tráfico capturado, el tamaño máximo de los paquetes que debería
Informática Integrada Internetworking
56
ser leído durante la captura de paquetes, etc. La tabla 1.15 presenta estas opciones de comando.
Tabla 1.15 Opciones funcionales ethereal. Opción Descripción
- c Captura el número de paquetes tal como se haya especificado con esta opción
- h Muestra la versión e información
- i Especifica la interfaz de red para capturar paquetes
- n Inhabilita la resolución del nombre del host y las transformaciones del nombre del puerto TCP/UDP
- r Obtiene los datos del tráfico de red del archivo especificado
- s Especifica la longitud predeterminada del paquete cuando se captura tráfico de red activa
- w Especifica el archivo de captura que se va a usar cuando se guardan datos en el disco
Por defecto, ethereal intenta leer todo el paquete mientras captura tráfico en la red. Sin embargo, con la opción – s es posible limitar el número real de bytes que ethereal leerá de cada paquete. La longitud predeterminada de bytes que ethereal lee es 65535, la cual es suficientemente grande para manejar muchos, si no todos, los paquetes que ethereal puede encontrar. Controlar el tamaño del paquete tiene un impacto en el rendimiento, el almacenamiento de datos y el análisis del paquete.
Por ejemplo, cuando se ejecuta el comando
ethereal -s 64
Arranca ethereal y cambia el tamaño predeterminado del paquete 64 bytes. Éste es el tamaño mínimo del marco de Ethernet, como muestra en la tabla 1.16. Esta tabla incluye también tamaños adicionales del protocolo de enlace de datos. El mejor enfoque es usar el tamaño prederminado, a menos que se estén capturando muchos paquetes y se deba reducir la cantidad total de datos guardados. La regla general es que si se va a capturar menos que lo predeterminado, se limitará la cantidad de protocolos de alto nivel que pueden ser codificados en última instancia desde los paquetes capturados.
Tabla 1.16 Tamaños de marcos de enlace de datos.
Protocolo de enlace de datos Mínimo Máximo
ATM 6 53
Ethernet 64 1518
FDDI 64 4500
Fiber Channel 0 2112
TokenRing 48 2048
Definición y Arquitectura de TCP/IP
57
Captura del tráfico de red
Para empezar a capturar información de la red, se da clic en el menú de Capture (Captura), y luego se selecciona el elemento del submenú Start, Ctrl +k (Inicio, Ctrl+k). Como otra alternativa, se puede emitir un ^k (Control k) del teclado. Una vez hecho esto, se presentará la ventana de Preferencias de Captura ethereal.
Esta ventana le permite al usuario cambiar la interfaz de red, el conteo de paquete y la longitud de frame, antes de que comience la sesión de captura. Además, el usuario puede definir un filtro en el cuadro de texto. La herramienta soporta las primitivas y las palabras clave del filtro de protocolo tcpdump. Como consecuencia, filtros de mucha
potencia pueden definirse muy rápida y fácilmente.
Al dar clic en el botón OK comenzará la captura. Al hacerlo, desaparecerá la ventana
de Preferencias de Captura ethereal y aparecerá la ventana de Captura/Playback ethereal.
Uso de filtros
El software de ethereal suministra dos tipos de filtros: el filtro de captura de paquete y el filtro de presentación. Los filtros de captura pueden establecerse antes de que haya comenzado una sesión de captura, especificando uno de ellos en el cuadro de texto filtro. La cadena TCP es una palabra clave usada por ethereal, la cual filtrará todos los paquetes que usen TCP.
También pueden crearse filtros permanentes. Éstos estarán disponibles a través de las sesiones de captura de paquete. Para crear este tipo de filtro, se da clic en el botón de filtro. Cuando haya hecho esto, se presentará el cuadro de diálogo ethereal: Preferences, Ésta es la misma ventana que se presenta cuando el usuario tiene acceso a las opciones ethereal.
Por defecto, ethereal no proporciona definiciones de filtro existentes de manera predeterminada. En su lugar, el usuario debe crearlas usando este cuadro de diálogo y guardarlas para uso futuro.
Ésta es la razón por la cual el panel de definición de filtro está vacío. Si el usuario hubiera definido filtros, éstos se presentarían.
La ventana de filtro contiene un conjunto de botones, cuadro de entrada de texto y un panel de definición de filtro. Para construir un nuevo filtro, se escribe el nombre del filtro en el cuadro de texto Filter name: (Nombre de filtro:). Luego, se ingresa la definición del filtro en cuadro de texto Filter string (Cadena de filtro); luego se da clic en el botón New. En este momento, el filtro se agregará al panel lista de filtros. Finalmente, se da clic en el botón S para guardar permanentemente el filtro para uso futuro. Después de que se han completado estos pasos, la ventana de filtro debe canten la definición de filtro que se acabó de crear.
Informática Integrada Internetworking
58
Establecimiento de preferencias y opciones
Para tener acceso a las preferencias, se selecciona el elemento Preferences del menú Edit. Se muestran tres marbetes que controlan el acceso a cada una de las pantallas asociadas. Seleccionando Columns, se presentarán las opciones del panel de resumen del paquete.
El panel de resumen de la ventana principal presenta de manera predeterminada el número de paquete, sello de tiempo, dirección fuente, dirección destino, protocolo e información adicional del paquete. Una característica especialmente útil de ethereal es que estos campos son personalizables. El usuario puede controlar qué campos se presentan en el panel, y en qué orden. Es muy útil si el usuario necesita ver la información del paquete en uno o más formatos especializados. Una de las quejas continuas acerca de algunas de las herramientas de seguimiento existentes es la imposibilidad de producir reportes; con estas características personalizables, generar reportes personalizados es muy fácil.
Para tener acceso a las opciones de impresión, se da clic en Printing en el cuadro de diálogo de Preferencias ethereal.
La herramienta ethereal puede imprimir paquetes en una impresora o en un archivo UNIX regular. El usuario puede definir una impresora y/o archivo predeterminados, para usar en las sesiones subsiguientes.
Una de las opciones de presentación más útiles es mostrar el tiempo en el que los paquetes llegaron al sistema. La opción Time of day presenta el momento exacto en que cada paquete fue leído por ethereal. Esto es muy útil en el rastreo de problemas de red que ocurrieron durante un periodo específico. La segunda opción presenta el tiempo como un desplazamiento (offset) desde cuando empezó la captura de paquetes. La opción final muestra el tiempo como un desplazamiento desde cada marco anterior. Como las opciones son mutuamente excluyentes, sólo se puede seleccionar una de ellas. El botón Apply (Aplicar) puede usarse para alterar los tiempos en el panel de resumen, sin descartar o borrar la ventana de opciones. Esto le permitirá al usuario ver cada opción de tiempo en el panel de resumen.
Definición y Arquitectura de TCP/IP
59
Utilería IPROUTE2
La utilería ip tiene una estructura de sintaxis global que será bastante familiar para
todos aquellos que han configurado alguna vez ruteadores CISCO utilizando el IOS. Todos los comandos empuiezan con ip seguido por el objeto apropiado como addr o
route, y después de los argumentos e información necesaria para llevar a cabo la
función.
Sintaxis del comando global de IP
ip [opción] objeto [comando [argumento]]
Opciones:
Las opciones son un conjunto valioso de modificadores que afectan al comportamiento y salida general de la utilería ip. Todas las opciones comienzan por el carácter – y se pueden utilizar en formato largo o abreviado. Actualmente están disponibles las siguientes opciones:
- v, - versión. Imprime la versión de la utilería ip.
- s, -stats, - statistics. Estadísticas o valores adicionales de funciones o
dispositivos.
- o, -online. Da formato a los registros de salida, proporciona un método
conveniente para enviar la salida de un comando a través de un conducto por ejemplo, cuando quremos hacer Grez a través de la salida.
- r, -resolve. Utiliza resolución de nombres de sistema para sacar nombres
DNS.
Objetos:
Esta es la parte más importante de la línea de comando. El objeto representa sobre quien vamos a operar o sobre que queremos extraer la información. Los tipos de objetos son:
Link. Dispositivo de red lógico o físico.
Addr. Direccion de protocolo en un dispositivo
Neigh. Entrada de la cache arp
Route. Entrada de la tabla de encaminamiento.
Rule. Norma en la base de datos de regulación de encaminamiento
Maddr. Dirección de multidifusión
Mroute. Entrada de cache de encaminamiento multiconversión
Tunnel. Túnel a través de IP.
Los nombres de todos los objetos podemos escribirlos en formato completo o abreviado. Por ejemplo, podríamos abreviar addr como ad o solamente a. Aunque se recomienda utilizar lo más completo posible la línea de comandos.
Informática Integrada Internetworking
60
Comando
El comando especifica la acción a llevar a cabo en un objeto. El conjunto de acciones posibles depende del tipo de objeto. Generalmente es posible hacer: add, delete y
show (list) en la mayoría de ellos, pero algunos no lo permitirán o pueden tener
acciones adicionales.
Argumentos
Los argumentos son las listas de opciones específicas del comando. Los argumentos dependen del comando del objeto. Se pueden utilizar dos tipos de argumentos:
Indicadores. Estan abreviados por una sola clave.
Parámetros. Consisten en una palabra clave seguida por un valor.
Cada comando tiene un parámetro predeterminado que se utiliza si omitimos el argumento. Por ejemplo, el parámetro predeterminado es dev para el comando ip
link; así: ip link list eth0 es equivalente a: ip link list dev eth0.
El comando de ip falla más normalmente por las siguientes razones:
La sintaxis de la línea de comando es incorrecta. Frecuentemente es debido a la utilización de una palabra clave desconocida. En ese caso el comando sale sin realizar ninguna acción e imprime un mensaje de error que contiene información acerca del fallo.
Sección 2: Classfull IP Addressing
Informática Integrada Internetworking
62
Classfull IP Addresing
63
Sección 2: Classfull IP Addresing
Introducción
Esta sección es la introducción a los conceptos de direccionamiento IP, incluye términos como: clases de redes y mascaras. Identificará direcciones inválidas para determinadas clases de redes y situaciones, identificará los problemas más comunes de direccionamiento IP.
Objetivos Particulares
Al finalizar esta sección, Usted podrá:
Definir que es una dirección IP y su estructura
Identificar de las direcciones IP las diferentes clases de redes
Identificar el ID de la red y el ID del host, dentro de las redes de clase A, B, C
Distinguir direcciones IP válidas entre las diferentes clases de redes
Informática Integrada Internetworking
64
Classfull IP Addresing
65
Qué son las Direcciones IP?
Internet es un gran grupo de redes interconectadas. Todas estas redes se ponen de acuerdo para conectarse con otras redes, permitiendo a cualquiera conectarse a otro. Cada uno de estos componentes de red se asignan a una dirección de red.
Cada host en una red TCP/IP es identificada por una dirección IP. Cada uno de los componentes de una red TCP/IP debe tener una dirección IP para que se comuniquen entre ellos.
Las direcciones IP son una cadena de 32 bits que se dividen en octetos; los cuales están separados por puntos entre cada uno de ellos. Los octetos están representados por un número decimal que esta dentro del rango del 1 al 255, esto es a lo que se le llama notación decimal pero igual tenemos la notación binaria que es de donde parte este formato de direcciones. Ejemplo:
Formato Binario: Formato Decimal: 10000011.01101011.00000011.00011000 131.107.3.24
Cada dirección define un número de red (Network ID) y un número de Hots (Host ID), el ID de la red es el número que identifica en el sistema que están localizadas en el mismo segmento físico de una red, por supuesto, todos los hosts en esta red tienen el mismo número de ID y que debe ser único en una Internetwork.
El host ID identifica la estación de trabajo, servidor, router o algún otro host de TCP/IP en un mismo segmento. La dirección para cada uno de los hosts debe ser única para el network ID.
Nota: un octeto son 8 bits, lo que en una notación decimal típica significa el primer conjunto de números. Por ejemplo: en la dirección IP 192.168.1.42 el primer octeto es el 192.
Convirtiendo direcciones IP
Recordando un poco, en el formato binario contamos nada más con dos valores: 0 / 1 que dependiendo de su posición dentro del octeto, cada número 1 tiene un valor decimal. Cuando tenemos un bit 0, su valor siempre es cero.
En la tabla que relatamos a continuación tenemos un ejemplo: todos los número 1 tienen un valor diferente siendo el mas alto el 128 y el mas bajo el 1. Para sacar el valor en notación decimal se requiere sumar la cantidad de cada uno de ellos, es decir: 1+2+4+8+16+32+64+128=255
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
Informática Integrada Internetworking
66
Siguiendo lo anterior, tenemos la siguiente tabla:
Binario Valores de los Bits Notación Decimal
00000000 0 0
00000001 1 1
00000011 1+2 3
00000111 1+2+4 7
00001111 1+2+4+8 15
00011111 1+2+4+8+16 31
00111111 1+2+4+8+16+32 63
01111111 1+2+4+8+16+32+64 127
11111111 1+2+4+8+16+32+64+128 255
Classfull IP Addresing
67
Clases de Redes
La comunidad de Internet decidió que las direcciones IP se dividieran en diferentes clases de redes, (A, B, C, D y E); de los cuales trabajamos con tres nada mas ya que los otros rangos están asignados a usos experimentales e investigaciones.
Para organizar mejor las clases de red, se decidió desde los primeros días de vida de IP, que los primeros bits deberían decidir la clase a la que pertenecían. Esto quiere decir que el primer octeto de la dirección IP especifica la clase.
TCP/IP soporta las clases A, B y C; las clases de redes se definen por el número de bits que son utilizados para identificar la red (Network ID) y los bits restantes son asignados a los dispositivos que componen la red. Igualmente define los posibles números de redes que hay dentro de cada clase y los números de hosts que puede haber por cada red.
Nota: Observará que algunos huecos en los rangos, esto se debe a que hay algunas direcciones especiales que se reservan para usos especiales. La primera dirección especial es una que ya le es familiar: 127.0.0.1. Está se conoce como la dirección de loopback o de bucle local. Se configura en cada máquina que usa IP para que se refiera a sí misma. Otros rangos importantes: cada IP de la red 10.0.0.0, de las redes 172.16 a 172.31 y de la red 192.168 se consideran como IP privadas. Estos rangos no se permiten reservar a nadie de Internet, y por tanto, puede usarlos para sus redes internas.
Definimos redes internas como redes que están detrás de un firewall, no conectadas realmente a Internet, o que tienen un enrutador que realiza el enlace de las redes.
Redes Clase A
Network Host Host Host
En una red clase A, el primer octeto identifica la red y los tres octetos últimos el número de nodo.
El primer bit debe ser: 0xxxxxxx
Valor mínimo: 00000000 Decimal: 0 Valor máximo: 01111111 Decimal: 127 Rango: 1 –126
Hay 126 redes de clase A, cada una tiene 16,777,214 hosts.
Informática Integrada Internetworking
68
Redes Clase B
Network Network Host Host
En redes clase B, los dos primeros octetos son para identificar la red y los demás para el número de host.
Los primeros bits deben ser: 10xxxxxxx
Valor mínimo: 10000000 Decimal: 128 Valor máximo: 10111111 Decimal: 191 Rango: 128 –191 Hay 16,384 redes de clase B, cada una tiene 65,534 hosts.
Redes Clase C
Network Network Network Host
Los primeros bits deben ser: 110xxxxxx
Valor mínimo: 11000000 Decimal: 192 Valor máximo: 11011111 Decimal: 223 Rango: 192 –223
Hay 2‟097,152 redes de clase c y cada una tiene 254 hosts.
Redes Clase D
Las direcciones de las redes clase D están dentro del rango de 224.0.0.0 al 239.255.255.255 son usadas para paquetes multicast.
Los paquetes multicast usan muchos protocolos para alcanzar el grupo de hosts. IGMP Router Discovery es un ejemplo de un protocolo que utiliza paquetes multicast.
Redes Clase E
Igualmente, las direcciones de esta clase se encuentran dentro del rango del 240.0.0.0 al 255.255.255.255 y que están reservadas para futuros nodos de direcciones. Direcciones de las clases D y E no están asignadas a hosts individuales y más bien son para fines de investigación.
Classfull IP Addresing
69
La siguiente tabla es un sumario de las diferentes clases de Redes y algunos valores a considerar.
Clase Octetos Inicia con Bits:
Número de Bits para identificar la red
Número de bits para identificar los host
Valor Máscara
de Red
A NHHH 0xx 7 24 1 - 126 255.0.0.0
B NNHH 10x 14 16 128 - 191 255.255.0.0
C NNNH 110 21 8 192 - 223 255.255.255.0
D 1110 20 8 224 - 239
E 1111 20 8 240 - 255
Guía de Direcciones IP
Si esto no fuera suficiente, aún contamos con ciertas reglas que debemos tener siempre en cuenta:
El ID de una red no puede ser 127, ya que esta reservada para funciones de Loopback
El ID de la red y el ID del host, nunca pueden ser todos 0´s o sea que no puede ser 0 porque se considera como en esta red nada mas.
El ID de la red y el ID del host, nunca pueden ser todos 1´s o sea que no puede tener el valor de 255 ya que se considera como un broadcast a la dirección.
El número ID de un host debe ser único en una red local
Todos los hosts incluyendo interfaces como routers, requieren una dirección única dentro de la red. Ya sabemos que él ID de una red nos define un segmento físico, pero cuales son los rangos válidos de direcciones para los hosts?
Clase de Red Rango de Inicio Rango Final
A w.0.0.1 w.255.255.254 B w.x.0.1 w.x.255.254 C w.x.y.1 w.x.y.254
Como orden, dos recomendaciones:
Asignar a los hosts sus ID´s de acuerdo al segmento de red
Asignar a los routers las primeras direcciones IP
Informática Integrada Internetworking
70
Máscara de Red
Como mencionamos antes, las direcciones IP se dividen en dos partes, la dirección de red y la dirección de la máquina. Dependiendo de la clase de la dirección hay de 254 a 16 millones de direcciones disponibles para los hosts de la red.
Una máscara de red, es una dirección de 32 bits, que:
En primer lugar le dice al sistema que bits de la dirección IP corresponden al componente de red y qué bits corresponden al componente máquina.
Sirve para bloquear una porción de la dirección IP para distinguir él ID de la Red del número de los hosts.
Especificar cuando un host destino esta en una red local o remota.
Cada hosts en una red basada en TCP/IP requiere de una máscara, ya sea una máscara por defecto cuando la red no esta subdividida o una personalizada de acuerdo a los segmentos en que se haya dividido la red.
Volviendo un poco atrás, cuando en formato binario realizamos una operación AND tenemos que:
Este es el mismo proceso que TCP/IP utiliza para saber a donde debe enviar los paquetes que van de una red a otra, veamos. Si mi dirección IP es de una clase B, tenemos que:
Dirección Host 10011111 11100000 00000111 10000001
Máscara 11111111 11111111 00000000 00000000
Resultado: 10011111 11100000 00000000 00000000
Es de esta manera que la máscara bloquea la porción del Network ID para indicarnos de que clase de red estamos hablando. Las máscaras por default, las tenemos indicadas en una tabla anterior, para ser compatible con direcciones IP en notación binaria, la subnet mask también es convertida en binario.
1 AND 1 =1
1 AND 0 =0
0 AND 1 =0
0 AND 0 =0
Classfull IP Addresing
71
Subnet Mask Bits
Representación Binaria representación decimal
11111111 255
11111110 254
11111100 252
11111000 248
11110000 240
11100000 224
11000000 192
10000000 128
00000000 0
En notación binaria, una máscara de subred es representada por cuatro octetos tal y como la dirección IP. La siguiente tabla le muestra las máscaras en notación decimal y binario utilizadas en el classfull método.
reprsentacion DECIMAL REPRESENTACIÓN binaria
255.0.0.0 111111111.00000000.00000000.00000000
255.255.0.0 11111111.11111111.00000000.00000000
255.255.255.0 11111111.11111111.11111111.00000000
Utilizando la representación en binario de la mascara usted puede manipular los 32 números. Esto incrementa la capacidad de proveer una mayor selección de redes comparado con el classful-method.
Informática Integrada Internetworking
72
Classfull IP Addresing
73
Examen 2-1
Identificando direcciones IP válidas. Revisar las siguientes direcciones IP e identificar cuales son válidas y porque.
131.107.256.80
222.222.255.222
231.200.1.1
126.1.0.0
0.127.4.100
190.7.2.0
127.1.1.1
198.121.254.255
255.255.255.255
Informática Integrada Internetworking
74
Escenario 1. Convertir las direcciones IP de la siguiente tabla en binario. En la primera columna el número decimal convertir en porción binaria y en la segunda columna completar la dirección IP en binario.
IP DECIMAL Porción en binario IP en Binario
122.131.25.64 1111010,10000011,1101,1000000 01111010.10000011.00001101.0100000
215.34.211.9
97.49.153.122
64.144.25.100
176.34.68.78
42.89.215.61
71.73.65.166
47.245.235.84
156.213.67.23
124.87.235.87
7.23.87.2
223.12.7.8
Classfull IP Addresing
75
Escenario 2. En este ejercicio usted deberá identificar la clase de red de la dirección IP, separar el network ID del Host ID.
IP Address Class/Subnet mask Network ID Host ID
129.102.197.23 B/255.255.0.0 129.102.0.0 197.23
131.107.2.1
199.32.123.54
32.12.54.23
1.1.1.1
221.22.64.7
93.44.127.235
23.46.92.184
152.79.234.12
192.168.2.200
168.192.3.26
224.224.224.224
200.100.50.25
172.71.243.2
163.37.121.32
76.35.61.23
Para una red de más de 1,000 hosts, que clases de redes se necesitan?
Si tengo 64 hosts, que clase de red debe solicitar?
Informática Integrada Internetworking
76
Sección 3: Classless Addresing
Informática Integrada Internetworking
78
Classless Addressing
79
Sección 3 Classless Addresing
Introducción
Como parte de esta sección, veremos los conceptos y procedimientos fundamentales del subnetting y supernetting. Incluyendo cuando es necesario un subnetting y que se requiere, como y cuando utilizar una máscara de sub redes y como crear los rangos de direcciones válidas dentro de cada segmento.
Objetivos Particulares
Al finalizar esta sección, usted podrá:
Explicar la función de una máscara de Sub-Red
Definir una máscara de subredes común para una red WAN que contiene múltiples subredes.
Definir los rangos de ID válidos de los hosts para múltiples sub- redes
Explicar qué es el Supernetting
Informática Integrada Internetworking
80
Classless Addressing
81
Definiendo Subnetting
Una Subnet o sub-red, es un segmento físico en un ambiente de TCP/IP que usa direccionamiento IP derivadas de un solo network ID.
Por lo general, las organizaciones adquieren su Network ID de parte del InterNIC, dividirla en segmentos requiere que cada segmento utilice un número diferente de network ID o digamos un Subnet ID. Este ID se crea dividiendo los bits que corresponden para identificar al host en dos partes, una parte se agrega a los bits que corresponden al ID de la red y la otra parte es para el ID de los hosts.
Para las organizaciones que aplican el subneteo, de una sola red crean múltiples segmentos; lo que les permite:
Mezclar diferentes tecnologías como: Ethernet y Token Ring
Reducir la congestión de la red, re-direccionando el tráfico y reduciendo los broadcast.
Una administración más comoda de las direcciones IP
Conectar sucursales y tolerancia a fallas
Nota: El Subnetting, esta definido en el RFC´s: 950.
Implementando una Sub-red
Antes de crear un esquema de Sub redes, necesitamos determinar los requerimientos actuales y considerar el crecimiento de la organización.
Determinar el número de segmentos físicos que se requieren en la red
Determinar el número de hosts para cada segmento físico. Recordemos que cada uno de los hosts requieren una dirección IP.
En base a estas necesidades definir:
Una Máscara de Sub red para toda la red.
Un único ID para cada segmento físico
Un rango de hosts ID´s para cada sub-red
Informática Integrada Internetworking
82
Ejemplo para una red de Clase B
En la gráfica anterior, se ilustra como se toman bits extras de los asignados al host ID para formar una máscara de red. Por supuesto, podemos tomar más bits para más segmentos en el caso de necesitar más de 254; pero nos queda un número más pequeño de bits para combinar y crear los hosts ID. Por esta razón es muy importante una buena planeación.
Pasos para definir la nuevas subnet mask:
1. Determinar el número de segmentos que se requieren de acuerdo a las necesidades. Contamos con una Intranet con 6 sucursales en varios estados de la republica y que requieren conexiones para transacciones en línea.
2. Determinar el número de bits que pertenecen al Hostid y que se van agregar al Netid para crear las subredes. Para determinar el numero de bits que en este caso nos tenemos que robar del tercer octeto, vamos a convertir el 6 en binario:
6 = 110 (2)
La representación de 6 en binario me toma 3 bits, mismos que vamos a tomar. Comprobando: 2 a la 3 es igual a 8, menos dos combinaciones que no son posibles (ni todos ceros ni todos unos) es igual a 6 que cumple con los 6 segmentos que necesitamos.
3. Convertir en decimal y definir la nueva subnet mask. Del tercer octeto, activar de izquierda a derecha los bits que se van agregar al netid y convertir en decimal
La máscara en binario queda así: 11111111.11111111.11100000.00000000 Convirtiendo en decimal: 255. 255. 224. 0
4. Definir los segmentos de subred. Permutamos los bits que nos robamos para definir segmentos:
Tercer octeto: 000xxxxx = 0 (no válido) 001xxxxx = 32 010xxxxx = 64 011xxxxx = 96 100xxxxx = 128 101xxxxx = 160 110xxxxx = 192 111xxxxx = 224 (no válido)
Número de Sub-redes 0….. 254 Número de Hosts 254
Network ID Host Id
10xxxxxx Xxxxxxxx 111xxxxx xxxxxxxx
Número de Hosts Posibles: 65,534
Classless Addressing
83
5. Definir los rangos de direcciones IP para cada uno de los segmentos. Definiendo los rangos de IP´s para cada segmento:
w.x.32.0 w.x.32.1 a la w.x.63.254 w.x.64.0 w.x.64.1 a la w.x.95.254 w.x.96.0 w.x.96.1 a la w.x.127.254 w.x.128.0 w.x.128.1 a la w.x.159.254 w.x.160.0 w.x.160.1 a la w.x.191.254 w.x.192.0 w.x.192.1 a la w.x.224.254
Cuando son pocos los bits que tenemos que combinar no representa un problema, pero que pasaría si son 7 ó 14?. Otro método que es un “shortcut” para la definición de los segmentos de red y de los rangos para las direcciones IP es:
1. Definir los bits que ocupamos para los segmentos, para este caso, requerimos 3.
2. Activar los bits en 1 de izquierda a derecha, esto es: 11100000
3. Seleccionamos el bit menos significativo, en este caso es el tercero y se convierte en decimal =32
4. Este es el valor que se debe incrementar para definir los segmentos, comparemos: 32 + 32 =64; 64+32 =96; 96+32=128; etc.
Hasta ahora hemos subdividido redes en un solo octeto, pero igualmente si las necesidades son más segmentos, una clase A se puede definir hasta el tercer octeto; por ejemplo:
Network ID Subnet Mask Binario
10.0.0.0 255.255.248.0 11111111.11111111.11111000.00000000
Informática Integrada Internetworking
84
A continuación le relatamos una tabla de conversiones que le será bastante útil para planear su subnetting.
Clase A, considerar que se toma el segundo octeto para crear la máscara
Segmentos Bits requeridos
Máscara Sub-red Hosts por segmento
0 1 Inválida Inválida
2 2 255.192.0.0 4,192.302
6 3 255.224.0.0 2,0972150
14 4 255.240.0.0 1,048,574
30 5 255.248.0.0 524,286
62 6 255.252.0.0 262,142
126 7 255.254.0.0 131,070
254 8 255.255.0.0 65,534
Clase B, en este caso es el tercer octeto que utilizamos para crear la máscara
Segmentos Bits requeridos
Máscara Sub-red Hosts por segmento
0 1 Inválida Inválida
2 2 255.255.192.0 16,382
6 3 255.255.224.0 8,190
14 4 255.255.240.0 4,094
30 5 255.255.248.0 2,046
62 6 255.255.252.0 1,022
126 7 255.255.254.0 510
254 8 255.255.255.0 254
Clase C, recordar que es el cuarto octeto el que define la sub máscara
Segmentos Bits requeridos
Máscara Sub-red Hosts por segmento
0 1 Inválida Inválida
2 2 255.255.255.192 62
6 3 255.255.255.224 30
14 4 255.255.255.240 14
30 5 255.255.255.248 6
62 6 255.255.255.252 2
126 7 Inválida Inválida
254 8 Inválida Inválida
Classless Addressing
85
Examen 3-1
Definiendo máscaras de Sub – Redes Válidas. En este ejercicio, usted va a definir una máscara para las sub-redes en diferentes situaciones:
1. Clase A, red local
2. Clase B, red local con 4,000 hosts
3. Clase C, red local con 254 hosts
4. Clase A, con 6 Sub-Redes
5. Clase B, con 126 sub-Redes
6. Clase A, actualmente cuenta con 30 sub-redes que en un año crecerán a 65. Cada una de las sub – redes no tendrán más de 50,000 hosts.
7. Usando la máscara del paso 6, hasta cuantas sub-redes nos permite crecer?
8. Clase B, Contamos con 14 sub – redes que crecerán al doble el próximo año; cada una de las sub – redes contaran con 1500 hosts.
9. Siguiendo con el paso anterior, con esa máscara de subnetting cuantas redes nos provee para un futuro crecimiento.
Informática Integrada Internetworking
86
Examen 3-2
Identificando problemas de direcciones en sub – Redes. En este ejercicio, hay que observar los escenarios e identificar los problemas escondidos, cuales son los efectos ocasionados y explicarlos.
Escenario 1
Qué hosts del diagrama tienen una máscara incorrecta?
Cuáles son los efectos para estos hosts?
Cuál es la máscara de sub-red correcta?
IP: 109.128.1.1 M: 255.0.0.0
IP: 109.128.2.2 M: 255.0.0.0
IP: 147.103.73.73 M: 255.255.0.0
IP: 109.100.11.11 M: 255.255.0.0
IP: 109.128.10.10 M: 255.255.0.0
Classless Addressing
87
Escenario 2
Cuál es el problema en esta gráfica?
Cómo afecta en la comunicación?
Cuál es la máscara correcta?
IP: 131.107.100.27 SM:255.255.0.0 DG:131.107.100.1
IP: 131.107.33.7 SM:255.255.0.0 DG:131.107.33.3
131.107.100.1 131.107.33.3
Informática Integrada Internetworking
88
Escenario 3.
En este ejercicio va a determinar la máscara apropiada de sub-redes para los siguientes rangos de direcciones IP
1. Rango de la 128.71.1.1 hasta la 128.71.254.254
2. Rango de la 61.8.0.1 hasta la 61.15.255.254
3. Rango de la 172.88.32.1 hasta la 172.88.63.254
4. Rango de la 111.224.0.1 hasta la 111.239.255.254
5. Rango de la 3.64.0.1 hasta la 3.127.255.254
6. Tenemos 4 segmentos, los Networks ID son: 190.1.16.0, 190.1.32.0, 190.1.48.0 y 190.1.64.0 máscara: 255.255.248.0:
Classless Addressing
89
Supernetting
Supernetting es el caso contrario que subnetting, esto es que teniendo varias redes de clase C, pueda crear una máscara que haga suponer que todas son un sólo segmento, es decir una sola red.
Tengo siete redes de Clase C, que van de los segmentos 220.78.168.0 al 220.78.174.0
Convierto cada uno de los octetos en binario y tomo los 3 últimos bits del octeto que me indica el segmento de red y les pongo valor de 0. Por último, convierto en binario y obtengo mi nueva máscara.
Network ID Máscara Binario
220.78.168.0 255.255.248.0 11111111.11111111.11111000.00000000
220.78.168.0
220.78.169.0
220.78.170.0
220.78.171.0
220.78.172.0
220.78.173.0
220.78.174.0
Antes del Supernetting:
220.78.168.0 255.255.255.0 220.78.168.1
220.78.169.0 255.255.255.0 220.78.169.1
220.78.170.0 255.255.255.0 220.78.170.1
220.78.171.0 255.255.255.0 220.78.171.1
220.78.172.0 255.255.255.0 220.78.172.1
220.78.173.0 255.255.255.0 220.78.173.1
220.78.174.0 255.255.255.0 220.78.174.1
Tabla de Ruteo para el Router B
Router B
Después del Supernetting:
220.78.168.0 255.255.248.0 220.78.168.1
Figura no. 3.1. Supernetting con 7 redes de clase C
Informática Integrada Internetworking
90
Classless Addressing
91
Examen 3 - 3
Usted es un proveedor de servicios de Internet al cual le fueron asignadas un bloque de 2,048 redes de clase C iniciando en 192.24.0.0 y terminando con 192.31.255.0.
1. Si usted hiciera un superneteo de este bloque de redes, como cual dirección IP se debe ver?
2. Cuál es la máscara de red?
Los clientes que le han solicitado el servicio de Internet tienen los siguientes requerimientos:
El cliente no. 1 no tendrá más de 2,023 hosts
El cliente no. 2 no tendrá más de 4,047 hosts
El cliente no. 3 no tendrá más de 1,011 hosts
El cliente no. 4 no tendrá mas de 500 hosts
Conteste las siguientes opciones llenando con la IP correcta los espacios vacíos:
3. Cliente no. 1
Dirección de inicio 192.24.0.1 Dirección Final 192.24.7.8 Subnet Mask
4. Cliente no. 2
Dirección de inicio Dirección Final 192.24.31.254 Subnet Mask 255.255.240.0
5. Cliente no. 3
Dirección de inicio 192.24.8.1 Dirección Final Subnet Mask 255.255.252.0 6. Cliente no. 4
Dirección de inicio 192.24.14.1 Dirección Final 192.24.15.254 Subnet Mask
Informática Integrada Internetworking
92
Escenario 2.
Usted es el encargado de telecomunicaciones de una universidad y cuenta con la red: 118.0.0.0/10. Esta red tiene que subdividirla en 8 segmentos para cada uno de los campus de la universidad, además de subdividir bajo las siguientes especificaciones:
a) El primer sub-segmento es asignado a la Facultad de Medicina, la cual tiene que dividirlo en 4 segmentos más pequeños.
b) El segundo sub-segmento corresponde a la Facultad de Ingeniería que cuenta con 15 laboratorios con salida a Internet. Dividir esta red en 15 más pequeños.
c) El tercer campus corresponde a las Areas Sociales-Administrativas que requiere dividir en 30 segmentos más pequeños
d) El cuarto sub-segmento corresponde a las oficinas administrativas que se ubican en dos edificios conectados entre si. (Dividir en dos redes)
e) El quinto sub segmento se va a dividir en 8 redes para las áreas públicas.
Debe indicar al elaborar los ejercicios, el NetId en notación CIDR, las direcciones inicio, final y de broadcast en cada uno de los casos e indicar el número de direcciones IP con las que cuentan.
Classless Addressing
93
CIDR, Classless Inter-Domain Routing
Las clases de redes IP proveen de un método simple para diferenciar hosts locales de hosts remotos y para ubicar las rutas hacia los hosts de redes remotas. De cualquier manera, este método permite muy pocas variaciones en los tamaños de la red lo cual le puede ocasionar varios problemas con una inapropiada asignación de direcciones a las redes. Para romper estas limitaciones tenemos un método conocido como Classless Inter-Domain Routing que fue desarrollado para romper las redes de grandes tamaños.
Incluso si tiene una clase de direcciones A o B, no es realista configurar su red como un gran grupo de máquinas. Aparte de resultar una pesadilla administrar, le retamos a que encuentre cualquier tipo de red capaz de tener tantas máquinas agrupadas juntas. Por ejemplo, Ethernet no puede tener más de 1024 máquinas por segmento debido a las colisiones.
Para resolver este problema, estas redes enormes se dividen en subredes más pequeñas. Esto se hace expandiendo el número de bits usados para representar la dirección de red, una técnica conocida como Classless InterDomain Routing (Enrutamiento Inter-dominio sin clases) debido a que viola la descripción de las redes A, B y C.
La notación CIDR nos pide especificar una notación en decimal con el número de bits que compone la máscara. Por ejemplo:
IP Address 10. 217. 123. 7 Mask 11111111.11111111.11110000.00000000 Bits activados: 8 + 8+ 4 + 0= 20 Notación CIDR 10.217.123.7/20
Nota: A la notación CIDR también se le conoce como network prefix notation.
CIDR y Clases de Redes
Las direcciones IP en la notación CIDR son comprendidas por el número de bits de la dirección IP que identifican al network ID y se representada como /x. Por ejemplo, un network ID de 10 bits se representado como /10.
En la notación CIDR, la IP que se representa con /20 puede ser una red de clase A, B o C. Los ruteadores que soportan CIDR no utilizan los tres primeros octetos de la dirección para determinar si el host destino es local o es remoto, como en el método classful. En vez de eso, descarga en la información de bits de la mascara provista con la ruta para hacer una determinación.
La siguiente tabla es una lista practica de bits mask, la subnet mask asociada y el número de classfull networks posibles para cada una.
Informática Integrada Internetworking
94
Notación CIDR Subnetmask Número de classful networks
/8 255.0.0.0 256 clase B
/9 255.128.0.0 128 clase B
/10 255.192.0.0 64 clase B
/11 255.224.0.0 32 clase B
/12 255.240.0.0 16 clase B
/13 255.248.0.0 8 clase B
/14 255.252.0.0 4 clase B
/15 255.254.0.0 2 clase B
/16 255.255.0.0 1 clase B o 256 clase C
/17 255.255.128.0 128 clase C
/18 255.255.192.0 64 clase C
/19 255.255.224.0 32 clase C
/20 255.255.240.0 16 clase C
/21 255.255.248.0 8 clase C
/22 255.255.252.0 4 clase C
/23 255.255.254.0 2 clase C
/24 255.255.255.0 1 clase C
/25 255.255.255.128 ½ clase C
/26 255.255.255.192 ¼ clase C
/27 255.255.255.224 1/8 clase C
/28 255.255.255.240 1/16 clase C
Como nota aparte, esta versión de TCP/IP es la número 4, cuando se planteó el esquema de las direcciones IP nunca creyeron que en algún momento se fueran agotar las direcciones disponibles. Pues bien, el sistema esta por saturarse, por lo que se tiene ya contemplado una versión 6.0 para TCP/IP donde los números binarios se convierten a hexadecimales, es decir, que en vez de ser una cadena de 32 bits ahora su tamaño es de 128 bits, cuatro veces más grande.
Cuando usted configure direcciones IP debe teclear la dirección IP y la información de máscara de red en notación decimal. No acepta notación CIDR. Ahora que para calcular un network ID es mejor en notación binaria que en cualquiera de las dos (Notación Decimal o Notación CIDR). Veamos el siguiente ejemplo.
Classless Addressing
95
Para calcular el network ID cuando la dirección se especifica en notación CIDR.
1. Convertir la IP en formato binario.
2. Utilice el bit mask para determinar el número de bits en la dirección IP que crean el network ID.
3. Agregue los 0´s que le hace falta para completar la máscara.
Ejemplo 1:
IP Address en Notación CIDR: 10.217.123.7/20
IP Address 10. 217. 123. 7 Bin 00001010.11011001.01111011.00000111 255. 255. 240. 0 Mask 11111111.11111111.11110000.00000000
Network ID 00001010.11011001.01110000.00000000 Network ID CIDR 10.217.112.0/20
Para calcular el network ID cuando la dirección y la máscara de red se especifican en notación decimal.
1. Convertir la dirección IP en formato binario
2. Convertir la mascara de red en formato binario
3. Hacer un AND para calcular el Network ID.
Ejemplo 2:
IP: 10.217.128.7 Mask: 255.248.0.0 IP Address 00001010.11011001.01111011.00000111 Mask 11111111.11111000.00000000.00000000 Network ID 00001010.11011000.00000000.00000000
4. Después de calcular el Network ID en notación Binaria hacer el cálculo en
notación decimal/CIDR. Recuerde que los usuarios usualmente no utilizan estos términos.
Notación Binaria Notación CIDR
Ejemplo 1 00001010.11011001.0111000.00000000 10.217.112.0/20 Ejemplo 2 00001010.11011000.0000000.00000000 10.216.0.0/13
Informática Integrada Internetworking
96
IP´s disponibles para Hosts
El número de hosts soportados por network ID es calculado utilizando el número de 0´s que tenemos en la máscara de subred. Es decir, el número de 0´s es el exponente, siempre restándole 2 combinaciones que no son posibles (todos ceros y todos unos). Ejemplo:
IP 11000000.10101000.11000001.00000000 192. 168. 193. 0
Mask: 11111111.11111111.11110000.00000000 255. 255. 240. 0
Hosts ID . 0000.00000000
2 exp 12 = 4,096 menos 2= 4,094 hosts ID.
Sección 4: Implementando IPv6
Informática Integrada Internetworking
98
Implementando IPv6
99
Seccion 4: Implemendo IPV6
Introducción
En esta sección se analizan las causas del desarrollo de IPv6, cuales son sus mejoras, repasamos los encabezados y comaparmos entre IPv4 y el IPv6 y como se exresa el direccionamiento de la nueva generación.
Objetivos Particulares
Al finalizar esta sección, usted podrá:
Explicar los cambios de IPv6
Describir el encabezado de IPv6
Describir las ventajas y características de IPv6
Explicar las diferentes expresiones del direccionamiento
Informática Integrada Internetworking
100
Implementando IPv6
101
Historia de IPv6
La demostración del agotamiento del espacio de direcciones IP llevó al consenso de que no había tiempo suficiente para diseñar, construir y probar un nuevo protocolo con funcionalidades mejoradas, en lugar de implementar un nuevo protocolo que sólo añadiera más direcciones. Esto representó una oportunidad única para fijar las limitaciones relacionadas con el esquema de direccionamiento IPv4 y para desarrollar un protocolo para asegurar un crecimiento confiable de Internet en las próximas décadas.
El proceso se hizo cargo de las necesidades de diversas industrias, incluyendo las industrias del cable y la inalámbrica, servicios públicos de energía eléctrica, las redes militares, empresariales, proveedores de servicios Internet (ISP), y muchos otros.
En 1993, una convocatoria de propuestas (RFC 1550) se emitió. Tres de ellos fueron estudiados en detalle:
Common Architecture for the (Catnip) propuso la convergencia de la CLNP, IP e
IPX con el uso de Network Access Point Service (NSAP) direcciones.(Definido en
el RFC 1707.)
Simple Internet Protocol Plus (SIPP) propuso aumentar el tamaño de dirección
IP a 64 bits y la mejora de la cabecera IP. (Definido en el RFC 1752.)
TCP/UDP Over CLNP-Addressed Networks (TUBA) sugirió reemplazar IP(Capa
3) sin conexión con la Red de Protocolo (CLNP), donde TCP / UDP y otros
protocolos superiores podría funcionar en la parte superior de CLNP. (Definido en
el RFC 1347.)
La propuesta recomendada fue SIPP, con un tamaño de las direcciones de 128 bits. El autor principal del SIPP fue Steve Deering. IANA asignó el número de la versión 6 del protocolo. Un grupo de trabajo en el IETF llamado IP Next Generation (IPng) se inició en 1993, justo antes de que la web realmente llegará a la explosión del tráfico de Internet. Entonces, las primeras especificaciones llegaron a finales de 1995 (RFC 1883). El grupo de trabajo IPng fue retitulada IPv6 en 2001. La siguiente imagen muestra el origen y la cronología de IPv6.
En 1996, un banco de pruebas de IPv6 llamada BackboneIPv6 (6bone) fue creado a través de Internet. El 6bone ha utilizado principalmente una mezcla de routers de Cisco IOS Software con las implementaciones IPv6 beta y software de otros router en plataformas UNIX. Prefijos IPv6 dentro del espacio IPv6 3ffe ::/ 16 se asignaron a los participantes 6bone.
Informática Integrada Internetworking
102
1993 1994 1995 1996 1997 1998 1999 2000
IETF IPng
Started
1er Specifications
6bone
Provider-Based
Address Format
6TAP
IPv6 Forum
Founded
RIRs Assigned
IPv6 Spaces
Cisco IPv6
Support 12.2(2)T
En 1997, un primer intento de estructurar el espacio de IPv6 como un proveedor de formato de dirección basado en IPv6. Un año más tarde, la primera de cambio IPv6, llamado 6TAP, fue desplegado en STARTAP en Chicago. En 1999, los registros regionales de Internet (RIR) comenzó la asignación de prefijos IPv6 de producción utilizando el espacio de IPv6 2001 :: / 16.
En el mismo año, el IPv6Forum, un consorcio mundial de proveedores líderes de Internet y las redes de investigación y educación, fue fundada para promover IPv6 en el mercado y para permitir la colaboración entre los proveedores.
En el año 2000, muchos fabricantes comenzaron a agrupar IPv6 en sus productos principales. Cisco presentó una hoja de ruta de tres fases para el desarrollo de IPv6 e hizo la compatibilidad con IPv6 disponible en el software Cisco IOS versión L2.2 (2) T. En 2001, Microsoft anunció la disponibilidad de IPv6 en el código de la corriente principal de su último sistema operativo, Windows XP.
IPv5
La comunidad de Internet utiliza direcciones de IPv4 e IPv6, IANA es la organización que tiene la responsabilidad mundial de la asignación de números a todo lo relacionado con Internet, que incluye las versiones del protocolo IP. IANA asigna la versión 6 del protocolo IPng en 1995 a raíz de una petición formulada por el grupo de trabajo IPng.
¿Qué pasa con "IP versión 5"? IPv5 es un protocolo de reserva de recursos experimental destinado a proporcionar calidad de servicio (QoS), que se define como el Protocolo de Internet Stream (TS). Puede proporcionar transporte en tiempo real de multimedia tales como voz, vídeo y en tiempo real el tráfico de datos a través de Internet. IPv5, también llamado ST2, está documentado en el RFC 1819 y RFC 1190. Internet Streaming Protocol versión 2 (ST2) no es un sustituto de IPv4. Está diseñado para funcionar y coexistir con IPv4. El número 5 fue asignado por la IANA ya que este protocolo trabaja en la misma capa. ST2 utiliza los mismos esquemas de direccionamiento IPv4 como para identificarlos.
Implementando IPv6
103
Network Address Translation
Desde 1992, el CIDR no ha sido el único mecanismo que participan directamente en el retraso de la escasez de direcciones IPv4. Con los años, el mecanismo de NAT (definido en el RFC 1631), visto como una solución a corto plazo, desempeñó un papel clave al permitir a las organizaciones a utilizar Internet de algunas direcciones de unidifusión IP únicas a nivel mundial por sus grandes redes. NAT traduce por lo general los paquetes de una red, que utiliza direcciones IP únicas a nivel mundial unicast o un espacio de direcciones privadas tal como se define en la RFC 1918, a Internet.
Desde 1990, la combinación de CIDR, NAT y direccionamiento privado ha proporcionado beneficios a la Internet al reducir el agotamiento de direcciones IPv4.
Por otra parte, uno de los argumentos en contra de IPv6 es el uso de NAT. Esto es visto por algunos como la solución definitiva a la escasez de espacio de direcciones IPv4. Sin embargo, el uso de NAT tiene muchas implicaciones, las cuales fueron tomadas en cuenta en la ingeniería de IPv6. Algunas de estas limitaciones están documentadas en el RFC 2775 y RFC 2993:
Cualquier traducción en el camino de las piezas de cabecera rompe la comprobación de integridad. A pesar de muchas adaptaciones en parte puede resolver este problema, en algunos casos, el problema fundamental no es fácil de resolver. El encabezado de autenticación IPSec (AH) es un ejemplo de este problema.
Informática Integrada Internetworking
104
Características de IPv6
Después de la descripción de los principales problemas relacionados con el protocolo IPv4, usted debe ver que IPv6 resuelve todos estos problemas y ofrece nuevos beneficios. Estas son las principales mejoras:
El sistema de direcciones de 128 bits, que proporciona las direcciones IP para las
próximas décadas.
El mayor espacio de direcciones proporciona direcciones únicas en el mundo a
miles de millones de nuevos dispositivos tales como PDAs,
dispositivos móviles, y sistemas de 802.11, que se fabricarán en el futuro.
Múltiples niveles de la jerarquía de ayudar a las rutas globales, que promueve el
enrutamiento eficaz y escalable a Internet.
Multihoming con la preservación de la agregación de la ruta estricta es posible.
El proceso de configuración automática permite que los nodos de la red IPv6 para
configurar sus propias direcciones IPv6.
La transición entre los proveedores de IPv6 sea transparente para los usuarios
finales con el mecanismo de numeración.
ARP de difusión se sustituye por el uso de multidifusión en la red local.
La cabecera IPv6 es más eficiente que IPv4. Menos campos están presentes, y la
cabecera de comprobación se elimina.
Un campo de etiqueta de flujo puede proporcionar diferenciación de tráfico.
Nuevas cabeceras de extensión sustituir a IPv4 campo de opciones y una mayor
flexibilidad.
IPv6 fue diseñado para manejar la movilidad y los mecanismos de seguridad
mucho más eficiente que el protocolo IPv4.
Muchos mecanismos de transición se han diseñado con IPv6 para permitir una
suave transición desde las redes IPv4 a IPv6.
Dirección de un espacio más grande
Aumentos IPv6 por un factor de 4, el número de bits de dirección, desde 32 a 128 bits. Durante la especificación de diseño de IPv6, hubo un debate sobre el uso de longitud fija de 64 bits frente a las direcciones de las direcciones de longitud variable de hasta 160 bits.
Finalmente, usando las direcciones de longitud fija de 128 bits para IPv6 se encontró que era la opción más apropiada.
Con IPv4, el número de nodos direccionables es 4294967296 (231, lo que representa alrededor de dos direcciones IPv4 por cada tres personas (sobre la base de una población mundial de 6 mil millones de personas en 2001).
En comparación, la longitud 128 bits de IPv6 representa 3.4 * 1038 direcciones, lo que permite aproximadamente 5,7 * 1028 direcciones IPv6 para cada persona en el mundo. Sin embargo, como en cualquier esquema de direccionamiento, comoIPv4 y sistemas de telefonía, no todas las direcciones se pueden usar, pero lo
Implementando IPv6
105
suficiente están disponibles para cualquier tipo de uso. El aumento del número de bits para la dirección también significa un aumento en el tamaño del encabezado IP. Debido a que cada cabecera IP contiene una dirección de origen y una dirección de destino, el tamaño de los campos de cabecera que contienen las direcciones es de 64 bits de IPv4 e IPv6 de 256 bits.
Comparando el modelo de referencia OSI de IPv4 a IPv6, IPv6 representa sólo un cambio en la capa 3 (la capa de red). Otras capas se han modificado ligeramente. Esta fue una consideración importante en la ingeniería deIPv6. Las otras capas de los dos modelos de referencia OSI son los mismos, lo que significa que los protocolos como TCP y UDP utilizado con IPv4 seguirá funcionando en la parte superior de IPv6.
Physycal
Data Link
IPv4 32 bits
Transport
Session
Presentation
Application
Physycal
Data Link
IPv6 128 bits
Transport
Session
Presentation
Application
UPDATE
Accesibilidad global
IPv6permite el uso de una dirección global y accesible para casi todo tipo de dispositivos: ordenadores, teléfonos IP, faxes, cajas de televisión IP de configuración, cámaras, localizadores, PDAs inalámbricas, 802.11 b dispositivos, teléfonos celulares, redes domésticas, y los vehículos. A partir de ahora hasta el año 2006, los fabricantes de celulares va a producir miles de millones de nuevos dispositivos inalámbricos que incluyen una pila IP. Estos dispositivos inalámbricos de próxima generación proveerá a los suscriptores con la interactividad de Internet y los servicios con sus teléfonos. Tratar de hacer encajar todos estos dispositivos en el espacio de direcciones IPv4 actual es casi imposible. Tener una dirección IP única para cada dispositivo permite a los de extremo a extremo de accesibilidad, que se había perdido durante los últimos años con los dispositivos NAT y privadas de direccionamiento. El modelo de extremo a extremo es especialmente importante para llamada telefónica y la seguridad de extremo a extremo. IPv6 permite el pleno apoyo de los protocolos de aplicación sin necesidad de un procesamiento especial por la propia red.
Los niveles de direccionamiento jerárquico
Un espacio de direcciones mucho más grande permite el uso de múltiples niveles de jerarquía dentro del espacio de direcciones, como se muestra en la siguiente Figura. Cada nivel de ayuda total de su espacio de propiedad intelectual y mejorar la función de asignación. Los proveedores y las organizaciones pueden tener jerarquía de niveles y administrar la asignación del espacio de abajo.
Informática Integrada Internetworking
106
Hosts
Sites
Organizations
Tier-n Provider
Tier-2 Provider
Tier-3 Provider
Internet Registries
IPv6 Addresses = 128 bits
Encabezado eficiente
Como se muestra en la figura, la nueva cabecera IPv6 es más simple que la cabecera del paquete IPv4. Seis de los campos de cabecera IPv4 se eliminan en la cabecera IPv6. La cabecera de IPv4 con los campos de opciones y relleno cuenta con 14 campos, y la cabecera IPv6 tiene ocho campos. El tamaño básico de cabecera IPv6 es de 40 octetos, y la cabecera IPv4 sin los campos de opciones y relleno es de 20 octetos. La cabecera básica IPv6 tiene una longitud fija, y la cabecera IPv4 cuando se utiliza con el campo de opciones puede tener una longitud variable.
IPv4 Header IPv6 Header
Length: 20 bytes
Fields: 12
Length: 40 bytes
Fields: 8
Todos los campos en la cabecera IPv6 están alineados a 64 bits, lo que permite el almacenamiento directo y acceso a la memoria. Estas mejoras permiten procesamiento basado en hardware, que proporciona la escalabilidad de la tasa de transmisión de la nueva generación de tubos de alta velocidad.
Etiqueta de flujo
IPv6 incluye un campo de flujo nueva etiqueta en la cabecera IPv6, como se ilustra en la figura 1-15. Un nodo de origen puede utilizar este campo especial para solicitar un tratamiento especial para una secuencia específica de paquetes. El campo de etiqueta de flujo es principalmente para la elaboración final de la estación, no para los routers. Esto puede ser útil para aplicaciones de streaming, como la videoconferencia y voz sobre IP que requieren en tiempo real de transmisión de datos. La etiqueta de
Implementando IPv6
107
flujo permite por la corriente de procesamiento para aplicaciones que requieren calidad de servicio en los routers en el camino. Esto es mejor que el reenvío de mejor esfuerzo.
Flow Level
IPv6 Header
Cabezal
Dentro de un paquete IPv4, un campo Opciones (RFC 791) pueden estar presentes al final de la cabecera. Este campo de opciones, cuando está presente, tiene una longitud variable, dependiendo de la característica opcional que se utiliza entre los hosts finales.
IPv4 Header
Option
Variable Length
IPv6 utiliza un nuevo enfoque para gestionar la información opcional en el encabezado. En lugar de utilizar un campo de opciones en la final de la cabecera,IPv6 utiliza cabeceras de extensión.
Informática Integrada Internetworking
108
IPv6 PacketExtension Header #1
Next Header
Next Header
Extension Header #2
Payload
(TCP, UDP Packets
IPv6
Movilidad
La movilidad es una característica altamente deseable e importante para las empresas, organizaciones, y los empleados que quieran acceder a la web, correo electrónico, sus cuentas bancarias, y el hogar de fuera de esas redes, incluso desde el coche. Nueva tecnologías inalámbricas tales como 802.1 y 3G (tercera generación) pueden ayudar a satisfacer estas necesidades.
Seguridad
El protocolo IPSec, un estándar del IETF para la seguridad de la red IP, puede ofrecer varias funciones de seguridad:
límites de control de acceso el acceso a las personas que tienen autorización.
Autenticación certifica que la persona que envía los datos es que la persona que
dice ser.
La confidencialidad se garantiza que los datos llevados a través de una red
pública, incluyendo contraseñas, es encriptada para que sea muy difícil para que
nadie vea los datos intercambiados.
Integridad asegura que los datos no ha sido modificado durante el transporte.
Protección Replay mantiene sesiones de volver a grabar y luego reproducir
posteriormente por usuarios maliciosos.
Cualquier protocolo IP puede ser usada a través de IPSec. IPSec se utiliza para
crear túneles cifrados sobre IP (redes privadas virtuales) o simplemente para
cifrarlos datos intercambiados entre computadoras.
Protocolos: Authentication Header (AH) y Carga de seguridad
encapsuladora (ESP). AH y ESP están disponibles tanto para IPv4 e IPv6, y son
esencialmente idénticaspara ambos protocolos.
Implementando IPv6
109
Transición
La transición de una Internet hecha de las redes IPv4 a IPv6 es otra parte fundamental de un nuevo protocolo. Los organismos de normalización, la industria y la comunidad de Internet no quieren repetir el mismo fenómeno que el problema Y2K, en la que un cambio importante se produjo en un momento determinado (Diciembre 31,1999).
El objetivo final de IPv6 en la sustitución de IPv4 es bien conocida. Sin embargo, no existe una fecha límite para el cambio de la Internet a través de IPv4 a IPv6. Un grupo especial de trabajo en la IETF llama la próxima generación de transición de IPv4 a IPv6 (NGTRANS) fue creado para centrarse en la transición. NGTRANS trabaja en estrecha colaboración con el grupo de trabajo IPv6 (antes llamado IPng)para crear estrategias y mecanismos de transición.
Muchos mecanismos de transición y coexistencia están disponibles y se pueden aplicar a diferentes situaciones:
dual-stack nodos sobre redes IPv4
Islas de nodos sólo IPv6 sobre redes IPv4
nodos sólo IPv4 que pueden hablar de las redes IPv6
nodos sólo IPv6 que pueden hablar de las redes IPv4
Informática Integrada Internetworking
110
Encabezado IP
En IPv6, varios campos de la cabecera IPv4 se quitan. Las principales razones para el traslado de estos son los siguientes:
Longitud-La cabecera básica cabecera IPv4 está a sólo 20 bytes de longitud. Sin
embargo, la cabecera básica IPv6 tiene una longitud fija de 40 octetos. La
longitud de la cabecera IPv4 indica la longitud total del paquete, incluyendo el
campo de opciones. Cuando está presente, el campo de opciones aumenta la
longitud de la cabecera IPv4. En lugar del campo de opciones, IPv6 utiliza el
campo Extensión. El campo de extensión se manejan de manera diferente a
como IPv4 maneja el campo Opciones.
Identificación, banderas, y desplazamiento del fragmento de fragmentación se
maneja de manera diferente en IPv6. Ya no se hace por los routers intermedios
en las redes, pero por el nodo fuente que origina el paquete. Quitar el campo de
procesamiento de la CPU elimina la fragmentación en los enrutadores
intermedios.
Suma de comprobación de cabecera de capa de enlace tecnologías (capa 2)
llevar a cabo su propia suma de comprobación y control de errores. La fiabilidad
de la capa de enlace está bien y protocolos de capa superior como TCP y UDP
(capa 4) tienen sus propias sumas de comprobación. Suma de comprobación
UDP, que era opcional en IPv4, es obligatorio en IPv6. Por lo tanto, la suma de
comprobación en la capa 3 es redundante, por lo que el campo de la cabecera de
control es necesario en IPv6 y suprime el proceso de recálculo cada vez que un
paquete pasa a través de un router.
Opciones y padding-El campo de Opciones cambia radicalmente en IPv6. Las
opciones ahora son manejados por las cabeceras de extensión (como se explica
más adelante en este capítulo). El campo de relleno también se elimina. La
eliminación de las opciones y los encabezados de relleno simplifica la cabecera
IP. Por lo tanto, la cabecera básica IPv6 tiene una longitud fija de 40 octetos, lo
que permite menos de procesamiento de los routers a lo largo de la ruta de
entrega en comparación con el IPv4. Los otros campos de la cabecera IPv4, la
versión, tipo de servicio, longitud total, tiempo de vida, número de protocolo, la
dirección IPv4 de origen y destino de direcciones IPv4, o bien no se han
cambiado o se han modificado ligeramente (como se describe en la siguiente
sección) .
Formato básico del encabezado IPv6
Tal como se define en el RFC 2460, Protocolo de Internet versión 6 (IPv6) Specification, la cabecera básica IPv6 contiene ocho campos, en comparación con 12 campos de IPv4 (sin las opciones y los campos de relleno), para una longitud total de 40 octetos.
Implementando IPv6
111
Aquí están las descripciones de los campos en la cabecera básica IPv6:
Versión (4 bits) - La versión IP. Este campo contiene el valor 6 en lugar del valor
4 contenida en un paquete IPv4
Clase de Tráfico (8-bit) - Este campo y sus funciones son similares al campo Tipo
de Servicio en IPv4. Esto etiquetas de los campos un paquete IPv6 con un punto
de código de servicios diferenciados (DSCP) que especifica cómo el paquete
debe ser manejado.
Etiqueta de flujo (20-bit) - Este campo se utiliza para etiquetar un flujo de
paquetes IPv6. Esto es nuevo en el protocolo IPv6. El actual estándar de la IETF
no especifica los detalles acerca de cómo manejar y procesar la etiqueta de flujo.
Longitud de carga útil (16-bit) - Este campo representa la longitud de la carga
útil. La carga útil es la parte restante del paquete después de la cabecera IPv6.
Next Header (8 bits)-Como se muestra en la Figura 2-4, este campo define el tipo
de información a raíz de la cabecera básica IPv6. El tipo de información puede
ser un protocolo de capa superior como TCP o UDP, o puede ser una de las
cabeceras de extensión opcionales nuevos. El campo siguiente cabecera es
similar al campo de número de protocolo en IPv4. Admite los protocolos se
definen por la IANA.
Limitar Hop (8-bit) - Este campo define el número máximo de saltos (routers
intermedios) que el paquete IP puede pasar a través. Cada salto reduce este
valor en 1. Al igual que en IPv4, cuando este campo contiene el valor 0, el
paquete es destruido y una Internet Control Message Protocol para IPv6
(ICMPv6) de tipo 3 mensaje (tiempo excedido) se envía al nodo de origen.
Dirección de origen (128-bit) - Este campo identifica la dirección IPv6 de origen
del remitente.
Dirección de Destino (128-bit) - Este campo identifica la dirección de destino del
paquete IPv6.
Informática Integrada Internetworking
112
Representación de las direcciones IPv6
Las direcciones IPv6 son cuatro veces el tamaño de las direcciones IPv4. La representación de direcciones IPv6 es también muy diferente. Tal como se define en el RFC 2373, IP versión 6 Aborda tres formatos representan las direcciones IPv6:
El formato preferido es el método más largo que representa todos los
caracteres hexadecimales 32 que forman una dirección IPv6, el formato
preferido también puede verse como la representación que corresponda un
equipo que está "pensando"
El siguiente método es la representación comprimida de una dirección IPv6, para
simplificar la escritura de las direcciones IPv6 por los seres humanos, es posible
comprimir la dirección cuando los valores de cero se encuentran presentes en la
dirección IPv6, esto significa que los formatos preferidos y comprimido son
diferentes representaciones de las mismas direcciones IPv6, un nuevo
concepto en comparación con el IPv4.
Por último, el tercer método para representar una dirección está relacionada con
los mecanismos de transición, donde se halla incorporada de una dirección IPv4
en una dirección IPv6. Esta última representación es menos importante que el
preferido y el formato comprimido, ya que sólo es útil si usted está utilizando los
mecanismos de transición específicos,
Representación preferida de direcciones IPv6
Como se muestra en la siguiente Figura, la representación preferida, también conocida como la forma completa de una dirección IPv6, tiene una serie de ocho campos hexadecimales 16-bits separados por dos puntos (:). Cada campo de 16 bits está textualmente representado por cuatro caracteres hexadecimales, lo que significa que el valor de cada campo de 16 bits pueden tener valores hexadecimales 0x0000 través de 0xFFFF, caracteres alfanuméricos utilizados en hexadecimal se distingue entre mayúsculas y minúsculas.
El formato preferido es el más largo de la representación de una dirección IPv6, un total de 32 caracteres hexadecimales pueden ser representados en esta forma preferida (ocho campos de cuatro caracteres hexadecimales). En comparación, una dirección IPv4 consta de cuatro campos de 8 bits decimales separados por puntos(,) para un total posible de 12 caracteres decimales.
La Tabla muestra ejemplos de las direcciones IPv6 en la representación que prefiera.
Preferred Format of IPv6 Addresses
0000:0000:0000:0000:0000:0000:0000:0000
0000:0000:0000:0000:0000:0000:0000:0001
2001:0410:0000:1234:FB00:1400:5000:45FF
3ffe:0000:0000:0000:1010:2a2a:0000:0001
3FFE:0B00:0CI8:0001:0000:1234:AB34:0002
Implementando IPv6
113
FE80:0000:0000:0000:0000:0000:0000:0009
FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
Representación comprimido
En IPv6, es común el uso de direcciones que contienen largas cadenas de 0s. Para que las direcciones de escritura que contienen los bits 0 más fácil para los seres humanos, una sintaxis especial que comprime consecutivos valores 0 en dos situaciones-sucesivos campos de 16 bits hechas de 0s 0s y de liderazgo en campos de 16 bits de una dirección IPv6.
Para simplificar la longitud de una dirección IPv6 cuando uno de varios sucesivos campos de 16 bits de 0 caracteres están presentes, es legal para representar a estos campos de 0s como :: (dos puntos dobles). Sin embargo, sólo uno :: está permitido en una dirección IPv6. Este método hace que muchas direcciones IPv6 muy pequeño. La representación comprimida de una dirección IPv6 también significa que la misma dirección puede tener varias representaciones.
En la siguiente tabla presentan ejemplos de las direcciones IPv6 en el formato preferido que se han comprimido debido a que tienen uno o más sucesivos campos de 16 bits de 0 caracteres. Los caracteres en negrita en las direcciones preferidas en formato representan los valores que deben ser removidos para comprimir las direcciones.
Preferred Format Compressed Format Using ::
0000:0000:0000:0000:0000:0000:0000:0000 : :
0000:0000:0000:0000:0000:0000:0000:0001 : :0001
2001:0410:0000:1234:FB00:1400:5000:45FF 2001:0410::1234:FB00:1400:5000:45FF
3ffe:0000:0000:0000:1010:2a2a:0000:000l 3ffe::1010:2a2a:0000:000l
3FFE:0B00:0C18:0001:0000:1234:AB34:0002 3FFE:0B00:0C18:0001::1234:AB34:0002
FE80:0000:0000:0000:0000:0000:0000:0009 FE80::0009
FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
La dirección FFFF: FFFF: FFFF: FFFF: FFFF: FFFF: FFFF: FFFF es un ejemplo de una dirección en la que todos los bits se establece en 1. Por lo tanto, esta dirección no se puede comprimir. Forma de comprimido utilizando el :: sólo está disponible cuando hay varios sucesivos campos de 16 bits de 0 caracteres están presentes.
Ahora se presentan ejemplos de direcciones ilegales comprimidos. El comprimido se dirige representado utilizar el :: más de una vez, que es una representación ilegal IPv6 dirección comprimido.
Informática Integrada Internetworking
114
Preferred Format Compressed Format Using ::
0000:0000:AAAA:0000:0000:0000:0000:0001 ::AAAA::0001
3ffe:0000:0000:0000:1010:2a2a:0000:0001 3ffe::1010:2a2a::0001
El segundo método para comprimir las direcciones es aplicable a cada campo hexadecimal de 16 bits de una dirección IPv6 cuando uno o más bits Os están presentes. Es decir, considerar 0000 y reemplazar por 0 para simplificar la longitud de una dirección IPv6. Sin embargo, si cada caracter hexadecimal de un campo de 16 bits se establece en 0, por lo menos un carácter 0 debe mantenerse.
Implementando IPv6
115
Examen 4.1
Exprese las siguientes direcciones en formato comprimido:
Preferred Format Compressed Format
0000:0000:0000:0000:0000:0000:206.123.31.2
0000:0000:0000:0000:0000:0000:ce7b:1f01
0000:0000:0000:0000:0000:FFFF:206.123.31.2
0000:0000:0000:0000:0000:FFFF:ce7b:1f01
Sección 5: Encaminamiento IP
Informática Integrada Internetworking
118
Encaminamiento IP
119
Seccion 5: Encaminamiento IP
Introducción
Como parte de esta sección, veremos el funcionamiento de los protocolos de ruteo, la implementación de los mismos y configurar ruteadores LINUX..
Objetivos Particulares
Al finalizar esta sección, usted podrá:
Describir lo que es el ruteo
Describir los protocolos de ruteo dinámico
Configurar un router Linux
Informática Integrada Internetworking
120
Encaminamiento IP
121
Encaminamiento
Las direcciones IP son, en cierto sentido, un mecanismo muy abstracto. Si bien distinguen unívocamente todas las interfaces de Internet accesibles, no codifican ninguna información sobre su ubicación. Internet es una red de redes, lo que significa que es altamente improbable que cualquier par de hosts con direcciones directas, tomados al azar, esté en la misma red física.
Entonces, ¿cómo es posible enviar un datagrama IP desde un sistema en un lugar hasta otro sitio remoto que está potencialmente a miles de kilómetros? En los términos muy sencillos, un datagrama IP se transmite de una red a otra, hasta que alcanza finalmente la red en que se encuentra el host de destino. Algunos sistemas, conocidos como pasarelas (gateways) o encaminadores, están presentes en más de una red, de manera que pueden reenviar los datagramas de una red a otra según se necesite. El término encaminador se reserva a veces para los dispositivos aislados, dejando el de pasarela para denominar a una computadora que realiza esa función entre muchas otras. Sin embargo, no se hace siempre un uso coherente de los nombres.
Aunque el hardware encaminador diseñado específicamente para ello normalmente tendrá un mejor rendimiento que una computadora con funciones generales optativas, es totalmente posible emplear un sistema similar a UNIX (sea un sistema comercial UNIX o un clon como Linux) para realizar un encaminamiento y, en muchos casos, permitirá una mayor flexibilidad. En este libro sólo se hablará del encaminamiento con sistemas Red Hat Linux.
Configuración del encaminamiento
Las pasarelas encaminan los datos entre múltiples redes, pero también deben tomar decisiones de encaminamiento los hosts individuales. En un caso sencillo, en el que el host sólo tiene una interfaz de bucle cerrado y una interfaz física, las decisiones de encaminamiento son bastante triviales. Si se dirige un datagrama a una interfaz en la red de bucle cerrado, se envía a través de la interfaz de bucle cerrado. De otro modo, si se dirige a un host en la red física local, se envía mediante la interfaz física. De no ser así, se debe dirigir a un host en una red remota y se envía a una pasarela en la red física local para que se reenvíe adecuadamente.
El encaminamiento en un sistema concreto se puede configurar de muchas maneras, pero se puede hacer una distinción básica entre el encaminamiento estático y el dinámico. El administrador debe configurar el encaminamiento estático manualmente. Esto es útil para una red con un número limitado de pasarelas a otras redes TCP/IP y en especial para una red con una única pasarela. El encaminado estático puede ayudar también a eliminar los puntos vulnerables de seguridad de las aplicaciones que autentican basadas en una dirección IP, pues puede evitar el spoofing (interceptación, alteración y retransmisión) de la IP. Las LAN pequeñas, especialmente las de uso doméstico, son un ejemplo ideal de este tipo de entorno.
El encaminamiento dinámico, por otra parte, debería utilizarse en redes con más de una ruta posible para el mismo destino. En general, encaminar los paquetes a través de múltiples redes es una tarea difícil. Esto es especialmente cierto para Internet, donde los temas de escalabilidad y de fiabilidad significan que se debe distribuir la información relativa al encaminamiento: ningún sistema o grupo de sistemas puede conocer todas las rotas que existen. Además, los encaminadores deben hacer todo lo
Informática Integrada Internetworking
122
posible para dirigir los datagramas por la ruta más corta posible. Este tipo de comunicación la realizan los demonios routed y gated y la información así adquirida
se usa automáticamente para configurar las decisiones de encaminamiento.
La tabla de encaminamiento
En los sistemas bajo UNIX y Linux, la información sobre cómo han de dirigirse los datagramas se almacena en una estructura del kernel llamada tabla de encaminamiento. Es esta tabla de encaminamiento la que hay que manipular para configurar las decisiones de encaminamiento, basándose en la información fija que suministra el administrador (para el encaminamiento estático), o bien en la información de accesibilidad adquirida mediante BGP, (Border Gateway Protocol, Protocolo para pasarelas de frontera), para el encaminamiento dinámico.
En los sistemas Linux también se puede utilizar route en lugar de netstat -r,
pero puesto que otros sistemas no lo permiten, probablemente es conveniente adquirir el hábito de utilizar netstat -r. Se puede dar a netstat -r la opción de que use
el mismo formato de salida que route, o se puede dar a route la opción de que emplee el formato de netstat -r. En cualquiera de los dos programas, la opción -ee les
hace usar el mismo formato de salida, con la información combinada de otros formatos; las líneas de salida en este formato son muy largas.
La opción -n de netstat o de route les impide intentar convertir en nombres las
direcciones IP numéricas. Como señala el manual, esta opción es útil para intentar depurar los problemas de enrutamiento hacia nuestro servidor de nombres; pero también pude ser útil en otras situaciones. Se emplea aquí para hacer rápidamente visible la estructura de la red.
Los campos de salida para netstat -r -ee tienen los siguientes significados:
Destination (destino). Identifica las direcciones IP de destino para las que se
tiene en cuenta esta ruta.
Gateway (pasarela). Proporciona la dirección IP de la interfaz (si la hay) que
enviará paquetes para estos destinos. Si no se necesita pasarela de envío, aparece una dirección de 0.0.0.0, o *, si se omite el argumento -no
Genmask (máscara general). Es la máscara de red usada para las direcciones de
destino.
Flags (indicadores). Indica varios detalles acerca de la ruta. Los indicadores más
importantes son U (la ruta está en funcionamiento), G (se debería usar la pasarela
especificada para esta ruta) y H (la ruta es para un host, no para una red). D
(instalación dinámica), M (modificada) y R (rehabilitada) son indicadores que
advierten que la ruta fue creada o manipulada por un demonio de encaminamiento o después de encontrarse con un mensaje ICMP de redirección. El indicador ! señala el rechazo de una ruta.
Metric (métrica). Es un índice de calidad para la ruta. Normalmente sólo útil
para encaminamiento dinámico.
Ref (referencias). No usado por el kernel de Linux, pero para otros sistemas
representa el número de referencias a la ruta.
Encaminamiento IP
123
Use (uso). Informa del número de consultas para esta ruta.
MSS. Maximum Segment Size (tamaño máximo de segmento). El máximo tamaño
de segmento predeterminado para las conexiones TCP en esa ruta.
Window (Ventana). El tamaño predeterminado de ventana para las conexiones
TCP en esta ruta.
Irtt. Initial Round Trip Time (Tiempo para la ronda inicial). El kernello emplea
para seleccionar valores para determinados parámetros TCP sin tener que esperar a las respuestas potencialmente lentas de los hosts remotos.
El resultado de netstat –r en la lista 5.1, muestra que el sistema tiene rutas para
los siguientes destinos:
Listado 3.1. Uso de netstat para mostrar la tabla de encaminamiento
$ netstat –r –n
kernel IP routing table
Destination Gateway GenMask Flags MSS Windows Irtt Iface
192.168.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
127.0.0.0: Ésta es la ruta para la red de bucle de retorno. Para los kernel Linux
de la serie 2.2.x o superior, esta ruta no es en realidad necesaria. El kernel ya sabe cómo encaminar hacia la dirección de loopback.
192.168.1.2: Ésta dirección IP está en realidad conectada con la propia interfaz
eht0 del sistema. De nuevo, esta ruta no es necesaria, pero se crea durante la inicialización de Red Hat.
192.168.1.0. Ésta es una ruta para la red a la que está conectada la interfaz
eht0. No se necesita pasarela.
0.0.0.0. Ésta es la ruta predeterminada; se emplea para cualquier datagrama
que no haya sido tratado por otras rutas. Si se omite el argumento -n, aparece la
palabra default (predeterminada) en lugar de los ceros. Esta ruta especifica que
los datagramas se envíen al sistema de pasarela 192.168.1.1 para su reenvío
a otras redes.
Adición y eliminación de rutas estáticas
El método más fácil de añadir y eliminar rutas estáticas en Red Hat es emplear linuxconf. Sin embargo, a veces es necesario intentar reparar redes en situaciones
de emergencia donde no están disponibles las herramientas complejas. Esto hace que merezca la pena aprender a hacerlo manualmente, usando el comando route.
El primer argumento de route debería ser una de las palabras add o del para
indicar que se está añadiendo o borrando, respectivamente, la ruta descrita por los otros argumentos.
Informática Integrada Internetworking
124
La sintaxis de los otros argumentos depende del tipo de la ruta que se esté añadiendo. El caso más simple es añadir la ruta predeterminada. Este comando se parece a esto
route add default gw def_gateway
En dónde def_gateway es la dirección IP del host que va a reenviar los paquetes. Para añadir rutas que no son las predeterminadas, el segundo argumento es normalmente una de las palabras -net o -host, para indicar si la ruta es para una red
o para un host. Sin embargo, este argumento se puede omitir si la ruta es para un host.
El argumento inmediatamente después de -net o -host es la dirección IP de destino
(sea como nombre de host, o como dirección numérica). Esto debería ir seguido de la
palabra netmask y, a continuación, la máscara de red real para emplear con esta
ruta. La máscara de red puede omitirse si se ajusta a la máscara natural para la dirección de destino.
Por último, debe aparecer una indicación de la ruta que tomar para este destino. Si el destino está disponible directamente, se usa la palabra clave dev seguida del
dispositivo que hay que emplear (como ehtO). Si esta es la última parte de la línea del
comando, se puede omitir la palabra dev. Si las rutas para este destino han de ser
transmitidas por un sistema que haga las funciones de pasarela, hay que usar la palabra gw con la dirección IP (nombre o número) del sistema de pasarela.
También es posible añadir una ruta de rechazo. Al añadir la palabra reject al final
del comando route, se instala una ruta de rechazo que fuerza a fallar con la
búsqueda de ruta. Se utiliza para prohibir el enrutamiento a ciertas redes antes de que se llegue a aplicar la ruta predeterminada.
Una vez que se ha visto cómo añadir rutas, eliminarlas es sencillo. Para eliminar una ruta, basta con escribir la línea de comando que añade la ruta en cuestión, sustituyendo la palabra add por la palabra del. Se pueden suprimir algunos
parámetros de la línea de comandos, pero al proporcionar todos los parámetros que se habían establecido funcionará siempre. Si no se proporcionan suficientes parámetros, la respuesta típica es el mensaje SIOCDELRT: Invalid argument,
(argumento no válido).
Ejemplos de comandos para añadir rutas
A continuación se muestran unos ejemplos de comandos para añadir rutas. Los dos primeros podrían emplearse para añadir rutas que aparecen en la tabla de encaminamiento del Listado 5.1, repetido aquí como Listado 6.2.
Listado 3.2. Listado de una tabla de ruteo
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Encaminamiento IP
125
Comando:
route add -net 192.168.1.0 netmask 255.255.255.0 dev ehtO.
Añade una ruta para la red 192.168.1.0/24 en el dispositivo ehtO, que,
probablemente, tiene una dirección IP en esa red.
route add default gw 192.168.1.1. Convierte a 192.168.1.1 en la
pasarela para reenviar paquetes en la ruta predeterminada.
route add -net 127.0.0.0 netmask 255.255.255.0 lo. Esta es la
sintaxis correcta para añadir una ruta a la red de bucle cerrado. Incluso aunque esta ruta sea innecesaria en los nuevos kernels, se incluye este ejemplo porque en el manual de route está incorrecto.
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.17.
Añade una ruta a la red 10.0.0.0/8, usando como pasarela el sistema con la dirección IP 192.168.1.17. La máscara de red es innecesaria en este caso
porque se ajusta a la máscara natural de la red de destino.
Una vez que se puedan añadir las rutas manualmente, como en este caso, usar Linuxconf como interfaz para añadir las rutas y editar los archivos de configuración
hace sencillo todo el proceso.
El primer paso es configurar la pasarela predeterminada, el cuadro de diálogo permite también que el administrador especifique si el host local puede reenviar paquetes.
Los encaminadores para redes o hosts individuales pueden definirse utilizando los cuadros de diálogos Other Routes to Networks (otras rutas a redes) u Other
Routes to Hosts (otras rutas a hast), como en los ejemplos anteriores.
Informática Integrada Internetworking
126
Encaminamiento dinámico
Cómo yo se ha visto, los sistemas en los que el administrador toma previamente todas las decisiones de encaminamiento emplean lo se que se llama encaminamiento estático. Pero este no es suficiente para las redes con rutas múltiples para el mismo destino. En estas redes, las decisiones de encaminamiento están controladas de manera dinámica mediante demonios de encaminamiento. Los demonios intentan determinar cual es la mejor ruta para un destino concreto y se comunican con los demonios de encaminamiento de otros sistemas para asegurar que todos los sistemas tienen una información actualizada de cuáles son las mejores rutas. Los protocolos para esta comunicación se denominan protocolos de encaminamiento.
Protocolos de encaminamiento
Hoy existen varios protocolos de encaminamiento de uso común, cada uno con sus propias características. Los protocolos de encaminamiento se pueden dividir en dos grupos generales: interiores y exteriores. Un protocolo de encaminamiento interior se emplea dentro de una red independiente, o como lo que TCP/IP denomina un Sistema Autónomo (AS). Un protocolo exterior se utiliza para transmitir la información de encaminamiento entre múltiples sistemas autónomos. La información de encaminamiento transmitida se conoce como información de accesibilidad, y describe, de manera muy sencilla, qué sistemas son accesibles desde un sistema concreto. El siguiente listado presenta los protocolos de encaminamiento de uso más común.
RIP (Routing Information Protocol, Protocolo de información de encaminamiento). Es el protocolo interior más empleado en los sistemas LINUX. Toma decisiones de encaminamiento basándose sólo en los resultados de aplicar un algoritmo de vector de distancia a las métricas de las rutas o contadores de saltos. Es sencillo de configurar y adecuado para la mayoría de las redes pequeñas
El RlP tiene algunos inconvenientes serios para su uso a gran escala. Limita el diámetro de la red a 15 saltos. Es de convergencia lenta: la tabla de encaminarniento puede tardar hasta 180 segundos en reflejar la nueva situación si las rutas que antes eran correctas pasan a ser inválidas. Además, no tiene en cuenta las direcciones IP sin clase. Todas las rutas RIP deben ser para direcciones que utilicen su máscara natural.
RIP-2. Es el protocolo de información de encaminamiento versión 2. Es una versión de RIP con compatibilidad inversa, que utiliza campos que se reservaron en el paquete RIP para ampliaciones futuras. RIP-2 soluciona la mayoría de los problemas de RIP y también ofrece opciones como la de autenticación para la información de encaminamiento.
OSPF (Open Shortest Path First, Abrir primero el camino más corto). Es un protocolo interior, como RIP, pero difiere considerablemente en que es un protocolo de estado de conexiones. Allí donde los encaminadores RIP comparten información sobre todo el AS con sus vecinos, los OSPF comparten información de sus vecinos con todo el AS. Esto les permite construir un modelo de la red completa y poner en práctica el bien estudiado algoritmo de Dijkstra del camino más corto para determinar la mejor ruta.
Encaminamiento IP
127
BGP (Border Gateway Protocol, protocolo para pasarelas de frontera). Es el protocolo exterior de encaminamiento de uso más extendido en Internet. BGP ofrece soporte de encaminamiento basado en políticas; es decir, el uso de consideraciones que no son de carácter técnico, como la seguridad, el coste y asuntos relacionados con la organización a la hora de tomar decisiones de encaminamiento. BGP aprende todo el camino de una ruta de extremo a extremo, para asegurar que no tienen lugar bucles de encaminamiento.
Otros protocolos
Se han empleado otros protocolos por todas partes, pero no son de uso común. Entre ellos están el protocolo Hello (que se empleó en la red troncal NSFNET original de 56 kbps) e IS-IS (Intermediate System to Intermediate System Protocol, protocolo de "sistema intermedio a sistema intermedio"), que se usó en la red troncal NFSNET TI. Estos dos protocolos son interiores. El protocolo EGP (Exterior Gateway Protocol, protocolo de pasarela exterior), fue muy usado, pero dependía en una autoridad central para determinar las mejores rutas, lo que le hacía escalar mal en una Internet que crecía a un ritmo exponencial. Ese es el motivo por el casi no se usa hoy.
Aunque existen muchos protocolos de encaminamiento, normalmente es fácil seleccionar el adecuado para cada situación concreta. Para las redes de área local, RIP o RIP- 2 siguen siendo la elección más frecuente y, por su simplicidad, también son a menudo la más acertada. Los algoritmos de OSPF, más complicados, lo convierten en el más adecuado para las redes más amplias. Muy pocos sistemas necesitan ejecutar protocolos exteriores: sólo son necesarios cuando un AS tiene que intercambiar información de encaminamiento con otro AS. Los grandes proveedores de servicios de Internet son uno de los pocos entornos donde se necesitan los protocolos exteriores.
Demonios de encaminamiento
Hay dos demonios de encaminamiento principales ejecutables en sistemas afines a UNIX: routed y gated. De estos dos, routed es más fácil de configurar, pero, al ser
más antiguo, también falla en cuanto a flexibilidad: sólo puede manejar RIP. El demonio gated puede trabajar con RIP, RIP-2, OSPF y BGP, así como con Hello y
con EGP.
Para activar routed con Red Hat, se debe instalar primero el correspondiente
paquete RPM. Después, para hacer que arranque al inicializar, puede emplearse el cuadro de diálogo Control Service Activity (control de actividad de servicio) en Linuxconf o ejecutar manualmente el comando equivalente:
chkconfig routed on
Para iniciar o detener el servicio sin que tenga que ser necesariamente al inicio o cierre del sistema, se puede ejecutar uno de estos comandos:
/etc/rc.d/init.d/ routed start
/etc/rc.d/init.d/routed stop
Linuxconf puede llevar a cabo alguna configuración de routed
Informática Integrada Internetworking
128
La configuración predeterminada de Red Hat establece que routed "escuche" las
rutas anunciadas por otros sistemas, pero no que "anuncie" las rutas. Esto se consigue iniciando routed con la opción -q. La otra opción en este cuadro de
diálogo determina si routed debe anunciar su ruta predeterminada (la opción -g).
Esto se emplea en pasarelas para Internet, o en pasarelas que emplean otro protocolo de encaminamiento cuyas rutas no estén anunciadas a otros encaminadores locales. Por omisión esta opción está desactivada.
El demonio routed lee el archivo /etc/gateways/ en el arranque y utiliza la
información que encuentra para configurar la tabla de encaminamiento. No es necesario usar este archivo porque los mensajes RIP que se reciben de otros encaminadores serán suficientes para permitir a routed construir una tabla de
encaminamiento operativa. Pero hay situaciones en que esto es útil: quizá para complementar la información de RIP con una ruta inicial predeterminada o con información sobre una pasarela que no anuncia sus rutas.
Todas las entradas en el archivo /etc/gateways tienen básicamente el mismo
formato, el cual es muy similar a la línea de comando para route, por lo que debiera
resultar fácil. Cada entrada es una sola línea que contiene los siguientes elementos:
1. Una de las palabras net o host para indicar si el destino debe ser tratado como red o como host.
2. La dirección de destino, ó 0.0.0.0 para la ruta predeterminada.
3. La palabra gateway.
4. La dirección de la pasarela.
5. La palabra metric.
6. El valor numérico de la ruta. Este puede especificarse con la ruta al añadir una ruta estática, pero en esta situación carece de significado en esencia. RIP utiliza la métrica como el coste de la ruta, por lo que prefiere rutas con valores métricos inferiores. Para RIP el valor debería representar el número de pasarelas a través de las cuales deben pasar los datos para alcanzar el destino concreto, pero en realidad es un valor arbitrario elegido por el administrador. Si sólo existe una ruta para un destino concreto, esa ruta debería tener una métrica de 1.
7. Una de las palabras clave active, passive o external. Las rutas pasivas se
convierten efectivamente en rutas permanentes estáticas: no las borra RIP y no están incluidas en la información RIP transmitida. Por su parte, las rutas activas son anunciadas y actualizadas por RIP. Si no se reciben actualizaciones para una ruta activa en un período de tiempo determinado, será borrada de la tabla de encaminamiento. Las rutas externas son similares a las rutas pasivas, pero routed no las añadirá a la tabla de encaminamiento. La declaración external
indica que otro protocolo de encaminamiento instalará una ruta para el destino en cuestión y que routed no deberá instalar rutas alternativas para el mismo destino.
Casos complejos de encaminamiento
Los casos de encaminamiento más complejos deberán ser resueltos por gated, un
programa más flexible. Como ya se habrá observado, gated puede manejar múltiples
protocolos de encaminamiento. Combina la información de encaminamiento aprendida
Encaminamiento IP
129
de los diferentes protocolos y selecciona las mejores rutas disponibles. Puede anunciar rutas en protocolos exteriores cuya existencia fue descubierta por protocolos interiores, de manera que la información de accesibilidad que se anuncia externamente se puede ajustar de manera dinámica para cambiar rutas interiores. Ofrece soporte de políticas de encaminamiento para controlar la aceptación y el anuncio de las rutas.
Quizá, para el administrador, lo más conveniente de todo sea que gated se configure
desde un archivo único (/etc/gated.conf) con una sintaxis coherente. También
existe un grupo, el Gated Consortium (http://www.gated.org), que lo mantiene activamente, por lo que se puede esperar que se solucionen los errores de programación y se añadan nuevas opciones.
Ejecución de gated
Cuando gated está en funcionamiento, va adquiriendo la información de múltiples
protocolos; si recibe rutas hacia el mismo destino desde protocolos distintos, intenta seleccionar la mejor. Esto no es una tarea trivial, pues las métricas utilizadas por los diferentes protocolos no pueden compararse de manera directa. La solución adoptada en gated es emplear las preferencias configurables. El administrador puede utilizar
estas preferencias para optar por las rutas de una interfaz en lugar de las de otra, por el mejor protocolo o la mejor pasarela remota.
La activación de gated en Red Hat es muy parecida a la de routed. Puede activarse
desde el cuadro de diálogo de Control Service Activity en Linuxconf o también se
puede ejecutar
chkconfig gated on
Manualmente (como root). Para iniciar o detener el servicio en momentos diferentes
al arranque o al cierre del sistema, ejecútese uno de los siguientes:
tc/rc.d/init.d/gated start
tc/rc.d/init.d/gated stop
Configuración de /etc/gated.conf
El archivo /etc/gated.conf tiene una serie de instrucciones de configuración que
se dividen en las siguientes categorías. Las instrucciones de cada grupo deben agruparse juntas, y los tipos deben de presentarse en un orden específico. Si se emplea una instrucción fuera de la secuencia correcta, se producirá un error cuando gated analice el archivo.
El demonio gated tiene muchas opciones de configuración; muchas más de las que
se puedan comentar en es sección. Para entender todas las posibilidades que ofrece gated, es necesario leer el manual de referencia. Sin embargo, unos cuantos
ejemplos de configuración serán una buena introducción a lo que se puede hacer.
Informática Integrada Internetworking
130
Configuración del encaminamiento de un host
La configuración del encarninamiento de un host mediante gated es en realidad muy
sencilla y es lo adecuado, dado que el trabajo que hay que realizar es también bastante simlple. La siguiente lista ofrece un ejemplo.
Listado 3.3. Configuración para gated
# Activar RIP
rip yes {
# No emitir las propias actualizaciones de RIP
nobroadcast ;
interface 192.168.1.17
# Usar RIP-2
versión 2
# Transmitir actualizaciones mediante multidifusion
# para reducir la carga de los sistems RIP-1
multicast ;
} ;
Este ejemplo muestra la estructura básica del archivo de configuración, incluyendo comentarios que comienzan por el signo #, las instrucciones acabadas en punto y
coma y el agrupamiento de las instrucciones mediante corchetes.
Configuración de una pasarela interior
La configuración de una pasarela interior es sólo un poco menos compleja. Supongamos que una pasarela de nombre igw interconecta las subredes
192.168.5.0 y 12.168.17.0, y que ésta última tiene una pasarela para Internet. La pasarela igw tiene las interfaces 192.168.5.1 y 192.168.17.3. Se anuncia a sí misma a
los hosts en la red 5 como la pasarela predeterminada porque es la pasarela para el mundo exterior. En la subred 17, igw se anuncia como la pasarela para la subred 5,
empleando OSPF. El listado 6.4 muestra la configuración.
Listado 3.4. Configuración para gated de un encaminamlento interior
# No permitir que venza el timeout para la subred 5, porque es
# el único camino para esa subred.
interfaces {
interface 192.168.5.1 passive ;
} ;
# Definir un id de encaminador OSPFj usamos la dirección de la
# interfaz que hable OSPF. La dirección predeterminada es la de
# la primera interfaz que encuentre gated
routerid 192.168.5.1 ;
# Activar RIP-2 y anunciar las rutas OSPF a la subred 5 con un
# coste de 5. El coste es bajo porque ésta es una ruta interna.
rip yes {
# Emitir las actualizaciones RIP-2
broadcast ;
Encaminamiento IP
131
# El coste
defau1tmetric 5 ;
interface 192.168.5.1
version 2
multicast ;
} ;
# Activar OSPF en el área tronca1, subred 17
ospf yes {
backbone {
interface 192.168.17.3 {
# Usar una prioridad bastante baja para
# aumentar la probabilidad de que éste sea el
# elegido el encaminador designado.
priority 5 ;
} ;
} ;
} ;
Al configurar gated hay que recordar que un error de sintaxis en /etc/gated.conf
le impedirá arrancar correctamente. Sin embargo, se puede usar el mismo programa para verificar automáticamente la sintaxis. Por ejemplo, al editar una copia de gated.conf en /tmp/gated.conf.new. Se puede comprobar con el comando
gated -c -f /tmp/gated.conf.new /tmp/gated.trace
Así se verifica la sintaxis sin que en realidad se haga ningún encaminamiento y se escribe la información de seguimiento en /tmp/gated.trace. Entonces se puede
examinar la traza para ver los errores antes de mover la nueva configuración del archivo a /etc/gated.conf. Se recomienda que se haga siempre esto al cambiar la
configuración, incluso en los cambios pequeños. Luego se puede hacer que un proceso gated que se esté ejecutando vuelva a cargar su configuración diciendo
/etc/rc.d/init.d/gated reload
Informática Integrada Internetworking
132
Sección 6: Protocolo de Configuración Dinámica de Hosts
Informática Integrada Internetworking
134
Instalación y Configuración del DHCP
135
Sección 6: Instalación y Configuración del DHCP
Introducción
En esta sección conocerá las ventajas de la configuración automatica de host conta la configuración manual. Instalará el servicio de DHCP además de que configurará a las máquinas clientes
Objetivos Particulares
Al finalizar esta sección, Usted podrá:
Explicar las ventajas de la configuración automática de hosts
Instalar, configurar y compilar el servicio de DHCPD
Configurar el cliente DHCP
Informática Integrada Internetworking
136
Instalación y Configuración del DHCP
137
Introducción al Servicio DHCP
La configuración de las direcciones IP de unos pocos servidores es una tarea fácil. Sin embargo, las configuraciones de direcciones IP manualmente para un departamento, edificio, la configuración de direcciones IP manualmente para un departamento, edificio o empresa entera de unos sistemas heterogénos puede llegar a ser dramática.
El cliente y el servidor DHCP (Dinamyc Host Configuration Protocol); Protocolo de Configuación dinámica de Linux puede ayudarle con esta tarea. La máquina cliente se configura para que obtenga su dirección IP de la red. Cuando se inicia el software cliente DHCP, manda un mensaje de petición-broadcast por la red para obtener una IP. Si todo va bien, responderá un servidor DHCP de la red, dándole una dirección y otra información necesaria para completar la configuración de red del cliente.
Como el direccionamiento dinámico es también útil en la configuración máquinas portátiles o temporales. La gente que viaja de oficina en oficina puede enchufar sus máquinas en la red local y obtener las direcciones apropiadas de su ubicación.
En esta sección, estudiaremos el porceso de configuración de un servidor y un cliente DHCP. Esto incluye la compilación e instalación del software necesario y después recorreremos el proceso de escritura de un archivo de configuración para él.
Nota: DHCP es un estándar. Así que cualquier sistema operativo que se comunique con tros servidores y clientes DHCP puede funcionar con las herramientas DHCP de Linux. Una solución común que incluye el uso de componentes del servidor DHCP de Linux se implanta en entornos de oficina donde hay un gran número de clientes Windows. Los sistemas Windows se pueden configurar para que usen DHCP y conecten con servidores Linux para conseguir su dirección IP. Esto reduce la necesidad de otro servidor Windows NT y los costos de licencia asociados a él.
Las raíces del DHCP
Mucho antes de la moda de los equipos de red (NC), y cuando el espacio de almacenamiento en disco tenía un costo muy elevado, los fabricantes de estaciones de trabajo en red construían máquinas sin unidades de disco duro locales, montando en su lugar un servidor compartido. Estas máquinas sin disco debían arrancarse con un protocolo como BOOTP (boot Protocol, Protocolo de arranque), obteniendo su dirección del servidor. DHCP se deriva originalmente del protocolo BOOTP. De hecho muchas características de DHCP se toman directamente de BOOTP
Informática Integrada Internetworking
138
Los mecanismos de DHCP
Cuando se configura un cliente para que obtenga su dirección de la red, pedirá una dirección en forma de una petición DHCP. Un servidor DHCP escucha las peticiones de los clientes. Una vez recibida una petición, comprueba su base de datos local y emite la respuesta adecuada. La respuesta siempre incluye la dirección y puede incluir servidores de nombre, una máscara de red y una pasarela por defecto. El cliente acepta la respuesta del servidor y configura sus parámetros locales.
El servidor DHCP mantiene una lista de direcciones que puede conceder. Cada dirección tiene una especie de contrato asociado, que dicta cuánto tiempo permite a un cliente usar la dirección antes de que deba conectarse con el servidor para renovar la dirección. Cuando expira el contrato, no se le permite al cliente utilizar esa dirección.
La implementacion del servidor DHCP de Linux incluye arias características clave comunes con muchas de las implementaciones de servidores DHCP. El servidor se puede configurar para que conceda una dirección libre de un grupo de direcciones o que conceda una dirección específica para una máquina específica. Además de servir peticiones DHCP, el servidor DHCP de Linux también sirve a peticiones BOOTP.
El servidor DHCP
DHCPD, el servidor DHCP es el responsable de servidr direcciones IP y otra información relevante a las peticiones de los clientes. Puesto que el protocolo DHCP es de broadcast, tendrá que haber presente un servidor en cada subred que quiera proporcionar servicio DHCP.
Instalación y Configuración del DHCP
139
Descarga, compilación e instalación de un servidor DHCP.
El servidor DHCP de ISC es la implementación por defecto para máquinas UNÍX. Esta versión esta instalada en muchas distribuciones Linux. Si no la encuentra en su distribución puede obtener los códigos fuente del servidor DHCP de ISC en el sitio de ISC en http://www.isc.org. Cuando se escribió este texto, la versión más actual del servidor era 3.0b1p10.
Una vez descargado el paquete, desempaquete el software como se muestra. Para este ejemplo, asumimos como directorio fuente /user/local/src.
[root@delirium src]# tar –xfvz dhcp-3.0b1p10.tar.gz
Introduzca el directorio y configure el paquete con el comando configure
[root@delirium dhcp-3.0b1p10] # ./configure
Actualmente, --with-nsupdate es el único parámetro opcional disponible para el
comando configure. Esta opción se invoca si está instalado Bind 8.2, y se desea el
soporte DNS dinámico en el servidor DHCP. Para compilar e instalar, introduzca los comandos make; make install:
[root@elirium dhcp-3.0b1p10] # make: make install
Configuración del servidor DHCP
El archivo de configuración primario del servidor DHCP de ISC por defecto /etc/dhcpd.conf. El archivo de configuración encapsula dos ideas:
Un conjunto de declaraciones de redes, máquinas o grupos unidos al sistema y posiblemente un rango de direcciones que se conceden a cada entidad. Se pueden usar varias declaraciones para describir varios grupos de clientes. Las declaraciones también se pueden anidar a otra cuando se necesitan varios conceptos para describir un conjunto de cleitnes o máquinas.
Un conjunto de parámetros que describen el comportamiento del servidor y configuran las respuestas apropiadas. Los parámetros pueden ser globales, o locales al conjunto de declaraciones.
Nota: Puesto que cada sitio tiene una red única con una dirección única, es necesario que se configure cada sitio con su propio archivo de configuración. Si ésta es la primera vez que usa DHCP, puede querer empezar con el archivo de configuración de ejemplo que se muestra al final del capítulo y modificarlo para que se adapte a las características de su red.
Como muchos archivos de configuración de UNIX, el archivo está en texto ASCII y se puede modificar usando un editor de texto. La estructura del archivo de configuración es la siguiente:
Parametros globales;
Informática Integrada Internetworking
140
Declaraion1 {
[parametros relacionados con la declaracion1]
[subdeclaracion anindada]
}
Declaracion2 {
[parametros relacianodos con declaracion2]
[subdeclaracion anindada]
}
Como se indica en las líneas de arriba, un bloque de declaración agrupa un conjunto de clientes. Se aplican diferentes parámetros a cada bloque de declaración.
Declaraciones
Puede quereer agrupar clientes diferentes por varias razones, como requerimientos organizativos, esquemas de red o dominios administrativos. Para ayudarle con el agripamiento de los clientes, introduciremos las declaraciones siguientes:
GROUPE: la lista de parámetros individuales y las declaraciones para cada máquina repetidas una y otra vez hacen el archivo de configuración difícil de gestionar. La declaracion groupe le permite aplicar un conjunto de parámetros y declaraciones a un conjunto de clientes, redes o subredes. La sintaxis de una delcarion group es la siguiente:
Groupe etiqueta {
[parametros]
[subdeclaraciones]
}
La etiqueta es el nombre definido por el usuario para identificar el grupo. El bloque parámetros consta de una lista de parámetros que se aplican al grupo. Las subdelcaraciones se usan en el casode que necesite un nivel mayor de granulidad para describir ciertos clientes adicionales que puedan ser miembros de la declaración actual.
HOST: una declaración host se usa para aplicar un conjunto de parámetros y declaraciones a una máquina en particular, además de los parámetros indicados al grupo. Se usa normalmente para fijar la dirección de arranque, o para clientes BOOTP. La sintáxis de una declaración host es la siguiente:
Host etiqueta {
[parámetros]
[subdeclaraciones]
}
Instalación y Configuración del DHCP
141
La etiqueta es el nombre definido por el usuario para identificar al grupo de la máquina. Parámetros y subdeclaraciones son como se describieron en la declaración previa.
SHARED-NETWORK: Una declaración shared-network agrupa un conjunto de direcciones de miembros de una misma red física. Esto permite agrupar parámetros y declaraciones para propósitos administrativos. La sintaxis es:
Shared-network etiqueta {
[parametros]
[subdeclaraciones]
}
La etiqueta es el nombre definido por el usuario para identificar al grupo de la máquina. Parámetros y subdeclaraciones son como se decriben en la declaración previa.
SUBNET: la declaración subnet se utiliza para aplicar un conjunto de parámetros y/o declaraciones a un conjunto de direcciones que coincidan con la descripción de esta declaración. La sintaxis es la siguiente:
Subnet numero-subred netmask mascara {
[parámetros]
[subdeclaraciones]
}
La etiqueta es el nombre definido por el usuario para la subred. Parámetros y subdeclaraciones son como se describieron para la declaración anterior.
RANGE: para arranques dinámicos, la declaración range especifica el rango de direcciones válidas para los clientes. La sintaxis es la siguiente:
range [dinamic-bootp] dirección-inicial [dirección-final]
La palabra clave dinaci-bootp se usa para alertar al servidor de que el rango de direcciones siguiente es para el protocolo BOOTP. Los campos dirección-inicial y la opcional dirección-final son las direcciones reales de los bloques de inicio y final de las direcciones IP. Los bloques se asumen como consecutivos y en la misma subred de direcciones.
Parámetros
El cambio de estos parámetros modificará el comportamiento del servidor para grupos de clientes.
ALWAYS-REPLAY-RFC1048: se usa principalmente para clientes BOOTP. Hay
clientes que requieren la respuesta del servidor para ser completamente compatibles con BOOTP RFC. Cambie este parámetro para conseguir este requerimiento. Sintaxis:
Always-replay-rfc1048;
Informática Integrada Internetworking
142
AUTHORITATIVE: se usa para etiquetar a uan red en particular como “autorizada”. Por
defecto, el servidor asumirá que es autorizado. Cuando un segmento de red es no autorizado, el servidor enviará un DHCPNAK al cliente. El cliente se supone reintentará su petición. Sintaxis:
autoritative;
no authoritative;
DEFAULT-LEASE-TAME: El valor de segundos es el tiempo que dura el contrato
asignado a la direccion IP si el cliente no pide cualquier duración. Sintaxis:
Default-lease-time segundos:
DYNAMIC-BOOTP-LEASE-CUTOFF: Los clientes BOOTP no son conscientes del
concepto contrato. Po defecto, el servidor DHCP asigna una dirección IP que nunca caduca. Hay ciertas situaciones en la que puede ser útil tener al servidor sin dar direcciones para un conjunto de clientes BOOTP. En estos casos, se usa este parámetro. Sintaxis:
Dynami-bootp-lease-cutoff fecha;
La fecha se especifica en la forma SAAAA/MM/DD HH:MM:SS, donde W es el día de
la semana en formato de cron (0=domingo, 6=sábado); AAAA es el año; MM es el mes
(01=enero, 12=diciembre); DD es el día en formato de dos dígitos; HH es la hora con
dos digitos en formato de 24 horas (0=medianoche, 23=11 de la noche ) y SS son los
dígitos que representan los segundos.
DYNAMIC-BOOTP-LEASE-LENGTH: aunque los clientes BOOTP no tienen un
mecanismo de caducidad de direcciones que reciben, algunas veces seguro que tiene el servidor asumiendo que no se usan las direcciones, de forma que se han liberado para su uso. Esto es útil si la aplicación BOOTP dura poco tiempo. Si es así, el servidor puede configurar el número de segundos y caducarla después de que pase el tiempo. Sintaxis:
Dynamic-bootp-lease-length segundos;
Nota: Tenga precaución con esta opción, puesto que puede introducir problemas si concede una dirección antes de que otra máquina deje de usuarla.
FILENAME: en algunas aplicaciones el cliente DHCP puede necesitar saber el
nombre de un archivo para usuarlo en el arranque. Con frecuencia se combina con next-server para recuperar un archivo remoto para configurar la instalcación o arrancar un clilente sin disco. Sintaxis:
Filename nombre _archivo;
GET-LEASE-HOSTNAME. Si se configura como true (cierto, el servidor resuelve todas
las direcciones en el ámbito se la declaración y la usuará para la opción hostname. Sintaxis:
Get-lease-hostname [true / false];
Instalación y Configuración del DHCP
143
HARDWARE: a fin de que el servidor identifique una máquina específica, se debe usar
el parámetro hardware. La dirección-hardware (algunas veces llamada dirección MAC) es la dirección física de la interfaz, normalmente en un conjunto de octetos hexadecimales delimitados por los símbolos dos puntos. Este parámetro se usa para fijar las direcciones de los clientes DHCP y se requiere para los clientes BOOTP. Sintaxis:
Hardware [ethernet/token-ring] dirección_hardware
MAX-LEASE-TIME: un cliente tiene la opción de pedir la duración de su contrato. La
petición se concede tanto tiempo siempre no exceda el número de segundos especificados por esta opción. De lo contrario, se concede un contrato al máximo de segundos especificado aquí. Sintaxis:
Max-lease-time segundos;
NEXT-SERVER: Cuando arranca de red, se peude dar a un cliente un nombre de
archivo (especificado por el parámetro filename) y un servidor de donde obtener la información de arranque. Este servidor se especifíca con el parámetro next-server.
Next-server nombre_servidor;
SERVER-IDENTIFIER: parte de la respuesta DHCP es la dirección del servidor. En
sistemas con varias interfaces, el servidor DHCP concede la dirección a la primera interfaz. Desafortunadamente, esta interfaz no se puede alcanzar por todos los clientes de un servidor o del ámbito de la declaración. En estos casos raros, este parámetro se puede usar para enviar la IP a la interfaz apropiada por la que el cliente se comunica con el servidor. Sintaxis:
Server-identifier nombre_máquina;
SEVER-NAME: el nombre de la máquina servidor que arranca el cliente remoto. Este
parámetro se usa por los clientes remotos o aplicaciones de instalación de red.
Server-name nombre;
USE-HOST-DECL-NAMES: Este parámetro se usa en el mismo ámbito que las otras
declaraciones de máquina. Añadirá la opción host-name a la declaración host, usando el nombre de máquina en la declaración de la opción host. Sintaxis:
Use-host-decl-names [true / false]
USE-LEASE-ADDR-FOR-DEFAULT-ROUTE: Algunas configuraciones de red usan una
técnica conocida como proxyarp de forma que una máquina puede seguir la pista a otras máquinas de fuera de su subred. Si su red está configurada para soportar proxyarp, querrá configurar sus clientes para que la usen como ruta por defecto. Esto forzará a que use arp para encontrar todas las direcciones remotas (remota significa fuera de la subred). Sintaxis:
use-lease-addr-for-default-route [true] [false] ;
Nota: el comando use-lease-addr-for-defaul-route debería usarse con
precaución puesto que no todos los clientes pueden configurar el uso de su propia interfaz como ruta por defecto.
Informática Integrada Internetworking
144
Opciones
Actualmente se soportan más de 60 opciones para el servidor DHCP. La sintaxis general de una opción es la siguiente:
option nombre-opción [modificadores]
La siguiente tabla es un sumario de las opciones de uso más común.
Opción Descripción
Broadcast-address Una dirección de una subred de cliente se especifica como dirección de broadcast.
Domain-name El nombre del dominio que debería usar el cliente como nombre de dominio local cuando se realizan bucles locales.
Domain-name-servers La lista de servidores DNS para que use el cliente para resolver nombres de máquinas.
Host-name La cadena usada para identificar el nombre del cliente
Nis-domain Elnombre del dominio NIS
Nis servers La lista de servidores NIS disponibles para unirse a ellos
Routers Una lista de enrutadores que puede usar el cliente
Subnet-mask La máscara a usar por el cliente
Ejemplo de dhcpd.conf
Este es un ejemplo de un archivo se configuración sencillo:
Subnet 192.168.1.0 netmask 255.255.255.0 {
# opciones
option routers 192.168.1.1
option subnet-mask 255.255.255.0
option domain-name “uidzero.com”;
option domain-name-servers delirium.uidzero.com;
# parametros
defualt-lease-time 21600;
max-lease-time 43200;
# declaraciones
Instalación y Configuración del DHCP
145
range dynamic-bootp 192.168.1.25 192.168.1.49;
# declaraciones anidadas
host vertigo {
hardware ethernet 00:80:c6:f6:72:00;
fixed-address 192.168.1.50;
}
}
Comportamiento general en tiempo de ejecución
Una vez iniciado, el demonio espera a que las peticiones de cliente lleguen para realizar cualquier proceso. Cuando se procesa una petición y se concede una dirección, se sigue la pista de la dirección en un archivo llamado dhcp.lease. en el caso de que falle el servidor, los contenidos de este archivo se usan para conceder qué direcciones están asignadas a qué cliente.
Informática Integrada Internetworking
146
El Demonio DHCP del Cliente
DHCPCD, el demonio del cliente incluido en muchas distribuciones de Linux más comunes es que el componente software usado para hablar con el servidor DHCP descrito en las secciones previas. Si se invoca, intentará obtener una dirección IP de un servidor DHCP disponible y después configurar su red de acuerdo a la información obtenida.
Descarga, compilación e instalación de un cliente DHCP
En el caso de que el software no forme parte de su distribución Linux, puede obtenerlo, compilarlo e instalarlo manualmente. El cliente DHCP de Linux se puede encontrar en http://www.phystech.com/download. Una vez descargado, el paquete se debe desempaquetar así:
[root@delirium src] # tar –xfvz dhcpcd-1.3.18-pll.tar.gz
La versión actual de software no se puede tratar con la utilidad GNU configure; sin embargo. Su configuración es bastante simple. Edite el mafefile para asegurarse de que están configurados los flgas apropiados.
Esto se puede hacer ejecutándose emacs, vi o incluso pico. Ejecute la utilidad
make cuando quiera construir el demonio cliente. La instalación se completa usando el
comando make install.
Configuración del cliente DHCP
El cliente normalmente se ejecuta desde los archivos de arranque, pero también se puede ejecutar a mano. Se inicia normalmente antes que otros servicios de red, puesto que otros servicios de red no arrancan si el demonio cliente DHCP no obtiene una dirección.
Por otro lado, el cliente se puede invocar desde la línea de comandos después del arranque. El demonio cliente se puede arrancar sin opciones adicionales. Si se realiza con éxito, el cliente hará una copia de sí mismo en modo background y saldrá. Las versiones más antiguas imprimen la dirección asignada.
[root@delirium src] # dhcpcd
Opcionalmente, el demonio cliente se puede iniciar con flags adicionales que modifican ligeramente el comportamiento del software. La sintaxis completa de este comando es como sigue:
dhcpcd [-dkrDHR] [-t timeout] [-c filename] [-h hostname]
[-I vendorClassID] [-I clientID] [-l leasetime] [interface]
Instalación y Configuración del DHCP
147
Las opciones se describen en detalle en la siguiente tabla:
Opción Descripción
-c filename Ejecutará el nombre de archivo especificado después de obtener y configurar su red. Esto es util si hay servicios que se necesita iniciar sólo después de que se configure la red. Normalmente, muchos servicios de red se pueden iniciar sin que esté presente la red y debería actuar cuando la red se configure.
-d Est flag cambia a modo de depuración. En modo depuración dhcpcd proporciona una salida detallada para el syslog.
-D Si invoca esta opción, dhcpcd configurará el nombre de dominio de la máquina local a la que especifique el servidor. El cliente no hace esto por defecto.
-i vendorClassID Proporciona información adicional para el servidor DHCP. La clase del vendedor es una cadena que se puede para ayudar al servidor a clasificar el cliente dentro de un grupo particular. Por defecto, dhcpcd envía como cadena el nombre del sistema, versión del sistema y tipo de máquina.
-I clientID En lugar de enviar la dirección Ethernet, puede forzar al cliente a enviar otra cadena de identificación. Muchos servidores usan la dirección Ethernet como identificador pero hay excepciones.
-h hostname Incluye el nombre de máquina en los mensaje DHCP enviados por dhcpcd. Hay servidores DHCP que se pueden configurar para aceptar mensajes DHCP de una lista de clientes.
-H Fuerza a dhcp a configurar el nombre de la máquina al enviado por el servidor. El cliente no hace esto por defecto.
-k Termina la ejecución actual del demonio cliente dhcpcd
-l leasetime El número requerido de segundos que el cliente quiere para su contrato DHCP. Naturalmente, el servidor puede rechazar este valor y dar un contrato menor que el valor requerido.
-r Si invoca esta opción, dhcpcd actuará como un cliente BOOTP. Esto es para el caso raro de que haya un solo cliente BOOTP disponible o para pruebas.
-R Por defecto, reemplazará el archivo /etc/resolv.conf para la resolución DNS por los valores enviados por el servidor, hay situaciones donde no querrá que esto ocurra. Especifique esta opción para prevenirlo.
-t timeout El timeout es el número de segundos que dhcpcd tratará de obtener una dirección.
Interface Especifica una interfaz para configurar dhcpcd. Si no se especifica nada, dhcpcd configurará la primera interfaz Ethernet (eth0)
Informática Integrada Internetworking
148
Administrando las máquinas a distancia
Para administrar sus máquinas a distancia tiene estas opciones:
Utilice el programa telnet para entrar en el sistema en una cuenta de usuario en la
máquina en la que necesita trabajar, y luego utilice el programa su para conseguir status de superusuario si conoce la contraseña root de la máquina.
Utilice el programa vnc, disponible en www.uk.search.att.com/vnc/, para conectarse a
distancia con máquinas Linux, Macintosh, Unix o Windows. Esta herramienta le permite trabajar con una máquina remota que también tiene instalado el vnc como si
estuviera sentado delante de su consola.
Instalación y Configuración del DHCP
149
Informática Integrada Internetworking
150
Examen 6-1
Configurando un servidor DHCP. En este ejercicio, usted podrá configurar un servidor DHCP para distribuir información de direcciones a las máquinas de su red cuando arranquen arrancar.
1. Entre en el sistema como root.
2. Escriba “man dhcpd” para comprobar rápidamente si el servidor ya está instalado. Si es así, pase al punto no. 6.
3. Escriba df para ver si el CD ROM de Red Hat ya es parte de su sistema de archivos. Si no esta montado, póngalo en su unidad y escriba:
Mount /dev/cdrom /mnt/cdrom
4. Para cambiar al directorio de los paquetes de Red Hat escriba
Cd /mnt/cdrom/RedHat/RPMS
5. Para instalar el RPM de DHCP teclee el siguiente comando y después la tecla de tab para completar el nombre:
rpm –ivh dhcp-
6. Para abrir y editar el archivo de configuración del servidor DHCP escriba
vi dhcp.conf
7. primero necesita introducir las normas globales. Esta sección debería parecerse a la siguiente si hablamos de la red 192.168.14.0, con un ISP que tiene un nombre de servidor secundario 192.168.87.9:
max-lease-time 43200:
default-lease-time 144000:
option all-subnets-local 1:
option domain name-servers 192.168.14.1, 192.168.87.9
8. Ahora llega el momento mas interesante, vamos a dar por hecho que cuenta con una solo red la cual necesita para el servicio. Con el fin de evitar que este ejemplo resulte demasiado simple, supongamos que esta red se encuentra dividida en ocho subredes, a dos de las cuales el DHCP les ha proporcionado su información de red y comparten también el mismo cableado de Ethernet. El resto de su archivo de configuración DHCP es el siguiente:
Shared-network ADMIN.{
Subnet 192.168.14.96 netmask 255.255.255.224 {
Instalación y Configuración del DHCP
151
Range 192.168.14.97. 192.168.14.127:
}
subnet 192.168.14.160 netmask 255.255.255.224 {
range 192.168.14.161 192.168.14.191:
}
}
Nota: note que sin la sangría, este archivo resultaría muy difícil de seguir. Algunas veces la pulcritud cuenta bastante a la hora de escribir en clave.
9. Pulse la tecla ESC cuando escriba ZZ con objeto de guardar y cerrar el archivo.
10. Para reiniciar su daemon DHCP con su nueva configuración escriba:
/etc/rc.d/INIT.d/dhcpd restart
Informática Integrada Internetworking
152
Examen 6-2
Configurando el cliente pump. Para configurar el cliente pump para el servicio DHCP o
BOOTP, haga lo siguiente:
1. Entre al sistema como root
2. Para abrir el archivo de configuración pump, escriba a continuación:
vi /etc/pump.conf
3. Construya el archivo de configuración, un ejemplo de configuración de una máquina con única interfaz podría contener:
Reties 5
Timeout 15
Domainsearch “home.net kitchen.home.net”
4. Después de que termine de crear el archivo, pulse la tecla Esc y luego escriba ZZ para cerrar y guardar el archivo.
5. asegúrese de el cliente pump es llamado al arrancar. Un buen lugar para poner poner esta sentencia es /etc/rc.d/rc.local, que es uno de los archivos llamados por Red Hat de Linux durante el proceso de arranque. Para abrir y editar el archivo escriba:
vi /etc/rc.d/rc.local
6. Escriba G para ir al final del archivo
7. Escriba o para abrir una línea en blanco después de las otras líneas.
8. Escriba:
/sbin/pump – i interfaz –l horas_contrato
Las variables son las siguientes:
Interfaz: la interfaz de red que utiliza pump para contactar con el servidor DHCP, y a la que pump va a tratar de asignar la información de dirección, por ejemplo eth0
Horas contrato: cuanto tiempo llega a mantener esta interfaz la información de su dirección, por ejemplo, 100. cuando finaliza el tiempo, pump contacta con el servidor DHCP de nuevo para una actualización.
Después de introducir esta información pulse la tecla Esc, y después escriba ZZ para cerrar y guardar el archivo.
Recommended