Bueno, como la fiebre me ha dado un respiro, vamos con la tercera parte de IPv6. ¿Qué aún no has leído la primera y segunda parte? 😱 Las tienes disponibles aquí:

Introducción IPv6:

Direccionamiento IPv6:

Hoy toca: SUBREDES ¡GO! Image
Si recordáis del segundo hilo nos quedamos en que la notación de subredes en IPv6 es similar al CIDR de IPV4. En este caso usamos IPv6-address/prefix.

Por si acaso os dejo una tabla que me pasaron el otro día y me resulto muy útil: Image
Entremos en materia. Lo que en IPv4 era una "IP Pública" en IPv6 pasa a llamarse una Global Unicast Address o GUA.

La estructura de una GUA es la siguiente: Image
En una GUA en primer lugar tenemos los 48bits del Global Routing Prefix y después tenemos los 16bits del identificador de subnet. Ahí. Bien colocados.

Fijaos la diferencia con IPv4, donde para saber la subred los bits eran "prestados" de la porción de dirección del host.
Nota: A ver, que el campo de subred sea de tamaño fijo y siempre sea "independiente" no es TOTALMENTE cierto.

En realidad el RFC de IPv6 no específica cuantos bits se han de usar para la subnet, pero se usan una serie de recomendaciones / buenas prácticas para facilitarlo.
Y por último tendríamos la Interface ID, que es la parte que identifica inequívocamente esa interfaz dentro de esa subred. Como tenemos 64 bits dedicados exclusivamente a ello, tenemos 2^64 direcciones para cada subred... ¿Suficiente no?
Por cierto, es importante que tengamos claro que en IPv6 las direcciones con todo 0s o todo 1s son direcciones "legales", algo que en IPv4 no (la primera era la dirección de la subred y la última la de broadcast).

¡Pues mira ganamos 2 direcciones más! 😂😂😂... ¡es broma!
Bueno, pues teniendo esto claro, vamos con un poco de subneteo básico. Tengo que decir que mi sensación es que hacer subredes en IPv6 es más fácil que en IPv4... "Pero que dicessss!!!" "Herejeee!!"... Vamos al lío y luego me contáis:
En primer lugar, vamos a hacer subnetting dentro de lo que serían direcciones IP públicas o Global Unicast Address (GUA), así que vuelvo a colocar la imagencita de la estructura de una GUA:

¡Aprendizaje por repetición, en esta cuenta somos innovadores educativos! 😜 Image
Bien, cómo tenemos disponibles 16 bits para identificar la subred, las mismas se representarían con 4 hexadecimales, o sea: 0000, 0001, 0002...0009, 000A, 000B...

16 primeras subredes: 0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007, 0008, 0009, 000A, 000B, 000C, 000D, 000E, 000F
¿16 siguientes?
0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017, 0018, 0019, 001A, 001B, 001C, 001D, 001E, 001F

¿Cuáles serían las 16 últimas?

Si, efectivamente: FFF0, FFF1, FFF2....FFFF

Vale... esto es muy fácil...
Pero como dije antes podemos usar más de 16bits para identificar la subred, en este caso "tomando prestados" bits de la interface ID (noooo!!!), por lo que (como en IPv4) reduciríamos el número de direcciones disponibles en dicha subred. Esto no suele utilizarse en redes finales.
En general se recomienda que cada segmento de red "final" utilice un prefijo /64 (que sería lo que te debería entregar tu proveedor digamos). ¿Y esto porque? Pues porque es uno de los requisitos para que funcione la "stateless address autoconfiguration". ¡LA MAGIA!
Pero bien como la cosa puede complicarse, voy a dedicar 3 o 4 twits a subnetear, para que veáis que la cosa puede complicarse, AUNQUE REPITO, que en el 99% de los casos no va a ser necesario.

✋-"¿Pero esto lo voy a usar en la vida real?"
👻-"..."
Lo voy a ir haciendo con ejemplos, os voy dando direcciones IPv6 y su prefijo, y obtenemos el valor del prefijo y los bits de interfaz. Además vamos a averiguar cuál sería la primera y última dirección de la subred a la que pertenece dicha IP. ¿Mola no?
Imaginemos esta IPv6: 2001:A2:10::/80

Primero la pasamos a forma completa:

2001:00A2:0010:0000:0000:0000:0000:0000

Prefijo /80 serían 5*16, por tanto:

PREFIJO: 2001:00A2:0010:0000:0000
INTERFAZ: 48bits restantes (16+16+16)

Vale...
¿Y cuáles serían la primer y última dirección de la subred a la que pertenece la IP? Vamos a ello:

PRIMERA: 2001:00A2:0010:0000:0000:0000:0000:0000 ➡️ 2001:A2:10::

ULTIMA:
2001:00A2:0010:0000:0000:FFFF:FFFF:FFFF ➡️ 2001:A2:10::FFFF:FFFF:FFFF

¡BRAVO!
¿Lo vas pillando? Vamos con otro

2001:A2:10::/32

Forma completa:
2001:00A2:0010:0000:0000:0000:0000:0000

el /32 serían 2*16, por tanto:

PREFIJO: 2001:00A2
INTERFAZ: 96bits restantes

PRIMERA DIRECCIÓN: 2001:A2::
ÚLTIMA DIRECCIÓN: 2001:A2:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
✋-"Bien, he dejado de ser experto vulcanólogo y ahora soy experto IPv6"
👻-"Vamos con un último ejemplo..."

Imaginemos esta IPv6: 2016:12:5:: /3

Pasamos a forma completa:
2016:0012:0005:0000:0000:0000:0000:0000

Y ahora el prefijo: /3... ¡/3!... ¡¡/3!! ¿? 🤯🤯🤯

👇👇👇
El prefijo sería... sería... ¿Pero como hacemos esto?

Tendríamos que pasar a forma binaria el primer 2 ➡️ 0010 y tomar solo los 3 primeros bits, lo restante sería para la interfaz (125 bits).

¿Lío? SI ¿Se usa? Nada, pero debes saber que se puede...
TE repito que el RFC4291 recomienda que las subredes cuenten con un prefijo /64. ¡Y PUNTO!

La cosa es que el equipo de IPv6 intentó que no les pasara (de nuevo) aquello de Bill Gates de "640 KB deben ser suficientes para cualquier persona" y lo hicieron a lo grande...
Dejaron tan abierto el abanico de posibilidades, por lo que pudiera venir en el futuro, que IPv6 es muy complejo y a la vez muy simple.

Desde que todo sea magia y tú no tengas ni que saber que lo usas, a todo lo contrario y tener el control total...
Veamos un último ejemplo, imaginemos esta dirección:

2001::/127

¿Cuántas direcciones tiene su subred?

128-127 (prefijo) = 1 bit ➡️¡2 DIRECCIONES!

2001:0000:0000:0000:0000:0000:0000:0000 y
2001:0000:0000:0000:0000:0000:0000:0001

¿A que mola? ¡Me encanta IPv6!
Y nada, para que podáis practicar os dejo por aquí una calculadora IPv6 en la que podéis poner en práctica lo aprendido en los 3 hilos e ir creando subredes, y validándolas, etc.

vultr.com/resources/subn…

Es importante que tengáis esto muy claro antes de seguir avanzando.
Y hasta aquí por hoy, en el próximo hilo (en unos días si el Covid abandona mi cuerpo por fin), avanzaremos en los tipos de IPv6, en métodos de configuración de las Global Unicast Address, link-local, loopback y esas cosas...

¡Gracias por seguir este hilo y nos vemos pronto!

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with We are Dementors!

We are Dementors! Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @wearedementors

10 Jan
"A mi me gustaría intentarlo, pero donde estoy ahora me pagan 700 euros al mes y estoy indefinido. No puedo arriesgarme." - Frase real de un chaval de veintipocos años que me llama para pedirme consejo sobre un proyecto profesional...

El hilo de hoy se llama: "Miedo" 👇👇👇
Tengo claro que lo que YO sienta, piense o haga no puedo intentar extrapolarlo a los demás, PERO: Tienes 20ypocos años, vives con tus padres, sin deudas, no tienes nadie a tu cargo...

¿Y aún estás pensándotelo? ¡¡VAMOS HOMBRE!! Si no lo haces ahora ¿cuándo lo vas a hacer?
Es más, muchas veces en la vida somos muy dados a decir: "Que suerte tuvo tal" o "Si yo hubiera podido hacer aquello...", pero son autoengaños que nos hacemos a nosotros mismos.

¿Realmente si hubieras tenido la oportunidad lo hubieras hecho? ¿O hubieras puesto alguna excusa?
Read 15 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(