Instructor: En esta
lección, vamos a introducir los conceptos relacionados con
IPv6, o Protocolo de Internet versión 6.
Hasta ahora sólo
hemos hablado de IPv4, pero uno de
los problemas de IPv4 es que su espacio
de direcciones es limitado.
Esto se debe a que sólo hay 32 bits
que componen una dirección IPv4,
lo que nos da sólo 4. 2.000 millones de combinaciones de direcciones posibles.
Ahora, sé 4. 2 billones suena como un montón de
IPs, pero cuando quitamos porciones enteras de cosas,
para cosas como direcciones APIPA, direcciones de host local, IPs
privadas, y luego hubo una enorme cantidad de desperdicio
antes de que incluso empezáramos a usar
subredes, esto condujo a un gran problema,
y empezamos a quedarnos sin direcciones de red dentro
de IPv4.
Esto se conoce como agotamiento de direcciones, y es algo real.
De hecho, en noviembre de 2019, RIPE
NCC, el Registro Regional de Internet
para Europa, Asia Occidental y la antigua URSS, y
la NASA, ya han agotado
toda su reserva de direcciones IPv4.
Por suerte, el Grupo de Trabajo de
Ingeniería de Internet (IETF) ya había
empezado a mirar hacia el
futuro y desarrolló IPv6 como estándar
en 1995 con un RFC que documentaba su visión de IPv6,
al que denominaron IP Next Generation (IPNG).
Como ves, IPv6 supone una enorme mejora con respecto a IPv4 en cuanto al número
de direcciones disponibles.
En lugar de utilizar una dirección de 32 bits como
en IPv4, IPv6 utilizará una de 128 bits.
Esto te dará un espacio de direcciones mucho mayor.
De hecho, te va a dar una posibilidad
de 340 undecillones de direcciones IP.
Son suficientes direcciones
IP para todos los hombres, mujeres y niños del planeta.
Esto es dos a la 128ª potencia.
De hecho, hay muchísimas direcciones IP para cada
hombre, mujer y niño del planeta porque hay
muchísimas direcciones IP disponibles.
Puede que te preguntes:
"Oye, hemos pasado de IPv4 a IPv6".
¿Qué ha pasado con la versión 5?
¿Por qué pasamos directamente a la versión 6?
Bueno, se creó la versión 5, pero nunca se adoptó plenamente como
protocolo o norma oficial.
Y por lo tanto, nunca entró en producción.
En cambio, muchos de esos conceptos
que se desarrollaron en la versión
5, porque era un protocolo experimental,
se incorporaron a IPv6 cuando se convirtió
en norma oficial.
Hablemos de las ventajas de IPv6.
Una de las mayores ventajas
es que el espacio de direcciones es mucho
mayor gracias a esas direcciones de 128 bits.
Además, IPv6 también
aumentó la eficiencia de nuestras redes al eliminar
el tipo de flujo de datos de difusión de IPv4.
Ahora, IPv6 también es más seguro porque
no hay fragmentación de paquetes o datagramas
dentro del estándar IPv6.
Tampoco hay unidades de transmisión máximas
para el descubrimiento dentro de cada sesión, a diferencia de IPv4,
que contiene una MTU con un tamaño determinado para cada paquete.
En IPv4, si te enviara un paquete que fuera
más grande que el tamaño máximo de tu unidad de transmisión,
lo fragmentaría y lo enviaría
por la red.
Y cuando llegaba a su destino,
se volvía a montar y se leía.
En realidad, se trataba de un riesgo para la seguridad.
También requería un procesamiento adicional
y podía ralentizar las redes, ya que se convertía
en una forma muy ineficiente de hacer las cosas en nuestras
redes modernas con velocidades
de conexión a Internet más altas.
Por eso, con IPv6, decidieron eliminar por
completo la fragmentación.
Ahora bien, además de proporcionar todas estas
nuevas ventajas, los creadores de IPv6 también
fueron muy listos y se dieron cuenta de que para que IPv6 se adoptara
y aceptara plenamente, tendría que ser compatible hacia
atrás con IPv4 y permitir que tanto IPv6 como IPv4 coexistieran en la misma red.
Al fin y al cabo, ya a finales de la década de 1990
se estaba desarrollando y lanzando IPv6 y
ya había montones de redes
informáticas en todo el mundo.
Así que no sería factible
cambiar todo en un solo día.
Piense en ello como en la migración
actual de los vehículos de gasolina
a los eléctricos.
Esto está ocurriendo durante toda la década
de 2020 y hasta la de 2030.
Ahora bien, sería imposible que dijéramos:
oye, el 1 de enero de 2025 nadie podrá volver a utilizar
vehículos de gas.
Todos ellos serán sustituidos
por vehículos eléctricos a partir de esa fecha.
Si un gobierno intentara hacer
eso, probablemente se encontraría con una revolución
en sus manos, porque mucha gente ya tiene coches de gasolina y ha gastado
mucho dinero e invertido en esos coches y en la infraestructura
para mantenerlos.
Por eso, no vamos a sustituir todos los coches
de gas de la noche a la mañana.
En su lugar, va a haber esta lenta transición de la
energía de gas a la eléctrica que se prolongará hasta 2030 o tal vez 2040,
a medida que cada vez más de los coches más nuevos que se
venden en el mundo se vendan como eléctricos
y dejen de vender vehículos de gas.
Pues bien, con IPv6 ocurre exactamente lo mismo.
Así pues, IPv6 permite que tanto IPv4 como IPv6 coexistan en las
mismas redes y los equipos que las
ejecutan pasan a denominarse de pila
dual, lo que significa simplemente
que pueden ejecutar simultáneamente
los protocolos IPv4 e IPv6 en los mismos dispositivos
de red.
Con dispositivos de doble pila, si un cliente soporta IPv6,
el switch del router preferirá usar IPv6 y hablará
bajo ese método.
Ahora, si un dispositivo no es capaz de soportar
IPv6, se da la vuelta y dice, vale,
hablaré contigo usando el antiguo protocolo IPv4.
Así podré seguir apoyándote.
Otro método que utilizamos se conoce como tunelización.
Aquí es donde IPv6 va a ser tunelizado sobre un dispositivo IPv4.
Esto permite que los routers IPv4 más antiguos
sigan transportando tráfico IPv6.
Básicamente, IPv6 se va a tunelizar
como mecanismo para encapsular los paquetes IPv6
en cabeceras IPv4 y transportar estos datos IPv6 a través
de los routers IPv4 y otras infraestructuras
ya existentes.
Para ello, crea un túnel punto a punto entre
el origen y el destino y, a continuación,
encapsula esa información.
Esto permite que los clientes y servidores IPv6 aislados puedan
comunicarse sin necesidad de actualizar
toda la infraestructura de routers y conmutadores
que aún utilizan IPv4 que pueda existir entre ellos.
Puede que algún día veamos cómo IPv4 se retira por completo.
Pero hasta ahora no ha ocurrido.
Y personalmente, no aguanto la respiración.
Según algunos artículos
que he leído, las predicciones apuntan a que
IPv4 seguirá con nosotros al menos hasta 2040, así que vas
a tener que saber trabajar tanto con IPv4 como con IPv6
en el futuro inmediato como técnico de redes.
Otra ventaja de IPv6 es que tiene una cabecera simplificada.
Así, en lugar de los 12 campos de IPv4, en IPv6 sólo
tenemos cinco, lo que hace que la cabecera sea
mucho más eficiente a la hora
de enviarla por nuestras redes.
Quizá se pregunte cómo
es una cabecera IPv6.
Te lo voy a enseñar, pero ten en cuenta que no necesitas
memorizarlo para el examen.
En su lugar, esto es sólo para mostrar los diferentes
campos que estaban en IPv4, que está en la parte superior,
frente a IPv6, que está en la parte inferior.
Y ahora puedes ver lo mucho
más sencillo que es IPv6 sobre IPv4.
Muy bien, volvamos a algunas cosas que
sí necesitas entender para el examen.
¿Cómo es una dirección IPv6?
Bueno, ya he dicho que tiene 128 bits de longitud,
lo que significa que tendría 128 unos o ceros si lo escribiéramos
en binario, y eso me parece
una muy mala idea, así que no vamos a hacerlo.
Podríamos utilizar la notación
decimal con puntos como en
IPv4, pero aún así tendríamos que escribir
muchos octetos porque necesitaríamos 16 octetos para representar los 128 bits.
Para resolver este problema,
el IETF decidió utilizar dígitos
hexadecimales.
Verás, el hexadecimal es base-16, que puede que
recuerdes o no de tus clases
de álgebra en el instituto.
Ahora, en hexadecimal, cada
dígito hexadecimal es en realidad cuatro bits.
Y esto nos va a permitir representar una dirección IPv6
combinando cuatro dígitos hexadecimales juntos para
formar lo que llamamos un segmento.
Ahora, un segmento va a tener 16 bits en él.
Está representado por esos cuatro dígitos hexadecimales.
Y luego vamos a añadir dos puntos
y luego vamos a seguir añadiendo
segmentos hasta llegar a 128 bits, que va a tomar ocho
segmentos, cada uno de los cuales tiene
cuatro dígitos hexadecimales cada uno.
Esto me da un total de 32 dígitos hexadecimales, que
sigue siendo bastante largo.
Ahora, con 128 bits representados en una dirección IPv6, esto significa
que no tendremos más de 32 dígitos hexadecimales dentro de
todos estos segmentos.
Ahora bien, ¿por qué he dicho que no más de 32 dígitos de longitud
para el total de estos ocho segmentos?
¿Por qué no serían simplemente 32 dígitos hexadecimales,
ya que 32 dígitos multiplicados por cuatro bits por
dígito nos darían 128 bits?
Bueno, esto se debe a que IPv6 en realidad nos permite utilizar
una taquigrafía para poder simplificar
nuestras larguísimas direcciones IPv6.
Ahora bien, las reglas de taquigrafía son muy importantes
porque en ellas se pueden encontrar preguntas de examen.
Así que si tienes cuatro ceros para un segmento,
puedes poner un cero en su lugar y eliminar
los ceros a la izquierda.
Por ejemplo, supongamos que tengo una dirección IPv6
realmente larga de 2018:0000:0000:0000:0000:0000:4815:54ae.
Utilizando la regla simple,
puedo sustituir todos los segmentos que tienen varios
ceros por un solo cero.
Esto me daría 2018:0:0:0:0:0:4815:54ae.
Muy bien, esto redujo mi número de dígitos hexadecimales
de 32 a sólo 17, por lo que es aproximadamente la mitad de la longitud.
Estamos mejorando, pero no voy a detenerme ahí.
Hay otra regla que puedo
utilizar en el mundo de la taquigrafía IPv6.
Esta regla dice que si hay múltiples segmentos
que tienen todos ceros en ellos
y no hay otros dígitos hexadecimales representados
allí, puedo resumir eso usando dos puntos dobles y
sacar todos esos ceros.
Ahora bien, esta regla es
especial porque sólo se puede hacer lo de los dos puntos dobles
una vez dentro de una dirección IPv6.
Así que utilizando mi regla de los
dos puntos dobles, puedo resumir 2018:0:0:0:0:0:4815:54ae en eliminar todos
esos cinco conjuntos de ceros y sustituirlos
por dos puntos dobles y obtener
2018::4815::54ae.
Así que pasé de 32 dígitos hexadecimales
a 17 dígitos hexadecimales
y ahora he bajado de 17 dígitos a 12
dígitos, mucho más pequeño,
mucho más fácil de trabajar.
Ya ves lo útil que resulta esta taquigrafía.
¿Cómo se reconoce una dirección IPv6
frente a una IPv4?
Bueno, la primera forma es mirando lo que es IPv4.
IPv4 siempre va a utilizar la notación decimal con puntos utilizando
cuatro octetos.
Ahora, IPv6, por otro lado, va
a utilizar dos puntos entre sus números
y va a ser escrito en hexadecimal.
Muy bien, ahora, una de las preguntas
que podrías ver el día del examen
es identificar una dirección IPv6 cuando veas una.
Por ejemplo, te pueden hacer una pregunta del
tipo ¿cuál de las siguientes es una dirección IPv6?
Esta será una pregunta justa que hacerle.
Tendrás algunas opciones como 192. 168. 1. 1, que sabemos que
no es porque es una dirección IPv4.
Obtendrás 12:34:56:78:90:AB
o 1234::5678::90AB.
Un momento, los dos últimos que acabo de decir
son muy parecidos, ¿no?
Sí, pero sólo una de ellas es una dirección IPv6 válida.
¿Sabes cuál es?
Porque la mayoría de los estudiantes se confunden aquí.
La segunda opción no es una dirección IPv6.
En su lugar, es una dirección MAC.
Recuerda, las direcciones MAC,
que son direcciones físicas de Capa
2, siempre van a tener 12 dígitos hexadecimales y
separados por dos puntos.
Normalmente, se escriben
en seis grupos de dos dígitos cada
uno, separados por dos puntos.
Una dirección IPv6, por otro lado, siempre debe escribirse
en segmentos de cuatro dígitos cada uno,
y siempre deben tener 16 segmentos a menos que
veas dos puntos dobles.
En este ejemplo, tenemos dos puntos dobles entre el
primer y el segundo segmento de nuestra tercera opción.
Así que esta es una buena abreviatura que podemos usar
e identificamos que era una dirección IPv6 porque
quitamos todos los ceros entre
el primer y segundo segmento dentro de esta dirección.
Así que si cuentas algo que
parece una dirección IPv6, y tiene
12, exactamente 12 dígitos hexadecimales separados por dos puntos
simples, y no ves dos puntos
dobles en ninguna parte, eso es
una dirección MAC, no una dirección IPv6.
De lo contrario, si se parece a esto
e incluye dígitos hexadecimales,
el día del examen será una dirección IPv6.
Para el examen, sólo tienes que ser capaz
de reconocer cómo es una dirección IPv6,
y deberías ser capaz de resumir una quitando
ceros y consolidándolos usando ese truco
de los dos puntos dobles.
Si puedes hacer estas dos cosas,
estarás bien para el direccionamiento IPv6 el día del examen.
Ahora, cuando se trata de direccionamiento IPv6,
hay tres tipos diferentes de direcciones que puedes utilizar:
direcciones unicast, direcciones multicast
y direcciones anycast.
Una de las cosas interesantes de IPv6 que
realmente lo distingue de IPv4 es que podemos
asignar múltiples direcciones IPv6 a una única
interfaz en un cliente.
Y estas asignaciones pueden ser una
mezcla de cualquiera de estos tres tipos
diferentes: unicast, multicast y anycast.
Así, aunque sólo tengas una tarjeta de interfaz de
red en tu estación de trabajo o
portátil, podrías tener varias direcciones
IPv6 y distintos tipos de direcciones IPv6
asignadas a esa única tarjeta.
Las direcciones unicast se van a utilizar
para identificar una única interfaz.
Se dividen en direcciones unicast de enrutamiento global
y direcciones link-local.
Una dirección unicast enrutada globalmente
es similar a lo que tenemos como dirección pública con IPv4 utilizando
direcciones unicast de clase A, B y C.
Ahora, en IPv6, una dirección unicast enrutada
globalmente siempre
va a empezar con su primer segmento conteniendo 2000-3999.
Si ves 2000-3999 como primer segmento, significa que es una
dirección unicast de enrutamiento global.
Por ejemplo, la dirección
IPv6 2584:0db8:8583:1234:5678:882e:0370:7334 se enrutaría
globalmente como dirección unicast
porque su primer segmento contiene
2584, que está entre 2000 y 3999.
En cambio, una dirección link-local,
también llamada dirección de uso local,
se utiliza como una dirección IP privada en IPv4.
Una dirección link-local en IPv6
sólo se puede utilizar en una red
de área local y siempre va a comenzar con FE80 como su primer segmento dentro
de una dirección IPv6.
Ahora, cada vez que un sistema IPv6 arranca, va a crear
una dirección link-local para cada interfaz
IPv6 en ese sistema, incluso si una dirección globalmente
enrutable ya fue configurada
manualmente u obtenida a través
de un protocolo de configuración como DHCP.
Para ello, va a utilizar algo conocido como
SLAAC, la autoconfiguración de direcciones sin estado o S-L-A-A-C.
Con la autoconfiguración sin estado,
el host no necesita obtener direcciones
u otra información de configuración
de un servidor centralizado como DHCP.
En su lugar, puede asignarse a sí mismo de forma independiente
una dirección link-local, comprobar
la unicidad de esa dirección link-local, asignarse
a sí mismo la dirección link-local, contactar
con el router y proporcionar instrucciones al nodo sobre cómo
proceder con la autoconfiguración.
E incluso puede configurar la dirección unicast global
que desea utilizar.
Volveremos sobre este concepto dentro de unos minutos
cuando profundicemos un poco más
en él al empezar a hablar de EUI-64 y el protocolo de descubrimiento
de vecinos, ya que ambos procesos
se utilizan con el protocolo de autoconfiguración
de direcciones sin estado conocido como SLAAC.
A continuación, tenemos las direcciones multidifusión.
Ahora, las direcciones de multidifusión se
utilizan para identificar un grupo de interfaces,
de modo que un paquete pueda enviarse a una dirección de multidifusión
y, a continuación, entregarse a todas las interfaces de un grupo.
En IPv6, una dirección multicast siempre contendrá FF como los dos
primeros dígitos dentro del primer segmento.
Si ve FF al principio de una dirección IPv6,
recuerde que es multicast.
El último tipo de dirección que
tenemos se conoce como dirección anycast.
Las direcciones Anycast se utilizan para identificar un conjunto de interfaces
de modo que un paquete pueda enviarse a cualquier miembro de un conjunto.
En realidad, las direcciones Anycast se asignan
desde el espacio de direcciones Unicast.
Así que realmente no hay manera
de determinar si una dirección IPv6 es unicast o anycast
sólo mirando la dirección IPv6.
Cuando se trata de multidifusión o enlace
local, es muy fácil hacerlo,
pero no es fácil distinguir
entre unidifusión y anycast.
Muy bien, volvamos atrás
y hablemos un poco más sobre SLAAC, el proceso
de autoconfiguración de direcciones sin estado.
Ahora, como he dicho, en IPv6, hay un
proceso de auto-configuración conocido como SLAAC, y
lo utilizamos para descubrir la red
actual en la que se encuentra la
interfaz y luego le permitimos seleccionar su propio
ID de host basado en su dirección MAC utilizando un proceso conocido como EUI-64.
Ahora, este proceso EUI-64 o Identificador Único Ampliado permitirá a un
host asignarse a sí mismo un identificador
de interfaz IPv6 único de 64 bits denominado EUI-64.
Ahora, esta dirección en formato EUI-64 se obtiene
utilizando la dirección MAC de 48 bits de la interfaz.
La dirección MAC se separa primero en dos partes de 24 bits.
La primera mitad de la dirección MAC contendrá el OUI (Organizational
Unique Identifier).
Y la segunda mitad va a contener la
tarjeta de interfaz de red específica.
Ahora, entre ellos,
vamos a meter un valor hexadecimal de 16 bits de FFFE.
De esta forma, puedo tomar 24 bits, 16 bits y 24 bits
y juntarlos para obtener una dirección EUI de 64 bits.
Ahora, esto te da los 64 bits que vas a necesitar
para identificar tu interfaz en esa red.
A continuación, la interfaz utilizará la detección
automática para determinar la
red en la que se encuentra y añadir la parte de red de la dirección
IPv6, que serán los primeros 64 bits de nuestras direcciones.
Ahora, vamos a poner los primeros 64
bits para representar la red delante de los 64 bits
de la dirección EUI-64 que creamos a partir de nuestra dirección MAC para
crear una dirección IPv6 unicast globalmente enrutable que ahora
podemos utilizar.
Así que puedes ver como todo esto funciona junto
usando esa dirección MAC para
crear esta dirección globalmente enrutable.
Ahora, DHCP también se puede utilizar dentro de IPv6
si prefiere usarlo.
Si lo haces, tendrás que utilizar el protocolo DHCPv6.
Esto le permitiría tener
DHCP asignar automáticamente las cosas de un servidor DHCPv6.
Pero como el proceso de autoconfiguración con EUI-64 ya está integrado
por defecto en el protocolo IPv6, no es necesario
utilizar DHCPv6.
Pero si quieres usar DHCPv6, puedes hacerlo, y te permitirá
asignar qué direcciones
va a obtener cada interfaz en lugar de permitirles
usar el protocolo de
autoconfiguración de SLAAC.
Ahora, como he dicho, IPv6 elegirá su propia dirección basada
en su dirección MAC por defecto, entonces va
a utilizar esta cosa conocida como NDP o el protocolo
de descubrimiento de vecinos para
aprender acerca de las otras direcciones de capa 2 en la red
basada en sus direcciones MAC
y luego elegirá su propio ID de host.
Ahora, para el examen, no necesitas conocer NDP en profundidad,
pero deberías entender que NDP, este protocolo
de descubrimiento de vecinos, se usa en IPv6 y toma muchas de
las funciones del anuncio de router
y el descubrimiento de vecinos y las maneja
por ti.