web-dev-qa-db-fra.com

Comment se connecter au monde extérieur à partir d'Amazon vpc?

Amazon VPC est défini dans l'Assistant en tant que "réseau public uniquement", de sorte que toutes mes instances sont dans un sous-réseau public.

Les instances dans VPC auxquelles Elastic IP est attribué 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 de l'instance montre

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric 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 TOUT le trafic entrant et sortant à 0.0.0.0/0 dans le groupe de sécurité auquel appartient une instance. 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?

51
Andrey Regentov

Il semble que le seul moyen de sortir des instances qui ne possèdent pas Elastic IP est:

  • ajoutez un NAT (lancez une instance supplémentaire m1.small à partir de AMI-vpc-nat-beta) et affectez-lui EIP
  • Créer 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é devrait aller à NAT

Il ne suffit donc pas d'ajouter NAT. Les instances doivent être arrêtées et déplacées vers une autre IP depuis un autre sous-réseau.

54
Andrey Regentov

La documentation indique que vous devez ajouter un NAT Instance

11
aldrinleal

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

Les instances sans EIP peuvent accéder à Internet de deux manières Les instances sans EIP peuvent acheminer leur trafic via une instance NAT Accéder à internet. Ces instances utilisent l'EIP du NAT exemple de parcourir Internet. L'instance NAT autorise les sorties communication, mais ne permet pas aux machines sur Internet de lancer une connexion aux machines à adresse privée utilisant NAT, et

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

Vous pouvez trouver des instructions détaillées sur la configuration d'une instance de nat ici: http://docs.aws.Amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.htmlenter image description here

9
Moriarty

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 de 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 accès Internet

4
clarky

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

2
Victor Perov

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

0
rajat banerjee

Groupes de sécurité -> Sortants

*   ALL Traffic ALL     ALL     0.0.0.0/0   Allow

Veuillez autoriser Sortant, si vous souhaitez vous connecter à des serveurs externes tels que google.com Ou même mettre à jour Sudo apt-get update

Vous pouvez autoriser le trafic sortant à l'aide d'AWS front-end goto Security Group -> Outbound

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

0
Manu R S

Avez-vous vérifié la liste de contrôle d'accès réseau sur le sous-réseau?

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

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

0
Ravi Shankar

Cela fonctionne pour moi avec:

  • Sous-réseau VPC 172.20.0.0/16
  • EC2 "nat" gateway 172.20.10.10 avec EIP

Faire :

  • Définir la source/destination désactivée. vérifiez votre "nat gw"
  • créer un nouveau sous-réseau "nat-sub" ex: 172.20.222.0/24
  • modifier l'itinéraire 0.0.0.0/0 à 172.20.10.10 (my 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 ces 2 lignes dans /etc/rc.local

0
Yann L.

Pour résoudre ce problème, il suffit de désactiver la "vérification source/destination" pour l'instance que vous avez configurée pour effectuer un NAT. Cela peut être fait dans la console AWS, sous "Actions d'instance".

Référence

0
Mike Cron

Les instances sans EIP peuvent accéder à Internet de deux manières. 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 n’autorise pas les ordinateurs connectés à Internet à établir une connexion avec les ordinateurs à adresse privée utilisant NAT.

https://docs.aws.Amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html

0
Ankireddy Polu