Servicios Documentales en Red Las capa de red en Internet TEMA 3: La capa de red en Internet 3.1 Introducción. La red Internet es un compendio de redes diferentes que comparten un protocolo, o pila de protocolos comunes (IP a nivel de red y sobre todo TCP a nivel de transporte); cada una de estas redes es administrada por una entidad diferente: universidades, redes académicas nacionales, proveedores comerciales (también llamados ISPs, Internet Service Providers), operadores, multinacionales, etc. Como consecuencia de esto las políticas de uso son muy variadas. La capa Internet tiene como protocolo principal al protocolo IP pero dentro de ella encontramos otros auxiliares que se emplearán para determinadas funciones que debe realizar esta capa. Técnicamente a nivel de red la Internet puede definirse como un conjunto de redes o sistemas autónomos conectados entre sí que utilizan el protocolo de red IP. IP es una red de datagramas, no orientada a conexión, con calidad de servicio “best effort”, es decir, no hay calidad de servicio; no se garantiza la entrega de los paquetes ya que en momentos de congestión éstos pueden ser descartados sin previo aviso por los routers que se encuentren en el trayecto. 3.2 El protocolo IP. Toda información en una red IP ha de viajar en datagramas IP. Esto incluye tanto las TPDUs (Transport Protocol Data Units) de TCP y UDP, como cualquier información de routing que se intercambie en la red (paquetes ECHO, HELLO, PRUNE; de asfixia, etc.). El datagrama tiene dos partes: cabecera y texto; la cabecera tiene una parte fija de 20 bytes y una opcional de entre 0 y 40 bytes (siempre múltiplo de 4).La estructura de la cabecera es la que se muestra en la figura 3.2.1. 0 4 Versión 8 IHL 16 31 Tipo de servicio Identificación Tiempo de vida 19 Longitud total Flags Protocolo Desplazamiento del fragmento Suma de comprobación de la cabecera Dirección de origen Dirección de destino Opciones IP (0 o más palabras) Datos (Opcional) Figura 3.2.1: Campos del Datagrama IP. El campo versión permite que coexistan en la misma red sin ambigüedad paquetes de distintas versiones; la versión actualmente utilizada de IP (que corresponde _____________________________________________________________________________________ Biblioteconomía y Documentación 31 Servicios Documentales en Red Las capa de red en Internet a la estructura de datagrama que estamos estudiando) es la 4. Actualmente está en fase de desarrollo e introducción una nueva versión (la versión 6) con una estructura de datagrama diferente. El campo IHL especifica la longitud de la cabecera, en palabras de 32 bits, ya que ésta puede variar debido a la presencia de campos opcionales. Se especifica en palabras de 32 bits. La longitud mínima es 5 y la máxima 15, que equivale a 40 bytes de información opcional. La longitud de la cabecera siempre ha de ser un número entero de palabras de 32 bits, por lo que si la longitud de los campos opcionales no es un múltiplo exacto de 32 bits se utiliza un campo de relleno al final de la cabecera. El campo tipo de servicio tiene la siguiente estructura: Subcampo Longitud (bits) Precedencia (o prioridad) 3 TOS (Type Of Service) 4 Reservado 1 Figura 3.2.2: Estructura del campo 'Tipo de servicio La precedencia permiten especificar una prioridad entre 0 y 7 para cada datagrama, pudiendo así marcar los paquetes normales con prioridad 0 y los importantes (por ejemplo paquetes de asfixia) con prioridad 7. La prioridad actúa alterando el orden de los paquetes en cola en los routers, pero no modifica la ruta de éstos. Dada la actual abundancia de ordenadores personales y estaciones de trabajo gestionadas por el usuario final, existe un gran debate sobre si es conveniente la existencia de un campo prioridad, ya que el usuario podría descubrir que obtiene mejor servicio con alta prioridad y utilizar sistemáticamente el valor 7 para todo tipo de paquetes; en la práctica muchos equipos ignoran este campo y cuando hacen uso de él es únicamente para datagramas transmitidos desde dent ro de la subred (es decir, entre routers), que se supone que están libres de esta sospecha. Los cuatro bits siguientes actúan como flags denominados D, T, R y C respectivamente. El primero indica que se desea un servicio de bajo retardo (D=Delay); el segundo que se quiere elevado rendimiento (T=Throughput), el tercero que se quiere una elevada fiabilidad (R=Reliability), y el cuarto que se quiere un bajo costo (C=Cost). Las combinaciones válidas del subcampo TOS son las siguientes: Valor TOS Descripción 0000 Valor por defecto 0001 Mínimo costo 0010 Máxima fiabilidad 0100 Máximo rendimiento 1000 Mínimo retardo 1111 Máxima seguridad Figura 3.2.3: Combinaciones válidas del campo TOS. Para cada aplicación existe un valor de TOS recomendado. Por ejemplo, para telnet se recomienda 1000 (mínimo retardo), para FTP 0100 (máximo rendimiento) y para NNTP (news) 0001 (mínimo costo). Algunos routers utilizan el subcampo TOS para encaminar los paquetes por la ruta óptima en función del valor especificado (podrían tener una ruta diferente según se _____________________________________________________________________________________ Biblioteconomía y Documentación 32 Servicios Documentales en Red Las capa de red en Internet desee mínimo retardo o mínimo costo, por ejemplo); también pueden utilizar el valor del campo TOS para tomar decisiones sobre que paquetes descartar en situaciones de congestión (por ejemplo descartar antes un paquete con mínimo costo que uno con máxima fiabilidad). Algunos routers simplemente ignoran este subcampo. El campo longitud total especifica la longitud del datagrama completo (cabecera incluida) en bytes. Su tamaño se especifica en un campo de dos bytes, por lo que su valor máximo es de 65535 bytes, pero muy pocas redes admiten este valor. Normalmente el nivel de enlace no fragmenta, por lo que el nivel de red adapta el tamaño de cada paquete para que viaje en una trama; con lo que en la práctica el tamaño máximo de paquete viene determinado por el tamaño máximo de trama característico de la red utilizada. Este tamaño máximo de paquete se conoce como MTU (Maximum Transfer Unit). En la tabla 3.2.4 se dan algunos ejemplos de valores de MTU característicos de las redes más habituales. Protocolo a nivel de enlace MTU(bytes) PPP (valor por defecto) 1500 PPP (bajo retardo) 296 SLIP 1006 (límite original) X.25 1600 (varía según las redes) Frame relay Al menos 1600 normalmente SMDS 9235 Ethernet versión 2 1500 IEEE 802.3/802.2 1492 IEEE 802.4/802.2 8166 Token Ring IBM 16 Mbps 17914 máximo IEEE 802.5/802.2 4 Mbps 4464 máximo FDI 4352 Hyperchannel 65535 ATM 9180 Figura 3.2.4: Valor de MTU para los protocolos mas comunes a nivel de enlace. Es bastante normal ut ilizar 1500 como valor de MTU. Cualquier red debe soportar como mínimo un MTU de 68 bytes. El campo identificación lo usa el emisor para marcar en origen cada datagrama emitido, y permite al receptor reconocer las partes correspondientes en caso de que se haya producido fragmentación por el camino (dado que se pueden tener que atravesar varias redes puede ocurrir que ya estando el datagrama de camino se encuentre una red con un tamaño menor de MTU, por lo que el router de turno deberá fragmentar el datagrama). Dentro de los flags el bit más significativo está reservado. El siguiente bit, el bit DF (Don't Fragment), cuando está a 1 indica a los routers que no fragmenten el paquete, ya que el receptor no está capacitado para reensamblarlo. Por ejemplo, si un ordenador arranca su sistema operativo a través de la red solicitará que el ejecutable correspondiente se le envíe desde algún servidor a través de la red como un único datagrama (ya que en ese estado él aun no está capacitado para reensamblar datagramas). Si un datagrama con el bit DF puesto no puede pasar por una red el router lo rechazará con un mensaje de error al emisor. Existe una técnica para averiguar el _____________________________________________________________________________________ Biblioteconomía y Documentación 33 Servicios Documentales en Red Las capa de red en Internet MTU de una ruta (denominada “path MTU discovery”) que consiste en enviar un datagrama grande con el bit DF puesto al destino deseado; si se recibe un mensaje de error se envía otro mas pequeño, hasta que el emisor averigua a base de tanteos cual es el valor de MTU de la ruta correspondiente, y a partir de ahí puede utilizarla para todos los datagramas sin riesgo de que sean fragmentados en el camino (siempre y cuando la ruta no cambie sobre la marcha). El otro flag corresponde al bit MF (More Fragments) y puesto a 1 especifica que este datagrama es realmente un fragmento de un datagrama mayor, y que no es el último. Si está a 0 indica que este es el último fragmento (o bien que el datagrama original no esta fragmentado). El campo fragment offset sirve para indicar, en el caso de que el datagrama sea un fragmento de un datagrama mayor, en que posición del datagrama mayor empieza este fragmento. Los cortes siempre se realizan en frontera múltiplo de 8 bytes (la unidad elemental de fragmentación), por lo que este campo en realidad cuenta los bytes de 8 en 8. Al ser su longitud de 13 bits el número máximo de fragmentos es de 8192, que da cabida a la longitud máxima de un datagrama (8192 x 8 = 65536). Los fragmentos pueden llegar desordenados, por lo que el último fragmento puede llegar al receptor sin que haya recibido aun todos los fragmentos; la información fragment offset junto con longitud del último fragmento (identificado porque tiene el bit MF a 0) le permite al receptor calcular la longitud total del datagrama original (que sería fragment_offset*8 + longitud). El campo TTL (Time To Live, tiempo de vida) permite descartar un datagrama cuando ha pasado un tiempo excesivo viajando por la red y es presumiblemente inútil. En el diseño original se pretendía que el valor de este campo (que inicialmente podía valer por ejemplo 64) disminuyera en cada router en un valor igual al tiempo en segundos que el paquete había empleado en esa parte del trayecto, restando como mínimo 1 en cualquier caso. En la práctica medir tiempos en una red es mucho más difícil de lo que parece (los relojes de los routers han de estar muy bien sincronizados, cosa que hoy en día no ocurre), por lo que todas las implementaciones se limitan sencillamente a restar 1 al valor de TTL de cada paquete que pasa por ellos, sin analizar el tiempo que el paquete ha invertido en el salto. Como de cualquier forma hoy en día es muy raro que un paquete tarde más de un segundo en cada salto esto está aproximadamente de acuerdo con el diseño original. El valor inicial de TTL de un paquete fija el número máximo de saltos que podrá dar, y por tanto debería ser suficientemente grande como para que pueda llegar a su destino. El TTL evita que por algún problema de rutas se produzcan bucles y un datagrama pueda permanecer “flotando” indefinidamente en la red. El campo protocolo especifica a que protocolo del nivel de transporte corresponde el datagrama. La tabla de protocolos válidos y sus correspondientes números son controlados por el IANA (Internet Assigned Number Authority) y se especifican (junto con muchas otras tablas de números) en un RFC muy especial, denominado “Assigned Numbers”, que se actualiza regularmente; el vigente actualmente es el RFC 1700. Algunos de los posibles valores del campo protocolo son los siguientes: _____________________________________________________________________________________ Biblioteconomía y Documentación 34 Servicios Documentales en Red Las capa de red en Internet Valor Protocolo Descripción 0 Reservado 1 ICMP Internet Control Message Protocol 2 IGMP Internet Group Management Protocol 3 GGP Gateway-to-Gateway Protocol 4 IP IP en IP (encapsulado) 5 ST Stream 6 TCP Transmission Control Protocol 8 EGP Exterior Gateway Protocol 17 UDP User Datagram Protocol 29 ISO-TP4 ISO Transport Protocol Clase 4 38 IDRP-CMTP IDRP Control Message Transport Protocol 80 ISO-IP ISO Internet Protocol (CLNP) 88 IGRP Internet Gateway Routing Protocol (Cisco) 89 OSPF Open Shortest Path First 255 Reservado Figura 3.2.5: Ejemplo de valores y significados del campo protocolo en un datagrama. Obsérvese que el valor 4 está reservado al uso de IP para transportar IP, es decir al encapsulado de un datagrama IP dentro de otro. El campo checksum sirve para detectar errores producidos en la cabecera del datagrama; el checksum es el complemento a uno en 16 bits de la suma complemento a uno de toda la cabecera (incluidos los campos opcionales si los hubiera), tomada en campos de 16 bits; para el cálculo el campo checksum se pone a sí mismo a ceros. Este campo permite salvaguardar a la red de un router que alterara los campos de cabecera de un datagrama, por ejemplo por un problema hardware. El campo checksum se ha de recalcular en cada salto, ya que al menos el TTL cambia. Esto supone un serio inconveniente desde el punto de vista de rendimiento en routers con mucho tráfico. Los campos dirección de origen y dirección de destino corresponden a direcciones IP según el formato que veremos con posterioridad. Los campos opcionales de la cabecera no siempre están soportados en los routers y se utilizan muy raramente; de estos podemos destacar los siguientes: • Record route: Esta opción pide a cada router por el que pasa este datagrama que anote en la cabecera su dirección, con lo que se dispone de una traza de la ruta seguida para fines de prueba o diagnóstico de problemas (es como si el router estampara su sello en el datagrama antes de reenviarlo). Debido a la limitación en la longitud de la cabecera como máximo pueden registrarse 9 direcciones, lo cual es insuficiente en algunos casos. • Source routing: permite al emisor especificar la ruta que debe seguir el datagrama hasta llegar a su destino. Existen dos variantes: “strict source routing” permite especificar la ruta exacta salto a salto, de modo que si algún paso de la ruta no es factible por algún motivo se producirá un error. Con “loose source routing” no es preciso detallar todos los saltos, puede haber pasos intermedios no especificados. _____________________________________________________________________________________ Biblioteconomía y Documentación 35 Servicios Documentales en Red • Las capa de red en Internet Timestamp: esta opción actúa de manera similar a “record route”, pero además de anotar la dirección IP de cada router atravesado se anota en otro campo de 32 bits el instante en que el datagrama pasa por dicho router. El uso de dos campos de 32 bits acentúa aún mas el problema antes mencionado del poco espacio disponible para grabar esta información. De estos el más utilizado es “source routing”, y aún éste se usa poco por el problema del espacio en la cabecera; generalmente se prefiere usar en su lugar encapsulado IP en IP, que es más eficiente. 3.3 Direcciones IP. Cada interfa z de red de cada nodo (host o router) en una red IP se identifica mediante una dirección única de 32 bits. Las direcciones IP se suelen representar por cuatro números decimales separados por puntos, que equivalen al valor de cada uno de los cuatro bytes que componen la dirección. Por ejemplo una dirección IP válida sería 147.156.23.208. Si un nodo dispone de varias interfaces físicas (cosa habitual en los routers) cada una de ellas deberá tener necesariamente una dirección IP distinta si se desea que sea accesible para este protocolo. Es posible además, y en algunas situaciones resulta útil, definir varias direcciones IP asociadas a una misma interfaz física. Las direcciones IP tienen una estructura jerárquica. Una parte de la dirección corresponde a la red, y la otra al host dentro de la red. Cuando un router recibe un datagrama por una de sus interfaces compara la parte de red de la dirección con las entradas contenidas en sus tablas (que normalmente sólo contienen direcciones de red, no de host) y envía el datagrama por la interfaz correspondiente. En el diseño inicial de la Internet se reservaron los ocho primeros bits para la red, dejando los 24 restantes para el host; se creía que con 254 redes habría suficiente para una red experimental que era fruto de un proyecto de investigación del Departamento de Defensa americano. Ya en 1980 se vio que esto resultaba insuficiente, por lo que se reorganizó el espacio de direcciones reservando una parte para poder definir redes más pequeñas. Para dar mayor flexibilidad y permitir diferentes tamaños se optó por dividir el rango de direcciones en tres partes adecuadas para redes grandes, medianas y pequeñas, conocidas como redes de clase A, B y C respectivamente: • Una red de clase A (que corresponde a las redes originalmente diseñadas) se caracteriza por tener a 0 el primer bit de dirección; el campo red ocupa los 7 bits siguientes y el campo host los últimos 24 bits. Puede haber hasta 126 redes de clase A con 16 millones de hosts cada una. • Una red de clase B tiene el primer bit a 1 y el segundo a 0; el campo red ocupa los 14 bits siguientes, y el campo host los 16 últimos bits. Puede haber 16382 redes clase B con 65534 hosts cada una. _____________________________________________________________________________________ Biblioteconomía y Documentación 36 Servicios Documentales en Red Las capa de red en Internet • Una red clase C tiene los primeros tres bits a 110; el campo red ocupa los siguientes 21 bits, y el campo host los 8 últimos. Puede haber hasta dos millones de redes clase C con 254 hosts cada una. • Para indicar qué parte de la dirección corresponde a la red y qué parte al host se suele utilizar una notación denominada máscara, consistente en poner a 1 los bits que corresponden a la parte de red y a 0 los que corresponden a la parte host. Así por ejemplo diremos que una red clase A tiene una máscara 255.0.0.0, lo cual equivale a decir que los ocho primeros bits especifican la red y los 24 restantes el host. Análogamente decimos que una red clase B tiene una máscara 255.255.0.0 y una clase C una máscara 255.255.255.0. Existe además direcciones (no redes) clase D cuyos primeros cuatro bits valen 1110, que se utilizan para definir grupos multicast (el grupo viene definido por los 28 bits siguientes). Por último, la clase E, que corresponde al valor 11110 en los primeros cinco bits, está reservada para usos futuros. De los valores de los primeros bits de cada una de las clases antes mencionadas se puede deducir el rango de direcciones que corresponde a cada una de ellas. Así pues, en la práctica es inmediato saber a que clase pertenece una dirección determinada sin más que saber el primer byte de su dirección. La figura 3.3.1 resume la información esencial sobre los tipos de direcciones de Internet. 0 Clase A 8 16 0| Red 24 31 Host 0.1.0.0 … 126.0.0.0 Clase B 10| Red Host 128.0.0.0 … 191.255.0.0 Clase C 110| Red Host 192.0.0.0 … 223.255.255.0 Clase D 1110 Dirección multicast 224.0.0.0 … 239.255.255.0 Figura 3.3.1: Clases de direcciones Internet y sus principales características. La asignación de direcciones válidas de Internet la realizan los NICs (Network Information Center). Al principio había un NIC para toda la Internet pero luego se crearon NICs regionales (por continentes); actualmente muchos países tienen un NIC propio; en España el NIC es administrado por RedIRIS. Existen unas reglas y convenios en cuanto a determinadas direcciones IP que es importante conocer: _____________________________________________________________________________________ Biblioteconomía y Documentación 37 Servicios Documentales en Red Las capa de red en Internet 1. La dirección 255.255.255.255 se utiliza para indicar broadcast, esto es emisión del mensaje a todos los ordenadores en la propia red, cualquiera que esta sea (y sea del tipo que sea). 2. La dirección 0.0.0.0 identifica al host actual. 3. La dirección con el campo host todo a ceros se utiliza para indicar la red misma, y por tanto no se utiliza para ningún host. Por ejemplo la dirección 147.156.0.0 identifica la red clase B que pertenece a la Universidad de Valencia. 4. La dirección con el campo host todo a unos se utiliza como la dirección broadcast de la red indicada, y por tanto no se utiliza para ningún host. Por ejemplo para enviar un mensaje broadcast a la red de la Universidad de Valencia utilizaríamo s la dirección 147.156.255.255. 5. La dirección con el campo red todo a ceros identifica a un host en la propia red, cualquiera que esta sea; por ejemplo si queremos enviar un datagrama al primer host (1.1) de una red clase B podemos utilizar la dirección 0.0.1.1. Esto permite enviar datagramas sin saber en que red nos encontramos, aunque es preciso conocer si es clase A, B o C para saber que parte de la dirección es red y que parte es host. 6. Las redes 127.0.0.0, 128.0.0.0, 191.255.0.0, 192.0.0.0 y el rango de 240.0.0.0 en adelante están reservados y no deben utilizarse. 7. La dirección 127.0.0.1 se utiliza para pruebas “loopback”; todas las implementaciones de IP devuelven a la dirección de origen los datagramas enviados a esta dirección sin intentar enviarlos a ninguna parte. 8. Las redes 10.0.0.0, 172.16.0.0 a 172.31.0.0, y 192.168.0.0 a 192.168.255.0 están reservadas para redes privadas (“intranets”) por el RFC 1918, por lo que estos números no se asignan a ninguna dirección válida en Internet y por tanto pueden utilizarse para construir redes, por ejemplo detrás de un cortafuego, sin riesgo de entrar en conflicto de acceso a redes válidas de la Internet. Como consecuencia de las reglas 3 y 4 siempre hay dos direcciones inútiles en una red. Por ejemplo, si tenemos la red 200.200.200.0 (clase C) tendremos que reservar la dirección 200.200.200.0 para denotar la red misma, y la dirección 200.200.200.255 para envíos broadcast a toda la red; dispondremos pues de 254 direcciones para hosts, no de 256. 3.4 Subredes. Supongamos que una empresa dispone de varias oficinas, cada una con una red local, todas ellas interconectadas entre sí, y que desea unirlas mediante el protocolo TCP/IP; una de dichas oficinas (la principal) dispone además de una conexión a la Internet. Sería posible asignar una red clase C diferente para cada oficina, pero esto supone solicitar al NIC una nueva red para cada oficina que se conecte, y al ser cada una independiente de las demás la gestión se complica; por ejemplo sería preciso informar _____________________________________________________________________________________ Biblioteconomía y Documentación 38 Servicios Documentales en Red Las capa de red en Internet de la red asignada a cada nueva oficina a routers externos a la organización, no sería posible enviar datagramas dentro de la empresa usando direcciones con el campo red todo a ceros (pues cada oficina tendrá una red diferente), no se puede utilizar una dirección broadcast para toda la empresa, etc. En estos casos resulta útil disponer de algún mecanismo que permita dividir una red IP en trozos o subredes, creando así un nivel jerárquico intermedio entre la red el host; de esa forma la empresa podría por ejemp lo solicitar una clase B y asignar fragmentos de dicha red a cada oficina a medida que fueran creándose. Supongamos que a la empresa se le asigna la clase B 156.134.0.0; de los 16 bits que en principio corresponden al host podría reservar los primeros 8 para la subred y dejar los 8 siguientes para el host, con lo que habría 256 subredes de 256 direcciones cada una. Desde fuera la red de la empresa seguiría siendo 156.134.0.0, ya que la estructura de subred no sería visible. Las subredes se añadieron a la Internet en 1982, con lo que se consiguió una mayor flexibilidad en el reparto de direcciones dentro de una red. Para dividir la red en subredes se define una máscara en la que están a 1 los bits de la dirección que corresponden a la red-subred, y a cero los que corresponden al host. Por ejemplo, la máscara 255.255.255.0 divide una red clase B en 256 subredes de 256 hosts pues tiene puestos a 1 los primeros 24 bits (los 16 de la clase B mas los 8 de la subred). Se pueden hacer divisiones que no correspondan con bytes enteros, por ejemplo si la máscara fuera 255.255.252.0 se estarían reservando los primeros 6 bits del campo host para la subred y dejando 10 para el host; con lo que podría haber hasta 64 redes con 1024 hosts cada una. Al crear subredes hay dos direcciones de cada subred que quedan automáticamente reservadas: las que corresponden al campo host todo a 0 y todo a 1; estas se emplean para la designación de la subred y para la dirección broadcast, respectivamente. Así si la red 156.134.0.0 se subdivide con la máscara 255.255.255.0 se crean 256 subredes del tipo 156.134.subred.host, siendo 156.134.subred.0 la dirección que identifica a toda la subred y 156.134.subred.255 la dirección broadcast de la subred. Por tanto el número de hosts de una subred es siempre dos menos que el número de direcciones que abarca; por lo que no tiene sentido crear subredes con la máscara 255.255.255.254 en las que el campo host tendría un bit, pues no quedarían direcciones útiles. Del mismo modo que los valores todos ceros o todo unos del campo host están reservados con un significado especial, el valor todos ceros y todo unos del campo subred también son especiales. El valor todos ceros se utiliza para representar la subred misma; por ejemplo si a la red 156.134.0.0 le aplicamos la máscara 255.255.255.0 el campo subred todo a ceros no debería utilizarse, pues resultaría ambiguo el significado de la dirección 156.134.0.0, que representaría tanto a dicha subred como a la red entera. Por otro lado, el campo subred todo a unos tampoco debería utilizarse porque de lo contrario el significado de la dirección 156.134.255.255 sería ambiguo, significaría tanto broadcast en la subred como en la red entera. Por consiguiente en el campo subred también se pierde siempre dos direcciones, y tampoco tendría sentido crear máscaras con el campo subred de un bit, tales como 255.255.128.0 en el caso de una red clase B. Mientras que la restricción de no utilizar direcciones todos ceros o todo unos en el campo host se cumple siempre, existen muchas instalaciones que por conveniencia _____________________________________________________________________________________ Biblioteconomía y Documentación 39 Servicios Documentales en Red Las capa de red en Internet incumplen la restricción equivalente en el campo subred, es decir, consideran válida la subred especificada por el campo subred todo a ceros o todo a unos. Esta práctica se conoce como subnet- zero y se adopta para poder aprovechar mejor el espacio de direcciones disponible; con subnet-zero es posible por ejemplo dividir una red clase B o clase C por la mitad en dos subredes mediante la máscara 255.255.128.0 o 255.255.255.128, cosa que no sería posible si no se permitiera esta pequeña “infracción”. En todos nuestros ejemplos la parte de subred de la máscara es contigua a la parte de red; en un principio se permitía crear subredes con máscara no contigua, por ejemplo en una clase B con la máscara 255.255.0.255 el host vendría especificado por el tercer byte y la subred por el cuarto. Dado que esta práctica solo complicaba la comprensión de las subredes y hacía menos eficiente el proceso en los routers, actualmente la norma exige que la máscara sea contigua. La división en subredes no ha de hacerse necesariamente de forma homogénea en todo el espacio de direcciones, como hemos supuesto hasta ahora. Supongamos siguiendo con nuestro ejemplo anterior que la empresa tiene una serie de oficinas pequeñas que tienen suficiente con subredes de 256 direcciones, pero otras mas grandes requieren un número mayor; en vez de dividir toda la red en 256 subredes de 256 hosts y asignar varios fragmentos a las oficinas mayores podemos hacer una partición en trozos de diferente tamaño, asignando así a cada oficina un trozo acorde con sus necesidades. Es importante destacar que la creación de subredes impone ciertas restricciones. Analicemos por ejemplo en el caso anterior la primera subred de 1024 direcciones; vemos que abarca un bloque de cua tro valores en el tercer byte, del 16 al 19; si en vez de empezar en el 16 hubiéramos empezado en el 15 (15, 16, 17 y 18) no habría sido posible crear la subred, pues la dirección 156.134.15.0 no tiene una máscara común de 22 bits con las otras tres; por consiguiente las subredes formadas con máscara de 22 bits (grupos de cuatro números) necesariamente han de empezar en valores múltiplos de cuatro (0, 4, 8, etc.). Análogamente puede deducirse fácilmente que las subredes de máscara de 20 bits (4096 direcciones) han de empezar en múltiplos de 16, y así sucesivamente. 3.5 Superredes: Routing classless (CIDR). El rápido crecimiento de la Internet está creando varios problemas, el más importante de los cuales es el rápido agotamiento de las direcciones. Las redes clase A ya prácticamente no se asignan, y resulta muy difícil obtener una clase B. Muchas empresas no tienen bastante con una clase C pero una B les resulta excesiva. Entre las medidas que se están adoptando para paliar el problema de escasez de direcciones está la de asignar un conjunto de redes clase C donde antes se asignaba una clase B. De esta forma se puede ajustar mejor el rango de direcciones asignado a las necesidades reales previstas de cada organización Esto ha resuelto un problema pero ha creado otro: el crecimiento desmedido de las tablas en los routers. Muchos routers de la Internet funcionan con unas tablas de encaminamiento que solo recogen una pequeña parte de todas las redes existentes, y _____________________________________________________________________________________ Biblioteconomía y Documentación 40 Servicios Documentales en Red Las capa de red en Internet disponen de una ruta por defecto por la cual se sale hacia el resto de la Internet. Sin embargo, a medida que nos aproximamos al centro o 'backbone' de la Internet las tablas tienen que ser necesariamente mas exhaustivas; en las tablas de los denominados “core routers” se mantienen entradas para la mayoría de las redes existentes en la Internet. Al asignar a una organización varias clases C donde normalmente hubiera bastado con una clase B hace falta definir varias entradas en las tablas de routing (una por cada clase C asignada) cuando antes habría bastado una para toda la clase B. Actualmente hay mas de 100.000 redes registradas en la Internet. Además del costo en memoria RAM que supone el mantener tablas extremadamente grandes en los routers los algoritmos de búsqueda se complican y no funcionan adecuadamente ya que fueron diseñados pensando en muchas menos entradas. El crecimiento de la Internet se está produciendo a un ritmo que duplica el número de redes conectadas cada 9 meses, mientras que la tecnología sólo permite duplicar la capacidad y potencia de los routers cada 18 meses. En esta situación el problema de la explosión de las tablas de routing se convirtió en un problema aún más grave que la escasez de direcciones. Según cálculos hechos por la IETF en 1993 de seguir produciéndose el crecimiento normal en el número de redes y rutas la Internet se colapsaría hacia 1998. Para solucionar este problema se adoptó en 1993 un sistema denominado CIDR (Classless InterDomain Routing) descrito en el RFC 1519. Se trata de dos medidas complementarias. La primera consiste en establecer una jerarquía en la asignación de direcciones. Antes de CIDR la asignación de números de red se hacía por orden puramente cronológico, independientemente de la ubicación geográfica, lo cual equivalía en la práctica a una asignación aleatoria del número de red. Con CIDR se han asignado rangos por continentes: • • • • 194.0.0.0 a 195.255.0.0 para Europa 198.0.0.0 a 199.255.0.0 para Norteamérica 200.0.0.0 a 201.255.0.0 para Centro y Sudamérica 202.0.0.0 a 203.255.0.0 para Asia y la zona del Pacífico A su vez dentro de cada uno de estos rangos se ha dado una parte a cada país, y dentro de éste un rango a cada proveedor de servicios Internet. Con esta distribución regional de los números y los cambios pertinentes en el software las entradas en las tablas de routing pueden agruparse, con lo que las tablas se simplifican; por ejemplo un router en Japón puede poner una sola entrada en sus tablas indicando que todos los paquetes dirigidos a las redes 194.0.0.0 hasta 195.255.0.0 vayan a la interfa z que da acceso a Europa. Se ha establecido pues un criterio geográfico jerárquico en las direcciones IP. Una consecuencia curiosa de la asignación de rangos de direcciones por proveedor es que si una empresa cambia de proveedor normalmente tendrá que “devolver” a este sus direcciones, y solicitar direcciones nuevas al nuevo proveedor; por supuesto tendrá que modificar las direcciones IP de todas sus máquinas. La segunda medida adoptada por CIDR es en realidad es un caso particular de la anterior. Consiste en dar a cada organización (bien directamente o a través de su proveedor correspondiente) un conjunto de redes clase C ajustado a lo que son sus necesidades previstas, dándole siempre un rango contiguo y un número de redes que sea _____________________________________________________________________________________ Biblioteconomía y Documentación 41 Servicios Documentales en Red Las capa de red en Internet potencia entera de 2 (es decir 1, 2, 4, 8 redes, etc.) elegidas de modo que tengan una máscara común en la parte de red; por ejemplo un grupo de 8 redes clase C puede hacerse variando únicamente los 3 últimos bits (22 a 24) de la parte de red, por lo que el grupo deberá tener comunes los primeros 21 bits de la parte de red, y deberá empezar necesariamente por un valor múltiplo de ocho y abarcar los siete valores siguientes. Por ejemplo, supongamos que la Universidad de Valencia solicita a su proveedor direcciones de red y justifica la previsión de tener 1200 hosts en un plazo razonable; como 4 redes clase C no serían suficientes se le asignan 8 redes, que permiten llegar a 2032 hosts (254 x 8). Supongamos que somos el proveedor de la Universidad de Valencia y que tenemos disponib le para nuestro uso el rango 195.100.0.0 a 195.100.255.0 (obsérvese que en este caso el número de redes clase C válidas es de 256, no 254, pues las redes 195.100.0.0 y 195.100.255.0 son perfectamente utilizables); supongamos que hemos ido asignando redes clase C a nuestros clientes por orden cronológico, y que nos queda libre a partir del 12, es decir de la red 195.100.12.0; si le asignamos de 195.100.12.0 a la 195.100.19.0 el rango es contiguo pero 12 no es múltiplo de 8, por lo que la máscara no es común (es decir, los primeros 21 bits no son iguales en las 8 redes). El primer rango de 8 redes con máscara común sería 195.100.16.0 a 195.100.23.0, que es el que le asignaríamos a nuestro cliente. Las redes 195.100.12.0 a 195.100.15.0 quedarían libres para otros clientes, por ejemplo podrían formar un grupo contiguo de 4 redes (22 bits iguales) para alguno que necesitara conectar entre 509 y 1016 hosts. Obsérvese que CIDR es en realidad el mismo mecanismo que las subredes, pero aplicado en sentido inverso. Las subredes permiten dividir una red, ampliando la parte red a costa de la parte host de la dirección. El CIDR funde diferentes redes en una, reduciendo la parte red y ampliando la parte host. Por este motivo el CIDR también se conoce como “supernet addressing”. Cuando se utiliza CIDR como en el ejemplo anterior los hosts finales que se encuentran en distintas redes clase C no pueden hablar directamente entre ellos, han de hacerlo a través de un router, a menos que soporten CIDR que no es lo normal en hosts. Un grupo CIDR de clases C siempre funciona como subnet- zero, es decir: • No existe una dirección que haga referencia al grupo; en nuestro ejemplo la dirección 195.100.16.0 haría referencia a la primera red clase C únicamente. • No existe una dirección broadcast del grupo; en nuestro ejemplo la dirección 195.100.23.255 es la dirección broadcast de la red 195.100.23.0 únicamente. El espacio de redes clase A, que suponen la mitad del espacio total, está asignado actualmente sólo en un 50% aproximadamente. Se está estudiando la posibilidad de dividir la parte no utilizada de este rango de direcciones en redes de menor tamaño para su asignación mediante CIDR, igual que se hace actualmente con el rango 194.0.0.0-203.255.0.0. _____________________________________________________________________________________ Biblioteconomía y Documentación 42