SuperNotes by yuri.rodrix

Notas de Yuri.Rodrix


Página tipo blog en el que voy a publicar mis notas de aprendizaje, en especial de temas como matemáticas, física y quizá algo de programación

Redes neuronales
Redes neuronales
Redes neuronales
Redes neuronales
Redes neuronales
Redes neuronales

Direccionamiento IPv4 e IPv6

Una dirección IP no es un número decimal con puntos: es una tira de bits. Todo lo que confunde del tema —los /18/18, /24/24, /32/32, /64/64, /128/128— se vuelve obvio en cuanto miras dónde cae la frontera entre los bits de red y los de host. Ese es el único concepto del post; los tres simuladores de abajo lo dejan ver bit a bit, en decimal y en hex.

La notación CIDR IP/n\text{IP}/n dice cuántos bits, contando desde la izquierda, son de red:

192.168.10.0direccioˊn/24bits dered    3224=8 bits de host\underbrace{192.168.10.0}_{\text{dirección}}\,/\,\underbrace{24}_{\substack{\text{bits de}\\\text{red}}}\;\Longrightarrow\;\underbrace{32-24}_{= \,8}\ \text{bits de host}

Los bits de red identifican la subred; los de host identifican cada máquina dentro de ella. Subir el prefijo mueve la frontera hacia la derecha: más red, menos host.

1. IPv4: 32 bits, cuatro octetos

Una IPv4 son 32 bits que escribimos en cuatro grupos de 8 bits (un octeto) en decimal, 00255255. En hex cada octeto cabe en dos dígitos (0000FFFF). El número de direcciones de un bloque depende solo de cuántos bits quedan para el host:

#direcciones=232n,#hosts usables=232n2\#\text{direcciones}=2^{\,32-n}\,,\qquad \#\text{hosts usables}=2^{\,32-n}-2

Restamos 2 porque la primera dirección del bloque es la de red y la última es la de broadcast (salvo los casos especiales /31/31 y /32/32). Mueve el prefijo en el simulador y mira cómo se parte el bloque:

① IPv4 — el bit, el octeto y el hex

11000000
192 = 0xc0
10101000
168 = 0xa8
00001010
10 = 0x0a
10000010
130 = 0x82
red (24 bits)host (8 bits)
Máscara /24
11111111
255
11111111
255
11111111
255
00000000
0
Máscara255.255.255.0
Wildcard0.0.0.255
Red (network)192.168.10.0/24
Broadcast192.168.10.255
Primer host192.168.10.1
Último host192.168.10.254
Tamaño del bloque2^8 = 256
Hosts usables254

Mueve el prefijo y observa: cada bit que pasa de host (verde) a red (azul) divide a la mitad el tamaño del bloque. Por eso un /24 son 256 direcciones y un /25 solo 128.

2. Subnetting: pedir bits prestados al host

Repartir un bloque grande (digamos un /18/18) en subredes más chicas es robarle bits al host para dárselos a la red. Cada bit prestado duplica la cantidad de subredes y parte a la mitad el tamaño de cada una:

2msubredes con m=nnuevonbasebits prestados\underbrace{2^{\,m}}_{\text{subredes}}\ \text{con}\ m=\underbrace{n_{\text{nuevo}}-n_{\text{base}}}_{\text{bits prestados}}

Ir de /18/18 a /22/22 son m=4m=4 bits prestados ⇒ 24=162^4=16 subredes, cada una un /22/22 de 210=10242^{10}=1024 direcciones.

Esto es subnetting de tamaño fijo. La idea de VLSM es exactamente la misma, pero aplicando prefijos distintos a cada subred según cuántos hosts necesite (un enlace punto-a-punto con un /30/30, una LAN con un /24/24, etc.).

② Subnetting — bits prestados

/18
10101100000100000000000000000000
red base (/18)prestados (4)host (10)
Subredes2^4 = 16
Tamaño c/u2^10 = 1,024
Hosts usables c/u1,022
Máscara nueva/22
#SubredRango usableBroadcast
0172.16.0.0/22172.16.0.1172.16.3.254172.16.3.255
1172.16.4.0/22172.16.4.1172.16.7.254172.16.7.255
2172.16.8.0/22172.16.8.1172.16.11.254172.16.11.255
3172.16.12.0/22172.16.12.1172.16.15.254172.16.15.255
4172.16.16.0/22172.16.16.1172.16.19.254172.16.19.255
5172.16.20.0/22172.16.20.1172.16.23.254172.16.23.255
6172.16.24.0/22172.16.24.1172.16.27.254172.16.27.255
7172.16.28.0/22172.16.28.1172.16.31.254172.16.31.255
8172.16.32.0/22172.16.32.1172.16.35.254172.16.35.255
9172.16.36.0/22172.16.36.1172.16.39.254172.16.39.255
10172.16.40.0/22172.16.40.1172.16.43.254172.16.43.255
11172.16.44.0/22172.16.44.1172.16.47.254172.16.47.255
12172.16.48.0/22172.16.48.1172.16.51.254172.16.51.255
13172.16.52.0/22172.16.52.1172.16.55.254172.16.55.255
14172.16.56.0/22172.16.56.1172.16.59.254172.16.59.255
15172.16.60.0/22172.16.60.1172.16.63.254172.16.63.255

Cada bit ámbar es un bit robado al host: +1 bit ⇒ ×2 subredes y cada subred a la mitad de tamaño. Eso es exactamente lo que dice ir de /18 a /22.

3. IPv6: 128 bits y la compresión ::::

IPv6 es el mismo juego con 128 bits, escritos en ocho grupos de 16 bits en hexadecimal. La frontera típica está en el /64/64: los primeros 64 bits son el prefijo de red y los últimos 64 el interface ID de la máquina:

2001 ⁣: ⁣0db8 ⁣: ⁣85a3 ⁣: ⁣prefijo de red (/64)     ⁣: ⁣8a2e ⁣: ⁣0370 ⁣: ⁣7334interface ID (64 bits)\underbrace{2001\!:\!0db8\!:\!85a3\!:\!\,\ldots}_{\text{prefijo de red }(/64)}\;\big|\;\underbrace{\ldots\!:\!8a2e\!:\!0370\!:\!7334}_{\text{interface ID }(64\ \text{bits})}
  • /32/32 → bloque que recibe un ISP.
  • /48/48 → asignación típica a un sitio/empresa.
  • /64/64una subred (lo estándar para una LAN).
  • /128/128 → un host único (una sola dirección).

El :::: comprime un único tramo de grupos en cero —por eso solo puede aparecer una vez—. El simulador muestra la forma comprimida, la completa y de qué tipo es la dirección (global, link-local, ULA…) según sus bits altos:

③ IPv6 — 128 bits y la compresión ::

2001
0010000000000001
0db8
0000110110111000
85a3
1000010110100011
0000
0000000000000000
0000
0000000000000000
8a2e
1000101000101110
0370
0000001101110000
7334
0111001100110100
prefijo de red (64 bits)interface ID (64 bits)
Comprimida (RFC 5952)2001:db8:85a3::8a2e:370:7334
Completa (sin comprimir)2001:0db8:85a3:0000:0000:8a2e:0370:7334
Prefijo de red /642001:db8:85a3::/64
Tipo / alcanceGlobal unicast 2000::/3 — enrutable en Internet
Direcciones en el prefijo2^64 = 18,446,744,073,709,551,616
Subredes /64 dentro2^0 = 1

El :: sustituye una sola vez el tramo de ceros más largo. Un /64 deja 64 bits de interface ID: 2^64 direcciones por subred — más que toda la Internet IPv4 elevada al cuadrado. Por eso en IPv6 casi nunca se hace subnetting «por escasez», sino por jerarquía.

En una frase

El prefijo /n/n es solo dónde cortas la tira de bits: a la izquierda, la red; a la derecha, los hosts. IPv4 corta sobre 32 bits, IPv6 sobre 128. Todo lo demás —máscara, broadcast, subnetting, VLSM, compresión ::::— sale de ahí.

¿Y después de repartir las IPs? Toca enrutarlas. Mira Configuración OSPF para ver cómo estos prefijos se anuncian entre routers.