VLSM – Variable Length Subnet Mask Router B Router D Router A Router C • La red 11.0.0.0/8 primero se configura con prefijo extendido de red /16. La subred 11.1.0.0/16 se configura con un prefijo de red extendido /24 y la subred 11.253.0.0/16 se configura con un prefijo de red extendido /19. • División recursiva. El proceso recursivo no requiere la asignación del mismo prefijo extendido de red en cada nivel de la recursión y puede concretarse según las necesidades con las que se enfrente el administrador. VLSM – Variable Length Subnet Mask • Agregado de rutas. El router D puede resumir las 6 subredes que están por detrás de él en un único aviso (11.1.253.0/24). El router B puede agregar todas las subredes detrás del mismo en un único anuncio. El router C puede juntar las 6 subredes detrás de él en el aviso (11.253.0.0/16). Dado que la estructura de subredes no es visible fuera de la organización, el router A inyecta una única ruta sobre la tabla de ruteo de la Internet global: 11.0.0.0/8 (o 11/8). VLSM – Previsiones y propósito • Una asignación bien planeada de VLSM puede reducir el tamaño de las tablas de ruteo de la organización. • Al desarrollar un diseño VLSM se deben realizar una serie de preguntas en cada nivel de recursión: 1) Cuántas subredes en total precisa este nivel en la actualidad? 2) Cuántas subredes en total precisará este nivel en el futuro? 3) Cuántos hosts existen en la actualidad? 4) Cuántos hosts habrá en el futuro? • Se sigue un modelo jerárquico. Por ejemplo, el top level lo puede determinar el número de campus, el nivel medio el número de edificios en cada sitio y el nivel más bajo el número máximo de subredes/número máximo de usuarios por subred en cada edificio. • Finalmente las direcciones de cada sitio deberán ser agregadas en un único bloque y esto evita que las tablas de ruteo del backbone se agranden demasiado. VLSM – Requerimientos protocolos. • Los protocolos de ruteo deben ser capaces de llevar información del prefijo de red extendido en cada anuncio de ruta. Los protocolos de ruteo modernos, tales como OSPF, permiten el desarrollo de VLSM pues llevan el prefijo de red extendido o máscara junto con cada anuncio de ruta. • Lo mínimo necesario entonces es seleccionar OSPF ó I-IS-IS como Interior Gateway Protocol (IGP) en vez de RIP-1. • RIP-2 permite agregar información de prefijo en los mensajes, con lo cual se podría utilizar para VLSM. • De este modo cada subred se anuncia con su correspondiente máscara. Si el protocolo de ruteo no puede entregar esta información, cualquier router tendría que suponer que se debería aplicar la longitud de prefijo que tenga configurada localmente o realizar una búsqueda en una tabla de prefijos configurada estáticamente y que contenga toda la información requerida de las máscaras. La primera opción por supuesto no garantiza la aplicación del prefijo correcto y la segunda no es una solución escalable por cuestiones de mantenimiento. VLSM – Ruteo Longest Match • Todos los routers deben poder implementar un algoritmo de re-envío consistente con ¨longest match¨. • El desarrollo de VLSM significa que el conjunto de redes asociadas con prefijos de red extendidos puede manifestar una relación de subconjunto. • Una ruta con un prefijo más largo, describe un conjunto más pequeño de destinos que la misma ruta con un prefijo de red más corto. Como resultado de esto, una ruta con prefijo más largo, se dice que es más específica mientras que aquella con un prefijo más corto es menos específica. • Los routers deben usar la ruta con el prefijo de red mayor (más específico) al reenviar el tráfico. • Por ejemplo, si la dirección destino del paquete IP es 11.1.2.5 y existen tres prefijos de red en la tabla de ruteo, (11.1.2.0/24, 11.1.0.0/16, y 11.0.0.0/8), el router seleccionaría la ruta a 11.1.2.0/24 por que su prefijo tiene el mayor número de bits coincidentes con la dirección destino IP. VLSM – Ruteo Longest Match • Destination 11.1.2.5 = 00001011.00000001.00000010.00000101 Route #3 11.0.0.0/8 = 00001011.00000000.00000000.00000000 Route #2 11.1.0.0/16 = 00001011.00000001.00000000.00000000 Route #1 11.1.2.0/24 = 00001011.00000001.00000010.00000000 * • OJO: Dado que la dirección destino se puede adaptar a las tres rutas, debe asignarse a un host que se encuentre en 11.1.2.0/24. • Si 11.1.2.5 fuese asignada a un host en las subredes 11.1.0.0/16 o 11.0.0.0/8, el sistema de ruteo no ruteará nunca tráfico al host dado que el algoritmo "longest match" supone que ese host es parte de 11.1.2.0/24. • Esto significa que debe tenerse mucho cuidado al asignar direcciones a los hosts para asegurarse que cada uno de ellos sea accesible. VLSM – Significado topológico • La asignación de direcciones debe tener significado topológico para sea posible el agregado de rutas. • Dado que OSPF e I-IS-IS llevan la información de prefijo extendido en cada ruta, las subredes VLSM pueden dispersarse a través de la topología de la organización. • Sin embargo, el soporte de ruteo jerárquico y la reducción de las tablas de ruteo de la organización, exigen que la asignación de direcciones tenga un significado topológico. • El ruteo jerárquico requiere que las direcciones se asignen de tal manera de reflejar la topología real. Esto reduce la cantidad de información de ruteo al tomar el conjunto de direcciones asignadas a una región particular de la topología y agregarlas en un único aviso de ruta. • El ruteo jerárquico permite realizar esto de manera recursiva en varios puntos dentro de la jerarquía de la topología de ruteo. Si las direcciones no tienen significado topológico no puede realizarse la agregación ni reducirse el tamaño de las tablas. VLSM – Ejemplo • Ejemplo 1: Se ha asignado a una organización el número de red 140.25.0.0/16 y los administradores planean desarrollar VLSM. La figura provee un gráfico del diseño VLSM – Ejemplo • • • • Dividir la red base en 16 bloques iguales => /20 => Cada una representa un espacio contiguo de 212 direcciones = 4096 Dividir la subred #1 en 32 bloques iguales => /25 Dividir la subred #14 en 16 bloques iguales => /24 Dividir la subred #14-14 en 8 bloques iguales =>/27 VLSM – Ejemplo • Subnet #1 140.25.16.0/20 se divide en 32 subredes, c/u con 27 direcciones • • • • • • • • • • • Subnet #1-0 140.25.16.0/25 Subnet #1-1 140.25.16.128/25 Subnet #1-2 140.25.17.0/25 Subnet #1-3 140.25.17.128/25 Subnet #1-4 140.25.18.0/25 Subnet #1-5 140.25.18.128/25 Subnet #1-6 140.25.19.0/25 Subnet #1-7 140.25.19.128/25 .................................................. Subnet #1-30 140.25.31.0/25 Subnet #1-31 140.25.31.128/25 • ¿Qué pasa cuando llega un paquete para un host de la Subnet #1-30? Por ejemplo para el primero => 140.25. 0001 1111. 0000 0001, es decir la IP es 140.25.31.1/25. En el primer ROUTER la Máscara /16 => 140.25.0.0/16 => lo toma. Para sacarlo aplica /20 => 140.25.16.0/20 => Subnet #1. En el segundo ROUTER la Máscara /25 => 140.25.31.0/25 => Subred #1-30. • VLSM – Ejemplo • Veamos las direcciones de hosts que se pueden asignar a la Subred#3 (140.25.48.0/20). El campo de número de host contiene 12 bits, (4.094 direcciones válidas, 212-2). La dirección de broadcast es 10001100.00011001.0011 1111.11111111 = 140.25.63.255 VLSM – Ejemplo • Ahora hay que dividir la Subnet #14 en 16 bloques iguales. Como 16 = 24, se requieren 4 bits más , o sea una máscara /24. • Y el espacio de direcciones de host asignado a la Subnet#14-3: VLSM – Ejemplo • La Subnet #14-14 se debe subdividir en 8 bloques iguales. Como 8 = 23, se precisan 3 bits más para identificar estas 8 subredes, o un prefijo /27. • Las direcciones de host de la Subnet #14-14-2: CIDR – Classless Inter-Domain Routing • El problema del vaciamiento del espacio de direcciones IP se genera pues en los comienzos de la gran red cuando fueron asignadas la mayoría de las direcciones clase A y B, quedando sólo disponible direcciones clase C. El vaciamiento de direcciones clase B es un problema para la asignación de espacio en el caso de organizaciones de mediano tamaño para las que una dirección clase C con un máximo de 254 hosts es demasiado poco, mientras que una dirección clase B con 65.534 hosts es mucho más que suficiente. Por otra parte la asignación de varias direcciones clase C a este tipo de organizaciones desemboca en el problema de un aumento dramático en el tamaño de las tablas de ruteo. • Para salvar estas dificultades la RFC 1519 formuló una estrategia que imponía reglas para la asignación del espacio de direcciones de Internet y el agregado de rutas, de tal manera que juntos se complementaran. La idea básica consistió en asignar 1 ó más bloques clase C a cada proveedor y que éste repartiera el bloque entre sus clientes para que a cada uno le correspondiera un subconjunto del espacio reconocible por su máscara. De este modo, los clientes de un determinado proveedor serán ruteados vía ese proveedor y su infraestructura. El costo técnico del proyecto recae en la implementación de protocolos de ruteo interdominio sin clases (Classless InterDomain Routing, CIDR). CIDR – Supernetting • La RFC 1519 data de septiembre de 1993 y realiza un análisis muy interesante de la proyección del crecimiento de las tablas de ruteo. Por ejemplo, para enero de 1992 una tabla de ruteo default-free de un router del backbone NSFNET contenía unas 4.700 entradas, número que se venía duplicando cada 10 meses en los últimos 3 años. De este modo el crecimiento proyectado para los siguientes dos años generaba una tabla con 30.000 entradas. • CIDR se adoptó para ayudar a facilitar la carga impuesta sobre internet y routers de backbones por el crecimiento de las tablas de ruteo. Esta carga representa mayores requerimientos de memoria por el tamaño creciente de las tablas de ruteo, y también un incremento en el costo de operación ya que el ancho de banda disponible se comparte con mensajes más grandes de protocolos de ruteo. La respuesta a este problema se conoció como supernetting por que se relaciona con un esquema de agregado de redes (sus direcciones deben ser contiguas) y su aplicación implicaba cambios en los protocolos de ruteo y en la manera de interpretar la información de ruteo. CIDR – Notación • CIDR especifica un rango de direcciones IP mediante una combinación de una dirección IP y su máscara de red asociada: xxx.xxx.xxx.xxx/n. • Por ejemplo 192.168.12.0/23 aplica la máscara 255.255.254.0 a la red 192.168 comenzando en 192.168.12.0. O sea que la notación representa el rango 192.168.12.0 - 192.168.13.255. • Comparado con el direccionamiento tradicional basado en clases, representa el agregado de dos subredes Clase C: 192.168.12.0 y 192.168.13.0, cada una con una máscara de subred 255.255.255.0. • En otras palabras: 192.168.12.0/23 = 192.168.12.0/24 + 192.168.13.0/24. • Adicionalmente CIDR soporta Asignación de direcciones Internet y ruteo de mensajes independiente de la clase tradicional de un dado rango de direcciones IP. Por ejemplo, 10.4.12.0/22 representa el rango de direcciones 10.4.12.0 - 10.4.15.255 (máscara 255.255.252.0). Se asigna el equivalente a 4 Clases C, dentro de un espacio mucho mayor como lo es la clase A. • La notación también se usa en espacios no CIDR: 10.0.0.0/8, 172.16.0.0/16, 192.168.3.0/24 CIDR – Notación • En el esquema de direcciones sin clase, la parte de red de la dirección IP puede comprender cualquier número de bits, alejándose de este modo de los límites impuestos por el esquema clásico de clases. Por este motivo la representación de una dirección sin clase es de la forma a.b.c.d/n, donde n es el número de bits que ocupa la identificación de red dentro de la dirección. • Así, en el caso de asignación de direcciones, si una organización solicita una dirección de red para un conjunto de 1000 máquinas, se le podría asignar un bloque de 1024 direcciones y su notación sería a.b.c.d/22 ya que los primeros 22 bits corresponderían a la máscara de red y los últimos 10 bits a las direcciones de hosts. También se permitiría usar un esquema de subnetting dentro de los bits de hostid. De este modo el uso del esquema de direcciones es más eficiente aunque el ruteo de los paquetes se complica un poco. CIDR – VLSM y Ruteo Longest Match • El primer cambio que proponía esta RFC era borrar el concepto de clases y usar VLSM. También requería representar los destinos de ruteo como pares red/máscara y efectuar el ruteo sobre una base que denominaron longest-match. • Otro concepto fundamental es el de agregado de direcciones: varias redes pueden ser representadas en una sola entrada en la tabla de ruteo. Por ejemplo, si un router necesita rutear tráfico para 8 redes (01000010. 01100100. 00110010. 00000000 a 01000010. 01100100. 00110010. 11100000) a través del mismo gateway (194.1.1.1), sin CIDR la tabla de ruteo precisaría mantener 8 entradas separadas para cada una de las 8 redes. ip route 66.100.50.0 255.255.255.224 194.1.1.1 ip route 66.100.50.32 255.255.255.224 194.1.1.1 ip route 66.100.50.64 255.255.255.224 194.1.1.1 ip route 66.100.50.96 255.255.255.224 194.1.1.1 ip route 66.100.50.128 255.255.255.224 194.1.1.1 ip route 66.100.50.160 255.255.255.224 194.1.1.1 ip route 66.100.50.192 255.255.255.224 194.1.1.1 ip route 66.100.50.224 255.255.255.224 194.1.1.1 CIDR – Agregado de rutas • Al ser contiguas las 8 redes del ejemplo (o sea sus espacios de direcciones se siguen numéricamente, sin ausencias), se pueden encapsular las 8 en una única ruta simplemente cambiando la máscara: ip route 66.100.50.0 255.255.255.0 194.1.1.1 • La mejora es la diferencia en la cantidad de entradas en la tabla. • Debido a CIDR, la notación de dirección IP 66.100.50.0 255.255.255.0, ahora será 66.100.50.0/24 CIDR. Bloques de Direcciones CIDR permite el agrupamiento de direcciones y, de este modo, facilita el ruteo ya que permite agrupar bloques de direcciones en una sola entrada en las Tabla de Ruteo. Los Bloques CIDR, comparten una misma secuencia inicial de bits en la representación binaria de sus direcciones IP. Decimos que una dirección IP está incluida en un bloque CIDR, y que se adapta al prefijo CIDR, si los N bits iniciales de la dirección y el prefijo son iguales. Un prefijo CIDR de N bits deja (32 − N) bits sin coincidir, y existen entonces 2(32 − N) combinaciones posibles con los bits restantes. Esto quiere decir que 2(32 − N) direcciones IPv4 encajan en un prefijo CIDR de N-bits. CIDR. Asignación de Bloques Un ejemplo: El bloque 208.128.0.0/11, un bloque CIDR que contenía más de dos millones de direcciones, había sido asignado a MCI. Automation Research Systems, una empresa intermediaria del estado de Virginia, alquiló de MCI una conexión a Internet, y recibió el bloque 208.130.28.0/22, capaz de admitir 1024 direcciones IP (32 − 22 = 10; 210 = 1.024). ARS utilizó un bloque 208.130.29.0/24 para sus servidores públicos, uno de los cuales era 208.130.29.33. Todos estos prefijos CIDR se utilizaron en diferentes routers para realizar el encaminamiento. Fuera de la red de MCI, el prefijo 208.128.0.0/11 se usó para encaminar hacia MCI el tráfico dirigido no solo a 208.130.29.33, sino también a cualquiera de los cerca de dos millones de direcciones IP con el mismo prefijo CIDR (los mismos 11 bits iniciales). En el interior de la red de MCI, 208.130.28.0/22 dirigiría el tráfico a la línea alquilada por ARS. El prefijo 208.130.29.0/24 se usaría sólo dentro de la red corporativa de ARS. CIDR –Supernetting • Supongamos que deseamos agregar 8 direcciones de red entre 131.0.0.0 y 131.7.0.0. Precisamos encontrar una máscara de subred que permita que las 8 redes parezcan estar en la misma red. • En subnetting usamos bits de la porción de hosts (nos movemos de izquierda a derecha). • En supernettig en vez de tomar bits de la porción de hosts, tomamos los bits de bajo orden de la porción de red (nos movemos de derecha a izquierda). • Necesitamos 3 bits para 8 redes. Por default la máscara de una red Clase B es 255.255.0.0 (o /16). Si tomamos 3 bits de la porción de red, la máscara termina siendo del tipo /13. • Si se usa la máscara 255.248.0.0 (1..1.11111000.0..0.0..0) ó /13 cada una de las 8 redes están dentro de la misma red y ahora todo ese rango puede representarse por 131.0.0.0/13. Es decir que esa dirección con esa máscara agrega todas las direcciones entre 131.0.0.1 y 131.7.255.255. CIDR –Supernetting • Los ISP´s menores en realidad son clientes de los grandes ISP´s, que a su vez son clientes de otros mayores, como AT&T. • En casos donde los mayores ISP pueden tener como clientes a ISP´s menores la técnica de supernetting permite que muchas redes se puedan alcanzar por medio de una sola línea o muy pocas líneas en las tablas de ruteo. • Seguramente los ISP´s grandes agregarán muchos bloques Clase B o C. • Pero sólo ciertos rangos contiguos de direcciones funcionarán con supernetting. red 165.43.0.0 • Por ejemplo, si tenemos la dirección de (10100011.00101011.0..0.0..0) y deseamos agregarla con otros 8 rangos, habría que determinar cuáles son los 8 rangos correctos que pueden ser agregados con la red 165.43.0.0. Una AND entre la dirección de red 165.43.0.0 con la máscara de subred 255.248.0.0 (11111111.111111000.0..0.0..0) (por que sabemos que al hacer supernetting de 8 direcciones clase B usaremos esa máscara) nos dará la dirección de comienzo del rango: 165.40.0.0. O sea que el span de las 8 direcciones irá desde 165.40.0.0 hasta 165.47.0.0. • CIDR no queda de todos modos limitada al uso en la Internet pública. CIDR – Ruteo • El método de ruteo se denomina CIDR y se define en la RFC 1519 y utiliza la máscara para indicar el punto de separación entre netid y hostid. • Cada uno de los routers dentro de una gran red almacenará copias de las máscaras de red asociadas a cada una de las redes que constituyen la red mayor, así como también la dirección base que les corresponda (netid). • Un destino se puede adaptar a varios pares red/máscara pero se usa el que se adapta a la máscara más larga. • Cuando el router recibe un paquete, lee la dirección IP destino y realiza una AND entre esa dirección y cada una de las máscaras que almacena en la tabla. Cuando la netid resultante de esta operación coincide con la netid de alguna de las redes se puede decidir el reenvío del paquete hacia donde corresponda. • Por otra parte, para que los protocolos de ruteo soporten el concepto de agregado de rutas se precisan una serie de protocolos interdominio y cumplir con ciertas reglas en el aviso de rutas. CIDR – Classless Inter-Domain Routing • La siguiente Tabla provee información sobre los bloques de direcciones CIDR más comunes. Se puede ver que una asignación /15 puede también especificarse como 255.254.0.0 y contiene un bloque contiguo de 128K (131.072) direcciones IP que se pueden interpretar como 2 redes Clase B o 512 redes Clase C. CIDR – Reconocimiento • Es importante destacar las cuestiones detrás de la decisión de desplegar redes basadas en CIDR. Por ejemplo, muchas máquinas reconocen el esquema de clases y sus interfaces de usuario no permitirán una configuración con una máscara más corta que cualquiera de las tradicionales, generando problemas potenciales. Si deseáramos desarrollar 200.25.16.0 como una /20 para definir una red capaz de soportar 4.094 (212-2) hosts, el software que se ejecuta en cada máquina podría no permitir que una Clase C tradicional (200.25.16.0) se configure con una máscara de 20 bits, ya que la natural sería de 24 bits. • Sin embargo no habría problemas en desarrollar 200.25.16.0/20 (una Clase C tradicional) para asignación como un bloque de 16 /24s dado que los hosts no CIDR interpretarán su /24 local como una Clase C. De la misma manera, 130.14.0.0/16 (Clase B tradicional) se podría desplegar como un bloque de 255 /24s ya que los hosts interpretarán las /24s como subredes de una /16. CIDR – Comparación VLSM • • • • • CIDR y VLSM son esencialmente lo mismo si se piensa desde el punto de vista de división recursiva de una porción de direcciones IP. En VLSM, la recursión se realiza sobre el espacio previamente asignado a una organización y es invisible a Internet global. CIDR, por su parte, permite la asignación recursiva de un bloque por parte de Internet Registry a un ISP de alto nivel, a uno de nivel medio, a uno de bajo nivel y finalmente a una organización privada. Ambos requieren que los protocolos de ruteo lleven información de máscara, que los routers re-envíen basados en "longest match" y que la asignación sea topológicamente significativa para poder realizar agregado de rutas. Otro beneficio importante de CIDR es el papel que juega en el control del crecimiento de las tablas de ruteo de Internet. Para reducirlas se requiere dividir Internet en dominios, dentro de un dominio se dispone de información detallada sobre las redes que lo componen, fuera del dominio sólo se anuncia el prefijo de red común. Así, una sola entrada en la tabla de ruteo especifica una ruta a muchas direcciones. CIDR – Classless Inter-Domain Routing Investigar por qué es posible el anuncio de rutas de este ejemplo. CIDR – Ejemplo Veamos un ejemplo que ilustra la potencialidad del direccionamiento sin clases en cuanto a su habilidad para subdividir un gran bloque de direcciones en otros más pequeños que satisfagan las necesidades de varias organizaciones. Como la asignación de direcciones comienza típicamente con grandes bloques que pertenecen a los grandes ISP´s, el ejemplo arranca desde allí. En este caso suponemos un ISP de tamaño moderado, con unos pocos clientes, de tal manera que necesita realizar una asignación relativamente pequeña. Empieza con el bloque 71.94.0.0/15 (01000111.01011110.00000000.00000000) El “/15” nos indica donde finaliza el network ID y nos dice que hay 17 bits disponibles para el host ID. Este bloque se supone que se obtuvo de un ISP más grande, por ejemplo 71.94.0.0/15 sería la mitad del bloque 71.92.0.0/14, un cuarto del bloque 71.88.0.0/13,y así sucesivamente. CIDR El bloque 71.94.0.0/15 equivale en tamaño a 2 redes Clase B, con un total de 131.070 posibles direcciones de hosts. El ISP puede elegir dividir el bloque en distintas formas dependiendo de las necesidades de sus clientes y de sus propias necesidades. Supongamos que este ISP recién empieza y no está muy seguro de cuáles serán sus propias necesidades, y espera revender aproximadamente la mitad de su propio espacio a otros ISP´s y de lo que le sobra considera dividir el espacio en 4 bloques de distinto tamaño para cubrir necesidades de organizaciones de distinto tamaño. CIDR Progreso de la división CIDR El corte por la mitad se realiza usando el bit más a la izquierda de host ID como un bit extra de red. 71.94.0.0/15 01000111 01011110 00000000 00000000. Una red es la de la dirección mostrada y la otra con el bit en 1. Se crean dos subredes pero no en el sentido “classful”, sino como porciones de la original. Subnetwork #0: 01000111 01011110 00000000 00000000 Subnetwork #1: 01000111 01011111 00000000 00000000 Dado que el bit #16 es ahora parte de la dirección de red, se trata de redes “/16”, que es el tamaño de una red “classful” Clase B, nombradas como: Subnetwork #0: 71.94.0.0/16 Subnetwork #1: 71.95.0.0/16 Notar que la Subred “#0” tiene la misma IP que la original. CIDR Supongamos que se decide dejar la Subred #0 para asignaciones a ISP y se decide dividir la Subred #1 en cuatro. Luego se subdividirá cada pedazo en distintas partes según las necesidades de los clientes. Se precisan 2 bits más. 01000111 01011111 00000000 00000000 Y entonces: Sub-subnetwork #1-0: 01000111 01011111 00000000 00000000 (71.95.0.0/18) Subsubnetwork #1-1: 01000111 01011111 01000000 00000000 (71.95.64.0/18) Subsubnetwork #1-2: 01000111 01011111 10000000 00000000 (71.95.128.0/18) Subsubnetwork #1-3: 01000111 01011111 11000000 00000000 (71.95.192.0/18) Cada una con 16.382 direcciones. CIDR Subdividimos a continuación los bloques /18 según necesidades de clientes. Por ejemplo: Organizaciones más grandes : Por ejemplo clientes que precisan 510 direcciones, requieren /23. Dividimos la sub-subnetwork #1-0, 71.95.0.0/18 tomando 5 bits del host ID: 01000111 01011111 00000000 00000000, que pueden variar como 00000, 00001, 00010 y así, ofreciéndonos 32 redes /23 en este bloque, cada una con 9 bits para host ID, para los 510 hosts. La primera será sub-sub-subnetwork #1-0-0, 71.95.0.0/23; la segunda sub-sub-subnetwork #1-0-1, 71.95.2.0/23; la última subsub-subnetwork #1-0-31: 71.95.62.0/23. Organizaciones tamaño mediano: Hasta 254 direcciones, dividimos subsubnetwork #1-1, 71.95.64.0/18, tomando 6 bits: 01000111 01011111 01000000 00000000 generando 64 redes /24 , #1-1-0, 71.95.64.0/24, #1-1-1, 71.95.65.0/24, y así. Organizaciones más pequeñas: Por ejemplo 126 hosts: 01000111 01011111 10000000 00000000 dará128 redes /25, 71.95.128.0/25, 71.95.128.128/25, 71.95.129.0/25, y así. Organizaciones muy pequeñas: Clientes hasta 60 hosts, #1-3, 71.95.192.0/18, se subdivide: 01000111 01011111 11000000 00000000 dando 256 redes /26, 71.95.192.0/26, 71.95.192.64/26, y así. CIDR - Problemas • Ejemplo 1: Una red de gran tamaño tiene asignado un bloque de 1024 direcciones desde 200.30.0.0 hasta 200.30.3.255. Suponiendo que se utiliza e mecanismo de direccionamiento CIDR, representar las direcciones en formato binario y deducir la máscara de red utilizada, así como el netid de la red. • Ejemplo 2: Dos redes dentro de una red de gran tamaño tienen asignados, respectivamente, los siguientes bloques de direcciones Red 1: desde 200.64.16.0 hasta 200.64.31.255. Máscara: 255.255.240.0 (/20) Red 2: desde 200.64.17.0 hasta 200.64.17.255. Máscara: 255.255.255.0 (/24) Suponiendo un esquema de direccionamiento CIDR, determinar la dirección de una máquina en la red 1 que también producirá un match con la red 2. CIDR Ejemplo 3: Supongamos que se otorga a un proveedor un bloque de 2048 redes clase C, desde 192.24.0.0 hasta 192.31.255.0. Un ruta "supernetted" a este bloque se describirá con el par 192.24.0.0/ 255.248.0.0. Este proveedor tiene 6 clientes con los siguientes requerimientos: C1 requiere menos de 2048 direcciones (8 redes clase C) C2 requiere menos de 4096 direcciones (16 redes clase C) C3 requiere menos de 1024 direcciones (4 redes clase C) C4 requiere menos de 1024 direcciones (4 redes clase C) C5 requiere menos de 512 direcciones (2 redes clase C) C6 requiere menos de 512 direcciones (2 redes clase C) El proveedor lo asigna de la siguiente manera: C1: 192.24.0 a 192.24.7. Bloque descripto por ruta 192.24.0.0 / 255.255.248.0 C2: 192.24.16 a 192.24.31. Bloque descripto por ruta 192.24.16.0 / 255.255.240.0 C3: 192.24.8 a 192.24.11. Bloque descripto por ruta 192.24.8.0 / 255.255.252.0 C4: 192.24.12 a 192.24.15. Bloque descripto por ruta 192.24.12.0 / 255.255.252.0 C5: 192.24.32 a 192.24.33. Bloque descripto por ruta 192.24.32.0 / 255.255.254.0 C6: 192.24.34 a 192.24.35. Bloque descripto por ruta 192.24.34.0 / 255.255.254.0 CIDR Ejemplo 4: Suponga que se ha asignado a un ISP el bloque de direcciones 206.0.64.0/18, que representa 16.384 (214) direcciones IP y también se puede interpretar como 64 /24s. Si un cliente requiere 800 direcciones, en vez de asignarle una Clase B (y gastar ~64. 700 direcciones) o 4 Clases C (e introducir 4 nuevas rutas en las tablas de ruteo globales de Internet), el ISP podría asignar al cliente el bloque de direcciones 206.0.68.0/22, un bloque de 1.024 (210) direcciones IP (4 /24s contiguos). La eficiencia de esta asignación se ilustra a continuación: CIDR Ejemplo 5: Suponga que un ISP pose un bloque de direcciones 200.25.0.0/16. Este bloque representa 65.536 (216) direcciones IP (o 256 /24s). A partir de este bloque, desea asignar el bloque 200.25.16.0/20, que representa 4.096 (212) direcciones IP (o 16 /24s). Address Block 11001000.00011001.0001 0000.00000000 200.25.16.0/20 En un entorno de clases, el ISP se ve forzado a usar el /20 como 16 /24s individuales. Network #0 11001000.00011001.0001 0000 .00000000 200.25.16.0/24 Network #1 11001000.00011001.0001 0001 .00000000 200.25.17.0/24 Network #2 11001000.00011001.0001 0010 .00000000 200.25.18.0/24 Network #3 11001000.00011001.0001 0011 .00000000 200.25.19.0/24 Network #4 11001000.00011001.0001 0100 .00000000 200.25.20.0/24 : : Network #13 11001000.00011001.0001 1101 .00000000 200.25.29.0/24 Network #14 11001000.00011001.0001 1110 .00000000 200.25.30.0/24 Network #15 11001000.00011001.0001 1111 .00000000 200.25.31.0/24 CIDR CIDR 1) Divide el bloque 200.25.16.0/20 en dos partes iguales. Cada bloque representa la mitad del original: 2.048 (211) IP´s. ISP's Block Org A: Reserved: 11001000.00011001.0001 0000.00000000 200.25.16.0/20 11001000.00011001.0001 0 000.00000000 200.25.16.0/21 11001000.00011001.0001 1 000.00000000 200.25.24.0/21 2) Divide bloque reservado (200.25.24.0/21) en dos partes iguales, cada una representa ¼ del espacio original : 1.024 (210) IP´s. Reserved Org B: Reserved 11001000.00011001.00011 000.00000000 200.25.24.0/21 11001000.00011001.00011 0 00.00000000 200.25.24.0/22 11001000.00011001.00011 1 00.00000000 200.25.28.0/22 3) Divide bloque reservado (200.25.28.0/22) en dos partes iguales, cada una representa 1/8 del espacio original : 512 (29) IP´s. Reserved Org C: Org D: 11001000.00011001.000111 00.00000000 200.25.28.0/22 11001000.00011001.000111 0 0.00000000 200.25.28.0/23 11001000.00011001.000111 1 0.00000000 200.25.30.0/23 CIDR • Además de utilizar unidades bloques de redes contiguas clase C, la RFC 1519 también cambió las reglas de asignación para las direcciones clase C: • • • • • Para Europa: 194.0.0.0 a 195.255.255.255 Para América del N: 198.0.0.0 a 199.255.255.255 Para América Central y del S: 200.0.0.0 a 201.255.255.255 Para Asia y Pacífico: 202.0.0.0 a 203.255.255.255 Reserva: 204.0.0.0 a 223.255.255.255 (11001100 = 204; 11011111 = 223) • Cada bloque es de 225 = 33.554.432 direcciones • Reserva es de unas 320 millones de direcciones. • Un ROUTER fuera de Europa que reciba un paquete con destino 194.xx.yy.zz a 195.xx.yy.zz sólo puede enviarlo al gateway de Europa. Esto reduce el tamaño de las tablas. CIDR Ejemplo 6: Suponga que la Universidad de Cambridge necesita 2048 direcciones y se le asigna el bloque 194.24.0.0 a 194.24.7.255 y una máscara 255.255.248.0 (/21) Luego de esta asignación, la Universidad de Oxford solicita un bloque de 4096 direcciones (212). No se le puede asignar el bloque a partir de 194.24.8.0 (211). Se le asigna el bloque 194.24.16.0 a 194.24.31.255 y una máscara 255.255.240.0 (/20). Luego de esto, la Universidad de Edimburgo solicita 1024 direcciones y se le asigna el bloque 194.24.8.0 a 194.24.11.255 y una máscara 255.255.252.0 (/22). Las Tablas de Europa se actualizan con: 11000010 00011000 00000000 00000000 11000010 00011000 00010000 00000000 11000010 00011000 00001000 00000000 11111111 11111111 11111000 00000000 11111111 11111111 11110000 00000000 11111111 11111111 11111100 00000000 Llega paquete para 194.24.17.4 = 11000010 00011000 00010001 00000100 AND con Cambridge mask => 11000010 00011000 00010000 00000000 (no es dirección base de Cambridge) AND con Oxford mask => 11000010 00011000 00010000 00000000 (es dirección base de Oxford) Gana siempre la de la máscara más larga que coincida. NAT – Network Address Translation • NAT permite a una organización convertir espacio de IP no ruteable en direcciones ruteables. • No ruteables son aquellas direcciones separadas ex profeso del espacio normal y que no se presentarán como destino en ninguna comunicación pues no serán reconocidas en las tablas de ruteo. • Sólo pueden ser usadas en redes internas sin conexión a Internet o conectadas a través de un NAT. • Se trata de los grupos 10.0.0.0 - 10.255.255.255 (10/8), 172.16.0.0 172.31.255.255 (172.16/12) y 192.168.0.0 - 192.168.255.255 (192.168/16). NAT – Network Address Translation NAT – Network Address Translation La conexión de ambas máquinas a la vez así no es posible por que existe una única dirección de salida. PAT es la posible solución. NAT Estático • Mapea una dirección IP no registrada a una registrada sobre una base uno-a-uno. • Es útil cuando un dispositivo necesita ser accedido desde la red externa. Servidores. NAT Dinámico • Mapea una dirección IP no registrada a una dirección IP registrada que forma parte de un grupo de direcciones IP registradas. • A diferencia del anterior, el mapeo es dinámico y se habla de un pool de direcciones IP disponibles. NAT Overloading. Concepto de port • Tanto TCP como UDP, se pueden asociar a la Capa de Transporte del modelo OSI. A este nivel se usa el concepto de número de puerto para identificar a las aplicaciones emisoras y receptoras. • Cada lado de una conexión tiene asociado un número de puerto en el header del protocolo UDP o TCP. Se trata de números de 16 bits sin signo (65536 puertos posibles) asignado por la aplicación emisora o receptora. • Los puertos son clasificados en tres categorías: bien conocidos y efímeros. • Los puertos bien conocidos son asignados por la Internet Assigned Numbers Authority (IANA), van del 0 al 1023 y son usados normalmente por el sistema o por procesos con privilegios. Las aplicaciones que usan este tipo de puertos son ejecutadas como servidores y se quedan a la escucha de conexiones. Algunos ejemplos son: FTP (21), SSH (22), Telnet (23), SMTP (25) y HTTP (80). • Los puertos efímeros son normalmente empleados por las aplicaciones de usuario de forma temporal cuando conectan con los servidores (rango de puertos efímeros: 1024 en adelante). NAT Overloading. PAT • Es una forma de NAT dinámico que mapea múltiples direcciones IP no registradas a una única dirección IP registrada. • Puede multiplexar las diversas conexiones mediante el uso de diferentes ports. • También se conoce como PAT (Port Address Translation), single address NAT o port-level multiplexed NAT. NAT – PAT NAT – PAT NAT Overlapping • Las direcciones IP usadas en la red interna son direcciones IP registradas pero que están en uso en otra red. • El router debe mantener una tabla de búsqueda (lookup table) de estas direcciones para que pueda interceptarlas y reemplazarlas con direcciones IP registradas únicas. • Es importante notar que el router NAT debe traducir las direcciones internas a direcciones registradas únicas tanto como traducir las direcciones registradas externas a direcciones únicas en la red privada. • Podría tratarse del caso de un cambio en el rango de direcciones IP por pasar a depender de otro proveedor. NAT – Limitaciones • El número de traducciones simultáneas que un router soportará queda determinado principalmente por la cantidad de DRAM (Dynamic Random Access Memory) que posea. Ya que una entrada en la tabla consume típicamente 160 bytes, un router con 4 MB de DRAM podría procesar teóricamente 26.214 traducciones simultáneas, que es más que suficiente para la mayoría de las aplicaciones. • La desventaja de NAT es que hace más lento el proceso de transmisión y limita el número de sesiones total en el router. • Otra desventaja de NAT dinámico es que si el router es el único dispositivo con dirección IP pública, no hay manera de proveer servicios de información sobre ninguna máquina de la LAN. En el caso por ejemplo de desear proveer servicio Web o FTP, no se puede ya que ninguna máquina en Internet tiene manera de especificar que desea conectarse a una computadora específica interna que contenga el servidor. NAT – Limitaciones • Cuando se desea ofrecer un servicio, NAT estático es la respuesta. • Primero se precisa que el ISP asigne al sitio un conjunto de direcciones públicas. Por ejemplo, en el caso de usar CIDR, probablemente asignará un bloque de 8 direcciones, de las cuales se podrá contar con 5 para mapeo estático. • La máquina en la LAN que posea el servicio que se quiere ofrecer llevará una dirección RFC 1918 (redes privadas), de tal manera que sea visible también desde la red interna. • El router deberá configurarse con reglas de ruteo NAT estáticas. • El administrador escribe el número interno que usará para el servicio a ofrecer y el número público ISP. En este caso, si alguien hace FTP sobre esa dirección pública, el router re-escribirá los paquetes, transmitiéndolos a la máquina interna que corresponda. Por otra parte, los dos tipos de NAT, estático y dinámico, pueden usarse en simultáneo. NAT NAT NAT NAT NAT NAT – Seguridad • Bloqueo automático de paquetes externos no solicitados. • Un router NAT multiport puede pensarse como el esquema de la figura, donde las máquinas internas comparte una LAN cuya ventaja es poder compartir datos y archivos, pero esto mismo se transforma en una desventaja en el caso del ingreso de un troyano, por ejemplo. Hay muchas vulnerabilidades conocidas al respecto. NAT – Seguridad • Se puede colocar en cascada una serie de NATs donde las máquina detrás del primero pueden acceder a Internet protegidas por el NAT externo, mientras que las máquinas detrás del segundo NAT pueden acceder a Internet pasando por ambos NAT´s. • Las máquinas en la LAN semi-segura quedan del lado OUT del NAT Interno, por lo tanto no pueden acceder libremente a las máquinas detrás del NAT Interno. • Se suele usar esta configuración para aislar una red DMZ y servidores o para aislar un punto de acceso inalámbrico inseguro o para proteger máquinas con datos sensibles del resto de la red. NAT – Seguridad • La zona DMZ debería ser la de los servicios que se ofrecen a la Internet (para solicitudes que provengan desde afuera). • Lo correcto es separar la zona DMZ del resto de la red. NAT – Seguridad • Separar la red interna para evitar accesos indebidos. NAT – Seguridad • Separar las máquinas con datos sensibles del resto de la red. Bibliografía • Calculadores IP: http://www.subnet-calculator.com/cidr.php • IP Subnetting Tutorial: http://www.ralphb.net/IPSubnet/index.html