El túnel al CPD
Un camino privado entre dos mundos
Ana ya llega a la API, pero la app le dice «saldo no disponible». El saldo lo tiene Cuentasver en el mapa, en el CPD, y entre la nube y el CPD no hay ningún camino: la ruta por defecto manda el paquete a internet, donde una IP privada no lleva a ningún sitio.
Abrir Cuentas a internet no es una opción: es el libro de movimientos del banco. Hace falta un camino privado entre las dos redes, que para la API sea como si Cuentas estuviera en la sala de al lado. Hay dos maneras de tenderlo, y el equipo de redes del banco se toma su tiempo en elegir, porque esta vez el camino no lleva avisos push: lleva saldos.
El camino a Cuentas
La VPC es la del episodio 2 (balanceador en la subred pública, la API en la privada). A la derecha de cada panel, el CPD, con su router y Cuentas. A la izquierda se conectan con una VPN: un túnel cifrado que viaja por internet. A la derecha, con una línea dedicada: un circuito privado del CPD al proveedor de nube.
Traza el saldo de Ana y mira la tabla de rutas cuando la API busca a Cuentas. Luego activa el día de cobro y traza varias veces; quita BGP; vuelve a la VPC a ojo del episodio 1; y tira el enlace, con y sin un segundo camino.
Qué ha pasado
Ana llega a Cuentas
Por primera vez en la serie, la traza llega al final: Ana, balanceador, API, pasarela, router del CPD, Cuentas, y vuelta.probar en el laboratorio Lo que ha cambiado está en la tabla de rutas de la subred privada: hay una fila nueva, 10.0.0.0/12 → el enlace. Como 10.0.0.0/12 es más concreto que 0.0.0.0/0, gana para cualquier dirección del CPD, y el paquete de Cuentas sale por el enlace en vez de por el NAT. Al otro lado, el cortafuegos del CPD deja entrar a Cuentas desde las subredes privadas de la nube, al puerto 8443.
Y aquí «¿Quién llega a Cuentas?» deja de valer cero: 3 piezas. La API, que es la que lo necesita, pero también su base de datos y Notificaciones, que están en la misma subred. El cortafuegos del CPD filtra por rango, y el rango es la subred entera. Es una cifra que conviene vigilar: volverá a subir en el episodio 5.
Las rutas se rellenan solas: BGP
Nadie ha escrito la fila 10.0.0.0/12. En la ficha sale en azul, con el origen «BGP».
El router del CPD y el lado de la nube del enlace hablan BGP: el CPD anuncia «por mí se llega a 10.0.0.0/12» y la nube anuncia «por mí se llega a 10.64.0.0/24». Cada tabla apunta lo que oye. Quita BGP y traza:probar en el laboratorio el enlace sigue ahí, pero la tabla no tiene fila para el CPD, gana la ruta por defecto y el saldo se va a internet. Un enlace no enruta nada por existir: alguien tiene que decir qué hay al otro lado. Se puede hacer a mano, con rutas estáticas, pero entonces cada rango nuevo del CPD es un cambio en cada tabla de la nube, y cuando el enlace cae las rutas siguen apuntando a él.
VPN o línea dedicada
Las dos llevan el mismo paquete al mismo sitio. La diferencia es por dónde. La VPN cifra el tráfico y lo manda por internet, así que se monta en una tarde con lo que ya hay. Pero internet no garantiza nada: el día de cobro, cuando medio país abre la app de su banco, va cargado.probar en el laboratorio Traza varias veces y mira la fila de las últimas latencias: a la izquierda, cada consulta tarda algo distinto; a la derecha, siempre lo mismo.
La línea dedicada es un circuito físico entre el CPD (o un centro de datos cercano) y el proveedor. Latencia baja y estable, y la salida más barata: 0,02 €/GB frente a los 0,09 €/GB que se cobran por lo que sale por una VPN, que es salida a internet. A cambio, se paga el puerto todos los meses, y contratarla lleva semanas: hay que pedir el circuito a un operador y llevar la fibra.
El rango del episodio 1
Ahora se entiende la tira del episodio 1. Vuelve a la VPC a ojo, 10.0.0.0/16, y traza.probar en el laboratorio Cuentas vive en 10.0.12.20, que está dentro de 10.0.0.0/16. La tabla tiene dos filas que la contienen: la local, 10.0.0.0/16, y la del CPD, 10.0.0.0/12. Gana la local, por ser más concreta, así que la VPC busca a Cuentas dentro de sí misma y no la encuentra. Da igual que el enlace sea una VPN o una línea: el problema no es el camino, son las direcciones.
Y al otro lado es peor. El CPD oye por BGP que la nube alcanza 10.0.0.0/16, que es más concreto que su propio 10.0.0.0/12, y empieza a mandar a la nube tráfico que era suyo. Las salidas son dos, y ninguna es buena: renumerar la VPC, es decir, cambiar la dirección de todo lo que hay dentro, con la API en producción; o poner un NAT entre las dos redes, que traduzca las direcciones de un lado a otro rango y que habrá que mantener para siempre. Por eso el plan de direcciones se hace antes de la primera VPC.
Cuándo hace daño: un solo camino
Tira el enlace.probar en el laboratorio BGP deja de oír los anuncios del CPD y retira la fila; gana otra vez la ruta por defecto y Ana vuelve a ver «saldo no disponible». Con una VPN es cuestión de tiempo: depende de internet y de dos equipos que la mantienen. Con una línea dedicada también: una excavadora, un corte de fibra, un mantenimiento del operador. Si el enlace es el único camino entre la API y Cuentas, es un punto único de fallo.
Añade un segundo camino.probar en el laboratorio Una VPN de respaldo anuncia las mismas rutas por BGP, con menos preferencia. Mientras el enlace principal funciona, no se usa; cuando cae, BGP pasa al respaldo sin que nadie toque ninguna tabla. A la derecha se ve el diseño más habitual: línea dedicada y VPN de respaldo. Cuando cae la línea, el saldo sigue llegando, más lento y más caro, pero llega.
Y queda el otro daño, el del día de cobro. Para una consulta de saldo, que tarde 40 ms o 90 da igual. Para una llamada que está en el camino de un pago, con alguien esperando delante de un TPV, cada milisegundo que baila se nota: lo que va en el camino crítico de un pago no debería depender de cómo esté internet esa mañana.
Criterio
| VPN por internet | Línea dedicada | |
|---|---|---|
| Montarla | Horas | Semanas (circuito, operador, fibra) |
| Latencia | La de internet, variable | Baja y estable |
| Coste fijo | Bajo | El puerto, cada mes |
| Coste por GB que sale | Como salida a internet (0,09 €/GB) | Reducido (0,02 €/GB) |
| Ancho de banda | Limitado por túnel | El del circuito (1, 10, 100 Gbps) |
| Uso típico | Empezar, entornos de prueba, respaldo | Tráfico de producción, camino crítico |
-
¿Hay tráfico en el camino crítico de una operación (un pago, una autorización)?Una consulta de saldo puede esperar un poco; un TPV, no.línea dedicada, y otro camino de respaldo
-
¿Pasan muchos datos, o el volumen crecerá?La diferencia por GB acaba pagando el puerto.línea dedicada
- VPN, con dos túneles. Y en cualquier caso: BGP, rangos que no solapen y un segundo camino.
La VPN no es la opción pobre: es la manera correcta de empezar, de conectar entornos de prueba y de tener respaldo. BCPS Bank arranca con ella, y cuando la línea llega, la VPN se queda como segundo camino.
En el mundo real
Las VPN de sitio a sitio de los proveedores son IPsec, y por defecto traen dos túneles por conexión, cada uno en un equipo distinto del proveedor: en AWS cada túnel da hasta 1,25 Gbps, y Google Cloud da un 99,99 % de disponibilidad a su HA VPN solo si se configuran los dos. Las líneas dedicadas se contratan por puerto (1, 10 o 100 Gbps) en un centro de datos donde el proveedor tiene presencia, o a través de un operador asociado cuando hace falta menos capacidad. En los tres proveedores, la salida por la línea dedicada se cobra bastante más barata que la salida a internet.
BGP es lo que decide por dónde va el tráfico cuando hay varios caminos. AWS, por ejemplo, prefiere siempre la línea dedicada a la VPN para el mismo prefijo, y así la VPN de respaldo funciona sin configurar nada más. BGP también es la pieza que más daño hace cuando se equivoca: en octubre de 2021, Facebook retiró por error los anuncios BGP de sus redes y desapareció de internet durante unas seis horas, incluidos los servidores DNS que los propios ingenieros necesitaban para arreglarlo.
Los rangos solapados aparecen sobre todo al conectar empresas: fusiones, proveedores, filiales. La salida que dan los proveedores es un NAT privado entre redes (AWS lo llama private NAT gateway): funciona, pero cada servicio del otro lado pasa a tener una dirección «traducida» que alguien tiene que recordar.
Equivalencias
| En la serie | AWS | Azure | Google Cloud |
|---|---|---|---|
| VPN al CPD | Site-to-Site VPN | VPN Gateway | Cloud VPN (HA VPN) |
| Línea dedicada | Direct Connect | ExpressRoute | Cloud Interconnect |
| Pasarela en la nube | Virtual private gateway / Direct Connect gateway | Virtual network gateway | Cloud Router + VPN gateway / VLAN attachment |
| Rutas aprendidas por BGP | Route propagation | Rutas BGP de la pasarela | Cloud Router (rutas dinámicas) |
| NAT entre redes solapadas | Private NAT gateway | NAT en la pasarela VPN | Private NAT |
Siguiente episodio
La API llama a Cuentas por su IP, 10.0.12.20. El día que Cuentas cambie de máquina, alguien tendrá que tocar la configuración de la API. Hay que llamar por nombre, y cada lado tiene que saber resolver los nombres del otro.