Eden vous montre comment effectuer un
travail sur l'interface réseau secondaire
avec une instance Amazon EC2 Ubutu

Comment faire fonctionner mon interface réseau secondaire dans mon instance Amazon Elastic Compute Cloud (Amazon EC2) Ubuntu ? 

L'ajout d'une interface réseau secondaire à une instance EC2 Linux non Amazon entraîne des problèmes de flux de trafic. Ces problèmes se produisent car les interfaces réseau principale et secondaire sont toutes les deux dans le même sous-réseau, alors qu'il n'y a qu'une table de routage et une passerelle. Le trafic qui arrive dans l'interface réseau secondaire quitte l'instance en utilisant l'interface réseau principale. Cela n'est pas autorisé, car l'adresse IP secondaire n'appartient pas à l'adresse MAC de l'interface réseau principale.

Pour que l'interface secondaire fonctionne, créez une fichier de configuration de réseau secondaire, configurez la table de routage et définissez des règles dans la base de données de stratégie de table de routage personnalisée, de sorte que l'interface secondaire utilise la nouvelle table de routage.

Remarque : les étapes permettant d'ajouter une interface réseau secondaire sont différentes pour chacune des versions suivantes d'Ubuntu :

  • Ubuntu 14.04
  • Ubuntu 16.04
  • Ubuntu 18.04

Remarque : pour les instances CentOS ou RHEL, consultez Comment faire fonctionner mon interface réseau secondaire dans mon instance CentOS ou RHEL ?

Configuration d'Ubuntu 14.04 ou 16.04

La création du fichier de configuration d'interface secondaire, la configuration de la table de routage et la définition des règles de stratégie de routage pour Ubuntu peuvent partager un fichier unique.

Toutes les procédures nécessitent les privilèges d'utilisateur racine. Devenez utilisateur racine avec « sudo -i » ou exécutez toutes les commandes avec « sudo ».

1. Obtenez le nom de l'interface réseau principale :

ip a | grep ^[[:digit:]]

Elle doit se présenter comme suit : 

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000

Important : dans l'exemple précédent, les interfaces principales sont nommées « eth0 », « eth1 », et ainsi de suite. Toutefois, pour des instances qui prennent en charge la mise en réseau améliorée, comme le type de famille m4 ou m5, vous pouvez rencontrer une incohérence de nommage. Par exemple, l'interface principale peut être nommée « ens3 » et l'interface secondaire, « eth0 ». L'incohérence de nommage se produit lorsque l'interface secondaire est ajoutée pendant que l'instance est en cours d'exécution.

Vous pouvez éviter une incohérence de nommage en ajoutant l'interface au moment du lancement ou à la réinitialisation de l'instance. Si l'interface est en cours d'exécution, vous pouvez également modifier le nom de la manière suivante :

ip link set eth0 name ens4 && ip link set ens4 up

2. Créez un fichier de configuration pour l'interface secondaire. Cet exemple utilise l'interface secondaire « eth1 ». Assurez-vous de remplacer « eth1 » par le nom de l'interface secondaire obtenu lors de l'étape 1. 

vi /etc/network/interfaces.d/51-eth1.cfg

L'exemple suivant présente l'adresse IP unique 172.31.21.115 et la passerelle 172.31.16.1 sur l'interface secondaire. Assurez-vous de modifier l'adresse IP et la passerelle en fonction de votre scénario. Notez également que votre passerelle doit être la première adresse IP valide de votre sous-réseau. 

auto eth1
iface eth1 inet static 
address 172.31.21.115
netmask 255.255.240.0

# Gateway configuration
up ip route add default via 172.31.16.1 dev eth1 table 1000

# Routes and rules
up ip route add 172.31.21.115 dev eth1 table 1000
up ip rule add from 172.31.21.115 lookup 1000

L'exemple suivant présente plusieurs adresses IP. Dans cet exemple, les adresses IP sont 172.31.21.115 et 172.31.18.46, avec la passerelle 172.31.16.1. Assurez-vous de mettre à jour les adresses IP et la passerelle en fonction de votre scénario. 

auto eth1

# Enter one or more IP settings
iface eth1 inet static
address 172.31.21.115
netmask 255.255.240.0

iface eth1 inet static
address 172.31.18.46
netmask 255.255.240.0

# Default gateway for eth1
up ip route add default via 172.31.16.1 dev eth1 table 1000

# A route for every IP
up ip route add 172.31.21.115 dev eth1 table 1000
up ip route add 172.31.18.46 dev eth1 table 1000

# A policy rule for every IP
up ip rule add from 172.31.21.115 lookup 1000
up ip rule add from 172.31.18.46 lookup 1000

3. Créez le fichier restrict-default-gw pour éviter que la passerelle par défaut ne soit remplacée dans la table principale :

vi /etc/dhcp/dhclient-enter-hooks.d/restrict-default-gw

4. Ajoutez les lignes suivantes dans le fichier restrict-default-gw. Assurez-vous de remplacer « eth0 » par le nom de l'interface principale obtenu lors de l'étape 1.

case ${interface} in
  eth0)
    ;;
  *)
    unset new_routers
    ;;
esac

5. Redémarrez le réseau :

Dans Ubuntu 14.04 : 

(ifdown eth1 && ifup eth1)

Dans Ubuntu 16.04 : 

systemctl restart networking

Configuration d'Ubuntu 18.04

Ubuntu 18.04 a basculé sa configuration de mise en réseau vers Netplan. L'exemple suivant utilise la configuration Netplan. Notez que Netplan utilise le format YAML et que le retrait est crucial. L'exemple ci-dessous utilise un retrait de 2 espaces.

1. Créez un fichier de configuration pour l'interface secondaire :

vi /etc/netplan/51-eth1.yaml

2. Ajoutez les lignes suivantes au fichier 51-eth1.yaml.

network:
  version: 2
  renderer: networkd
  ethernets:
    eth1:
      addresses:
       - 172.31.24.153/20
       - 172.31.28.195/20
      dhcp4: no
      routes:
       - to: 0.0.0.0/0
         via: 172.31.16.1 # Default gateway
         table: 1000
       - to: 172.31.24.153
         via: 0.0.0.0
         scope: link
         table: 1000
       - to: 172.31.28.195
         via: 0.0.0.0
         scope: link
         table: 1000
      routing-policy:
        - from: 172.31.24.153
          table: 1000
        - from: 172.31.28.195
          table: 1000

3. Appliquez la configuration réseau : 

netplan --debug apply

Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 05/09/2018