Louisa vous montre comment
configurer une adresse IP privée
secondaire pour une instance

Loiusa_secondary-private-ip-address-1

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

L'ajout d'une interface réseau secondaire à une instance 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 essaie de quitter 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 un fichier de configuration de réseau secondaire, ajoutez une table de routage supplémentaire 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. Pour vous assurer que la nouvelle route secondaire et les règles sont prises en compte à chaque initialisation, créez et configurez un fichier de route statique secondaire.

Vous trouverez ci-après un récapitulatif des étapes nécessaires au bon fonctionnement d'une interface secondaire :

  1. Créer un fichier de configuration
  2. Créer une nouvelle table de routage
  3. Définir des règles dans la base de données de stratégie de routage
  4. Créer un fichier de route statique

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

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 ».

Créer un fichier de configuration réseau secondaire

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. Pendant que 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 ou modifiez le fichier de configuration « ifcfg-eth1 » de l'interface réseau secondaire. 

vi /etc/sysconfig/network-scripts/ifcfg-eth1

3. Modifiez le fichier de l'interface secondaire de sorte qu'il soit similaire à ce qui suit : Adaptez les modifications à votre scénario, y compris l'adresse MAC de votre interface secondaire. Vous pouvez obtenir l'adresse MAC de l'interface secondaire à l'aide de la commande « ip a ». 

DEVICE=eth1
NAME=eth1
HWADDR=00:00:00:00:00:00
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
NM_CONTROLLED=no

Si vous avez plusieurs adresses IP sur votre interface secondaire, procédez comme suit : 

DEVICE=eth1
NAME=eth1
HWADDR=00:00:00:00:00:00
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
NM_CONTROLLED=no
DEFROUTE=no
IPADDR=172.31.0.162
PREFIX=20
IPADDR1=172.31.13.162
PREFIX1=20
IPADDR2=172.31.1.151
PREFIX2=20

4. Pour que l'interface principale ne perde pas la connectivité, assurez-vous que la passerelle par défaut est conservée dans la table de routage principale. Pour ce faire, modifiez le fichier /etc/sysconfig/network : 

vi /etc/sysconfig/network

Ajoutez la ligne suivante: 

GATEWAYDEV=eth0

5. Redémarrez le réseau : 

systemctl restart network

Créer une nouvelle table de routage secondaire

La table de routage principale porte l'ID 254 sur Linux. Par défaut, le trafic de l'interface est acheminé en fonction de cette table. Vous devez créer une nouvelle table de routage pour l'interface secondaire.

1. Obtenez et notez votre passerelle par défaut :

ip route | grep default

2. Créez une nouvelle table de routage pour l'interface secondaire, puis ajoutez la route de passerelle par défaut en utilisant l'IP de la passerelle que vous avez obtenue à l'étape précédente. Dans cet exemple, la nouvelle table porte l'ID 1000, et l'adresse IP est « 172.31.16.1 » :

ip route add default via 172.31.16.1 dev eth1 table 1000

3. Assurez-vous que la table 1000 contient une route pour chaque adresse IP présente sur l'interface secondaire.

Voici un exemple pour deux adresses IP : 

ip route add 172.31.0.162 dev eth1 table 1000
ip route add 172.31.13.162 dev eth1 table 1000

4. Vérifiez la table 1000 et assurez-vous qu'elle est correcte : 

ip route show table 1000

Définir des règles dans la base de données de stratégie de routage

Définissez des règles pour chaque adresse IP présente sur l'interface secondaire dans la base de données de stratégie de routage de sorte que le trafic en provenance de ces adresses IP soit acheminé en fonction de la table 1000.

ip rule add from 172.31.0.162 lookup 1000
ip rule add from 172.31.13.162 lookup 1000

Assurez-vous de vérifier la connectivité avec ces adresses IP. Si vous avez des adresses IP Elastic pointant vers ces adresses IP, elles sont également accessibles à partir du réseau public.

Créer un fichier de route statique secondaire

1. Pour que la nouvelle route secondaire et les règles soient prises en compte à chaque initialisation, créez et configurez le fichier de route statique « route-eth1 ».

vi /etc/sysconfig/network-scripts/route-eth1

2. Indiquez les mêmes routes que celles que vous avez entrées lors de la création de la table de routage secondaire sur la ligne de commande. La seule différence est que vous omettez « ip route add ». 

default via 172.31.16.1 dev eth1 table 1000
172.31.0.162 dev eth1 table 1000
172.31.13.162 dev eth1 table 1000

3. Créez ou modifiez un fichier de règles pour rule-eth1 : 

vi /etc/sysconfig/network-scripts/rule-eth1

Indiquez les mêmes routes que celles que vous avez entrées sur la ligne de commande lors de la création de la nouvelle table de routage secondaire. La seule différence est que vous omettez « ip rule add ». 

from 172.31.0.162 lookup 1000
from 172.31.13.162 lookup 1000

Une fois que les paramètres d'adresses IP CentOS ou RHEL IP sont configurés, le routage et les règles persistent lorsque l'interface est réinitialisée. 


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 : 03/07/2014

Date de mise à jour : 04/09/2018