Redes, Encaminamiento IP, gestión de red y control de tráfico en router Cisco

Un poco de teoría de Redes informáticas ... Vamos a analizar y conocer el encaminamiento IP en redes TCP/IP y aprender a controlar el tráfico de un router Cisco a traves de los siguientes apartados ...


• El Encaminamiento IP, introducción al encaminamiento en redes IP y como se organizan las entradas de las tablas de encaminamiento en una red TCP/IP.
• Saber cual es la gestión dinámica de tablas de encaminamiento de los routers mediante el protocolo de enrutamiento dinámico RIP.
• Conozcer el funcionamiento de una lista de control de acceso (ACL – access control list) en un router CISCO.
• Conozcer el funcionamiento de un acceso remoto mediante VPN (Virtual Private Network) ...





El Encaminamiento IP, introducción al encaminamiento en redes:
Un encaminador, que puede interconectar dos o más redes, requiere de un método de encaminamiento que le permita determinar hacia donde debe reenviar un paquete recibido por uno de sus interfaces, o generado en el mismo equipo. Para ello, debe basarse en el esquema de direcciones de máquina y de red de IP, así como en las máscaras.
A continuación se describen los pasos que sigue una máquina con TCP/IP para enviar o reenviar un paquete al destino IP correspondiente.


Seguir Leyendo...

A. ¿La dirección IP destino pertenece a una interfaz de red de está máquina?
Si es así el envío se efectúa sin necesidad de colocar datos en los niveles de enlace y físico, esto es, a través de un loopback interno a nivel IP. Un loopback hace referencia a una dirección IP interna de la propia máquina que sirve para efectuar envíos a nivel de red IP dentro de la misma máquina, sin requerir que los datos pasen al nivel de enlace. Se usa habitualmente la dirección 127.0.0.1.
De no ser así, se continúa en el siguiente paso.
B. ¿La dirección IP destino pertenece a una red local conectada directamente a una interfaz de red de está máquina?
Esto se puede determinar utilizando la máscara de red definida en la máquina para cada interfaz. Mediante una operación lógica AND de la máscara de una interfaz con la dirección IP de esa interfaz se determina la dirección de la red asociada, y operando la máscara con la IP destino se determina la red destino.
Si coinciden, para alguna interfaz, el destino está en la red local de esa interfaz, y el envío se efectúa directamente tras aplicar el protocolo ARP para determinar la dirección MAC del destino. De no ser así, se continúa en el siguiente paso.
C. ¿Tengo una ruta especifica para la dirección IP destino o para su red?
Se debe explorar la tabla de encaminamiento buscando una entrada en la que se especifique explícitamente la dirección IP de la máquina destino, o en su omisión, una dirección de red que incluya la IP destino. Básicamente la tabla de encaminamiento (que se describe en el siguiente punto) mantiene una serie de entradas que relacionan posibles direcciones IP destino (de máquina o de red) y sus máscaras con las direcciones IP de las interfaces en las redes locales (llamados gateways o puertas de enlace) que dan acceso a esos destinos. Si se encuentra alguna entrada para el destino deseado, se envía el paquete al gateway correspondiente dentro de la red local usando el direccionamiento de enlace. Para ello puede ser necesario desencadenar el protocolo ARP entre este equipo y el gateway con el objetivo de determinar su dirección MAC a partir de su IP.
De no ser así, se continúa en el siguiente paso.
D. ¿Tengo una ruta por defecto?
Si existe una entrada de ruta por defecto, se envía el paquete a su gateway asociado (conocido en este caso como default gateway). Puede ser necesario desencadenar el protocolo ARP entre este equipo y el gateway con el objetivo de determinar la dirección MAC a partir de su IP.
De no ser así, este equipo considera el destino inaccesible.
En la práctica, el esquema de enrutamiento anterior es seguido por cualquier máquina con TCP/IP, sea un router o un simple equipo de usuario. Aunque solo tiene sentido hablar de router cuando se trata una máquina con más de una interfaz de red operando a nivel de red y que realiza tareas de enrutamiento, en un equipo de usuario con una sola interfaz de red, el enrutamiento funciona igual. Ahora bien, en un equipo de usuario con una sola interfaz de red, habitualmente basta con definir una sola ruta, la ruta por defecto, esto es, especificar la IP destino del default gateway al que se envían los paquetes que no van dirigidos a la propia red local.

Tablas de encaminamiento
La forma elemental de una tabla de encaminamiento de un equipo sería la que muestra la siguiente figura:


Para una entrada, la IP destino hace referencia a una dirección de máquina o de red a la que se pueden enviar paquetes. Cada IP destino tiene su máscara asociada. La puerta de enlace de una entrada indica la dirección IP del interfaz de red al que se deben enviar los paquetes dirigidos a la IP destino correspondiente.
La herramienta o comando “netstat” presente en una máquina Unix (y por supuesto también en Linux) permite visualizar la tabla de encaminamiento, además de otros aspectos como estado de los sockets TCP/IP activos. Si se ejecuta el comando con la opción –i (“netstat –i”) el equipo visualiza información acerca de las interfaces físicas del sistema. Por ejemplo, el resultado en una máquina Linux puede ser:

Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP TX-OK TX-ERR TX-DRP Flags
lo 3584 0 100 0 0 100 0 0 BLRU
eth0 1500 0 195051 0 0 38488 0 0 BRU
ppp0 296 0 17907 0 0 1900 0 0 BRU


Figura 3 ... Información de interfaces en una máquina Linux.



La primera columna indica el nombre que Unix da a la interfaz instalada; “eth0” es el nombre de una tarjeta de red Ethernet, “lo” es el loopback, y “ppp0” es el nombre de una conexión PPP. La segunda columna indica el MTU que tiene asignado cada interfaz. El resto de columnas presentan información, como los datos transmitidos, los recibidos y los errores producidos.
En Windows, auque existe el comando “netstat” ejecutado en línea de comandos MS-DOS no dispone de la opción –i. Así que para visualizar la información física de los interfaces del sistema, se emplea el comando “ipconfig” en su versión de comandos. La información que se obtiene es bastante más básica que en sistemas operativos Unix.
Con otras opciones se puede obtener la tabla de encaminamiento actual (opción -r), mostrando las d irecciones IP con notación decimal (opción -n). Así, el resultado de ejecutar el comando “netstat –rn” en una máquina Linux podría ser:



Kernel IP routing table
Destination Gateway Genmask Flags MSS Window interface
10.3.2.0 10.3.7.0 255.255.255.255 UGH 460 0 0 ppp0
172.20.41.240 0.0.0.0 255.255.255.240 U 1500 0 0 eth0
10.3.0.0 0.0.0.0 255.255.0.0 U 460 0 0 ppp0
127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo
0.0.0.0 172.20.41.242 0.0.0.0 UG 1500 0 0 eth0




Figura 4. Tabla de encaminamiento de una máquina Linux.



En otras máquinas Unix el resultado puede ser algo diferente, pero la información más importante, la descrita a continuación, suele estar presente. La columna Genmask especifica la máscara asociada con cada IP destino. En el campo flags (indicadores) pueden aparecer 5 valores diferentes:
− U (up). La ruta está en servicio.
− G (gateway). El destino de la ruta se alcanza a través de una puerta de enlace. Si este flag no está activado, el destino está conectado directamente al equipo en la misma LAN.
− H (host). El destino hace referencia a otra máquina, esto es, el destino es una dirección de máquina completa. La no existencia de este indicador implica que la ruta incluye otra red, y el destino es una dirección de red (o de subred).
− D (directed). La ruta ha sido creada tras recibirse un error ICMP de redirección (mecanismo que se activa durante la emisión de un datagrama IP a un router cuando debería de haberse enviado a otro de la misma red).
− M (modified). La ruta ha sido modificada por una redirección.
El flag G tiene una especial importancia por cuanto permite distinguir entre una ruta directa y otra indirecta. La diferencia entre ellas reside en que un datagrama IP dirigido por una ruta directa posee a la vez las direcciones MAC e IP de la máquina destino, mientras que un paquete emitido sobre una ruta indirecta posee la dirección IP del destino pero la dirección MAC del próximo router que es la puerta de enlace.
Para el ejemplo anterior, supóngase que se desea enviar o reenviar un datagrama con la dirección 10.3.2.0. La búsqueda tendrá éxito en la primera entrada y el datagrama será enviado por la interfaz física local “ppp0” que tiene dirección 10.3.7.0. Nótese que, para las conexiones punto a punto, conviene definir el destino de forma absoluta, es decir, especificando la dirección completa de la máquina destino en cada extremo de la conexión.
Los datagramas enviados sobre el segmento de red Ethernet conectado a la interfaz eth0 están definidos por la segunda entrada donde aparece la dirección de red destino 172.20.41.240 y la puerta de enlace 0.0.0.0 para indicar que a esta red se accede directamente a través del interfaz de red “eth0”. Lo mismo ocurre para la red 10.3.0.0 de la tercera entrada, sólo que con el interfaz “ppp0”. La cuarta entrada especifica el interfaz de loopback, y la quinta, identificada por el destino 0.0.0.0, indica que la puerta de enlace por defecto es el equipo con IP 172.20.41.242 presente en la red Ethernet. Los datagramas con direcciones que no pertenezcan a ninguno de los destinos especificados en las entradas 1 a 4 serán reconducidos a la entrada 5.
El S.O. MS. Windows (NT, 95, 98, 2000, XP...) con TCP/IP instalado también ofrece el comando “netstat”, aunque con algunas variaciones en cuanto a los parámetros y al formato del resultado. Así por ejemplo, no admite el parámetro -i. El resultado de ejecutar “netstat –rn” en un equipo con sistema MS. Windows puede ser similar al siguiente, para la máquina 172.20.43.223:

Rutas activas:



Dirección de red Máscara de red Puerta de enlace Interfaz Métrica
0.0.0.0 0.0.0.0 172.20.43.230 172.20.43.223 1
172.20.43.192 255.255.255.192 172.20.43.223 172.20.43.223 1
172.20.43.223 255.255.255.255 127.0.0.1 127.0.0.1 1
172.20.43.255 255.255.255.255 172.20.43.223 172.20.43.223 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
224.0.0.0 224.0.0.0 172.20.43.223 172.20.43.223 1
255.255.255.255 255.255.255.255 172.20.43.223 172.20.43.223 1



Figura 5. Tabla de encaminamiento de una máquina Windows.



En este caso se muestra para cada entrada la dirección destino, la máscara asociada a esa dirección, la puerta de enlace, la dirección IP del interfaz del propio equipo por el que se alcanza la puerta de enlace y el número de saltos necesarios para llegar al destino. La ruta por defecto se identifica también en este caso como la entrada con destino 0.0.0.0.
Tras la tabla de encaminamiento, el comando “netstat” de MS. Windows también se muestra el estado de los sockets TCP/IP activos.



Creación y mantenimiento de rutas estáticas
Tanto en MS. Windows (con TCP/IP) como en Unix existe el comando “route” que permite crear entradas estáticas en la tabla de encaminamiento o modificar y eliminar las ya existentes. Las sintaxis de este comando, en Windows, se define del siguiente modo:
ROUTE [-f] [comando [addr] [MASK mask] [gateway] [METRIC cost]]
A continuación se describen con más detalle las opciones:
− f: Borra de la tabla de enrutamiento las entradas de todas las puertas de enlace.
− comando: Especifica uno de los cuatro comandos siguientes: PRINT para ver una entrada, ADD para agrega una entrada, DELETE para eliminar una entrada y CHANGE para modificar una entrada existente.
− addr: Especifica la dirección IP del equipo o red de destino.
− MASK: Si esta palabra está presente, el siguiente parámetro (mask) es interpretado como el parámetro de la máscara de red correspondiente a la dirección IP destino. Si no se especifica, se toma el valor 255.255.255.255 (dirección de máquina).
− gateway: Especifica la dirección IP de máquina que es la puerta de enlace.
− METRIC: Especifica como número de saltos para alcanzar el destino el valor de cost.
Cuando el comando es PRINT o DELETE, se puede utilizar comodines para el destino y la puerta de enlace, o se puede omitir el argumento “puerta” para mostrar todas las entradas. Para añadir o modificar la entrada por defecto el valor de destino debe ser “default”. Por ejemplo, “route ADD 10.3.0.0 MASK 255.255.0.0 10.3.7.0” añade una entrada de ruta para poder alcanzar la red 10.3.0.0 a través de la puerta de enlace local 10.3.7.0. Un ejemplo, de empleo del comando “route” para añadir y borrar entradas en la tabla de encaminamiento en un sistema Windows se puede observar ejecutando el script “pracredes.bat”, y comprobar la tabla de encaminamiento, con el comando “route print” antes y después de la ejecución de este script.:
route delete 0.0.0.0
route add 0.0.0.0 mask 0.0.0.0 172.20.43.230
En los sistemas Unix también existe la orden “route”, pero con más opciones y un formato distinto de los parámetros. Como ocurre con “ifconfig”, se necesitan privilegios de root para ejecutar este comando y se puede consultar el manual del sistema para obtener información sobre el mismo (“man route”). La sintaxis básica del comando es:

route add [-net -host] addr [gw gateway] [metric cost] [netmask mask] [dev device]
route del [-net -host] addr


A continuación se describen con más detalle las opciones:
− net ó - host: Especifican si la dirección addr es un equipo ó una red de destino.
− gw: Especifica que la puerta de enlace de la entrada es la dirección IP de máquina gateway.
− metric: Especifica como número de saltos para alcanzar el destino el valor de cost.
− netmask: Especifica que la máscara de red correspondiente a la dirección IP destino es el valor dado por el parámetro mask. Si no se especifica, “route” tomará la máscara que crea más apropiada.
− dev: Fuerza a que la nueva entrada sea por el interfaz de red indicado por device.
Por ejemplo, para cambiar la entrada de la tabla de encaminamiento relativa a la puerta de enlace por defecto de forma que ésta sea la 172.20.43.231 se puede ejecutar (linux):
route del default
route add default gw 172.20.43.231
Para añadir la entrada de encaminamiento relativa a la interfaz de loopback recién creada con “ifconfig” habría que ejecutar (linux):
route add -net 127.0.0.1
Si se quisiera añadir una entrada para alcanzar la red 172.20.41.240/28 a través de la puerta 172.20.43.231 (que debe ser alcanzable a partir de otras entradas existentes), habría que ejecutar:
route add -net 172.20.41.240 gw 172.20.43.231 netmask 255.255.255.240
Herramientas de rutas de paquetes – Tracert / Traceroute
Una de las curiosidades más llamativas de la red es saber la ruta que siguen los paquetes o datagramas hasta que llegan a su destino. Por ejemplo, si realizamos una petición de acceso a Japón, los paquetes, salen de Alicante, pasando por Valencia, Madrid, ¿y luego? ¿pasarán por París o Londres …
Traceroute es una herramienta de diagnóstico de redes que permite visualizar la ruta de los paquetes que se dirigen desde un equipo a otro. Con esta herramienta se obtiene además una estadística o latencia de red de esos paquetes, lo que viene a ser una estimación de la distancia a la que están los extremos de la comunicación. El comando se denomina traceroute en UNIX y linux, mientras que en Windows recibe el nombre de tracert.
Funcionamiento
El funcionamiento del comando es sencillo. Se basa en un error ICMP TTL excedido en tránsito. Recordamos de la práctica 2 que el campo TTL sirve para que un paquete no permanezca en la red de forma indefinida (por ejemplo, debido a la existencia en la red de un bucle cerrado en la ruta).
Ejemplo de ejecución del comando “tracert” en Windows:


C:\>tracert www.google.com Traza a la dirección www.google.com [216.239.59.147]sobre un máximo de 30 saltos: 1 52 ms 59 ms 59 ms 192.168.153.12 55 ms 59 ms 47 ms 210.Red-81-46-52.staticIP.rima-tde.net [81.46.52.210]3 78 ms 83 ms 83 ms 29.Red-81-46-5.staticIP.rima-tde.net [81.46.5.29]4 * * * Tiempo de espera agotado para esta solicitud.5 80 ms 83 ms 83 ms GE4-0-0-0-grtmadrr1.red.telefonica-wholesale.net [213.140.51.9]6 113 ms 119 ms 107 ms So6-0-0-0-grtlontl1.red.telefonica-wholesale.net [213.140.38.26]7 197 ms 119 ms 119 ms 195.66.226.1258 114 ms 131 ms 119 ms 72.14.238.2469 138 ms 143 ms 143 ms 216.239.49.25410 138 ms 131 ms 131 ms 216.239.48.15811 138 ms 131 ms 155 ms 216.239.49.12612 138 ms 131 ms 143 ms 216.239.59.147
Tracert funciona enviando mensajes ICMP de solicitud de eco con distintos TTL; Traceroute, en cambio, envía mensajes UDP. El campo TTL de la cabecera IP de los paquetes es un número entero que se decrece en cada nodo por el que pasa el paquete. De esta forma, cuando el campo TTL llega al valor 0 ya no se reenviará más, sino que el nodo que lo esté manejando en ese momento lo descartará. Lo que hacen los comandos de traza de rutas es mandar paquetes a la red de forma que el primer paquete posea un valor TTL=1, el segundo un TTL=2, etc. De esta forma, el primer paquete será eliminado en el primer nodo al que llegue (ya que éste nodo decrementará el valor TTL, valiendo cero). Cuando un nodo elimina un paquete, envía al emisor un mensaje de error indicando la incidencia. Tracert usa esta respuesta para averiguar la dirección IP del nodo que desechó el paquete, que será el primer nodo de la red. La segunda vez que se manda un paquete, el TTL vale 2, por lo que pasará el primer nodo y llegará al segundo, donde será descartado, devolviendo de nuevo un mensaje de error. Esto se hace de forma sucesiva hasta que el paquete llega a su destino.
Otras aplicaciones
Existen otras aplicaciones como “VisualRoute” que se basan en Traceroute / Tracert para obtener una información gráfica de la ruta que siguen los paquetes desde el origen hasta su destino. En estos casos, se emplea la información generada por la orden Traceroute / Tracert junto con la información de los nodos obtenida de bases de datos públicas como RIPE (foro colaborativo de redes IP).
En Internet existen una serie de lugares que proporcionan servidores de traceroute, y que nos informan de los resultados de la ejecución de una orden traceroute desde ese host hasta el nuestro u otro que se especifique. A estos servidores se les suelen llamar Looking Glass. Esto es de gran ayuda a la hora de realizar mapas de caminos para los paquetes desde cualquier ubicación del mundo. En el sitio web de traceroute (http://www.traceroute.org/) se encuentran recogidos algunos de los sitios web que ofrecen la posibilidad de realizar trazas al sitio que se les indique.
De la información que obtenemos de los programas de rutas hay que tener en cuenta lo siguiente:
· Cada proveedor de red puede tener su propio sistema de código de máquinas.
· Los routers pueden describir en su nombre la topología o infraestructura en la que están ubicados (T1, T3, FDDI, ATM, HSSI, ETH, etc…).
· Los códigos de nombres de los routers suelen tener 3 letras, como el código del aeropuerto más cercano. (Base de datos de código de aeropuertos: http://www.airportcitycodes.com/codewisecodes.aspx ).
Los nombres de los routers también pueden incluir la dirección IP, una abreviatura especial, o seguir un código de nombres ya extendido como los que se encuentran en la siguiente web: http://www.sarangworld.com/TRACEROUTE/showdb-2.php3
El Enrutamiento dinámico RIP
El protocolo de encaminamiento dinámico que vamos a estudiar es RIP (Routing Information Protocol) en su versión 2. Está definido en la RFC 2453 (descripción), en base a lo ya establecido para el protocolo RIP versión 1, definido en la RFC1058. RIP 1 se encarga de mantener actualizadas las tablas de encaminamiento de los routers a través de mensajes de difusión. Se dice que es un protocolo de “vector de distancia” ya que emplea el número de saltos a un destino (o métrica) para decidir que entrada de ruta debe ser aplicada para alcanzar dicho destino. El número de saltos se puede ver como el número de routers que debe atravesar un paquete para llegar al destino, sin contar el origen e incluyendo el destino, o como el número de redes por las que debe pasar el paquete. Con RIP el máximo número de saltos se sitúa en 15, y por ello es utilizado en redes con dimensiones reducidas en cuanto a número de routers. De hecho, una métrica de 16 indica el valor infinito.
Aunque RIP 2 emplea los algoritmos básicos de RIP 1, aporta unas características nuevas:
− Identificadores de rutas externas. Permite propagar información sobre rutas establecidas con otros protocolos de encaminamiento (como EGP o BGP) sin alterarlas. Su objetivo principal es separar rutas “internas” de la red donde funciona RIP de rutas “externas” a esa red bajo otros protocolos.
− Máscaras de subred. Permite trabajar con rutas de subredes. El gran problema que tenía RIP 1 era no disponer de esta característica, aunque su necesidad es evidente.
− Dirección del siguiente salto. En cada entrada de ruta de un mensaje RIP se puede especificar, además del número de saltos para llegar a la IP destino (como se hace en RIP 1), la dirección IP del siguiente router al que pueden ser enviados los paquetes, en vez de utilizar el router que genera el mensaje. Permite la optimización del encaminamiento en la red.
− Autentificación. Aporta mecanismos para que un router solo acepte mensajes RIP determinados con el objetivo de aumentar la seguridad de acceso los routers. Se evita así que cualquier equipo de una red pueda enviar paquetes RIP a un router para confundirlo.
− Multicasting. Los paquetes RIP 2 se envían a una dirección IP específica; la dirección IP de multicast 224.0.0.9 (de la clase especial de multicast de IP: 224.0.0.0/28). Solo los routers con RIP 2 activo hacen caso de lo recibido por esa dirección, esto es, funciona como si de un broadcast selectivo se tratase.
En LANs, los paquetes con direcciones multicast de destino se transportan en tramas con direcciones MAC de destino reservadas para tal uso. Esto reduce bastante la carga en la red y en los equipos, puesto que la conversión MAC-IP es directa. Así por ejemplo, un paquete IP con destino 224.0.0.9 viajará en un trama de enlace Ethernet con una dirección destino como 000746000009, donde 000746 es un código propio del fabricante de la tarjeta Ethernet y 000009 referencia la dirección de multicast de RIP 2.
Los mensajes RIP son transportados por datagramas UDP dirigidos al número de puerto 520. Un mensaje RIP tiene 4 bytes de cabecera, y utiliza 20 bytes más por cada entrada de ruta, sin contar los 20 de IP y los 8 de UDP. Así se pude señalar un máximo de 25 rutas por mensaje, conservando un tamaño no superior a 512 bytes por datagrama UDP (8+4+20x25=512). El formato del mensaje de RIP 2 se muestra en la Figura 7.



Figura 6. Formato de los mensajes RIP.



Dentro de la cabecera, el campo “comando” indica la función del mensaje RIP, y básicamente puede tener el valor 1 (RIP request o solicitud) ó 2 (RIP response o respuesta). Con RIP 2, en el capo versión debe aparecer el valor 2. El ”identificador de ruta” permite separar los mensajes RIP referentes a la red donde trabaja RIP de los mensajes relativos a otros procedimientos de encaminamiento. RIP permite trabajar con información de encaminamiento de otros protocolos que no son IP, y paraidentificar el protocolo al que pertenecen los datos de una entrada de rutas se usa el campo ”familia de direcciones”, que con IP vale 2. La información referente a autentificación, cuando se utiliza, se envía en mensajes RIP que en vez de entradas de rutas tienen un campo con la clave. Para un mensaje RIP 2 generado por un router dado, cada entrada de ruta hace referencia a una dirección “IP destino“ de red o máquina que se puede alcanzar desde el router, su correspondiente “máscara de subred“, la dirección IP del “siguiente salto“ o router al que deberían enviarse los paquetes (0.0.0.0 si los paquetes deben enviarse al router que envía el mensaje), y el “número de saltos“ necesario para alcanzar el destino (métrica). Este número de saltos se cuenta desde el router que envía el mensaje RIP.
Cuando se inicia el proceso de actualización de la tabla de rutas en un router con RIP 2 instalado, se envían solicitudes RIP (comando=1) por todas las interfaces activas reclamando entradas de rutas de los routers adyacentes. Los routers que las reciben envían la información de sus correspondientes tablas de encaminamiento mediante mensajes RIP de respuesta (comando=2). Además, en cada router con RIP, cada cierto tiempo (típicamente 30 segundos), una parte o la totalidad de la tabla de encaminamiento es enviada a los routers adyacentes a través de la dirección multicast 224.0.0.9 (comando = 2).
Cuando un router que acepta mensajes RIP 2 a la dirección de multicast recibe uno, examina las entradas de rutas que contiene para comprobar si debe actualizar su tabla de encaminamiento. Si en el mensaje aparece una ruta referente a un destino que no conoce, o a una entrada dinámica (que se puede actualizar) de su tabla de encaminamiento cuyo destino se podría alcanzar con menos saltos al utilizar como puerta de enlace el router que envió el mensaje RIP (o la IP especificada en el campo en “siguiente salto”), el router receptor procede a actualizar su tabla de encaminamiento. Para ello añade o modificando la entrada, colocando como puerta de enlace la dirección IP del router que envió el mensaje RIP (o la IP especificada en el campo en “siguiente salto”)
Las Listas de control de acceso (ACL)
Las listas de control de acceso o ACL, representan un mecanismo para clasificar tráfico dependiendo de las características del protocolo, tales como direcciones IP, puertos, bits de control de las cabeceras, etc.
Originalmente diseñadas con fines de control de acceso a recursos de la red, las ACL son actualmente la piedra angular de muchos sistemas operativos de red, tales como el IOS de Cisco, actualmente el más extendido y convertido en un estándar.
Es sobre este sistema operativo de red (IOS), donde se realizarán todos los ensayos prácticos relativos al diseño y uso de listas de control de acceso.
Finalidad
Una lista de control de acceso permite clasificar un conjunto de paquetes que circulan a través de un dispositivo de nivel 2 (enlace) o nivel 3 (red), para luego poder actuar sobre ese patrón de flujo definido en dicha ACL.
Una vez clasificado el tráfico que nos interesa, podemos utilizarlo para algunas de las siguientes aplicaciones entre muchas otras:
· Control de acceso a recursos de la red: Seguridad.
· Control de acceso a los propios dispositivos de conmutación (Routers y Switches).
· Limitación de ancho de banda.
· Reserva de ancho de banda.
· Selección del grupo de direcciones IP privadas y públicas a utilizar por dispositivos con NAT o PAT.
· Encaminar el tráfico en función de una ACL, en lugar de la dirección IP destino de los paquetes.
· Definir qué tráfico debe ser autenticado (Solicitud de claves) y cual no.
· Definir qué tráfico se considera local y cual externo, para que los sistemas de seguridad (Cortafuegos e IDS (Intrusion Detection System) actúen en consecuencia.
· Seleccionar qué tráfico debe ser encriptado por protocolos como IPSEC, permitiendo definir asociaciones de seguridad o SA.
· Definir qué tipo de tráfico puede disparar una llamada RDSI, evitando así costes innecesarios.
Características de las ACL
Una ACL es una colección secuencial de condiciones ‘permite’ y ‘deniega’ (permit and deny) que se aplican a los paquetes que la atraviesan. Si la ACL se aplica sobre una interfaz, entonces se permite o deniega el tráfico seleccionado, pero si se aplica sobre una política QoS (Quality of Service – Calidad de Servicio), se asociará esa política a ese tráfico.
Cuando un paquete llega a un interfaz que tiene aplicado una ACL, el procesador del router compara de forma secuencial los campos existentes en dicho paquete con los atributos definidos en cada línea de la ACL. Si coincide con alguna de ellas, entonces la comparación termina y la comprobación de la ACL devuelve un valor Verdadero o Falso (True o False), determinando si el paquete debe ser o no encaminado por el router.
Es por tanto crítico el orden en que se aplican las líneas de la ACL y, por tanto, es necesario tenerlo muy en cuenta en el diseño de la misma.
Además de las funciones básicas descritas se incorporan una serie de prestaciones adicionales entre las que destacan:
· Cada línea de una ACL dispone de contadores que nos indican el número de paquetes que han cumplido esa condición. Muy útil en la fase de depuración y optimización.
· Es posible asociar calendarios a cada línea, de modo que permanecerá activa durante el rango de tiempo definido (por ejemplo: Lunes-Viernes de 8 a 15, fines de semana, etc…).
· Se permite el uso de entradas dinámicas, que pueden ser introducidas desde dispositivos externos mediante comandos ‘rexec’, facilitando así la integración de los dispositivos de red con servidores de comunicaciones.
Dentro de la sintaxis utilizada para la construcción de ACLs, cabe considerar que los números utilizados definen su espectro de actuación ... Es decir:
<1-99> Lista IP standar
<100-199> Lista IP extendida
<1100-1199> Lista LAN Extendida con direcciones de 48-bit MAC
<1300-1999> Lista IP standar (rango expandido)
<200-299> Lista de acceso por campo ‘type-code’
<2000-2699> IP extended access list (rango expandido)
(emplearemos este tipo)
<700-799> Lista LAN con direcciones de 48-bit MAC



Funcionamiento de una ACL
Veamos lo expuesto anteriormente mediante una ACL aplicada para filtrar el tráfico que entra en un interfaz de un router.



Figura 7. Ejemplo 1 de aplicación de ACL.



En este escenario se representan dos redes separadas por un router. En la interfaz de entrada del router, denominada Ethernet0, se encuentra aplicada la lista de acceso 2102, mediante la orden ‘ip access-group 2102 in’, donde la cláusula ‘in’ indica que se aplica solo al tráfico que entra por dicha interfaz. Pueden existir listas de entrada(in) y de salida(out) simultáneamente, aunque en la práctica solo se usan sobre un único sentido de comunicación.
La ACL 2102 deniega en su primera línea todo el tráfico con cualquier dirección IP origen hacia el servicio http de cualquier máquina destino cuya dirección empiece por 10.1.1. , con lo que el servicio web del servidor con dirección 10.1.1.1 no es accesible desde cualquier red anterior al router.
Hay que hacer notar que el valor que acompaña a una dirección IP en la ACL se denomina ‘wildcard’ y se corresponde con el valor complementario a la máscara de red de la dirección IP. Es decir, cuando queremos indicar todas las direcciones IP 10.1.1.0 con máscara 255.255.255.0, el valor ‘wildcard’ que acompaña a la dirección IP en la ACL será 0.0.0.255.
Cualquier paquete que no cumpla con la primera línea de la ACL, será comprobado con la segunda. Con más permisividad, la segunda línea permite todo el tráfico TCP entre cualquier dirección origen y destino.
Por último, es importante resaltar que siempre existe un ‘deny’ implícito al final de cualquier ACL, de modo que el tráfico que no cumpla con ninguna de las líneas de la ACL, se descarta automáticamente.
Veamos otro ejemplo, mediante el gráfico siguiente:



Figura 8. Ejemplo 2 de aplicación de ACL.



Se representa un escenario muy similar al de la figura 7, solo que en este caso, la ACL es diferente. En la primera línea se permiten paquetes TCP procedentes de la dirección de máquina 10.2.2.4 (opción ‘host’) hacia el servidor 10.1.2.2 siempre que el bit ACK esté activo (opción ‘established’). Esto significa que en esta línea se permitirá solo aquel tráfico que se haya iniciado desde el servidor 10.1.2.2 hacia el puerto 25 de la máquina 10.2.2.4
Si recordamos la secuencia de paquetes para el establecimiento de una conexión TCP, el único segmento que no lleva activo el bit ACK es el primero, es decir el SYN; con lo que cualquier paquete de establecimiento de conexión desde 10.2.2.4 hacia 10.1.2.2 no cumplirá la primera línea y pasará a la segunda, donde será rechazado.
La segunda línea, efectivamente se encarga de rechazar cualquier paquete procedente de 10.2.2.4 y hacia el prefijo de red 10.1.0.0, que no cumpla con la primera condición, descrita anteriormente. Si el paquete cumple con esta línea, el proceso se acaba y se devuelve un valor False al proceso que utiliza la ACL 2102. Esto puede ocurrir en cualquier línea de la ACL, solo que si la línea contiene ‘permit’ se devolverá el valor True.
La tercera línea comprueba los paquetes con puertos TCP superiores al 1023, procedentes de direcciones origen que empiecen por 10.2.2. y vayan hacia direcciones que empiecen por 10.1. con puertos destino comprendidos en el rango 21 a 80 inclusives. La cuarta línea y última, se encarga de permitir cualquier tipo de tráfico UDP entre las máquinas cuyas direcciones empiecen por 10.2.2. y 10.1.
Nótese que el ‘deny’ implícito del final bloqueará cualquier otro tipo de tráfico IP como ICMP, GRE, IPSEC, etc.
Como resumen de lo expuesto, podemos esquematizar los siguientes pasos del modo siguiente:
1. Un paquete es procesado por una ACL
2. Se comprueba con la primera línea
3. Si se cumple la condición y la línea contiene ‘permit’ el proceso acaba y se devuelve el valor True al proceso que utiliza la lista
4. Si se cumple la condición y la línea contiene ‘deny’ el proceso acaba y se devuelve el valor False al proceso que utiliza la lista
5. Si no se cumple, entonces se ejecuta la línea siguiente
6. Si el proceso llega hasta el final de la lista sin haber acabado, entonces caerá en una línea implícita que siempre contiene un ‘deny any any’, y por tanto devolverá valor False.
En los dos ejemplos anteriores, hemos aplicado las ACL a los paquetes de entrada al interfaz Ethernet0 con la instrucción ‘ip access-group 2102 in’. Podríamos haberlas aplicado para el tráfico de salida con ‘ip access-group 2102 out’, o haber limitado el ancho de banda a 196Kbps utilizando el comando de interfaz ‘traffic-shape group 2102 196000’.
Acceso remoto a una red empleando conexiones VPN
Para poder experimentar con el control del tráfico en un router CISCO hay que tener en cuenta que sobre un interfaz de un router (por ejemplo el interfaz Ethernet del router CISCO 1720) sólo es posible aplicar una lista de acceso.
Esto supone una limitación a la hora de conseguir en el laboratorio que cada alumno pueda configurar una lista de acceso propia, pues no se podrá realizar simultáneamente. Para evitar este problema se van a emplear conexiones VPN (Virtual Private Network).
Una de las características que proporciona una VPN es establecer una conexión punto a punto desde un equipo a cualquier red. En cada conexión VPN el router asigna un interfaz virtual de red sobre el que se podrá aplicar una lista de acceso diferente para cada conexión.
Así, el alumno deberá realizar una conexión VPN al router CISCO 1720 estableciendo un enlace punto a punto. Esta conexión VPN está configurada para que todo el tráfico de paquetes intercambiado entre el PC del alumno y el router Linux 1 sea enviado a través de la conexión VPN al router CISCO 1720. Este modo de funcionamiento se describe en la siguiente figura.



Figura 9. Ejemplo de conexión VPN.
Para establecer una conexión VPN al router CISCO 1720 se empleará el cliente de Windows XP de acceso VPN. Este cliente está configurado en el escritorio con el icono de acceso directo ‘VPN C1720’. Al ejecutarlo se despliega una aplicación donde es necesario introducir un nombre de usuario y una contraseña.



Figura 10. Acceso conexión VPN



Para permitir que todos los alumnos puedan acceder simultáneamente se ha creado una conexión VPN por equipo. Para cada PC, la conexión se establece empleando como nombre de usuario ‘pcxx’, donde ‘xx’ es el número de PC del 01 al 30, y contraseña la misma que el nombre de usuario.

0 comentarios :

Publicar un comentario en la entrada

Related Posts with Thumbnails