Amazon Elastic Compute Cloud
Guide de l'utilisateur pour les instances Linux

Activation de la mise en réseau améliorée avec l'adaptateur 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).

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 :

  • Sélectionnez un des types d'instance pris en charge suivants : A1, C5, C5d, C5n, F1, G3, H1, I3, I3en, m4.16xlarge, M5, M5a, M5ad, M5d P2, P3, R4, R5, R5a, R5ad, R5d, T3, T3a, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal, X1, X1e, and z1d.

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

  • Installez et configurez l'interface de ligne de commande AWS CLI ou les Outils AWS pour Windows PowerShell sur l'ordinateur de votre choix, de préférence votre ordinateur de bureau ou ordinateur portable local. Pour plus d'informations, consultez Accès à Amazon EC2. 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.

Chiffrement des données

AWS assure une connectivité sûre et privée entre des instances EC2. De plus, nous chiffrons automatiquement le trafic en transit entre les instances prises en charge dans le même VPC ou dans des VPC appairés à l'aide des algorithmes AEAD avec un chiffrement 256 bits. Cette fonction de chiffrement utilise les capacités de déchargement du matériel sous-jacent, sans impact sur la performance de réseau. Les instances prises en charge sont : C5n, G4, I3en, P3dn.

Test de l'activation de la mise en réseau améliorée

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 suit :

[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 Activation de la mise en réseau améliorée 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 ec2 describe-instances --instance-ids instance_id --query "Reservations[].Instances[].EnaSupport"
  • Get-EC2InstanceOutils pour Windows PowerShell

    (Get-EC2Instance -InstanceId instance-id).Instances.EnaSupport

Attribut 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 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

Activation de la mise en réseau améliorée sur Amazon Linux AMI

Le module requis pour la mise en réseau améliorée est installé sur Amazon Linux 2 et sur les dernières versions d'Amazon Linux AMI. En outre, l'attribut enaSupport requis est défini. 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 Test de l'activation de la mise en réseau améliorée.

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, redémarrez votre instance à l'aide de la console Amazon EC2 ou de l'une des commandes suivantes : reboot-instances (AWS CLI), ou Restart-EC2Instance (Outils AWS pour 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 Test de l'activation de la mise en réseau améliorée.

  5. [EBS-backed instance] À 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 (Outils AWS pour Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez arrêter l'instance de la console AWS OpsWorks de telle sorte que l'état de l'instance demeure 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éation d'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) ou Start-EC2Instance (Outils AWS pour Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez démarrer l'instance dans la console AWS OpsWorks de telle sorte que l'état de l'instance demeure 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 Test de l'activation de la mise en réseau améliorée.

    Si vous ne parvenez pas à vous connecter à votre instance après avoir activé la mise en réseau améliorée, consultez Dépannage d'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éation d'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 (Outils AWS pour Windows PowerShell)

    Register-EC2Image -EnaSupport $true ...

Activation de la mise en réseau améliorée sur Ubuntu

Les AMI HVM Ubuntu les plus récentes disposent du module et de l'attribut enaSupport requis pour la mise en réseau améliorée via ENA. 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 Test de l'activation de la mise en réseau améliorée.

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 noyau linux-aws (Ubuntu 16.04 ou version ultérieure)

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

Pour installer le package 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. [EBS-backed instance] À 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 (Outils AWS pour Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez arrêter l'instance de la console AWS OpsWorks de telle sorte que l'état de l'instance demeure 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éation d'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) ou Start-EC2Instance (Outils AWS pour Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez démarrer l'instance dans la console AWS OpsWorks de telle sorte que l'état de l'instance demeure 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éation d'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 (Outils AWS pour Windows PowerShell)

    Register-EC2Image -EnaSupport $true ...

Activation de la mise en réseau améliorée sur Linux

La procédure suivante fournit les étapes générales permettant d'activer la mise en réseau améliorée sur une distribution Linux autre qu'Amazon Linux AMI ou Ubuntu, telle que SUSE (SLES), Red Hat Enterprise Linux ou CentOS. Avant de commencer, consultez Test de l'activation de la mise en réseau améliorée pour vérifier si la mise en réseau améliorée est déjà activée pour votre instance. 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 module ena sur votre instance depuis GitHub à l'adresse https://github.com/amzn/amzn-drivers. (SUSE SLES 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 SLES 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.

  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. [EBS-backed instance] À 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 (Outils AWS pour Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez arrêter l'instance de la console AWS OpsWorks de telle sorte que l'état de l'instance demeure 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 Linux (instances basées sur– le stockage d'instance).

  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éation d'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) ou Start-EC2Instance (Outils AWS pour Windows PowerShell). Si votre instance est gérée par AWS OpsWorks, vous devez démarrer l'instance dans la console AWS OpsWorks de telle sorte que l'état de l'instance demeure 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épannage d'Elastic Network Adapter (ENA).

Pour activer la mise en réseau améliorée sur Linux (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éation d'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 (Outils AWS pour Windows PowerShell)

    Register-EC2Image -EnaSupport ...

Activation de la mise en réseau améliorée 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 les déploiements en production, consultez Activation de la mise en réseau améliorée sur Ubuntu.

Important

L'utilisation de DKMS annule le contrat de support pour votre abonnement. L'utilisation de configurations kmod représente une alternative acceptable à l'exécution des derniers modules de noyau disponibles.

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 Activation de la mise en réseau améliorée 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 pour le module ena sur votre instance depuis GitHub, à l'adresse https://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 ci-dessous.

    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 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 Test de l'activation de la mise en réseau améliorée.

    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 Activation de la mise en réseau améliorée sur Ubuntu.

Dépannage

Pour plus d'informations sur le dépannage de votre adaptateur ENA, consultez la section Dépannage d'Elastic Network Adapter (ENA).