Cloud Computing Fundamentals 5.2 - Conceptos Finales de Networking para la Nube

Autor: Elias Velázquez

Elias Velázquez

La Recepcionista y La Guía Telefónica

Repaso rápido

Comprender conceptos fundamentales de redes te prepara para construir buenas arquitecturas en la nube, y para diagnosticar fallos cuando tus recursos no se están comunicando entre sí como deberían o estás esperando tráfico desde el afuera y tu recurso rechaza conexiones cuando no debería.

En la parte anterior vimos algunos de estos conceptos organizados en bloques:

Hoy continuamos con los bloques finales, y con el cierre definitivo de la serie Cloud Computing Fundamentals.

Bloque 3: La Recepcionista (Traducción de Direcciones y Salida a Internet)

1. IPs Privadas y Públicas

En la parte anterior de esta serie vimos que la dirección IP nos indica la calle y la casa de nuestra red, y que mediante subnets podíamos aislar ciertas zonas.

Sin embargo, para dar el salto hacia cómo se comunica esto con la Internet global, tenemos que hacer una distinción vital: existen direcciones IP privadas y direcciones IP públicas.

Si quisiéramos ser exactos, tu red interna (ya sea el Wi-Fi de tu casa o tu VPC en AWS) funciona como un gran edificio corporativo privado.

Entonces, ¿qué ocurre si la base de datos que tenés escondida en tu Subnet Privada (Interno 402) necesita salir a Internet para descargar una actualización de seguridad? No puede usar su IP privada porque Internet no sabría cómo devolverle el paquete.

Aquí es donde entra en acción el NAT (Network Address Translation).

2. NAT (Network Address Translation)

Antes de que nuestro proveedor de Internet (ISP) pueda redireccionar el paquete, la IPv4 de origen privada debe ser traducida a una dirección pública.

Aquí es donde entra en acción el NAT (Network Address Translation). NAT es utilizado para traducir entre direcciones públicas y privadas y se suele llevar a cabo en el router que conecta la red interna con la red del ISP.

Para explicar, a nivel muy elemental, cómo funciona NAT, vamos con la analogía de la Recepcionista.

Nuestra red es un edificio corporativo. Cada empleado tiene un número de interno telefónico privado (la IP Privada).

Si un empleado quiere pedir una pizza para almorzar, no puede darle su número de interno al restaurante, porque nadie desde la calle puede marcar un interno directamente. En cambio, el empleado llama a la recepcionista (el Router con NAT), quien pide la pizza utilizando el número telefónico público y oficial del edificio (la IP Pública).

Cuando el repartidor llega con la pizza, la recepcionista sabe exactamente a qué empleado y oficina (interno privado) entregársela.

¿Sabes qué es lo más loco? Que vos, y cada hogar con internet, tienen su propia "recepcionista", que es el router hogareño. Asi que cada vez que usas internet, estás usando NAT. De hecho, es gracias a NAT que estás pudiendo leer este blog post.

El servidor que aloja este artículo no tiene idea de tu IP privada, solo de tu IP pública, la IP de tu router. Cuando entraste a https://elingenieroconsciente.com, hiciste una petición desde tu máquina usando tu IP privada.

Esta petición llego al router, mediante NAT hizo la traducción y largó la petición a la red de tu ISP. El ISP llevó la petición hasta el servidor, el servidor respondió a la IP indicada en el paquete, y una vez la respuesta del servidor llegó a tu router, el router te lo devolvió a tu máquina. Nunca nadie supo de tu "número de interno", pero el paquete te llego en tiempo y forma y específicamente a la máquina que usaste para entrar al blog.

¿Magia negra? Sí, lo es (?

El Concepto Aplicado en AWS: Internet Gateway y NAT Gateway

En la consola de AWS, el concepto de conectividad hacia el exterior lo vas a materializar mediante dos componentes dentro de tu VPC (Virtual Private Cloud):

Infografía con conceptos del Bloque 3

Bloque 4: La Guía Telefónica (Capa de Aplicación y la Identidad en la Web)

1. Clientes y Servidores

Hemos mencionado varias veces el término "servidor", y seguramente lo hayas leído más de una vez en cursos, artículos, etc.

El término servidor hace referencia a un host que ejecuta aplicaciones de software que proveen información o servicios a otros hosts conectados a la red. Aunque usamos estos servicios todos los días para acceder al correo, comprar en tiendas en línea, o leer blog posts super interesantes de un tal "Ingeniero Consciente", la mayoría de aplicaciones de internet se basan en complejas interacciones entre servidores y clientes, de las cuales rara vez somos conscientes.

Para comunicarnos a nivel de aplicación (Capa 7 del Modelo OSI), las computadoras y routers son extremadamente felices utilizando direcciones IP (ej: 198.51.100.24).

El problema es que nosotros, torpes humanos, somos generalmente malos para recordar números aleatorios. Es mucho más sencillo manejarnos por nombres. Por eso se inventó DNS.

2. DNS (Domain Name System)

El Domain Name System o DNS es un sistema que traduce nombres de dominio legibles (como example.com ) en direcciones IP entendibles por máquinas.

Para entender cómo funciona el DNS por dentro, nos apoyaremos en la analogía de la guía teléfonica. Imaginate que querés llamar por teléfono a un contacto pero no sabés su número exacto.

  1. Tu Libreta Personal (Caché Local): Antes de marcar, revisás la agenda de tu teléfono. En el mundo web, tu navegador consulta su propia memoria caché. Si ya visitaste la página hace poco, el número ya está ahí guardado y la llamada sale directo.
  2. Llamar al Operador (DNS Resolver): Si no tenés el número guardado, marcás al operador de asistencia (el Resolver DNS, que suele ser el de tu ISP o uno público como el 8.8.8.8). Le decís: "Hola, necesito llamar a elingenieroconsciente.com" (guiño, guiño).
  3. El Recepcionista Central (Root Server): Si el operador tampoco tiene el número anotado en su escritorio, llama a la Recepción Central del país (Root Server). La recepción le dice: "No tengo el número de esa persona en particular, pero acá tenés el contacto de la oficina que maneja a todos los que terminan en .com".
  4. El Registro Regional (TLD Server): El operador llama a la oficina del .com (TLD Server). Allí revisan sus tomos y dicen: "El dueño del dominio elingenieroconsciente.com contrató sus registros en la oficina autoritativa X. Acá tenés su dirección".
  5. El Notario Oficial (Servidor Autoritativo): El operador consulta al Servidor Autoritativo final, quien tiene el libro oficial de la empresa. Este le confirma: "El número exacto de elingenieroconsciente.com es 198.51.100.24".
  6. Respuesta y Memorización (Caché): El operador te devuelve el número a tu teléfono y, para no hacer todo ese recorrido la próxima vez que alguien pregunte, se anota el resultado en una tarjetita en su escritorio durante unas horas (el famoso TTL o Time To Live).

Una vez que tu navegador recibe la IP 198.51.100.24, entabla la comunicación mediante el protocolo HTTP (generalmente usando el puerto 80 o 443).

Dentro de esta guía telefónica, la información se guarda en distintos formatos llamados Registros DNS:

El Concepto Aplicado en AWS

En el ecosistema de AWS, toda la gestión de dominios y tráfico en la capa de aplicación se controla mediante *Amazon Route 53.

Lo que hace fascinante a Route 53 es que no es simplemente un lugar estático donde guardás tus Registros A o CNAME y te olvidás. Es un servicio altamente disponible y programable que toma decisiones de enrutamiento dinámicas e inteligentes:

Infografía con conceptos del Bloque 4

Conclusión

Y un día hemos llegado al final. Se terminó "Cloud Computing Fundamentals". Si leíste cada post, dejame transmitirte un enorme y sincero "¡Gracias!". Abarcar todos los conceptos que vimos en cada publicación fue un esfuerzo de búsqueda, investigación, organización y más.

Todos los temas que vimos a lo largo de toda esta serie ahora forman parte de nuestra cajita de herramientas, componen la guía básica y esencial para poder ir a fondo con el proveedor que forma uno de los pilares de "El Ingeniero Consciente": Amazon Web Services.

Es momento de entrar a fondo, y para ser sincero, me emociona por fin poder comenzar con una nueva serie de blog posts, que es algo así como iniciar un viaje nuevo.

En "AWS Fundamentals", el nombre con el que decidí bautizar la serie que se viene, vamos a ver:

¡Hora de arrancar con AWS! 🚀

Tags

Compartir