Ensayo Enrutamiento... y Subnetear

download Ensayo Enrutamiento... y Subnetear

If you can't read please download the document

description

enrutamiento

Transcript of Ensayo Enrutamiento... y Subnetear

Ensayo. TCP/IP y Enrutamiento El TCP/IP es el software bsico de red utilizado en Internet y fue desarrollado en los primeros sistemas UNIX. Incluye bsicamente los siguientes componentes: Internet Protocol (IP). Es el protocolo de capa de red (capa 3) y se encarga de transportar paquetes crudos de una mquina a otra. Internet Control Message Protocol (ICMP). Proporciona funciones de soporte de bajo nivel a IP, por ejemplo mensajes de error. Address Resolution Protocol (ARP). Relaciona direcciones de capa 2 y capa 3 en una LAN. User Datagram Protocol (UDP) y Transmission Control Protocol (TCP). Se usan para enviar datos desde un programa a otro utilizando IP. UDP es un servicio no confiable y sin conexin y TCP es un servicio confiable y orientado a conexin. Ambos son protocolos de capa de transporte (capa 4) El TCP/IP provee un ambiente de programacin independiente del sistema que permite intercambiar informacin entre diferentes sistemas (UNIX y no UNIX). El conjunto de protocolos llamados TCP/IP corresponde con un modelo de capas como se indica en la siguiente tabla: Capa Enlace de datos Red Transporte Aplicacin Funcin Hardware de red y dispositivos de red Comunicacin bsica, direccionamiento y enrutamiento Comunicacin extremo a extremo entre programas Aplicaciones de usuario Ejemplos ARP, PPP, SLIP IP, ICMP TCP, UDP Telnet, nfs, dns ftp,La historia ha demostrado que el TCP/IP nacido desde el UNIX es el protocolo de redes ms difundido en la actualidad y que ha superado otras estructuras como el clsico modelo OSI de ISO. Paquetes El UNIX soporta variadas redes fsicas, por ejemplo Ethernet, token ring y sistemas basados en mdems. Las variedades de hardware son manejadas dentro de la capa de Enlace de Datos en el modelo TCP/IP y los protocolos de mayor nivel no se enteran de las caractersticas del hardware subyacente. Las conexiones con diferentes redes de una mquina UNIX se conocen como interfaces de red. Una mquina con ms de una interfaz puede transferir paquetes que llegan por una de esas interfaces y retransmitirla hacia otra interfaz, en ese caso se dice que la mquina acta como enrutador (o router). Los problemas ms complejos de redes estn asociados a problemas de enrutamiento. La informacin viaja por la red en forma de paquetes, los cuales tiene una carga y un encabezado. El encabezado dice de donde viene, hacia donde va, que protocolo, etc. y la carga son los datos tiles. A diferentes niveles de la estructura de capas estas unidades se conocen normalmente con diferentes nombres. A nivel de capa de enlace de datos se llaman tramas, a nivel de red se llaman paquetes, a nivel de transporte se llaman segmentos y a nivel de aplicacin se llaman mensajes. A medida que la informacin pasa por la estructura de capas cada una de ellas le agrega informacin de cabecera e incluye la unidad de la capa superior dentro de la carga. Por ejemplo un segmento UDP se transmite en un medio Ethernet:----------------------------------Ethernet Heade r IP Heade rSegmento UDP (108 bytes) -----------------------de la Ethernet Trailer UD P Heade r DatosPaquete IP (128 bytes)aplicaci n14 Bytes20 Bytes 8 Bytes100 Bytes4 BytesTrama Ethernet (146 bytes) El tamao del paquete puede limitarse por causas de hardware o por convenciones del protocolo. Por ejemplo la carga de una trama Ethernet no puede ser superior a 1500 bytes, el largo mximo de un paquete IP es de 64 Kbytes pero en general hay limitaciones que no permiten ese tamao. La limitacin de una red o protocolo en el tamao del paquete se llama MTU (Maximun Transfer Unit). La capa IP es la responsable de fragmentar los paquetes para adecuarse a la MTU de una red en particular. Direccionamiento de paquetes Para que los paquetes lleguen a destino es necesario que contengan direcciones. Las direcciones existen a varios niveles en la estructura de capas. En el nivel de capa de enlace, existen direcciones Ethernet que son de 6 bytes, que estn pre-configuradas por el fabricante de la tarjeta y son nicas en el mundo. En Token Ring existen tambin direcciones de capa de enlace y en enlaces PPP y SLIP como son conexiones punto a punto no es necesario utilizar direcciones. En el nivel IP, existen direcciones IP que son cuatro bytes asignados a la interfaz de red, nicas en el mundo y no asociadas al dispositivo hardware. Son asignadas para permitir el encaminamiento de los paquetes de una mquina origen a otra destino. Son asignadas por InterNIC. La correlacin entre direcciones de capa de enlace y direcciones de capa de red es necesaria en las redes de difusin y para hacer esta relacin existe el protocoloarp. Este protocolo permite implementar esta correlacin en forma automtica o sea sin la intervencin del administrador. Esto tiene importantes ventajas pues es posible cambiar la tarjeta de red a una computadora sin necesidad de configurar a mano el cambio de direccin de capa de enlace. Las direcciones IP se escriben por convencin de la forma: 164.73.224.40 y claramente no son fciles de recordar y por eso los sistemas UNIX permiten asociar nombres a las direcciones para poder referirse a mquinas por sunombre y no por su direccin. El UNIX posee varios mecanismos de implementar esa conversin de nombres a nmeros. La forma ms bsica es mediante el archivo /etc/hosts que tiene esa relacin y la ms usada en Internet es a travs del servicio de Servidor de Nombres DNS. Es de destacar que el software de red no conoce de nombres sin de direcciones y el servicio de relacin entre nmeros y nombres es una aplicacin de usuario y no parte del software de red. Las direcciones IP identifican mquinas pero no servicios dentro de esas mquinas. Para identificar servicios existe el concepto de PUERTOS que son las direcciones de capa de transporte. Los nmeros de puertos son de 2 bytes y hay un conjunto de puertos llamados "bien-conocidos" ("well-known ports") que se han estandarizado para los diferentes servicios. Por ejemplo el servidor de telnet atiende en el puerto 23, el servidor de correo electrnico en el puerto 25, etc. La asignacin de puertos puede verse en un archivo que relaciona nmeros con nombres de servicios y que se llama /etc/services. Direcciones en Internet Las direcciones Internet tienen cuatro bytes y se dividen en una parte de numeracin de red y otra de numeracin de mquina. En las decisiones de enrutamiento se utiliza esta divisin para saber si una mquina est en la propia red o por qu camino debe encaminarse para llegar a destino. Por convencin se anotan en decimal separados por puntos entre los 4 bytes. Ejemplo 164.73.224.40 Hay varias clases de direcciones IP. Difieren en como se asigna la frontera entre parte de red y parte de mquina.Clase A BPrimer byte 1-126 128-191Formato R.M.M. M R.R.M.MComentario Normalmente con subredesC D192-223 224-239 240-254R.R.R.M MulticastExperimenta l E Si en los bits reservados para nmeros de mquina de una red colocamos ceros, entonces nos estaremos refiriendo a toda esa red. Es el nombre de la red y por lo tanto los ceros estn reservados a esta identificacin. Si todos los bits de la parte de mquina son unos, entonces se considera una direccin de broadcast dentro de esa red por lo que todas las mquinas de la red deben escuchar esa direccin. Si el primer byte de una direccin es el 127, se refiere a una red ficticia llamada "loopback" y que no se refiere a una interfaz fsica. Tiene sentido dentro de una misma mquina y los paquetes enviados a esa direccin no salen de la propia mquina, recorren la pila de protocolos del TCP/IP y vuelven a la mquina como si hubieran sido recibidos por sta a travs de alguna de las interfaces fsicas. ARP- Relacin entre direcciones Los paquetes IP se enrutan usando las direcciones IP, sin embargo, en redes de difusin (particularmente Ethernet) es necesario tener una relacin entre direcciones IP y direcciones de capa de enlace de datos. Este relacionamiento se realiza mediante el protocolo ARP. La idea es que si estoy en una red Ethernet y tengo que enviar un paquete IP a una mquina de mi misma red, debo enviar ese paquete encapsulado en una trama Ethenet. Para saber a que direccin de capa de enlace debo enviar dicha trama, tengo que averiguar cul es la direccin de capa de enlace que se corresponde con la direccin IP a la cual quiero enviar el paquete. El ARP mantiene una tabla en memoria con la correspondencia entre direcciones de capa de red y direcciones de capa de enlace de datos. Si ARP tiene en su tabla la direccin de capa de enlace asociada a la direccin IP a la cual quiero referirme, se forma una trama Ethernet con dicha direccin ethernet como destino. Si ARP no posee en su tabla dicha correspondencia, es el encargado de averiguarlo. A estos efectos genera una trama de difusin "Broadcast" de capa de enlace preguntando: Quin tiene la direccin IP 22.22.22.22 ? Ese broadcast de capa de enlace es obviamente escuchado por todas las mquinas de la red Ethernet y entonces aquella que tenga configurada esa direccin IP, responder diciendo: Yo tengo esa direccin IP y mi direccin de capa de enlace es: 8:0:20:0:fb:6a Ahora entonces la mquina que hizo la consulta ARP tiene la informacin de correspondencia para la direccin IP deseada y la puede agregar en su tabla y as generar la trama ethernet dirigida a la mquina deseada. A su vez, la mquina que recibi la consulta original, tiene la correspondencia de la mquina origen y tambin la incluye en su tabla pues es altamente probable que deba dirigirse prximamente (para enviar una respuesta) a la mquina origen. La trama de broadcast con la pregunta original incluye la direccin de capa de enlace de la mquina origen, as como su direccin IP, por lo que terceras mquinas que no participen del dilogo, podran aprender de la pregunta la correspondencia de direcciones correspondiente a la mquina origen. En realidad solamente tienen en cuenta ese dato aquellas mquinas que ya tenan una entrada en su tabla referente a la mquina origen y lo que hacen es actualizarla con la nueva informacin. Esto es as para que las mquinas no agranden demasiado su tabla con informacin de mquinas con las cuales quiz no tengan que hablar. Las tablas adems tienen tiempo de expiracin con lo cual entradas no usadas van liberando espacio en la tabla. Existe en UNIX un comando arp que permite manejar el cache del protocolo ARP para debugging. RARP, BootP, DHCP A veces existe la necesidad de conocer a partir de una direccin ethernet la direccin IP asignada. Esto se utiliza en mquinas sin disco que arrancan cargando lo necesario de un servidor. Para que todas las mquinas en este modo puedan cargar la misma imagen del sistema operativo y no tenernecesidad de disponer de una imagen por mquina, se utiliza el protocolo RARP que consulta un servidor al cual se le pregunta: Que direccin IP corresponde a la direccin ethenet 8:0:20:0:fb:6a ?0 El servidor tiene una tabla de las direcciones IP asociadas a las diferentes mquinas segn su direccin de capa de enlace de datos y la mquina sin disco configura la imagen con la direccin IP brindada por el servidor. El protocolo RARP ha quedado obsoleto con el advenimiento del protocolo BOOTP (Boot Protocol) que brinda ms datos de configuracin adems de la direccin IP. En la actualidad el DHCP (Dynamic Host Configuration Protocol) permite a una mquina obtener toda la configuracin a partir de un servidor en su red de rea local. Enrutamiento Enrutamiento es el proceso de dirigir un paquete a travs de la red desde una mquina origen a otra destino. La idea es enviar los paquetes a algn sitio donde pueden tener ms informacin de cmo llegar al destino deseado. La informacin de enrutamiento se construye en una tabla de reglas del tipo: Para ir a la red A (nmero de red y mscara), enve los paquetes a la mquina B, con un costo de 1 salto. Asimismo existe una ruta por default donde se envan todos los paquetes destinados a redes para las cuales no tenemos rutas explcitas. La tabla de ruteo se recorre de lo ms especfico a lo ms general. Si no hay ruta especfica para dirigirse a un destino y no hay ruta default, el sistema enviar un mensaje de "network unreacheable". Esta especificidad se determina por el largo de la mscara. Cuanto ms cantidad de unos tenga la mscara, ms especfica ser la ruta.Desde el punto de vista del enrutamiento IP, toda la informacin necesaria se almacena en la tabla de ruteo, el problema es determinar si la tabla tiene la informacin adecuada. La tabla de ruteo de una mquina puede examinarse con el comando netstat. La opcin -r del mismo muestra la tabla de ruteo (la opcin -n es para no convertir nmeros en nombres). En un FreeBSD, por ejemplo la salida resumida del comando netstat -rn sera # netstat -rn Routing tables Internet: Destinatio Gateway n Refs Use Netif Expire default 164.73.224.28 33 36932 ed1 127.0.0.1 127.0.0.1 16 45450 lo0 ..... 164.73.224/25 link#1 0 0 164.73.224.1 8:0:2b:14:a1:21 5 198078 ed1 1039 164.73.224.40 48:54:e8:26:db:69 1908914 lo0 164.73.224.60 0:0:21:95:90:34 4 0 ed1 840 164.73.224.128 164.73.224.60 0 2 ed1 164.73.224.130 164.73.224.60 0 801 ed1 ..... Flag s UGSc UH UC UHLW UHLW UHLW UGHD UGHD 1En un Linux RedHat, por ejemplo la salida del comando netstat -rn sera de la forma: 17 ludmilla ~ >netstat -rn Kernel IP routing tableDestination Gateway Flags MSS Window irtt Iface 164.73.224.76 0.0.0.0 0 0 0 eth0 164.73.224.0 0.0.0.0 0 0 0 eth0 127.0.0.0 0.0.0.0 0 0 0 lo 0.0.0.0 164.73.224.28 0 0 0 eth0Genmask 255.255.255.255 UH 255.255.255.128 U 255.0.0.0 0.0.0.0 U UGLas rutas pueden ser estticas o dinmicas. Las rutas estticas se establecen manualmente con el comando route, por ejemplo: route add -net 222.222.222.0 164.73.224.28 1 Las rutas estticas son una solucin confiable en redes pequeas pero el administrador debe conocer la topologa de la red. Dinmicamente las rutas pueden modificarse a travs de un demonio que se comunican con otros enrutadores intercambindose informacin para actualizar las tablas. En UNIX est disponible el routed en tambin el gated que tiene ms potencia. Protocolos enrutamiento de forma estndar y existeLos protocolos de enrutamiento son el lenguaje en que los demonios de ruteo intercambian informacin acerca de la red. Se clasifican en protocolos de enrutamiento exterior (IGP) y protocolos de enrutamiento exterior (EGP). Los IGP se usan al interior de lo que se llaman sistemas autnomos que son un conjunto de mquinas administradas por una autoridad comn. Los EGP se usan entre sistemas autnomos. La diferencia es que los IGP tratan de optimizar el enrutamiento entre una red compleja con muchos caminos alternativos y los EGP tratan de optimizar el enrutamiento teniendo en cuenta que los caminos son normalmente pocos porque los sistemas autnomos se interconectan entre si con pocos enlaces.Los diferentes protocolos utilizan distintas mtricas para estimar el costo de cada ruta. Los costos pueden medirse en saltos, retardo, etc. Los EGP en general no toman demasiado en cuenta los costos porque normalmente no hay demasiadas rutas alternativas pero si tratan de optimizar la posibilidad de alcanzar una determinada red. Hay varios protocolos utilizados comunmente. Algunos de ellos son: RIP - Routing Information Protocol OSPF - Open Shortest Path First IGRP Protocol Interior Gateway RoutingEGP - Exterior Gateway Protocol BGP - Border Gateway Protocol RIP es el protocolo usado por el demonio routed estndar en UNIX. El costo de las rutas se mide en saltos, donde cada salto es un enrutador por el cual pasan los paquetes. Hay dos versiones: la 1 no tiene soporte para mscaras y la 2 s. OSPF funciona bien en redes grandes y es ms difcil de configurar. IGRP es un protocolo propietario de Cisco previo al OSPF. El estndar actual de EGP es el protocolo BGP en su versin 4. Redirecciones ICMP Aunque IP no se encarga del manejo de la tabla de ruteo tiene algunas funciones para facilitar la configuracin de enrutamiento. Si un enrutador enva un paquete a una mquina cuya direccin IP de origen es de la misma red que el destino, es claro que algo no funciona muy bien, ya que la mquina origen podra haber enviado directamente el paquete a la mquina destino sin pasar por el enrutador. El enrutador puede concluir que las tablas de ruteo de la mquina origen no estn muy ajustadas. En este caso el enrutador puede notificar al originador de este problema mediante un paquete ICMP del tipo redirect. Ese paquetedice:"Para dirigir paquetes a la mquina XX, debera enviarlos a travs a router YY" Si el originador es bien comportado, debera introducir en sus tablas la informacin indicada, para que los prximos paquetes dirigidos hacia XX sean enviados por YY, es decir por el camino directo. Este sistema permite configurar las mquinas con solamente una ruta por defecto y dejar que por el mecanismo de los ICMP redirects vayan aprendiendo las rutas alternativas. Obviamente no es muy eficiente porque hay un trfico extra para transmitir la informacin de redireccin. Subredes Las clases A y B permiten respectivamente redes de 16 millones y 64 mil mquinas respectivamente, pero es muy raro que existan redes con esa cantidad de mquinas. Entonces se utiliza un mecanismo para dividirlas que se llama "subnetting". El mtodo consiste en pedir prestados bits de la parte correspondiente a la numeracin de mquina para extender la parte de numeracin de red. Para especificar hasta donde va la parte de red y cual es la parte de mquina, se utiliza la mscara de subred. La mscara son 32 bits que van en 1 los correspondientes a la parte de red y en 0 los de la parte de mquina. La configuracin de la mscara de red se utiliza en el momento de configurar la interfaz de red mediante el comando ifconfig. Si no ponemos mscara el sistema la toma segn las normas para las clases A, B o C. Si se especifica la mscara, se sobreescribe el valor por defecto. La ventaja es que para el resto de la red se sigue siendo por ejemplo una clase B y solamente al interior de la organizacin es necesario conocer como se llega a las diferentes subredes. CIDR: Routing Classless Inter-DomainCon el crecimiento de Internet, se produce el fenmeno que las tablas de ruteo a nivel del backbone, crecen mucho porque hay muchsimas clases C para cada una de las cuales se requiere una entrada en la tabla.La idea del CIDR es extender el concepto de mscara para agrupar ahora varias redes clase C por ejemplo en una sola entrada en la tabla de ruteo. La idea es que si por ejemplo las redes 199.128.0, 199.128.1, 199.128.2 y 199.128.3 se acceden por la misma salida, puedo poner una sola entrada para una red que tiene la primer parte igual o sea con una mscara FFFFFC00. Eleccin de una estrategia de enrutamiento Hay en principio cuatro estrategias de enrutamiento: Ninguno Rutas estticas Rutas estticas pero escuchando mensajes de RIP Enrutamiento dinmico La topologa de la red tiene una influencia muy importante en la estrategia a tomar. Las diferentes topologas tienen diferentes requerimientos. Las siguientes reglas pueden ayudar a tomar la decisin de qu estrategia seguir. Una red aislada no requiere reglas de enrutamiento Si hay una sola salida de esa red al mundo, las mquinas pueden tener solamente una ruta por defecto hacia el enrutador que comunica la red con el mundo. Un enrutador con pocas redes hacia un lado y con una salida al mundo por otro, puede configurarse con rutas estticas, aunque si hay ms de una alternativa sera deseable que escuchara mensajes de enrutamiento dinmico. Aunque se utilice RIP, tratar de que no enve actualizaciones a intervalos muy cortos para reducir el trfico. El routed normalmente hace eso y es posible entonces utilizar gated al cual puede configurrsele que enve informacin a determinados enrutadores y no por difusin. Para que los clientes escuchen informacin de ruteo en forma pasiva (sin informar de sus rutas) puede usarse el routed con la opcin -q. Tambin puede configurarse el gated en esa modalidad. El routed cree todo lo que escucha, con lo cual es ms confiable usar gated configurado en forma ms controlada.El enrutamiento dinmico debe ser usado donde hay fronteras polticas o administrativas de la red. Configuracin de una red Para configurar una red se requieren los siguientes pasos: Planificar la estructura fsica y lgica de la red Asignacin de direcciones IP Instalacin del hardware de red Configurar los equipos para que reconozcan y configuren las conexiones de red en tiempo de arranque Configurar las rutas estticas necesarias o los demonios de enrutamiento Se abarca la configuracin en una red ethernet. Los aspectos de las conexiones punto a punto quedan fuera de este tema. Se supondr que ya se tiene configurada la interfaz desde el punto de vista hardware y se har referencia a la configuracin desde el punto de vista lgico del sistema. Obtener y configurar las direcciones IP Las direcciones IP deben ser nicas en Internet, por lo que son asignadas por un organismo central llamado IANA (Internet Assigned Numbers Authority) normalmente a travs de un proveedor de servicio (ISP). Hay que tener en cuenta que las direcciones IP no se asignan a mquinas sino a interfaces, por lo que una mquina con varias interfaces requerir varias direcciones IP. Adems de asignarle una direccin IP es recomendable asignar un nombre y configurarlo por lo tanto en el DNS (Domain Name Server). Configurar ifconfig las interfaces de red:El comando ifconfig se utiliza para configurar las direcciones IP, mscaras y direcciones de difusin de las interfaces de red. Normalmente es ejecutado en tiempo de arranque pero puede ejecutarse a mano para hacer cambios al vuelo de la configuracin de las interfaces.La sintaxis ms comn es: ifconfig interfaz [familia] direccion_ip opciones por ejemplo: ifconfig en0 128.138.240.1 netmask 255.255.255.0 broadcast 128.138.240.255 interfaz indica el nombre del driver asignado por el sistema operativo a la interfaz de red. Para determinar las interfaces presentes (detectadas) en una mquina puede utilizarse el comando netstat -i. familia indica el tipo de protocolo de red que queremos asociar a la interfaz. En general lo que nos interesa es el tipo IP por lo que se especifica inet como opcin. La mayora de los UNIX toman inet por defecto por lo que es comn no poner nada en el campo de familia. direccion_ip es la direccin IP asociada. Puede ser un nombre o una direccin en la notacin de puntos de Internet (Ejemplo: 128.138.240.1). Se recomienda poner las direcciones como nmero para evitar que la mquina no arranque por no poder averiguar la correspondencia entre nombre y nmero. opciones ms comunes: netmask Para especificar la mscara de la red. Puede ser notacin decimal o hexadecimal. broadcast Para indicar la direccin IP de difusin, normalmente el default es todos 1 en la parte de mquina de la direccin IP de acuerdo a la mscara. Puede ser notacin decimal o hexadecimal. ifconfig interfaz Presenta la configuracin actual de la interfaz. En muchos sistemas tambin ifconfig -amuestra la configuracin de todas las interfaces. Configurar rutas estticas: route Para configurar rutas estticas se utiliza el comando route que permite agregar y borrar rutas. Adems de las rutas agregadas a mano en la tabla de ruteo, puede estar corriendo algn demonio para mantener rutas dinmicas.Normalmente hay una red que siempre hay que configurar a mano y es la ruta por defecto. El comando simplificada: route tiene la siguiente sintaxisroute operacin [tipo] destino enrutador saltos El argumento operacin dice que estamos haciendo (add, delete), el destino es el nmero de una red o una mquina o la palabra default. El enrutador es la mquina a la que hay que enviarle los paquetes dirigidos a esa red o mquina destino. Los saltos es la cantidad de saltos necesarios para llegar al destino. El tipo es para decir que tipo es el destino. Puede ser una red o una mquina. En algunas mquinas el tipo se indica con las palabras clave net o host y en otras con-net y -host. Hay otra opcin que es para borrar la tabla de ruteo que segn el sistema puede ser route -f o route flush. La configuracin actual de la tabla de ruteo puede verse con el comando netstat -rn. Configuracin routed dinmica estndar:El demonio routed es el estndar en UNIX como demonio de ruteo dinmico. Es muy simple pero es consumidor de recursos. La tendencia debera ser a pasarse algated pero no todos los sistemas lo traen aunque est disponible en forma pblica para la mayor parte de las plataformas. El routed solo sabe hablar RIP que es un protocolo simple que usa los saltos como mtrica para medir el costo de las diferentes rutas. Es un protocolo que funciona enviando paquetes de difusin "broadcast" cada 30 segundos publicando las rutas que conoce. La informacin que recibe de sus vecinos, la junta con las que posee y con las tablas de ruteo del kernel. El routed puede funcionar en modo servidor (invocado con -s) o en modo "quiet" (invocado con -q). En ambos modos escucha la informacin de RIP que le llega pero solo en modo servidor informa de las rutas que posee hacia los dems enrutadores. Si la mquina tiene ms de una interfaz, por defecto funciona en modo servidor y si tiene una sola por defecto funciona en modo "quiet".El routed no requiere configuracin y dinmicamente escucha RIP y actualiza las tablas de ruteo. Si se tiene solo un camino para salir al mundo puede ejecutarse con la opcin -g para que propague la ruta hacia el mundo como ruta por defecto. Se puede usar el archivo /etc/gateways cuando se tiene ms de una salida. El archivo tiene lneas similares a comandos route. Configuracin automtico para el arranqueEn los sistemas ms viejos, la configuracin de la red se haca directamente modificando los archivos bsicos de arranque (/etc./rc o /etc./rc.local), actualmente casi todos los sistemas tienden a que no se modifiquen los scripts de arranque sino que se modifiquen algunos archivos de los cuales los scripts de arranque toman variables. En todos los sistemas se llaman diferente los archivos de configuracin o los scripts donde se encuentran las configuraciones de red. Diagnstico de fallas de red Hay muchas herramientas para determinar problemas de red TCP/IP en UNIX. En general la informacin que brindan es de bajo nivel por lo que es necesario saber como funciona el TCP/IP y como se realiza el enrutamiento. Ver si las mquinas estn vivas: ping El comando ping utiliza el mensaje ECHO_REQUEST del protocolo ICMP para pedir a una mquina que responda con un mensaje ECHO_REPLY del mismo protocolo para verificar que dicha mquina esta viva. Esto es solo una funcin de bajo nivel que no requiere procesamiento en la mquina destino. Sirve para probar: Que la mquina este encendida Que tenga configurado el protocolo TCP/IP 64 bytes from Que existan rutas para llegar desde la mquina origen a la destino y de 164.73.224.30: la mquina destino a la origen. icmp_seq=0 ttl=255 Si alguna de estas condiciones no se cumple el comando ping informar time=0.614 ms que la mquina no responde.64 bytes fromicmp_seq=1 ttl=255 time=0.568 ms A su vez, que el comando ping informe que una mquina est viva solamente indica que se cumplen lasbytes from establecidas pero no indica 64 condiciones que funcionen o no otros protocolos de nivel superior u otros servicios que esa 164.73.224.30: mquina deba o pueda brindar. icmp_seq=2 ttl=255 Hay una versin ms vieja del comando ping que solamente dice si la time=0.573 ms mquina est viva o no. Las versiones ms modernas, quedan en un loop infinito hasta que se presione Control-C. En la versin vieja es posible que exista alguna opcin para entregar una salida extendida modo loop. Ejemplo ping -s (SunOS) o ping64 bytes from -l(Ultrix). 164.73.224.30: Las salidas de la vieja versin del ping (Ejemplo en SunOS) son del icmp_seq=3 tipo: ttl=255 # ping ampere time=0.570 ms ampere.iie.edu.uy ^C alive is # En la versin moderna del ping, las salidas son del tipo: # ping maxwell PING maxwell.iie.edu.uy (164.73.224.30): 56 data bytes--- maxwell.iie.edu.uy ping statistics --4 packets transmitted, 4 packets received, 0% packet loss ping: round-trip sendto: min/avg/max/stddev = 0.568/0.581/0.614/0.019 ms Host # is down Cuando la mquina destino no responde, el reporte de las dos versiones del ping: ping se pueden ver en los siguientes ejemplos sendto: Host is downsendto: Host is down ping: # ping acer sendto: no answer from acer.iie.edu.uy Host # is down # ping acer PING acer.iie.edu.uy (164.73.224.3): 56 data ping: bytes sendto: Host is down ping: ^C sendto: Host --- acer.iie.edu.uy ping statistics --7 packets is transmitted, 0 packets received, 100% packet loss down # La salida detallada en caso de xito, contiene la direccin IP de la mquina destino, la secuencia de los paquetes ICMP y el tiempo de ida y vuelta de las respuestas. Adems, luego del Control-C da las estadsticas de paquetes enviados y respuestas recibidas. Es interesante notar que si bien el IP no garantiza entrega de paquetes, normalmente a menos que la red est muy cargada, todos los paquetes deberan llegar a destino. Si se pierden paquetes puede ser por exceso de carga y es posible que los protocolos de mayor nivel igual funcionen aunque debern utilizar retransmisiones haciendo que las cosas funcionen ms lentamente. En caso de paquetes perdidos es importante tratar de detectar el motivo ya que puede deberse a problemas fsicos en la red y sera deseable poder solucionarlos. Estado de la red: netstatEl comando netstat despliega informaciones varias sobre el estado de la red. En realidad de acuerdo a las opciones con que se invoque brinda informacin de diferentes aspectos de la red. Veremos los cuatro usos ms frecuentes del netstat. Estado de las conexiones de red Configuracin de las interfaces de red Estado de la tabla de ruteo Estadsticas de los diferentes protocolos de red Estado de las conexiones de red Sin argumentos el comando netstat despliega el estado de los puertos TCP y UDP activos (Con la opcin -a) despliega adems los inactivos. La salida es algo del estilo: FreeBSD # netstat Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp 0 0 ampere.1946 obelix.unicamp.b.http ESTABLISHED tcp 0 0 ampere.3128 plata.1116 ESTABLISHED tcp 0 0 ampere.1945 obelix.unicamp.b.http ESTABLISHED tcp 0 0 ampere.1944 obelix.unicamp.b.http ESTABLISHED tcp 0 0 ampere.pop3 chui.1065 TIME_WAIT .... .... Linux RedHat # netstat Active Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 252 ludmilla.iie.edu.uy:ssh ampere.iie.edu.uy:3690 ESTABLISHED tcp 1 0 ludmilla.iie.edu.u:1431 ampere.iie.edu.uy:3128 CLOSE_WAIT tcp 1 0 ludmilla.iie.edu.u:1430 ampere.iie.edu.uy:3128 CLOSE_WAIT tcp 0 0 ludmilla.ii:netbios-ssn cachimba.iie.edu.u:1135 ESTABLISHED Las direcciones son indicadas en la modalidad mquina:puerto. Los nombres de mquinas se obtienen a partir del Servidor de Nombres (DNS) y los nombres de puertos a partir del archivo /etc/services. Si se especifica al netstat la opcin -n no se hace la traduccin de nmeros a nombres ni de las mquinas ni de los puertos. Recv-Q y Send-Q son los tamaos de las colas para dicha conexin en la mquina local. Deberan tender a 0. El estado de la conexin solo tiene sentido para TCP puesto que UDP es un protocolo no orientado a conexin. Los estados posibles son: ESTABLISHED (conexin establecida), LISTENING (para servicios que estn esperando por conexiones, normalmente no aparecen a menos que usemos la bandera -a) o TIME_WAIT (para conexiones en proceso de cierre). Hay otros estados posibles en caso de fallas, como por ejemplo SYN_SENT que significa que estamos tratando de establecer una conexin con una mquina que seguramente no responde. Configuracin de las interfaces de red Invocado con la opcin -i el comando netstat muestra la informacin de las interfaces de red. Ejemplos: FreeBSD # netstat -i Name Mtu Ipkts IerrsNetwork Opkts OerrsAddress Colled1 1500 48.54.e8.26.db.69 9665343 525 8972011 2 269894 ed1 1500 164.73.224/25 ampere 9665343 525 8972011 2 269894 lp0* 1500 0 0 0 0 0 tun0* 1500 0 0 0 0 0 sl0* 552 0 0 0 0 0 ppp0* 1500 155934 1719 159304 0 0 lo0 16384 3857677 0 3857677 0 0 lo0 16384 your-net localhost 3857677 0 3857677 0 0 # Linux RedHat # netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TXOK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 2450985 0 0 0 1969656 0 0 0 BRU lo 3924 0 148 0 0 0 148 0 0 0 LRU Las direcciones se brindan en formato simblico (nombres) a menos que usemos la opcin -n. Las colisiones indican estado de carga de la red (deberan ser menores de un 3% de los paquetes procesados en una red poco cargada). Los Ierrs y Oerrs se deben normalmente a problemas de cables. Las interfaces indicadas con un asterisco (*) despus de su nombre indican que no estn configuradas. Si se especifica un nmero luego del netstat -i nmero se brinda la estadstica en el nmero de segundos indicado de los paquetes entrantes, salientes, colisiones y errores. Se puede hacer que la salida refiera solamente a una interfaz de red utilizando la bandera -I interfaz.Estado de la tabla de ruteo El comando netstat -r brinda informacin de la tabla de ruteo del kernel. El siguiente ejemplo muestra la salida en un FreeBSD, ejecutado con la opcin -n para que brinde la salida en forma numrica. # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 164.73.224.28 UGSc 19 29342 ed1 127.0.0.1 127.0.0.1 UH 13 9712 lo0 164.73.224/25 link#1 UC 0 0 164.73.224.28 0:40:95:15:89:d UHLW 20 33 ed1 864 164.73.224.29 link#1 UHLW 1 3081 164.73.224.30 8:0:2b:bc:f2:2a UHLW 4 32305 ed1 1121 164.73.224.40 48:54:e8:26:db:69 UHLW 2164094 lo0 164.73.224.60 0:0:21:95:90:34 UHLW 2 0 ed1 952 164.73.224.127 ff:ff:ff:ff:ff:ff UHLWb 1 3291 ed1 164.73.224.130 164.73.224.60 UGHD 0 524 ed1 164.73.224.255 164.73.224.60 UGHD 1 2009 ed1 ....1Los destinos (destination) y enrutadores (gateway) se indican en nmeros IP o nombres segn se utilice la opcin -n o no.Las banderas (Flags) caracterizan la ruta y sus significados son: U - (Up) Activa G - (Gateway) El destino es un enrutador H - (Host) El destino es una mquina. D - Resultado de un ICMP Redirect G y H juntas significa que es una ruta a una mquina pasando por un enrutador. El campo Refs es el nmero de conexiones TCP que estn usando esa ruta. El campo Use es el nmero de paquetes enviados por esa conexin. El campo Netif o If es la interfaz usada para esa ruta. En la implementacin del FreeBSD pueden observarse entradas asociadas con direcciones de capa de enlace de datos. Esto es porque el sistema usa la misma tabla para almacenar la informacin de ruteo y la tabla de ARP. Estadsticas de los diferentes protocolos de red El comando netstat -s muestra estadsticas de diferentes protocolos IP, ICMP, TCP y UDP desplegando los valores de algunos contadores existentes en el cdigo de los protocols de red. Ejemplo OSF/1 3.2c: # netstat -s ip: 152480 total packets received 0 bad header checksums 0 with size smaller than minimum 0 with data size < data length 0 with header length < data size 0 with data length < header length 1356 fragments received 0 fragments dropped (dup or out of space) 4 fragments dropped after timeout0 packets forwarded 722 packets not forwardable 0 redirects sent 11 calls to icmp_error 0 errors not generated 'cuz old message was Output histogram: echo reply: 2 destination unreachable: 11 0 messages with bad code fields 0 messages < minimum length 0 bad checksums 0 messages with bad length Input histogram: destination unreachable: 84 source quench: 1 routing redirect: 3 echo: 2 time exceeded: 3 address mask request: 3 2 message responses generatedicmp: icmp0 messages received 0 messages received with too few bytes igmp: 0 messages received with bad checksum 0 membership queries received 0 membership queries received with invalid field(s) 0 membership reports received 0 membership reports received with invalid field(s 0 membership reports received for groups to ) which we belong 0 membership reports sent tcp: 78664 packets sent 67591 data packets (20378697 bytes) 1005 data packets (1073929 bytes) retransmitte 8432 ack-only packets (8247 delayed) d0 URG only packets 3 window probe packets 1489 window update packets 144 control packets 76819 packets received 51806 acks (for 20382773 bytes) 2125 duplicate acks 0 acks for unsent data 55295 packets (7943243 bytes) received in-sequence 92 completely duplicate packets (4815 56 packets with some dup. data (249 bytes) 172 out-of-order packets (22545 bytes 0 packets (0 bytes) of data after duped) 0 window probes bytes) 618 window update packets 3 packets received after close window 0 discarded for bad checksums 0 discarded for bad header offset 0 discarded because packet too short fields 29 connection requests 91 connection accepts 120 connections established accepts) 131 connections closed (including 3 embryonic connections dropped 48215 segments updated rtt attempts) 484 retransmit timeouts 0 connections dropped timeou udp: t (including 13 drops) (of by 49036 rexmittimeouts 0 keepalive timeouts 2 0 keepalive probes sent persist 0 connections dropped by keepalive61324 packets sent 73826 packets received 0 incomplete headers 0 bad data length fields 0 bad checksums 0 full sockets 5082 for no port (5071 multicasts) Encaminamiento traceroute de paquetes:broadcasts,0El comando traceroute permite ver la secuencia de enrutadores por los que pasa un paquete IP para alcanzar un determinado destino. Hay muchas mquinas que lo brindan como herramienta en el sistema operativo (IRIX, OSF/1, BSDi, FreeBSD) pero existen fuentes disponibles para muchos sistemas. La instalacin puede requerir una modificacin del ncleo. La sintaxis es: traceroute mquina La mquina puede estar indicada mediante su nmero IP o su nombre. Es posible adems incorporar la opcin -n en la lnea de comando con la cual no se hace la correspondencia entre nombres y nmeros IP de las mquinas involucradas. Hay adems otra cantidad de opciones de uso menos frecuente. La salida del traceroute es algo del estilo: # traceroute seciu.edu.uy traceroute to seciu.edu.uy (164.73.128.5), 30 hops max, 40 byte packets 1 IIE-FING-GW (164.73.224.28) 1.720 ms 1.812 ms 1.630 ms 2 FING-RAU-GW.fing.edu.uy (164.73.32.121) 3.643 ms 3.627 ms 3.726 ms 3 164.73.162.113 (164.73.162.113) 286.303 ms 111.015 ms 28.714 ms 4 seciu.uy (164.73.128.5) 33.604 ms 26.355 ms 33.572 msEn la salida se observa por un lado los nombres y direcciones IP de los enrutadores por los que pasa un paquete originado en la mquina que corre el tcpdump y el destino especificado en la lnea de comandos. Adems de nombres y direcciones IP, aparecen tres valores del tiempo de ida y vuelta (round-trip time, RTT) para alcanzar los enrutadores de la lista. El comando funciona enviando un paquete a destino con un tiempo de vida de 1 salto. Al llegar al primer enrutador, este deber descartarlo y enviar un mensaje ICMP al origen indicando que este paquete fue descartado. De esta forma el originador obtiene la direccin IP del primer salto. Ahora construye un paquete con tiempo de vida 2 que ser descartado por el segundo enrutador y as sucesivamente. Para cada salto, el traceroute envia 3 paquetes y da el tiempo de ida y vuelta de cada uno (ver ejemplo). Si algn enrutador no responde igual puede seguir al siguiente salto y pone asteriscos. Si los 3 paquetes vuelven de diferentes enrutadores, se despliegan las direcciones de cada uno de ellos. Monitores de trfico: tcpdump, snifit, snoop, etherfind, etherreal. Estos programas son conocidos como espas de red y lo que hacen es mirar los paquetes que pasan por una conexin IP. Se pueden establecer criterios de inspeccin basados en mquinas, protocolos, servicios, etc. El tcpdump es una herramienta muy potente disponible en casi todas las variedades de sistemas BSD y es distribuido dentro del sistema en varios UNIX. El etherfind es un comando disponible en SunOS y la versin de solaris es el snoop. Ambos son similares al tcpdump. Como los espas deben poder ver los paquetes dirigidos a otras mquinas de la red el sistema de base debe dar los mecanismos para que esto pueda realizarse. Para esto debe existir la posibilidad que el hardware de red pueda ver todos los paquetes. Esto, en un medio de difusin tipo Ethernet es posible. Otro mecanismo adicional que debe proveer el sistema es el pasaje de los paquetes que no estn dirigidos a la mquina a las capas superiores de la red. Normalmente una mquina define a nivel de hardware si los paquetes son para ella o no (contienen su direccin IP o son broadcasts) y si no lo son losdescarta. Para que el tcpdump pueda acceder a todos los paquetes de la red, es necesario que la interfaz de red se configure en modo promiscuo lo cual significa que pasar a las capas superiores los paquetes destinados a ella as como los que no estn destinados a ella de forma tal que el tcpdump pueda verlos. Estas herramientas son muy tiles para detectar problemas en la red. Inspeccin de tablas de ARP El comando arp permite ver la tabla de correspondencia del kernel del protocolo ARP. Estas tablas se actualizan automticamente. Opciones: arp -a permite ver la totalidad de la tabla. arp -d mquina borra la entrada de una mquina. arp -s mquina direccin agrega una entrada en la tabla. arp -f archivo agrega entradas desde un archivo de configuracin. arp mquina muestra la entrada para esa mquina. En general en una Ethernet no tiene demasiada utilidad para detectar problemas, pero si puede ayudar en caso de tarjetas de red con problemas.Subnetear una red de clase c con 20 subredes y 10 host DIRECCIN IP CLASE C: 192.168.10.0 # PRIMER HOST ULTIMO HOST SUBRE IP SUBRED VALIDO VALIDO BROADCAST D 1 192.168.10.1 192.168.10.2 192.168.10.11 192.168.10.1 2 2 192.168.10.1 192.168.10.14 192.168.10.23 192.168.10.24 3 3 192.168.10.2 192.168.10.26 192.168.10.35 192.168.10.36 5 4 192.168.10.3 192.168.10.38 192.168.10.47 192.168.10.48 7 5 192.168.10.4 192.168.10.50 192.168.10.59 192.168.10.60 9 6 192.168.10.6 192.168.10.62 192.168.10.71 192.168.10.7 1 2 7 192.168.10.7 192.168.10.74 192.168.10.83 192.168.10.8 3 4 8 192.168.10.8 192.168.10.86 192.168.10.95 192.168.10.96 5 9 192.168.10.9 192.168.10.98 192.168.10.107 192.168.10.10 7 8 10 192.168.10.1 192.168.10.110 192.168.10.119 192.168.10.12 09 192.168.10.13 11 192.168.10.1 192.168.10.122 192.168.10.131 0 21 12 192.168.10.1 192.168.10.134 192.168.10.143 2 192.168.10.1 33 13 192.168.10.1 192.168.10.146 192.168.10.155 44 192.168.10.1 45 192.168.10.16 14 192.168.10.1 192.168.10.158 192.168.10.167 56 57 8 15 192.168.10.1 192.168.10.170 192.168.10.179 192.168.10.18 69 192.168.10.19 16 192.168.10.1 192.168.10.182 192.168.10.191 0 81 192.168.10.20 17 192.168.10.1 192.168.10.194 192.168.10.203 2 93 18 192.168.10.2 192.168.10.206 192.168.10.215 4 192.168.10.2 05 19 192.168.10.2 192.168.10.218 192.168.10.227 16 192.168.10.2 17 28 20 192.168.10.2 192.168.10.230 192.168.10.239 192.168.10.24 29 0