2013-06-20 1 views
5

Je souhaite accéder à quelques instances de mon sous-réseau privé à l'aide des EIP. Y a-t-il un moyen? Je sais que cela n'a pas beaucoup de sens. Mais laissez-moi vous expliquer en détail.AWS - Accès aux instances dans un sous-réseau privé à l'aide d'EIP

J'ai un VPC avec 2 sous-réseaux.

1) 192.168.0.0/24 (sous-réseau public) a PIE attachées

2) 192.168.1.0/24 (sous-réseau privé)

Il y a une instance NAT entre ces pour permettre au privé les instances ont un accès sortant à Internet. Tout fonctionne bien comme mentionné ici: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html

Mais maintenant, pour un temps temporaire, j'ai besoin d'adresser les instances sur le sous-réseau privé directement à partir d'Internet en utilisant un EIP. Est-ce possible en configurant de nouvelles tables de routage pour cette instance en particulier? ou autre chose? Voici les limites:

1) Il ne peut y avoir aucune interruption sur toutes les instances du sous-réseau privé

2) Par conséquent, il va sans dire, je ne peux pas créer un nouveau sous-réseau et déplacer ces instances Là.

Il devrait être aussi simple que -> Joindre. Utilisation . Retirer. La seule autre façon que j'ai en ce moment est une sorte de port d'iptables sur les instances du sous-réseau public (qui ont EIP) à n'importe quelle instance sur le sous-réseau privé ... Mais cela semble malpropre.

Une autre façon de le faire?

Répondre

9

Bien sûr, le contenu du sous-réseau privé se trouve dans le sous-réseau privé car il ne doit pas être accessible depuis Internet. :)

Mais ... Je suis sûr que vous avez-vous des raisons, va donc ici:

D'abord, non, vous ne pouvez pas le faire de manière simple attach → utilisation → de supprimer, parce que chaque sous-réseau a exactement une route par défaut, et qui pointe vers l'objet igw (sous-réseau public) ou l'instance NAT (sous-réseau privé). Si vous liez une adresse IP élastique à une machine dans le sous-réseau privé, le trafic entrant arriverait à l'instance, mais le trafic de réponse sortant serait renvoyé via l'instance NAT, ce qui serait soit ignoré, soit écrasé, car vous ne pouvez pas itinéraire asymétrique à travers NAT, et c'est ce qui se passerait ici.

Si vos services sont des services TCP (http, bureau à distance, blah blah), puis est ici un morceau de carriole à court terme qui fonctionnerait très bien et éviter les tracas de iptables et d'exposer seulement le service spécifique dont vous avez besoin:

Lancez une nouvelle micro-instance avec Ubuntu 12.04 LTS dans le sous-réseau public, avec un EIP et un groupe de sécurité approprié pour permettre le trafic Internet entrant vers les ports souhaités. Permettez-vous l'accès ssh à la nouvelle instance. Autoriser l'accès de cette machine à l'intérieur de la machine. Puis:

$ sudo apt-get update 
$ sudo apt-get upgrade 
$ sudo apt-get install redir 

En supposant que vous voulez envoyer le port entrant 80 du trafic vers le port 80 sur une instance privée:

$ sudo redir --lport=80 --cport=80 --caddr=[private instance ip] --syslog & 

Terminé. Vous aurez un journal de chaque connexion et déconnecter avec les numéros de port et les octets transférés dans vos syslogs.L'inconvénient est que si votre hôte privé regarde l'IP de la machine de connexion, il verra toujours l'IP interne de l'instance de réseau privé.

Il vous suffit de l'exécuter avec sudo si vous lier à un port inférieur à 1024 étant donné que seul root peut se lier aux numéros de port inférieurs. Pour l'arrêter, trouvez le pid et tuez-le, ou sudo killall redir.

Le spiffy peu redir utilitaire fait sa magie dans l'espace utilisateur, ce qui rend plus simple (AMHA) que iptables. Il configure une prise d'écoute sur le port --lport désigné. Pour chaque connexion entrante, elle se forge elle-même, établit une connexion sortante vers --caddr sur --cport et lie les deux flux de données ensemble. Il n'a aucune conscience de ce qui se passe à l'intérieur du flux, il devrait donc fonctionner pour à peu près n'importe quoi TCP. Cela signifie également que vous devriez pouvoir passer beaucoup de trafic, malgré l'utilisation d'un micro.

Lorsque vous avez terminé, jeter le micro instance et votre réseau est de retour à la normale.

2

En fonction de vos besoins, vous pourriez finir par mettre en route statique direct à la IGW. Par exemple, si vous connaissez votre source sur Internet à partir de laquelle vous voulez autoriser le trafic, vous pouvez insérer la route x.x.x.x/32 -> igw dans votre table de routage privée. Parce que votre instance a un EIP attaché, il sera capable d'atteindre l'igw, et le trafic vers cette destination ira là où il devrait et pas le NAT.

J'ai utilisé cette astuce plusieurs fois pour un accès à court terme. Évidemment, il s'agit d'une solution de contournement à court terme et ne convient pas pour les environnements prod, et ne fonctionne que si vous savez d'où provient votre trafic Internet.

Questions connexes