Activez les réseaux améliorés avec Elastic Network Adapter (ENA) sur les instances Linux - Amazon Elastic Compute Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Activez les réseaux améliorés avec Elastic Network Adapter (ENA) sur les instances Linux

Amazon EC2 offre des fonctionnalités de mise en réseau améliorée via l’adaptateur Elastic Network Adapter (ENA). Pour utiliser la mise en réseau améliorée, vous devez installer le module ENA requis et activer la prise en charge ENA.

Prérequis

Pour préparer la mise en réseau améliorée à l’aide de l’adaptateur réseau ENA, configurez votre instance comme suit :

  • Lancez une instance basée sur le système AWS Nitro.

  • Lancez l’instance à l’aide d’une version prise en charge du noyau Linux et d’une distribution prise en charge pour activer automatiquement la mise en réseau améliorée ENA pour votre instance. Pour plus d’informations, consultez ENA Linux Kernel Driver Release Notes.

  • Vérifiez que l'instance a une connectivité Internet.

  • AWS CloudShellUtilisez-le depuis ou installez et configurez le AWS CLIou AWS Tools for Windows PowerShellsur n'importe quel ordinateur de votre choix, de préférence sur votre ordinateur de bureau ou portable local. AWS Management Console Pour plus d’informations, consultez la section Accès à Amazon EC2 du Guide de l’utilisateur AWS CloudShell. La gestion de la mise en réseau améliorée n’est pas possible à partir de la console Amazon EC2.

  • Si l’instance comporte des données importantes que vous souhaitez conserver, vous devez les sauvegarder maintenant en créant une AMI à partir de votre instance. La mise à jour des noyaux et des modules noyau, ainsi que l’activation de l’attribut enaSupport, peuvent rendre les instances incompatibles ou les systèmes d’exploitation inaccessibles. Si cela se produit et que vous disposez d'une sauvegarde récente, vos données continueront d'être conservées.

Performances réseau améliorées

La documentation suivante fournit un résumé des performances réseau pour les types d’instance qui prennent en charge la mise en réseau améliorée ENA :

Tester l’activation de réseaux améliorés

Les AMI suivantes incluent le module ENA requis et la prise en charge ENA est activée :

  • AL2023

  • Amazon Linux 2

  • Amazon Linux AMI 2018.03 et version ultérieure

  • Ubuntu 14.04 ou une version ultérieure avec noyau linux-aws

    Note

    AWS Les types d'instances basés sur Graviton nécessitent Ubuntu 18.04 ou version ultérieure avec noyau linux-aws

  • Red Hat Enterprise Linux 7.4 ou une version ultérieure

  • SUSE Linux Enterprise Server 12 SP2 ou une version ultérieure

  • CentOS 7.4.1708 ou une version ultérieure

  • FreeBSD 11.1 ou une version ultérieure

  • Debian GNU/Linux 9 ou une version ultérieure

Pour tester si la mise en réseau améliorée est déjà activée, vérifiez que le ena module est installé sur votre instance et que l’attribut enaSupport est défini. Si votre instance remplit ces deux conditions, la commande ethtool -i ethn doit afficher que le module est en cours d’utilisation sur l’interface réseau.

Module noyau (ena)

Pour vérifier que le module ena est installé, utilisez la commande modinfo comme illustré dans l’exemple suivant :

[ec2-user ~]$ modinfo ena filename: /lib/modules/4.14.33-59.37.amzn2.x86_64/kernel/drivers/amazon/net/ena/ena.ko version: 1.5.0g license: GPL description: Elastic Network Adapter (ENA) author: Amazon.com, Inc. or its affiliates srcversion: 692C7C68B8A9001CB3F31D0 alias: pci:v00001D0Fd0000EC21sv*sd*bc*sc*i* alias: pci:v00001D0Fd0000EC20sv*sd*bc*sc*i* alias: pci:v00001D0Fd00001EC2sv*sd*bc*sc*i* alias: pci:v00001D0Fd00000EC2sv*sd*bc*sc*i* depends: retpoline: Y intree: Y name: ena ...

Dans le cas d’Amazon Linux ci-dessus, le module ena est installé.

ubuntu:~$ modinfo ena ERROR: modinfo: could not find module ena

Dans l’instance Ubuntu ci-dessus, le module n’est pas installé. Vous devez donc commencer par l’installer. Pour plus d’informations, consultez Activer les réseaux améliorés sur Ubuntu.

Attribut de l’instance (enaSupport)

Pour vérifier si l’attribut de mise en réseau améliorée enaSupport est défini sur une instance, utilisez l’une des commandes suivantes. Si l'attribut est défini, la réponse est true.

  • describe-instances (AWS CLI/AWS CloudShell)

    aws ec2 describe-instances --instance-ids instance_id --query "Reservations[].Instances[].EnaSupport"
  • Get-EC2Instance(Outils pour Windows PowerShell)

    (Get-EC2Instance -InstanceId instance-id).Instances.EnaSupport
Attribut d’image (enaSupport)

Pour vérifier si l’attribut de mise en réseau améliorée enaSupport est déjà défini sur une AMI, utilisez l’une des commandes suivantes. Si l’attribut est défini, la réponse est true.

  • describe-images (AWS CLI/AWS CloudShell)

    aws ec2 describe-images --image-id ami_id --query "Images[].EnaSupport"
  • Get-EC2Image(Outils pour Windows PowerShell)

    (Get-EC2Image -ImageId ami_id).EnaSupport
Pilote d’interface réseau

Utilisez la commande suivante pour vérifier que le module ena est utilisé sur une interface particulière, en remplaçant le nom de l’interface par celui que vous voulez contrôler. Si vous utilisez une seule interface (par défaut), ce sera eth0. Si le système d’exploitation prend en charge les noms de réseau prévisibles, il peut s’agir d’un nom tel que ens5.

Dans l’exemple suivant, le module ena n’est pas chargé, car le pilote affiché est vif.

[ec2-user ~]$ ethtool -i eth0 driver: vif version: firmware-version: bus-info: vif-0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no

Dans cet exemple, le module ena est chargé avec la version minimale recommandée. La mise en réseau améliorée est correctement configurée pour cette instance.

[ec2-user ~]$ ethtool -i eth0 driver: ena version: 1.5.0g firmware-version: expansion-rom-version: bus-info: 0000:00:05.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no

Activer les réseaux améliorés sur Amazon Linux AMI

Amazon Linux 2 et les dernières versions de Amazon Linux AMI incluent le module requis pour la mise en réseau améliorée avec ENA installé et la prise en charge ENA activée. Par conséquent, si vous lancez une instance avec la dernière version HVM d’Amazon Linux sur un type d’instance pris en charge, la mise en réseau améliorée est déjà activée pour votre instance. Pour plus d’informations, consultez Tester l’activation de réseaux améliorés.

Si vous avez lancé votre instance avec une version d’Amazon Linux AMI plus ancienne et que la mise en réseau améliorée n’est pas activée sur cette dernière, utilisez le procédure suivante pour l’activer.

Pour activer la mise en réseau améliorée sur Amazon Linux AMI
  1. Connectez-vous à votre instance.

  2. Depuis l’instance, exécutez la commande suivante pour mettre à jour votre instance avec le noyau et les modules noyau les plus récents, y compris ena :

    [ec2-user ~]$ sudo yum update
  3. Depuis votre ordinateur local, réinitialisez votre instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : reboot-instances (AWS CLI), Restart-EC2Instance (AWS Tools for Windows PowerShell).

  4. Connectez-vous à nouveau à votre instance et vérifiez que le module ena est installé et possède la version minimale recommandée à l’aide de la commande modinfo ena depuis Tester l’activation de réseaux améliorés.

  5. [Instance basée sur EBS] À partir de votre ordinateur local, arrêtez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : stop-instances (AWS CLI), Stop-EC2Instance (AWS Tools for Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez l'arrêter dans la AWS OpsWorks console afin que son état reste synchronisé.

    [Instance basée sur le stockage d’instance] Vous ne pouvez pas arrêter l’instance pour modifier l’attribut. Vous devez utiliser cette procédure : Pour activer la mise en réseau améliorée sur Amazon Linux AMI (instances basées sur le stockage d’instance).

  6. Depuis votre ordinateur local, activez l’attribut de mise en réseau améliorée à l’aide de l’une des commandes suivantes:

  7. (Facultatif) Créez une AMI à partir de l’instance, comme décrit dans Créer une AMI Linux basée sur Amazon EBS. L’AMI hérite de l’attribut enaSupport de mise en réseau améliorée de l’instance. Par conséquent, vous pouvez utiliser cet AMI pour lancer une autre instance avec la mise en réseau améliorée activée par défaut.

  8. Depuis votre ordinateur local, démarrez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez démarrer l'instance dans la AWS OpsWorks console afin que son état reste synchronisé.

  9. Connectez-vous à votre instance et vérifiez que le module ena est installé et chargé sur votre interface réseau à l’aide de la commande ethtool -i ethn depuis Tester l’activation de réseaux améliorés.

    Si vous ne parvenez pas à vous connecter à votre instance après avoir activé la mise en réseau améliorée, consultez Dépanner l’adaptateur Elastic Network Adapter (ENA).

Pour activer la mise en réseau améliorée sur Amazon Linux AMI (instances basées sur le stockage d’instance)

Suivez la procédure précédente jusqu’à l’étape à laquelle vous avez arrêté l’instance. Créez une nouvelle AMI comme décrit dans Créer une AMI Linux basée sur le stockage d’instance, en veillant à activer l’attribut de mise en réseau améliorée lors de l’enregistrement de l’AMI.

  • register-image (AWS CLI)

    aws ec2 register-image --ena-support ...
  • Register-EC2Image (AWS Tools for Windows PowerShell)

    Register-EC2Image -EnaSupport $true ...

Activer les réseaux améliorés sur Ubuntu

Les dernières AMI HVM Ubuntu incluent le module requis pour la mise en réseau améliorée avec ENA installé et la prise en charge ENA activée. Par conséquent, si vous lancez une instance avec la dernière AMI HVM Ubuntu sur un type d’instance pris en charge, la mise en réseau améliorée est déjà activée pour votre instance. Pour plus d’informations, consultez Tester l’activation de réseaux améliorés.

Si vous avez lancé votre instance à l’aide d’une AMI plus ancienne et que la mise en réseau améliorée n’est pas déjà activée pour celle-ci, vous pouvez installer le package noyau linux-aws pour obtenir les pilotes de mise en réseau améliorée les plus récents et mettre à jour l’attribut requis.

Pour installer le package du noyau linux-aws (Ubuntu 16.04 ou version ultérieure)

Ubuntu 16.04 et 18.04 sont fournis avec le noyau personnalisé Ubuntu (package du noyau linux-aws). Pour utiliser un autre noyau, contactez AWS Support.

Pour installer le package du noyau linux-aws (Ubuntu Trusty 14.04)
  1. Connectez-vous à votre instance.

  2. Mettez à jour le cache du package et les packages.

    ubuntu:~$ sudo apt-get update && sudo apt-get upgrade -y linux-aws
    Important

    Si, lors d’une mise à jour, vous êtes invité à installer grub, utilisez /dev/xvda pour y installer grub, puis choisissez de conserver la version courante de /boot/grub/menu.lst.

  3. [Instance basée sur EBS] À partir de votre ordinateur local, arrêtez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : stop-instances (AWS CLI), Stop-EC2Instance (AWS Tools for Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez l'arrêter dans la AWS OpsWorks console afin que son état reste synchronisé.

    [Instance basée sur le stockage d’instance] Vous ne pouvez pas arrêter l’instance pour modifier l’attribut. Vous devez utiliser cette procédure : Pour activer la mise en réseau améliorée sur Ubuntu (instances basées sur le stockage d’instance).

  4. Depuis votre ordinateur local, activez l’attribut de mise en réseau améliorée à l’aide de l’une des commandes suivantes:

  5. (Facultatif) Créez une AMI à partir de l’instance, comme décrit dans Créer une AMI Linux basée sur Amazon EBS. L’AMI hérite de l’attribut enaSupport de mise en réseau améliorée de l’instance. Par conséquent, vous pouvez utiliser cet AMI pour lancer une autre instance avec la mise en réseau améliorée activée par défaut.

  6. Depuis votre ordinateur local, démarrez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez démarrer l'instance dans la AWS OpsWorks console afin que son état reste synchronisé.

Pour activer la mise en réseau améliorée sur Ubuntu (instances basées sur le stockage d’instance)

Suivez la procédure précédente jusqu’à l’étape à laquelle vous avez arrêté l’instance. Créez une nouvelle AMI comme décrit dans Créer une AMI Linux basée sur le stockage d’instance, en veillant à activer l’attribut de mise en réseau améliorée lors de l’enregistrement de l’AMI.

  • register-image (AWS CLI)

    aws ec2 register-image --ena-support ...
  • Register-EC2Image (AWS Tools for Windows PowerShell)

    Register-EC2Image -EnaSupport $true ...

Activer les réseaux améliorés sur Linux

Les dernières AMI pour Red Hat Enterprise Linux, SUSE Linux Enterprise Server et CentOS incluent le module requis pour une mise en réseau améliorée avec ENA et ont la prise en charge ENA activée. Par conséquent, si vous lancez une instance avec la dernière AMI HVM Ubuntu sur un type d’instance pris en charge, la mise en réseau améliorée est déjà activée pour votre instance. Pour plus d’informations, consultez Tester l’activation de réseaux améliorés.

La procédure suivante fournit les étapes générales pour activer la mise en réseau améliorée via ENA sur une distribution Linux autre qu’Amazon Linux AMI ou Ubuntu. Pour plus d’informations, telles que la syntaxe détaillée des commandes, les emplacements de fichier ou la prise en charge des packages et des outils, consultez la documentation spécifique de votre distribution Linux.

Pour activer la mise en réseau améliorée sur Linux
  1. Connectez-vous à votre instance.

  2. Clonez le code source du ena module sur votre instance GitHub à partir dehttps://github.com/amzn/amzn-drivers. (SUSE Linux Enterprise Server 12 SP2 et versions ultérieures incluent ENA 2.02 par défaut, de sorte que vous n’êtes pas tenu de télécharger ni de compiler le pilote ENA. Pour SUSE Linux Enterprise Server 12 SP2 et versions ultérieures, vous devez déposer une demande d’ajout de la version du pilote que vous souhaitez dans le noyau de base).

    git clone https://github.com/amzn/amzn-drivers
  3. Compilez et installez le module ena sur votre instance. Ces étapes dépendent de la distribution Linux. Pour plus d’informations sur la compilation du module sur Red Hat Enterprise Linux, consultez l’article du Centre de connaissances AWS.

  4. Exécutez la commande sudo depmod pour mettre à jour les dépendances du module.

  5. Mettez à jour initramfs sur votre instance pour garantir que le nouveau module se charge au démarrage. Par exemple, si votre distribution prend en charge dracut, vous pouvez utiliser la commande suivante :

    dracut -f -v
  6. Déterminez si par défaut votre système utilise des noms d’interface réseau prévisibles. Les systèmes qui utilisent systemd ou udev version 197 ou supérieure peuvent renommer les périphériques Ethernet et ne garantissent pas qu’une seule interface réseau sera nommée eth0. Ce comportement peut entraîner des problèmes de connexion à votre instance. Pour plus d’informations et pour voir les autres options de configuration, consultez la section sur les noms d’interface réseau prévisibles sur le site web de freedesktop.org.

    1. Vous pouvez vérifier les versions systemd ou udev sur les systèmes RPM en utilisant la commande suivante :

      rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+' systemd-208-11.el7_0.2.x86_64

      Dans l’exemple Red Hat Enterprise Linux 7 ci-dessus, la version systemd est 208, de sorte que les noms d’interface réseau prévisibles doivent être désactivés.

    2. Désactivez les noms d’interface réseau prévisibles en ajoutant l’option net.ifnames=0 à la ligne GRUB_CMDLINE_LINUX dans /etc/default/grub.

      sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
    3. Générez à nouveau le fichier de configuration grub.

      sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  7. [Instance basée sur EBS] À partir de votre ordinateur local, arrêtez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : stop-instances (AWS CLI), Stop-EC2Instance (AWS Tools for Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez l'arrêter dans la AWS OpsWorks console afin que son état reste synchronisé.

    [Instance basée sur le stockage d’instance] Vous ne pouvez pas arrêter l’instance pour modifier l’attribut. Vous devez utiliser cette procédure : Pour activer les réseaux améliorés sur Linux (instances basées sur le stockage d’instances).

  8. Depuis votre ordinateur local, activez l’attribut de mise en réseau améliorée enaSupport à l’aide de l’une des commandes suivantes:

  9. (Facultatif) Créez une AMI à partir de l’instance, comme décrit dans Créer une AMI Linux basée sur Amazon EBS . L’AMI hérite de l’attribut enaSupport de mise en réseau améliorée de l’instance. Par conséquent, vous pouvez utiliser cet AMI pour lancer une autre instance avec la mise en réseau améliorée activée par défaut.

    Important

    Si le système d’exploitation de votre instance contient un fichier /etc/udev/rules.d/70-persistent-net.rules, vous devez le supprimer avant de créer l’AMI. Ce fichier contient l’adresse MAC de la carte Ethernet de l’instance d’origine. Si une autre instance démarre avec ce fichier, le système d’exploitation ne pourra pas trouver le périphérique et il se peut qu’eth0 échoue, entraînant des problèmes de démarrage. Le fichier est à nouveau généré au cycle de démarrage suivant et les instances lancées depuis l’AMI créent leur propre version du fichier.

  10. Depuis votre ordinateur local, démarrez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez démarrer l'instance dans la AWS OpsWorks console afin que son état reste synchronisé.

  11. (Facultatif) Connectez-vous à votre instance et vérifiez que le module est installé.

    Si vous ne parvenez pas à vous connecter à votre instance après avoir activé la mise en réseau améliorée, consultez Dépanner l’adaptateur Elastic Network Adapter (ENA).

Pour activer les réseaux améliorés sur Linux (instances basées sur le stockage d’instances)

Suivez la procédure précédente jusqu’à l’étape à laquelle vous avez arrêté l’instance. Créez une nouvelle AMI comme décrit dans Créer une AMI Linux basée sur le stockage d’instance, en veillant à activer l’attribut de mise en réseau améliorée lors de l’enregistrement de l’AMI.

Activer les réseaux améliorés sur Ubuntu via DKMS

Cette méthode est fournie à des fins de test et de rétroaction uniquement. Elle n’est pas destinée à être utilisée avec des déploiements en production. Pour plus d’informations sur les déploiements en production, consultez Activer les réseaux améliorés sur Ubuntu.

Important

L’utilisation de DKMS annule le contrat de support pour votre abonnement. Il ne doit pas être utilisé pour les déploiements de production.

Pour activer la mise en réseau améliorée via ENA sur Ubuntu (instances basées sur EBS)
  1. Suivez les étapes 1 et 2 dans Activer les réseaux améliorés sur Ubuntu.

  2. Installez les packages build-essential pour compiler le module noyau et les packages dkms pour que le module ena soit recréé chaque fois que votre noyau est mis à jour.

    ubuntu:~$ sudo apt-get install -y build-essential dkms
  3. Clonez la source du ena module sur votre instance GitHub à partir dehttps://github.com/amzn/amzn-drivers.

    ubuntu:~$ git clone https://github.com/amzn/amzn-drivers
  4. Déplacez le package amzn-drivers vers le répertoire /usr/src/ afin que DKMS puisse le trouver et le générer à chaque mise à jour du noyau. Ajoutez le numéro de version (que vous trouverez dans les notes de version) du code source au nom du répertoire. Par exemple, la version 1.0.0 apparaît dans l’exemple suivant.

    ubuntu:~$ sudo mv amzn-drivers /usr/src/amzn-drivers-1.0.0
  5. Créez le fichier de configuration DKMS avec les valeurs suivantes, en remplaçant votre version d’ena.

    Créez le fichier.

    ubuntu:~$ sudo touch /usr/src/amzn-drivers-1.0.0/dkms.conf

    Modifiez le fichier et ajoutez les valeurs suivantes.

    ubuntu:~$ sudo vim /usr/src/amzn-drivers-1.0.0/dkms.conf PACKAGE_NAME="ena" PACKAGE_VERSION="1.0.0" CLEAN="make -C kernel/linux/ena clean" MAKE="make -C kernel/linux/ena/ BUILD_KERNEL=${kernelver}" BUILT_MODULE_NAME[0]="ena" BUILT_MODULE_LOCATION="kernel/linux/ena" DEST_MODULE_LOCATION[0]="/updates" DEST_MODULE_NAME[0]="ena" AUTOINSTALL="yes"
  6. Ajoutez, générez et installez le module ena sur votre instance à l’aide de DKMS.

    Ajoutez le module à DKMS.

    ubuntu:~$ sudo dkms add -m amzn-drivers -v 1.0.0

    Générez le module avec la commande dkms.

    ubuntu:~$ sudo dkms build -m amzn-drivers -v 1.0.0

    Installez le module avec dkms.

    ubuntu:~$ sudo dkms install -m amzn-drivers -v 1.0.0
  7. Générez à nouveau initramfs afin que le module approprié soit chargé au démarrage.

    ubuntu:~$ sudo update-initramfs -u -k all
  8. Vérifiez que le module ena est installé à l’aide de la commande modinfo ena depuis Tester l’activation de réseaux améliorés.

    ubuntu:~$ modinfo ena filename: /lib/modules/3.13.0-74-generic/updates/dkms/ena.ko version: 1.0.0 license: GPL description: Elastic Network Adapter (ENA) author: Amazon.com, Inc. or its affiliates srcversion: 9693C876C54CA64AE48F0CA alias: pci:v00001D0Fd0000EC21sv*sd*bc*sc*i* alias: pci:v00001D0Fd0000EC20sv*sd*bc*sc*i* alias: pci:v00001D0Fd00001EC2sv*sd*bc*sc*i* alias: pci:v00001D0Fd00000EC2sv*sd*bc*sc*i* depends: vermagic: 3.13.0-74-generic SMP mod_unload modversions parm: debug:Debug level (0=none,...,16=all) (int) parm: push_mode:Descriptor / header push mode (0=automatic,1=disable,3=enable) 0 - Automatically choose according to device capability (default) 1 - Don't push anything to device memory 3 - Push descriptors and header buffer to device memory (int) parm: enable_wd:Enable keepalive watchdog (0=disable,1=enable,default=1) (int) parm: enable_missing_tx_detection:Enable missing Tx completions. (default=1) (int) parm: numa_node_override_array:Numa node override map (array of int) parm: numa_node_override:Enable/Disable numa node override (0=disable) (int)
  9. Passez à l’étape 3 dans Activer les réseaux améliorés sur Ubuntu.

Notes de mise à jour du pilote

Pour en savoir plus sur les versions du pilote Linux ENA, consultez les notes de mise à jour du pilote de noyau Linux ENA.

Dépannage

Pour plus d’informations sur le dépannage, consultez Dépanner l’adaptateur Elastic Network Adapter (ENA).