Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
¿Cómo puedo instalar y activar el controlador ENA más reciente para mejorar la compatibilidad de red en una instancia de EC2 que ejecuta RHEL?
Quiero usar el controlador Elastic Network Adapter (ENA) más reciente para mejorar la compatibilidad de red. Mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) se ejecuta en Red Hat Enterprise Linux (RHEL).
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Algunas versiones anteriores del sistema operativo (SO) RHEL no incluyen un controlador ENA. En el caso de las instancias de Nitro, debes actualizar el controlador ENA si cambias el tipo de instancia de EC2 para la conectividad de red. Para instalar el controlador ENA más reciente en tu instancia de EC2, completa los siguientes pasos según tu versión de RHEL.
Antes de instalar o actualizar un controlador ENA, se recomienda crear una instantánea del volumen de Amazon Elastic Block Store (Amazon EBS) de la instancia.
Para obtener más información sobre cómo actualizar los controladores de Linux, consulta Prácticas recomendadas para el controlador ENA de Linux y guía de optimización de rendimiento en el sitio web de GitHub.
Importante: Cuando detienes una instancia, Amazon EC2 elimina todos los datos de los volúmenes del almacén de instancias. Para comprobar el tipo de dispositivo raíz, consulta Determinar el tipo de dispositivo raíz de la AMI. Debes hacer una copia de seguridad de los datos almacenados en un volumen de almacén de instancias si quieres conservar esos datos.
RHEL versión 7.4 y posteriores
De forma predeterminada, las imágenes de máquina de Amazon (AMI) de RHEL versión 7.4 y posteriores tienen instalado el controlador ENA para mejorar las redes. Para obtener más información, consulta Activación de redes mejoradas con ENA en las instancias de EC2.
Versiones de RHEL anteriores a la 7.4
Para instalar el controlador ENA, sigue estos pasos:
-
Ejecuta el siguiente comando para actualizar el kernel a la versión más reciente:
sudo yum upgrade kernel -y -
Para actualizar la instancia, ejecuta el siguiente comando modify-instance-attribute de la AWS CLI:
aws ec2 modify-instance-attribute --instance-id exampleID --ena-support --region exampleRegionNota: Sustituye exampleID por tu ID de instancia y exampleRegion por tu región de AWS.
-
Para validar que has instalado correctamente el controlador ENA en la instancia, ejecuta el siguiente comando:
ethtool -i eth0Nota: Sustituye eth0 por el nombre de la interfaz que deseas comprobar. Si tu sistema operativo usa nombres de red predecibles, es posible que el nombre de la red sea diferente. Para obtener más información, consulta Comprender los nombres predecibles de los dispositivos de interfaz de red en el sitio web de Red Hat.
RHEL 6
Nota: RHEL 6 no incluye los controladores NVMe listos para la producción de Amazon EC2 y no puede actualizarlos a los controladores NVMe. Para usar una instancia basada en Nitro o un tipo de instancia con volúmenes de almacén de instancias de NVMe, actualiza a RHEL 7.4 o una versión posterior.
Descarga e instalación del controlador ENA
Sigue estos pasos:
-
Para actualizar el kernel y reiniciar el sistema para usar el kernel más reciente, ejecuta el siguiente comando:
sudo yum upgrade kernel -y && sudo reboot -
Para instalar el paquete de desarrollo para crear módulos del kernel que coincidan con el kernel, ejecuta los siguientes comandos:
sudo yum install kernel-devel-$(uname -r) gcc git patch rpm-build wget -ycd /usr/src/ sudo wget https://github.com/amzn/amzn-drivers/archive/master.zip sudo unzip master.zip cd amzn-drivers-master/kernel/linux/ena sudo make -
Para copiar el módulo al directorio de módulos, ejecuta el siguiente comando:
sudo cp ena.ko /lib/modules/$(uname -r)/ -
Para regenerar los archivos de asignación de dependencias del módulo del kernel, ejecuta el siguiente comando:
sudo depmod -
Para confirmar que el módulo ENA está presente, ejecuta el siguiente comando:
modinfo enaAl compilar e instalar el controlador ENA en el sistema, es posible que la versión sea posterior a la 2.2.11g. El resultado del comando muestra la información del controlador ENA.
Resultado de ejemplo:filename: /lib/modules/2.6.32-754.33.1.el6.x86_64/ena.koversion: 2.2.11g license: GPL description: Elastic Network Adapter (ENA) author: Amazon.com, Inc. or its affiliates retpoline: Y srcversion: 17C7CD1CEAD3F0ADB3A5E5E 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* alias: pci:v00001D0Fd00000051sv*sd*bc*sc*i* depends: vermagic: 2.6.32-754.33.1.el6.x86_64 SMP mod_unload modversions parm: debug:Debug level (0=none,...,16=all) (int) parm: rx_queue_size:Rx queue size. The size should be a power of 2. Max value is 8K (int) parm: force_large_llq_header:Increases maximum supported header size in LLQ mode to 224 bytes, while reducing the maximum TX queue size by half. (int) parm: num_io_queues:Sets number of RX/TX queues to allocate to device. The maximum value depends on the device and number of online CPUs. (int) -
Para agregar net.ifnames=0 a /boot/grub/grub.conf y desactivar la nomenclatura de la interfaz de red, ejecuta el siguiente comando:
sudo sed -i '/kernel/s/$/ net.ifnames=0/' /boot/grub/grub.conf -
Para activar la compatibilidad de red mejorada a nivel de instancia, ejecuta el siguiente comando modify-instance-attribute:
aws ec2 modify-instance-attribute --instance-id exampleID --ena-support --region exampleRegionNota: Sustituye exampleID por tu ID de instancia y exampleRegion por tu región.
-
Cambia el tipo de instancia por un tipo de instancia que admita ENA.
-
Usa SSH para conectarte a la instancia y, a continuación, ejecuta el siguiente comando para validar que has instalado correctamente el controlador ENA:
ethtool -i eth0
Resultado de ejemplo:
driver: enaversion: 2.2.11g firmware-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
(Opcional) Configuración del programa DKMS
Si tu aplicación depende directamente de la versión de ENA, configura el programa Dynamic Kernel Module Support (DKMS). Esto garantiza que Amazon EC2 incluya el controlador en futuras actualizaciones del kernel.
Nota: Puedes usar el repositorio Paquetes adicionales para Enterprise Linux (EPEL) en una instancia de RHEL.
Para configurar el programa DKMS, sigue estos pasos:
-
Para instalar el archivo Red Hat Package Manager (rpm), ejecuta el siguiente comando:
sudo yum install https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm -yNota: Para obtener una lista de los paquetes .rpm más recientes, consulta Paquetes disponibles en EPEL en el sitio web de Fedora Project.
-
Para instalar DKMS, ejecuta el siguiente comando:
sudo yum install dkms -y -
Para eliminar el kernel existente, ejecuta el siguiente comando:
VER=$( grep ^VERSION /usr/src/amzn-drivers-master/kernel/linux/rpm/Makefile | cut -d' ' -f2 ) -
Para copiar los archivos de origen en el directorio de origen, ejecuta el siguiente comando:
sudo cp -a /usr/src/amzn-drivers-master /usr/src/amzn-drivers-${VER} -
Para crear el archivo de configuración DKMS y compilar e instalar el módulo ENA, ejecuta el siguiente comando:
sudo cat <<EOM | sudo tee /usr/src/amzn-drivers-${VER}/dkms.confPACKAGE_NAME="ena" PACKAGE_VERSION="$VER" 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" EOM sudo dkms add -m amzn-drivers -v $VER sudo dkms build -m amzn-drivers -v $VER sudo dkms install -m amzn-drivers -v $VER
- Temas
- Compute
- Etiquetas
- LinuxAmazon EC2
- Idioma
- Español

Contenido relevante
- preguntada hace 2 meses
- preguntada hace 8 meses
- preguntada hace 7 meses
- preguntada hace un año
OFICIAL DE AWSActualizada hace 3 años