Depurar la conectividad
Has configurado la conectividad entre las bases de datos de origen y de destino, pero ¿cómo sabes si están conectadas? Si la comunicación entre ellos falla, ¿cómo puedes averiguar qué ha fallado y dónde?
Las herramientas más básicas son ping y traceroute.
Ping
Ping realiza una prueba básica para determinar si el destino ("host remoto") está disponible desde el origen. Ping envía un paquete ICMP Echo Request a un host remoto y espera recibir un paquete ICMP Echo Reply a cambio. Si ping no se completa, significa que no hay ninguna ruta desde el origen hasta el destino. Sin embargo, que se haya completado correctamente no significa que tus paquetes puedan llegar, sino que, en general, se puede acceder al host remoto.
Aunque ping puede saber si un host está activo y responde, no se garantiza que sea fiable. Algunos proveedores de redes bloquean ICMP como medida de seguridad, lo que puede dificultar la depuración de la conectividad.
Traceroute
Traceroute prueba la ruta completa que siguen los paquetes de red de un host a otro. Muestra todos los pasos ("saltos") que da el paquete por el camino y cuánto tiempo tarda en dar cada paso. Si el paquete no llega al destino, traceroute no se completa, sino que termina con una serie de asteriscos. En este caso, busca la última dirección IP a la que se haya podido acceder correctamente. Aquí es donde se ha interrumpido la conectividad.
Traceroute puede agotarse. También puede fallar si una pasarela del trayecto no está configurada correctamente para enviar el paquete al siguiente salto.
Si traceroute no se completa, puede que sepas dónde se ha detenido. Busca la última dirección IP que aparece en el traceroute
resultado y haz una búsqueda en el navegador de who owns [IP_ADDRESS]. Es posible que los resultados muestren o no el propietario de la dirección, pero merece la pena intentarlo.
mtr
La herramienta mtr es una forma de traceroute que permanece activa y se actualiza continuamente, de forma similar a como funciona el comando top para los procesos locales.
Localizar tu dirección IP local
Si no sabes la dirección local de tu host, ejecuta el comando ip -br address show. En Linux, se muestra la interfaz de red, el estado de la interfaz, la IP local y las direcciones MAC. Por ejemplo:
eth0 UP 10.128.0.7/32 fe80::4001:aff:fe80:7/64.
También puedes ejecutar ipconfig o ifconfig para ver el estado de tus interfaces de red.
Localiza la dirección IP de salida
Si no sabes la dirección IP que usan las bases de datos de origen y de destino para comunicarse entre sí (la dirección IP saliente), sigue estos pasos:
Ve a la página Instancias de SQL en la Google Cloud console.
Haz clic en el nombre de la instancia asociada a la tarea de migración que estás depurando.
Desplázate hacia abajo hasta que aparezca el panel Conectarse a esta instancia. En este panel, aparece la dirección IP de salida.
Abrir puertos locales
Para verificar que tu host está escuchando en los puertos que crees que son, ejecuta el comando ss -tunlp4. De esta forma, sabrás qué puertos están abiertos y
en escucha.
Por ejemplo, si tienes una base de datos de PostgreSQL en ejecución, el puerto 5432 debería estar activo y en escucha. En el caso de SSH, debería ver el puerto 22.
Toda la actividad de los puertos locales
Usa el comando netstat para ver toda la actividad del puerto local. Por ejemplo, netstat -lt muestra todos los puertos activos.
Conectarse al host remoto mediante telnet
Para verificar que puedes conectarte al host remoto mediante TCP, ejecuta el comando telnet. Telnet intenta conectarse a la dirección IP y al puerto que le indiques.
telnet 35.193.198.159 5432.
Si la operación se realiza correctamente, verás lo siguiente:
Trying 35.193.198.159...
Connected to 35.193.198.159.
.
Si falla, verás que telnet deja de responder hasta que fuerces el cierre
del intento:
Trying 35.193.198.159...
^C.
.