domingo, 9 de octubre de 2011

Redes TCP/IP (parte 2)

Continuando con el tema de redes TCP/IP vamos a profundizar un poco más en lo que corresponde al direccionamiento IP.

El hecho de que las direcciones IP son números jerárquicos e independientes de las direcciones físicas debería ser una razón más que suficiente para que este protocolo tuviera el éxito que tuvo, sin embargo, en realidad su éxito se debió solo a que la Internet está basada en este protocolo.  Una prueba de ello es que en Windows el driver TCP/IP estuvo disponible de forma nativa hasta la versión 95, antes de esa versión era necesario adquirir un software adicional generalmente llamado winsock, además de que el NetBIOS solo podía ser utilizado con el NetBEUI en forma local y con el IPX/SPX para redes extendidas.

Direcciones IP

Las direcciones IP en realidad son números de 32 bits lo cual, en teoría, nos da la capacidad de 2 a la 32 direcciones, es decir, 4,294,967,296 posibles direcciones. Este número binario de 32 posiciones se divide en 4 grupos de 8 posiciones, a cada uno de estos grupos se le llama octeto y regularmente se representa a cada uno con su equivalente decimal y se delimitan por puntos, como ejemplo, vamos a ver la representación de la IP 192.168.1.100:

Image

Cada dirección IP además de darle un número único a cada componente también nos indica a que red pertenece. Como recordarán en el artículo anterior, una red es en realidad una red de redes, cada una de estas "pequeñas redes" se le denomina red de área local (LAN). Imaginemos que una dirección IP es como el nombre de una persona su apellido indica a qué familia pertenece, en este caso, los primeros números de la IP indican a que LAN pertenece, sin embargo, así como en la vida real hay apellidos largos, también los hay en las direcciones IP, por lo que se utiliza una "clave" que nos indica de que "tamaño es el apellido". Esta clave se le llama máscara de subred (subnet mask) y se le llama así porque "rellena" con números 1 la parte que representa el número de red y con números 0 la que representa al número de nodo (recuerden que son números de 32 bits), en este ejemplo vamos a decir que los primeros 24 bits representan a la red y el resto al nodo:

Image(1)

Al igual que las direcciones IP las máscaras se representan también con su decimal, por lo que la máscara queda como 255.255.255.0 y la red queda definida como las posibles direcciones que hay desde la IP 192.168.1.0 hasta la 192.168.1.255

Por una condición de protocolo, la primera dirección IP de una LAN queda reservada como el número de red por lo que en nuestro ejemplo la red es la 192.168.1.0 por lo que una manera muy común y adecuada de representarla es con el número de red y su máscara de esta forma: 192.168.1.0/255.255.255.0


También existe la condición de reservar a un número que represente a todos los nodos de una LAN, un número común a todos, al cual se le llama broadcast y, generalmente, se utiliza el número de la última dirección posible, en este caso el 192.168.1.255

Actualmente se emplea una forma más corta para representar a las redes, con el número de red (o sea, su primer nodo) y el número de 1's de su máscara (en este ejemplo 24) de esta forma: 192.168.1.0/24

Del porqué definir una máscara grande o pequeña, depende de la necesidad que tengamos de más redes pequeñas o menos pero grandes. Por ejemplo, si definimos una red con máscara 24, quiere decir que tenemos 8 bits para direcciones locales, es decir, 2 a la 8 que es igual a 256, si usamos una máscara de 28, entonces tendríamos disponibles 4 bits, o sea, 2 a la 4 que es igual a 16 y se representaría como 255.255.255.240, esto es porque los primeros tres octetos son ocho números 1 (11111111) que en binario representan 255 decimal y el último octeto son cuatro 1's y cuatro 0's (11110000) que en decimal es 240

Comúnmente, la redes que son definidas de 8 bits son llamadas de Clase A, de 16 bits Clase B y de 24 Clase C, sin embargo, esta forma de definir redes no es obligatoria, por lo que no es de extrañar el encontrar redes definidas con máscaras mas "exóticas".

Segmentación

También es una práctica común que a una red ya definida la dividamos en redes aún más pequeñas. Por ejemplo, supongamos que tuviéramos la necesidad de dividir en dos nuestra red 192.168.1.0/24 la podemos segmentar con un bit más quedando dos redes de 128 nodos así: 

segmentacion

También podría segmentarse en 4 redes de 64 nodos cada uno con 26 bits y quedarían como: 192.168.1.0/26, 192.168.1.64/26, 192.168.1.128/26 y 192.168.1.192/26. La máscara para las 4 sería 255.255.255.192

Redes reservadas

Debido a que el número de IP's en Internet es limitado, existen 3 redes que se encuentran reservadas para uso interno, esto quiere decir, que la empresa u organización a la que pertenecemos puede usar cualquiera de éstas dentro de su red local según sea su necesidad con la seguridad de que nadie en la red pública la va a utilizar y para "salir a Internet" podrá utilizar uno o varios firewall que se encarguen de hacer la traducción a una IP pública (NAT). Pero, ¿por qué es importante esto?. Supongamos que erróneamente usamos la 172.0.0.0/16 y desde algún nodo necesitamos accesar a un sitio de Internet con la IP 172.0.10.27 (Nota: en realidad no sé si existe tal sitio pero la IP si es válida para ser pública), en ese caso la petición no va a llegar al firewall ya que el equipo de ruteo supondrá que esa IP se encuentra dentro de la red local. Para este ejemplo, lo más probable es que no habría mayor problema que el no poder accesar a alguna página de Internet, pero, si fuera el caso de que ese acceso fuera muy importante, entonces nos encontraríamos en la necesidad de tener que definir nuevamente nuestra red interna.

Las redes reservadas para uso interno son:

10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

Finalmente (y no menos importante) existe otra red reservada, la 127.0.0.0/8, esta red es muy especial debido a que en realidad se refiere al mismo equipo por lo que se le llama eco (loopback), así que, en todo equipo hay una dirección 127.0.0.1 y representa a mismo equipo, es muy importante indicar que toda petición que hagamos al loopback, no saldrá del equipo, además de que cualquier programa que tenga abierto un puerto solo en la IP 127.0.0.1 no podrá recibir peticiones de ningún otro equipo.

No hay comentarios.: