Comment se connecter à l’extérieur du monde avec amazon vpc?

J’ai amazon VPC défini par le biais de l’assistant comme “réseau public uniquement”, donc toutes mes instances sont dans le sous-réseau public.

Les instances dans VPC auxquelles Elastic IP est assigné se connectent à Internet sans aucun problème.

Mais les instances sans IP élastique ne peuvent se connecter nulle part.

La passerelle Internet est présente. La table de routage dans la console aws ressemble à

Destination Target 10.0.0.0/16 local 0.0.0.0/0 igw-nnnnn 

et route à partir des spectacles d’instance internes

 Kernel IP routing table Destination Gateway Genmask Flags Mesortingc Ref Use Iface 10.0.0.0 * 255.255.255.0 U 0 0 0 eth0 default 10.0.0.1 0.0.0.0 UG 100 0 0 eth0 

J’ai essayé d’ouvrir TOUS le trafic entrant et sortant à 0.0.0.0/0 dans le groupe de sécurité auquel une instance appartient. Toujours pas de succès.

 ~$ ping google.com PING google.com (74.125.224.36) 56(84) bytes of data. ^C --- google.com ping statistics --- 6 packets transmitted, 0 received, 100% packet loss, time 5017ms 

Que puis-je faire d’autre?

Il semble que le seul moyen de sortir des instances sans Elastic IP est:

  • append un NAT (lancer une instance supplémentaire de m1.small à partir de ami-vpc-nat-beta) et lui assigner EIP
  • Créez un sous-réseau supplémentaire qui sera “privé”
  • Déplacer des instances non EIP vers ce sous-réseau privé
  • Modifier les tables de routage: 0.0.0.0/0 du sous-réseau privé doit aller à NAT

Donc, append du NAT ne suffit pas. Les instances doivent être arrêtées et déplacées vers une autre adresse IP depuis un autre sous-réseau.

Les documents indiquent que vous devez append une instance NAT

Q. Comment les instances sans EIP accèdent-elles à Internet?

Les instances sans EIP peuvent accéder à Internet de deux manières différentes: les instances sans EIP peuvent acheminer leur trafic via une instance NAT pour accéder à Internet. Ces instances utilisent l’EIP de l’instance NAT pour parcourir Internet. L’instance NAT autorise les communications sortantes mais ne permet pas aux machines sur Internet d’établir une connexion avec les machines avec adresse privée à l’aide de NAT, et

http://aws.amazon.com/vpc/faqs/

Vous pouvez trouver des instructions détaillées sur la configuration d’une instance nat ici: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html entrer la description de l'image ici

Ou créez une instance NAT dans le VPC public et ajoutez une route statique à cette instance NAT

route add -net 0.0.0.0 masque réseau 0.0.0.0 gw 10.0.0.5 eth0

où 10.0.0.5 est votre instance nat, assurez-vous simplement que le groupe de sécurité qui contient l’instance NAT peut accepter le trafic interne des boîtes pour lesquelles vous avez besoin d’un access à Internet

Vous pouvez le faire sur n’importe quelle instance de votre VPC, avec EIP. Il y a peu d’instructions que j’ai décrites ici pour vous aider. BTW: n’oubliez pas de désactiver source / dest. vérifier

Avez-vous vérifié la liste de contrôle d’access réseau sur le sous-réseau?

Vérifiez les groupes de sécurité pour les règles.

La table de routage a l’air bien. Ça devrait marcher.

Tout ce qui doit être fait pour résoudre ce problème, est de désactiver “vérification de la source / destination” pour l’instance que vous avez configurée pour faire du NAT. Cela peut être fait dans la console AWS, sous “Actions d’instance”.

Référence

Cela fonctionne pour moi avec:

  • Sous-réseau VPC 172.20.0.0/16
  • Passerelle EC2 “nat” 172.20.10.10 avec EIP

Faire :

  • Définir la source / destination désactivée. vérifiez sur votre “nat gw”
  • créer un nouveau sous-réseau “nat-sub” ex: 172.20.222.0/24
  • modifier la route 0.0.0.0/0 à 172.20.10.10 (ma nat gw) pour “nat-sub”
  • créer un EC2 en utilisant “nat-sub”
  • sur votre passerelle nat en tant que root, essayez:

root @ gw: ~ # sysctl -q -w net.ipv4.ip_forward = 1 net.ipv4.conf.eth0.send_redirects = 0

root @ gw: ~ # iptables -t nat -C POSTROUTING -o eth0 -s 172.20.222.0/24 -j MASQUERADE 2> / dev / null || iptables -t nat -A POSTROUTING -o eth0 -s 172.20.222.0/24 -j MASQUERADE

si cela fonctionne, ajoutez ceci 2 lignes dans /etc/rc.local

Groupes de sécurité -> Outbound

 * ALL Traffic ALL ALL 0.0.0.0/0 Allow 

Veuillez autoriser Outbound si vous souhaitez vous connecter à des serveurs externes tels que google.com ou même mettre à jour-sudo apt-get update

Vous pouvez autoriser les appels sortants à l’aide du serveur frontal AWS Groupes de sécurité -> Outbound

Assurez-vous de sélectionner le bon groupe pour votre instance AWS

Ils ont un produit relativement nouveau appelé passerelle NAT qui crée exactement une instance NAT gérée au bord de vos sous-réseaux pub / private.