Bueno, antes que nada, no soy un experto en redes, pero haré el esfuerzo por explicar lo mejor que pueda.
Direccion IP
Un termino que todos hemos escuchado más de una vez.
Las redes se crearon para la comunicación entre dispositivos, todo bien hasta ahí, pero, ¿cómo se a cual de todos los dispositivos en una red es con el que quiero comunicarme?.
Bueno, para eso es una dirección IP, no es más que un mero identificador para el dispositivo dentro de la red, por lo menos en las redes que implementen el protocolo de internet, o TCP/IP
Actualmente se usan dos tipos de direcciones IP
IPv4
La implementación más usada, asigna un conjunto 32 bits por dirección, agrupadas en octetos.
Como se puede ver en la imagen, la dirección puede representarse también en notación decimal, que es la que normalmente usamos en nuestras configuraciones.
Con esta cantidad de bits es posible generar hasta 4,294,967,296 direcciones.
Mascara de red y segmentos
Obvio que tener tantas direcciones puede llegar a ser un caos, entonces, ¿qué tal si separamos la red en redes más pequeñas, llamadas segmentos, en potencias de dos, porque así en binario todo es más fácil?. Muy buena idea, pero ahora, ¿cómo sabemos donde empieza y donde termina un segmento de red?. Ahí entra la mascara de red.
Es muy similar a la dirección IPv4, por lo menos en su composición. También es un conjunto de 32 bits, separados por octetos, pero, en lugar de servir como identificador, sirve para calcular el inicio y final de un segmento de red. Una mascara esta compuesta de una cantidad determinada de bits con valor 1
, que indican el segmento de la red en la que estan, y el resto son 0
, que representa la cantidad de host que puede contener ese segmento de red. Como siempre los 0
van al final de la cadena de bits, la mascara en representación decimal pierde valor en potencias de 2 mientras más host permita. Por ejemplo:
255.255.255.0 # Tal vez la que tu PC tiene
11111111.11111111.11111111.00000000 # En binario
Como vemos, son 8 bits disponibles. Con eso tenemos 2⁸ direcciones disponibles en el segmento.
255.255.252.0 # Otra mascara
11111111.11111111.11111100.00000000 # En binario
Como ven, ahora hay 10 bits disponibles, así que ya pueden suponer cuantos host pueden conectarse a esa red.
Usando una mascara podemos crear redes con la cantidad de direcciones que sean necesarias, siempre en potencias de 2 (o sea, 2,4,8,…,256,…)
Con el uso de la mascara aparecen dos IP muy importantes por segmento
- El identificador de la red: La primerisima IP del segmento, como indica, solo sirve para identificar al segmento.
- El broadcast (o dirección de difusión): La ultima IP del segmento, que sirve para distribuir un mensaje a TODO el resto de direcciones dentro del mismo segmento.
Ojo: como ya habrán podido notar, la mascara tiene todos los 1
al principio, asi que a veces pueden representar la mascara con un /XX
al final de una dirección para mostrar la cantidad de bits que se usan en la mascara, por ejemplo, 192.168.1.0/24
, que es lo mismo que decir 192.168.1.0
con mascara 255.255.255.0
Y si queremos, de una IP dada junto con su mascara, podemos obtener el identificador con una operación AND
entre los bits de la dirección y la mascara, y para el broadcast, realizamos un OR
sobre los bits de la mascara invertidos
# Para el identificador
11000000.10101000.00000001.00001010 # 192.168.1.10 - Una dirección en binario
11111111.11111111.11111100.00000000 # 255.255.252.0 - Mascara de 22 bits
11000000.10101000.00000000.00000000 # 192.168.0.0 - Inicio del segmento, identificador de la red
# Para el broadcast
11000000.10101000.00000001.00001010 # 192.168.1.10 - La misma IP
00000000.00000000.00000011.11111111 # La mascara invertida
11000000.10101000.00000011.11111111 # 192.168.3.255 - Final del segmento, el broadcast
Entonces, las direcciones entre 192.168.0.0
y 192.168.3.255
pertenecen al mismo segmento, y cualquier otra dirección fuera de este rango será inalcanzable para estas.
Redes IPv4 privadas
Como podrán suponer, en internet se usan la mayor parte de estas direcciones, excepto por un puñado que se apartan para el uso en redes privadas
Identificador/Mascara | Rango |
---|---|
10.0.0.0/8 | 10.0.0.0 - 10.255.255.255 |
172.16.0.0/12 | 172.16.0.0 - 172.31.255.255 |
192.168.0.0/16 | 192.168.0.0 - 192.168.0.0 - 192.168.255.255 |
IPv6
Es una extensión de IPv4, porque al parecer 4 mil millones de direcciones no eran suficientes.
Ahora las direcciones se forman por 128 bits, lo que da este numerote de direcciones: 340,282,366,920,938,463,463,374,607,431,768,211,456.
Ahora su representación se hace en binario y hexadecimal
Los bits se agrupan en conjuntos de 16. Como se ve en la imagen, los 0s a la izquierda se pueden omitir si se coloca un ::
Las mascaras funcionan igual que en IPv4, pero son tantos 0
y 1
falta espacio para escribir un ejemplo.
Configurar IP en Linux (con terminal)
La mayoria de veces, hay un servicio llamado DHCP (que podría verse en otra ocasión en algun post dedicado a servicios en red) que asigna una IP, mascara y otras configuraciones necesarias a los equipos para su correcto acoplamiento a la red.
Para configurar una dirección con la terminal hay varias formas, el estandar hasta la fecha es ifconfig
, otras formas son usando nmcli
(una utilidad construida sobre NetworkManager) o iwctl
(para iwd), pero actualmente se recomienda usar el comando ip
(parte de iproute2
)
# Configurar una IP
# sudo ip addr add <ip/mascara> dev <interfaz>
# Ejem:
sudo ip addr add 192.168.1.125/24 dev eth0
# Asigna la direccion 192.168.1.125 con mascara 255.255.255.0 a la interfaz de red eth0 (una interfaz por cable)
Bueno, creo que eso es todo por el tema de este post, si me equivoqué o falta algo avisen para editar y corregir.
Tambien, no sean timidos y dejen sus dudas si es que tienen xD