Hoy continuamos con nuestra disección de cómo funciona el sistema de resolución de nombres (DNS) y las tendencias en las que están convergiendo los proveedores de acceso a Internet en su migración a nuevos protocolos como IPv6.
DNS E IPV6
En nuestro último post, analizamos las distintas técnicas que tienen nuestros equipos para localizar los recursos de red utilizando el protocolo IPv4. Sin embargo, IPv6 no está a la vuelta de la esquina, está ya con nosotros. Aunque los operadores todavía no lo han desplegado completamente de forma masiva, muchas empresas ya están trabajando con dicho protocolo.
Con sus 340 sextillones de direcciones IP disponibles, la escasez de IPs no va a ser una limitación. También genera notables mejoras en cuestión de rendimiento en su velocidad y concibe la seguridad como algo nativo. Esto incluye el protocolo IPSEC no como un ‘añadido’, sino como parte del protocolo mismo.
Respecto a la resolución de nombres (DNS), la importancia para nosotros como usuarios crecerá exponencialmente. No hay más que ver qué notación utiliza una dirección IPv6:
2a00:1450:4003:0802:0000:0000:0000:2003
(www.google.es)
Si antes era complicado decirles a los compañeros de soporte técnico nuestra dirección IP por teléfono para que se conecte a nuestro equipo, imaginaos la de tiempo que podemos tardar en ‘recitarla’ con una dirección de este tipo. Hasta 32 caracteres con números y letras de la A a la F (si usamos la notación más larga). De locos, ¿no? Pues eso no es todo, porque cada usuario tendrá al menos dos IPsv6, una local para conectarse a los equipos de su misma red de capa 2, y otra pública para llegar a recursos fuera de nuestra red (redes remotas y rutadas).
Se hace, pues, imprescindible el buen funcionamiento del sistema DNS, más amigable y práctico. El orden y la disciplina de un buen inventario para todos esos nombres, dominios y subdominios será fundamental y una pieza clave si falla este servicio. Ahora se hacen más necesarias que nunca su disponibilidad, integridad y confidencialidad (conceptos fundamentales en la ciberseguridad). Los servidores DNS serán un objetivo muy goloso para los ciberdelincuentes, ya que su suplantación puede redirigirnos a paginas mal intencionadas.
Pero vayamos por partes…
CÓMO SABEMOS SI ESTAMOS NAVEGANDO CON IPV4 O IPV6
Cuando nuestro equipo dispone de IPv6, el Sistema Operativo decidirá según su versión y políticas internas si utilizar uno u otro protocolo.
Normalmente, con Windows 10 y MAC-OS la preferencia es siempre IPv6, pero habrá que revisar bien la documentación del fabricante y sus valores de registro para confirmarlo de forma fehaciente. Es posible que un simple ping a www.google.com resuelva con IPv4 y el navegador utilice IPv6.
Cuando un equipo consulta, por ejemplo, la dirección IP de www.youtube.com puede utilizar un servidor DNS IPv4, solicitar información de ese hosts y recibir todas las direcciones que tenga, ya sea en IPv4 (registros aaa ) o IPv6 (registros aaaa):
Esta independencia del protocolo permitirá realizar un tránsito ‘suave’ entre IPv4 e IPv6.
Pero… ¿Cómo sabemos qué protocolo estamos usando?
La cuestión es peliaguda ya que, normalmente, para que toda esta complejidad técnica de resolución de nombres de hosts y direcciones extrañas sea transparente al usuario, las aplicaciones actuales no suelen indicar si utiliza uno otro protocolo.
Por ejemplo, para conocer si nuestro navegador web está accediendo a un servidor web por IPv6 tenemos varias opciones:
- Realizar un test en alguna web específica para tal efecto como test-ipv6.com:
(Ejemplo de navegación incorrecta por IPv6, puntuación 0/10).
(Ejemplo de navegación correcta por ipv6 , puntuación 10/10).
2- Instalar un plugin en el navegador como ‘if ipv6’.
Nos aparecerá un símbolo en la esquina superior derecha con un 6 o un 4 indicándonos el protocolo que estamos usando con ese destino.
Todo esto está muy bien, pero… En la capa de aplicación del modelo OSI, no solo existe el protocolo HTTP/HTTPS utilizado por los navegadores. ¿Qué pasa con el resto de aplicaciones como FTP, SAMBA o SMTP? Pues que no lo tendremos tan sencillo.
Actualmente, las aplicaciones cliente-servidor necesitan de una dirección IP para conectar:
- Para IPv4 utilizaremos la notación tradicional:
X.Y.Z.W
- Para IPv6 utilizaremos la notación utilizando corchetes
- Si utilizamos por Nombre de host:
www.trevenque.es -> resolución DNS -> IPv4 e IPv6 -> Política de prioridad del Sistema Operativo -> Conexión con protocolo IPv4 ó IPv6 (según elección realizada).
Este último punto es el complicado. A menos que la propia aplicación nos lo diga o tenga algún tipo de herramienta o plugin para ayudarnos, no sabremos si nos estamos conectando con uno u otro protocolo. Esta transparencia al usuario dificulta muchísimo las labores de diagnóstico cuando la conexión falla.
¿Y qué hacemos ahora?
Llegado el caso, nuestra última posibilidad es realizar una captura a bajo nivel de los paquetes y conexiones que salen de nuestro equipo con herramientas tipo Wireshark:
Así podremos analizar las IPs de origen, las IPs de destino y los protocolos utilizados.
Se abre así una nueva puerta a nuevos problemas asociados al ‘dual stack‘ (utilizar los dos protocolos IP al mismo tiempo). Podríamos optar por utilizar solo uno de ellos, claro, pero estaríamos ‘invisibles’ a una parte de Internet y viceversa. Esta transición durará muchos años debido a la cantidad de equipos y sistemas funcionando en la actualidad, algunos tan antiguos como el propio Internet. No nos quedará otro remedio que lidiar con ellos, e ir aprendiendo cada día un poquito más de este fascinante e interminable mundo de la tecnología.
En el siguiente post, analizaremos finalmente qué sistemas existen para hacer un poquito más seguras nuestras consultas DNS, reforzar la seguridad de nuestros servidores y evitar ser víctimas de phising y ‘hombres en el medio’… 🙂