Como sabéis, una dirección IPv4 (32 bits) se compone de 4 octetos, cada octeto contiene 8 bits y un valor decimal asociado. Normalmente siempre visualizamos las IP en formato decimal, pero a la hora de hacer subnetting y otro tipo de cálculos es importante conocer la forma de convertir una IP de formato decimal a binario. En este primer ejemplo vemos la típica máscara de red /24 en formato decimal y binario:
255 | 255 | 255 | 0 |
11111111 | 11111111 | 11111111 | 00000000 |
Lo primero que debemos entender es que cada uno de los 8 bits que tiene el octeto tiene asignado un valor decimal exacto. Debemos conocer el valor decimal de cada posición, empezando por la izquierda el primer bit es considerado el most significant bit (MSB) por que tiene el valor más alto posible, 128, y a partir de ahí el siguiente bit tiene la mitad de valor. Si os resulta más fácil, podéis empezar por la derecha en la que el octavo bit, llamado least significant bit (LSB) por tener el valor más bajo tiene un valor de 1 y cada uno de los siguientes va doblando el valor del anterior:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
A partir de aquí, para comenzar a convertir tenemos que saber que cuando el bit está a 0 no suma ningún valor decimal en el octeto, mientas que si el bit está a 1 suma el de su posición. Y a partir del decimal, debemos activar los bits cuya suma dan el valor decimal. Vamos a verlo con un ejemplo:
IP: 192.168.1.50
Vamos a crear la tabla activando los bits de cada octeto cuya suma dan el valor decimal:
192 | 168 | 1 | 50 | |||||||||||||||||||||||||||||||
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | |||
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
IP: 192.168.1.50
IP binario: 11000100.10101000.00000001.00110010
Si queréis practicar más, podéis hacerlo tanto a mano como con juegos como el Cisco Binary IP Game.