4 votes

Google Compute Engine : Problèmes d'accès à Internet à partir d'une instance sans IP externe

J'essaie d'installer des bibliothèques à partir de certaines instances qui n'ont pas d'adresses IP externes sur un réseau VPC. Il y a une instance sur ce réseau qui a une adresse IP externe et donc un accès à Internet que j'essaie d'utiliser comme passerelle de transfert d'IP.

J'essaie actuellement de vérifier que j'ai configuré cela correctement :

  • (Règle de pare-feu) UDP, TCP, ICMP ont été autorisés sur le réseau VPC pour toutes les instances. J'ai vérifié cela en confirmant que chaque instance peut s'envoyer des messages ping et peut faire les opérations suivantes nc -l <port> y nc -v <ip> <port> pour vérifier qu'ils peuvent ouvrir un tunnel sur tcp.
  • (Création de VM, OS) L'instance de passerelle a été configurée lors de la création pour permettre la redirection IP. Elle a également été activée au niveau du système d'exploitation à l'aide de la fonction sudo sysctl -w net.ipv4.ip_forward=1 .
  • (Route) Une nouvelle route a été créée pour acheminer les adresses IP de destination avec une balise "allow-internet-access" pour spécifier que le prochain saut est l'instance de passerelle. Cette balise a été appliquée aux instances sans passerelle sur le réseau VPC.

Cependant, je ne parviens toujours pas à accéder aux adresses IP de l'internet, par exemple avec la commande sudo apt-get install default-jdk échoue avec :

E: Failed to fetch http://europe-west1.gce.archive.ubuntu.com/ubuntu/pool/main/libx/libxt/libxt-dev_1.1.5-0ubuntu1_amd64.deb  Unable to connect to europe-west1.gce.archive.ubuntu.com:http: [IP: 35.205.79.146 80]

Même si

  1. l'instance de la passerelle peut y accéder
  2. l'instance interne peut accéder à la passerelle

Je pense que cela peut encore avoir quelque chose à voir avec le routage au niveau du système d'exploitation, car lorsque je fais un ip route get à une adresse internet, il me donne la passerelle par défaut (10.0.0.1), et je ne suis pas sûr que l'ajout de cette nouvelle route aurait dû changer cela ? (L'IP de l'instance de passerelle est 10.0.0.5, l'instance interne est 10.0.0.3).

ip route get 35.205.79.146
35.195.141.26 via 10.0.0.1 dev ens4  src 10.0.0.3
    cache

Toute indication sur la manière de poursuivre le débogage serait très appréciée !

8voto

David Points 61

Comme indiqué dans les autres commentaires, vous devrez utiliser NAT dans le nuage afin que vos instances sans adresse IP puissent se connecter à l'internet. Vous pouvez configurer le NAT Cloud en suivant les instructions étape par étape aquí .

2voto

xdl Points 141

Pour ce problème particulier, j'ai fini par suivre les instructions ici pour mettre en place un NAT basé sur l'instance : https://cloud.google.com/vpc/docs/special-configurations - la configuration d'une instance en tant que passerelle NAT. L'étape qui me manquait était la configuration d'IPTables ; après l'avoir ajoutée, mon problème a été résolu.

Comme d'autres l'ont suggéré, l'utilisation d'un NAT en nuage peut être la meilleure façon de procéder sur GCP pour le cas d'utilisation typique.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X