Independientemente del sistema operativo que usemos sea este privativo o libre algo super importante que debemos hacer cuando administramos una red es hacer el denominado subnetting.


A que me refiero con esto? lo voy a explicar con un ejemplo:

imaginemonos que estamos en la empresa X y ellos ese momento tienen a su disposiciòn 16 màquinas, estas se van a conectar por una red de area local (lan), entonces nuestro trabajo es asignar a cada una de éstas una ip para que se puedan identificar en dicha red.

Podríamos tomar en consideraciòn que al no ser una red muy grande podemos utilizar una de clase C que va de los siguientes rangos: 192.xxx.xxx.xxx hasta 223.xxx.xxx.xxx y este tiene una mascara de subred 255.255.255.0

Digo que podríamos utilizar este tipo de red porque si nos fijamos en su mascara al tener un solo 0 esto quiere decir que podríamos tener hasta 255 máquinas conectadas cada una con su ip teóricamente porque en realidad podríamos usar 253 direcciones pues hay 2 que se reservan para uso de red y broadcast.

La parte facil es que podría usar cualquiera de estas 253 posibilidades para asignar a mis máquinas una ip ej:

maquina 1= 192.168.0.50 maquina 2= 192.168.0.80 maquina 3= 192.168.0.150 . . . maquina 16= 192.168.0.230

Pero al hacer esto estaríamos desperdiciando 237 ips que quedarían por ahi regadas (253-16) y esto no es recomendable pues puede degradar el rendimiento de nuestra red (cada vez que se hace broadcast tengo que comunicarme con tooodo mi rango de 253 posibilidades) y tambien podría tener problemas de seguridad pues los usuarios podrian cambiarse a su antojo de ips y de esta forma evitar algun tipo de bloqueo a nivel de direcciones, saltarse el proxy etc...

Lo mejor es entonces tratar de usar esta clase de red "C" pero acomodandolo a nuestras necesidades tratando en lo posible de que no queden muchas direcciones libres, de esta forma obtengo un mejor performance y de paso le doy un toque de seguridad, todo esto lo hago con el famoso subnetting.

Entonces el requisito del problema es claro: Deseo tener una red en la que solo use 16 direcciones ip, y evitar en lo posible tener regadas el resto de las 237 direcciones que no voy a usar.

Al grano, veamos un poquito de teoría específica que nos va a servir mas adelante 1) cada direccion ip ej: 192.68.10.16 si lo transformamos a codigo binario no es mas que un conjunto de ceros y unos entonces:

192.168.10.16 == 11000000.10101000.00001010.00010000

con esto deducimos que la direccion ip no es mas que un conjunto de 4 octetos binarios.

2) si nos fijamos en la mascara de esta clase de red clase C que es 255.255.255.0 si decimos que solo podemos usar 255 direcciones (teoricas) podemos deducir entonces que solo el ultimo octeto será usado para nuestros hosts y en binario nos quedaría:

255.255.255.0 == 11111111.11111111.11111111.00000000
                 ---------\/---------------.---\/---
                          RED                 HOST
Si has podido notar de ahora en adelante VAMOS A USAR 1 PARA NUESTRA PARTE DE RED Y 0 PARA NUESTRA PARTE DE HOST esto es muy importante para lo que vamos a hacer mas adelante.

Para hacer subnetting tenemos una pequeña formula: 2(exp n)-2 (dos elevada a la N menos 2) para no complicarnos solamente usaremos en principio 2(exp n)


Con esta premisas vamos para adelante:

les recuerdo el enunciado: Sea la red 192.168.10.0 (con esto me refiero a la red) deseo hacer subnetting para 16 usuarios.

1)al ser una red clase C mi mascara pura (cuando uso toooodas las 255 ips) será 255.255.255.0 entonces necesito subnetear la parte de host o sea mi mascara comenzaria asi:

255.255.255.00000000

2)para que pueda dejar solo 16 hosts para que se puedan usar entonces necesito pasar lo que me sobre al segmento de red para esto empleo la formulita 2(exp n) :

2(exp n)== 16 (host que necesito) => n=5 => 2(exp 5)==32

pero porque no use n=4 asi tendría justo los 16 hosts que necesito? No lo hice porque ese 16 es teórico y lo que necesito en realidad serían unos 18 para que pueda usar efectivamente mis 16 y como el numero que le sigue a 4 es 5 entonces para n uso el 5...

3) vamos a trabajar con la parte de 00000000 de nuestra mascara (255.255.255.00000000)

cuando necesito contar hosts (en mi ejemplo 16) lo vamos a hacer DE DERECHA A IZQUIERDA; vamos a tomar 5 ceros porque n==5 y los ceros que me sobren se lo pasaremos a la parte de red quedando asi.

              255.255.255.00000000
              |--------------|-----|
                   red       host


4)vamos a poner en práctica la teoría y convertir nuestro segmento de red en 1 (unos) y nuestro segmento de hosts en 0 (ceros) asi:
        
             255.255.255.11100000
            |--------------|-----|
                  red       host


5) Con este resultado podemos concluir que 2(exp 5)==32 numero de usuarios por subred y 2(exp 3)==8 subredes.

6)Al hacer solamente esta pequeña conversiòn ya podemos contar con nuestra nueva mascara de subred, esto lo hacemos transformando el binario obtenido (11100000) a decimal asi:

255.255.255.224

7)Pero bien en el paso 5 ya dedujimos que tendremos 8 subredes y 32 ips con la mascara 255.255.255.224 con esto tendríamos el ejercicio completo, pero que pasaría si quisieramos saber por ejemplo el numero de ip y broadcast que tendra nuestra subred numero 6 entonces haríamos lo siguiente.

8)Cogemos la ip pura (192.168.10.0) y la parte de host la convertimos a binario asi:

192.168.10.00000000

como nuestro ejercicio nos decía que 2(exp 5)== numero de host y 2(exp 3)== numero de subredes entonces:

          192.168.10.00000000
          -------------|----|
             subred     host


cogemos la parte de los ceros de subred: 000| 00000

y hacemos las posibles conbinaciones de binarios con estos 3 ceros de la subred asi: red host 000| 00000 posicion 0 001 00000 posicion 1 010 00000 posicion 2 011 00000 posicion 3 100 00000 posicion 4 101 00000 posicion 5 --- cogemos esta porque comienza por posicion cero 110 00000 posicion 6 111 00000 posicion 7


entonces tenemos la siguiente fila de la tabla anterior: 101 00000 == convertido a decimal toda la fila == 160 como deseo conocer tambien la ip de broadcast entonces convierto todo mi segmento de hosts a 1(unos) 101 11111 == convertido a decimal toda esta fila == 191

Entonces el resultado quedaría de la siguiente forma:

ip de red de la subred 6 == 192.168.10.160 ip de broadcast de la subred 6 == 192.168.10.191 --------------------------------------------------------------------------------------------


Puede darse el caso contrario es decir que dada una red 1921.68.10.0 deseo tener unas 16 subredes (antes fueron 16 hosts recuerdas?)

la formula es la misma solo que ahora busco un numero N que elevado me de como resultado al menos 18 entonces N==5

Entonces hago el proceso contrario, voy a pedir prestado unos bits al segmento de host (para sacar mis 32 subredes) este proceso lo hago de IZQUIERDA A DERECHA

255.255.255.0 == 11111111.11111111.11111111.00000000
                 ---------\/---------------.---\/---
                          RED                  HOST


11111111.11111111.11111111.00000000
--------------------------------|--|
          RED                   HOST


Como antes para saber mi nueva mascara transformo los ceros de la parte de red a unos (1) asi:

11111111.11111111.11111111.11111.000 en binario== 255.255.255.255.251 ESTA ES MI NUEVA MASCARA.

con esto he creado 32 subredes de las cuales 30 son subredes útiles cada una con 8 usuarios con 6 ip útiles

De esto si deseo ademas saber la ip y broadcast de la subred 6 entonces:

                     red   host
                     00000| 000  posicion 0  
                     00001  000  posicion 1  
                     00010  000  posicion 2  
                     00011  000  posicion 3  
                     00100  000  posicion 4
                     00101  000  posicion 5 --- cogemos esta porque comienza por posicion cero
                     00110  000  posicion 6
                     00111  000  posicion 7
                       .
                       .
                       .  
                     11111  000  posicion 32


usemos la fila escogida:
00101000 a decimal == 40 => nuestra ip será 192.168.10.40
para broadcast no nos olvidemos que la parte de host la hacemos (1) entonces 00101111 a decimal == 47 => nuestro broadcast será 192.168.10.47

---------------------------------------------------------------------------------------------


Un ejemplo algo diferente es si yo tengo una direccion IP (163.35.208.1) y tambien tengo la máscara (255.255.252.0) y deseo saber que tipo de red tengo entonces hacemos un denominado AND lógico a nuestros binarios:

1)Esta red es clase B por lo tanto una mascara pura sería 255.255.0.0 y la de nuestro ejemplo es: 255.255.252.0 por lo tanto si convertimos a binario la parte de host:

255.255.11111100.00000000

de esta conversiòn puedo deducir que tendre 2 (exp 6)subredes y 2(exp10) hosts teoricas.

Pero regresemos a lo propuesto entonces cogemos los 2 datos que tenemos y hacemos un and logico:

163.35.208.1 and 255.255.252.0 -------------- 163.35. xxx.0

con el xxx trabajaremos que es el que varía para el ejemplo:

208 en binario= 11010000 and 252 en binario= 11111100 ---------- 11010000 esto en decimal == 208 => mi ip de red sería 163.35.208.0

mi ip de broadcast sería == 163.35.11010011.11111111
continuara....
Continua...