rss
twitter
  • Showcase
  • Carrières
  • Support
  • GitLab
  • Espace client
  • Contact

Adresses IP multiples sur instance EC2 (AWS)

0

INDEX

Comment sont associées les adresses statiques (Elastic IP) sur EC2 ?

  • Une IP publique est attribuée
  • Elle doit être attachée à une interface (par ex eth0)
  • L’interface a une IP privée
  • L’OS est configuré en DHCP
  • L’OS n’a pas « conscience » de ses IP publiques
  • Amazon effectue une translation NAT des IP publiques sur les IP privées

La première adresse IP

L’instance EC2 est toujours en DHCP.
Il n’est pas souhaitable / possible d’avoir une instance EC2 avec une configuration réseau statique.

État initial

ubuntu@ip-172-31-29-222:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 02:fa:fc:ff:48:c7  
          inet addr:172.31.29.222  Bcast:172.31.31.255  Mask:255.255.240.0
          inet6 addr: fe80::fa:fcff:feff:48c7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:735 errors:0 dropped:0 overruns:0 frame:0
          TX packets:559 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:70831 (70.8 KB)  TX bytes:87908 (87.9 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1519 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1519 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:300162 (300.1 KB)  TX bytes:300162 (300.1 KB)

Deuxième adresse IP sur l’interface  eth0

Temporaire :

sudo ifconfig eth0:0 172.31.24.195 up
ping 172.31.24.195

Permanente :

sudo nano /etc/network/interfaces.d/eth0.cfg

# The primary network interface
auto eth0
iface eth0 inet dhcp

# Deuxième adresse statique dans un environnement DHCP
auto eth0:0
iface eth0:0 inet static
address 172.31.24.195

sudo service networking restart

 

Même port, 2 IP différentes

Cas typique de conflit pour Nginx…

[emerg] 24859#0: a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/italic:23

 

…et Apache, qui écoutent tous les deux le port 80 :

(99)Cannot assign requested address: AH00072: make_sock: could not bind to address 0.0.0.0:80

 

Configuration de Nginx sur l’IP publique numéro 1

Le serveur doit écouter sur l’IP privée attachée à eth0 :

sudo nano /etc/nginx/sites-available/italic

server {
  listen 172.31.29.222:80 default_server;
  server_name ec2-54-76-16-111.eu-west-2.compute.amazonaws.com;
  server_tokens off;
  root /var/www/italic/public_html;

  ...

}

sudo service nginx restart 
 * Restarting nginx nginx                                                                                                                                             [ OK ]

 

Configuration d’Apache sur l’IP publique numéro 2

Le serveur doit écouter sur l’IP privée attachée à eth0:0 :

sudo nano /etc/apache2/sites-available/000-default.conf 

<VirtualHost 172.31.24.195:80>
        # Inutile de préciser le servername sur le vhost par défaut
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ...
</VirtualHost>

ubuntu@ip-172-31-29-222:~$ sudo service apache2 restart
 * Restarting web server apache2                                                                                                                                      [ OK ]

 

 Si les adresses IP ne peuvent pas être assignées

Les services ne les associent pas, parce qu’ils ne les voient pas.
Je rappelle que l’instance EC2 est aveugle sur les IP qui sont attachées à ses interfaces.
De plus les IP publiques sont nattées.

En cas de refus du service d’associer l’IP non-locale, modifiez  /etc/sysctl.conf 

# allow processes to bind to the non-local address
net.ipv4.ip_nonlocal_bind = 1

Puis :

sysctl -p /etc/sysctl.conf

C’est maintenant OK pour indiquer une IP privée dans la config du service.

DATE 16 Mai 2014
by : Germain
Author / Auteur

Social Share / Partager

    Leave a Reply / Répondre Annuler la réponse

    *
    *

    Search the blog

    Blog categories

    • Front-end : HTML, CSS (13)
    • Workflow (1)
    • Front-end : javascript, jQuery (33)
    • Back-end : PHP, CMS (42)
    • Back-end : SQL, MySQL (20)
    • Sysadmin : Linux, Apache, GIT (75)
    • Designers : tools, advice (2)
    • Desktop : OS X (37)
    • Desktop : Microsoft (12)
    • Uncategorized (8)

    ITALIC™ Resources

    • Paramètres de connexion au serveur mail
    • Graphistes : séduire un développeur web
    • Dév front : nos bonnes pratiques
    • Mailing : nos (bonnes ?) pratiques
    • Environnement de travail Mac

    Recent comments

    • Germain dans Inserer un motif dans une forme InDesign
    • Fannie J dans Inserer un motif dans une forme InDesign
    • Rapide benchmarks de clients Git pour Linux (et un peu Windows et Mac aussi) – Haha. dans Git avec SourceTree : ouvrir dans TextMate / ouvrir dans Sublime Text 2
    • Germain dans Ajouter des contacts non-Facebook à Spotify
    • cc dans Ajouter des contacts non-Facebook à Spotify

    Meanwhile, in the office…

    UNEP @ Paysalia

    01 Déc 2015

    Liebig

    22 Sep 2015

    Mercedes-Benz

    17 Sep 2015

    Office National du Tourisme Tunisien

    21 Août 2015

    Serious Game

    17 Juil 2015

    Engie

    22 Juin 2015

    UN Guiding Principles Reporting Framework

    21 Mar 2015

    Dites-le avec Nutella®

    21 Fév 2015

    HEC

    21 Déc 2014

    AREVA

    21 Déc 2014
    © 2008-2017 ITALIC™ • 8 bis rue Abel • 75012 PARIS • Tel +33 (0)1 48 44 46 35 • RCS PARIS 508 228 772 • Powered by WordPress & GoodLayers
    Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web.
    Cookie settingsACCEPTER
    Manage consent

    Privacy Overview

    This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
    Necessary
    Toujours activé
    Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
    Non-necessary
    Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
    Enregistrer & appliquer