3 votes

Comment fonctionne l'IP élastique d'Amazon ? Que devrais-je faire si je voulais créer moi-même un système similaire ?

Je n'arrive pas à trouver la bonne combinaison de termes de recherche sur Google pour trouver cette réponse, mais que devrais-je faire si je voulais créer mon propre ip élastique que je pourrais faire pointer vers n'importe quelle autre adresse up en utilisant mon propre hébergement privé ? Quels seraient les goulots d'étranglement ?

Pour ajouter plus de détails : Elastic d'Amazon n'est pas simplement un serveur auquel vous transmettez des requêtes et qui effectue ensuite les requêtes pour vous et vous renvoie les données retournées comme une sorte de VPN. Ce service vous permet d'envoyer une requête à une adresse IP et de faire comme si vous l'aviez envoyée à une autre adresse IP. Comment font-ils cela ?

4voto

Matt Clark Points 5017

Je pense que cela peut être fait par le biais de simples iptables règles et Traduction d'adresses de réseau (NAT), je ne suis pas sûr de la façon dont AWS le fait sur son backend.

Une règle simple

iptables -t nat -I PREROUTING -d 99.99.99.99 -j DNAT --to-destination 12.34.56.78

Dans cette règle, nous allons ajouter une règle au sommet de la page NAT Prerouting Cette règle sera la première évaluée par chaque paquet - attention, de nombreuses règles ralentiront le flux de paquets - vous devriez étudier iptables si vous choisissez cette voie.

Ici, nous allons prendre un paquet destiné à 99.99.99.99 - et le DNAT réécrira simplement l'adresse IP de destination du paquet, et le renverra sur son chemin.

Pour supprimer la règle, il suffit de modifier le paramètre -I à -D .

Un basculement de base de la règle ci-dessus vers un nouveau serveur

iptables -t nat -D PREROUTING -d 99.99.99.99 -j DNAT --to-destination 12.34.56.78 # Delete existing forward
iptables -t nat -I PREROUTING -d 99.99.99.99 -j DNAT --to-destination 87.65.43.21 # Add new forward

Notez que vous devrez également avoir des règles dans le fichier Filter Forward pour chaque destination vers laquelle vous prévoyez d'envoyer des paquets.

iptables -t filter -I FORWARD -d 12.34.56.78 -j ACCEPT
iptables -t filter -I FORWARD -d 87.65.43.21 -j ACCEPT

modifier

Vous avez posé une question sur l'équilibrage de la charge, voici donc ce que nous faisons également, en équilibrant la charge des connexions entre 3 hôtes.

iptables -t nat -I PREROUTING -d 99.99.99.99 --mode nth --every 1 --packet 0 -j DNAT --to-destination x.y.z.1
iptables -t nat -I PREROUTING -d 99.99.99.99 --mode nth --every 2 --packet 0 -j DNAT --to-destination x.y.z.2
iptables -t nat -I PREROUTING -d 99.99.99.99 --mode nth --every 3 --packet 0 -j DNAT --to-destination x.y.z.3

Si vous souhaitez restreindre l'accès à HTTP / HTTPS, vous devez filtrer ces ports en conséquence :

iptables -t nat -I PREROUTING -d 99.99.99.99 -p tcp --dport 80 -j DNAT --to-destination 12.34.56.78:80

Ça peut aider, ça peut juste être encore plus déroutant, mais voici une page avec quelques règles utiles .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X