Enhanced networking with the Intel 82599 VF interface
For Xen-based instances, the Intel 82599 Virtual Function (VF) interface provides enhanced
networking capabilities. The interface uses the Intel ixgbevf
driver.
The following tabs show how to verify the network adapter driver that's installed for your instance operating system.
Contents
Prepare your instance for enhanced networking
To prepare for enhanced networking using the Intel 82599 VF interface, set up your instance as follows:
-
Verify that the instance type is one of the following: C3, C4, D2, I2, M4 (excluding
m4.16xlarge
), and R3. -
Ensure that the instance has internet connectivity.
-
If you have important data on the instance that you want to preserve, you should back that data up now by creating an AMI from your instance. Updating kernels and kernel modules, as well as enabling the
sriovNetSupport
attribute, might render incompatible instances or operating systems unreachable. If you have a recent backup, your data will still be retained if this happens. -
Linux instances – Launch the instance from an HVM AMI using Linux kernel version of 2.6.32 or later. The latest Amazon Linux HVM AMIs have the modules required for enhanced networking installed and have the required attributes set. Therefore, if you launch an Amazon EBS–backed, enhanced networking–supported instance using a current Amazon Linux HVM AMI, enhanced networking is already enabled for your instance.
Warning
Enhanced networking is supported only for HVM instances. Enabling enhanced networking with a PV instance can make it unreachable. Setting this attribute without the proper module or module version can also make your instance unreachable.
-
Windows instances – Launch the instance from a 64-bit HVM AMI. You can't enable enhanced networking on Windows Server 2008. Enhanced networking is already enabled for Windows Server 2012 R2 and Windows Server 2016 and later AMIs. Windows Server 2012 R2 includes Intel driver 1.0.15.3 and we recommend that you upgrade that driver to the latest version using the Pnputil.exe utility.
-
Use AWS CloudShell
from the AWS Management Console, or install and configure the AWS CLI or the AWS Tools for Windows PowerShell on any computer you choose, preferably your local desktop or laptop. For more information, see Access Amazon EC2 or the AWS CloudShell User Guide. Enhanced networking cannot be managed from the Amazon EC2 console.
Test whether enhanced networking is enabled
Verify that the sriovNetSupport
attribute is set.
Instance attribute (sriovNetSupport)
To check whether an instance has the enhanced networking
sriovNetSupport
attribute set, use one of the following
commands. If the attribute is set, the value is simple
.
-
describe-instance-attribute (AWS CLI) (AWS CLI/AWS CloudShell)
aws ec2 describe-instance-attribute --instance-id
instance_id
--attribute sriovNetSupport -
Get-EC2InstanceAttribute (AWS Tools for Windows PowerShell)
Get-EC2InstanceAttribute -InstanceId
instance-id
-Attribute sriovNetSupport
Image attribute (sriovNetSupport)
To check whether an AMI already has the enhanced networking
sriovNetSupport
attribute set, use one of the following
commands. If the attribute is set, the value is simple
.
-
describe-images (AWS CLI)
aws ec2 describe-images --image-id
ami_id
--query "Images[].SriovNetSupport" -
Get-EC2Image (AWS Tools for Windows PowerShell)
(Get-EC2Image -ImageId
ami-id
).SriovNetSupport
Enable enhanced networking on your instance
The procedure that you use depends on the operating system of the instance.
Warning
There is no way to disable the enhanced networking attribute after you've enabled it.
The latest Amazon Linux HVM AMIs have the ixgbevf
module
required for enhanced networking installed and have the required
sriovNetSupport
attribute set. Therefore, if you launch an instance
type using a current Amazon Linux HVM AMI, enhanced networking is already enabled for your
instance. For more information, see Test whether enhanced networking is enabled.
If you launched your instance using an older Amazon Linux AMI and it does not have enhanced networking enabled already, use the following procedure to enable enhanced networking.
To enable enhanced networking
-
Connect to your instance.
-
From the instance, run the following command to update your instance with the newest kernel and kernel modules, including
ixgbevf
:[ec2-user ~]$
sudo yum update -
From your local computer, reboot your instance using the Amazon EC2 console or one of the following commands: reboot-instances (AWS CLI), Restart-EC2Instance (AWS Tools for Windows PowerShell).
-
Connect to your instance again and verify that the
ixgbevf
module is installed and at the minimum recommended version using the modinfo ixgbevf command from Test whether enhanced networking is enabled. -
[EBS-backed instance] From your local computer, stop the instance using the Amazon EC2 console or one of the following commands: stop-instances (AWS CLI), Stop-EC2Instance (AWS Tools for Windows PowerShell).
[Instance store-backed instance] You can't stop the instance to modify the attribute. Instead, skip to the next procedure.
-
From your local computer, enable the enhanced networking attribute using one of the following commands:
-
(Optional) Create an AMI from the instance, as described in Create an Amazon EBS-backed AMI. The AMI inherits the enhanced networking attribute from the instance. Therefore, you can use this AMI to launch another instance with enhanced networking enabled by default.
-
From your local computer, start the instance using the Amazon EC2 console or one of the following commands: start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell).
-
Connect to your instance and verify that the
ixgbevf
module is installed and loaded on your network interface using the ethtool -i ethn
command from Test whether enhanced networking is enabled.
To enable enhanced networking (instance store-backed instances)
Follow the previous procedure until the step where you stop the instance. Create a new AMI as described in Create an instance store-backed AMI, making sure to enable the enhanced networking attribute when you register the AMI.
Before you begin, check if enhanced networking is already enabled on your instance.
The Quick Start Ubuntu HVM AMIs include the necessary drivers for enhanced
networking. If you have a version of ixgbevf
earlier than
2.16.4, you can install the linux-aws
kernel package to get the
latest enhanced networking drivers.
The following procedure provides the general steps for compiling the
ixgbevf
module on an Ubuntu instance.
To install the linux-aws
kernel package
-
Connect to your instance.
-
Update the package cache and packages.
ubuntu:~$
sudo apt-get update && sudo apt-get upgrade -y linux-awsImportant
If during the update process, you are prompted to install
grub
, use/dev/xvda
to installgrub
, and then choose to keep the current version of/boot/grub/menu.lst
.
Before you begin, check if enhanced networking is already enabled on your instance. The latest Quick Start HVM AMIs include the necessary drivers for enhanced networking, therefore you do not need to perform additional steps.
The following procedure provides the general steps if you need to enable enhanced networking with the Intel 82599 VF interface on a Linux distribution other than Amazon Linux or Ubuntu. For more information, such as detailed syntax for commands, file locations, or package and tool support, see the specific documentation for your Linux distribution.
To enable enhanced networking on Linux
-
Connect to your instance.
-
Download the source for the
ixgbevf
module on your instance from Sourceforge at https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/. Versions of
ixgbevf
earlier than 2.16.4, including version 2.14.2, do not build properly on some Linux distributions, including certain versions of Ubuntu. -
Compile and install the
ixgbevf
module on your instance.Warning
If you compile the
ixgbevf
module for your current kernel and then upgrade your kernel without rebuilding the driver for the new kernel, your system might revert to the distribution-specificixgbevf
module at the next reboot. This could make your system unreachable if the distribution-specific version is incompatible with enhanced networking. -
Run the sudo depmod command to update module dependencies.
-
Update
initramfs
on your instance to ensure that the new module loads at boot time. -
Determine if your system uses predictable network interface names by default. Systems that use systemd or udev versions 197 or greater can rename Ethernet devices and they do not guarantee that a single network interface will be named
eth0
. This behavior can cause problems connecting to your instance. For more information and to see other configuration options, see Predictable Network Interface Nameson the freedesktop.org website. -
You can check the systemd or udev versions on RPM-based systems with the following command:
[ec2-user ~]$
rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+'
systemd-208-11.el7_0.2.x86_64
In the above Red Hat Enterprise Linux 7 example, the systemd version is 208, so predictable network interface names must be disabled.
-
Disable predictable network interface names by adding the
net.ifnames=0
option to theGRUB_CMDLINE_LINUX
line in/etc/default/grub
.[ec2-user ~]$
sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub -
Rebuild the grub configuration file.
[ec2-user ~]$
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
-
[EBS-backed instance] From your local computer, stop the instance using the Amazon EC2 console or one of the following commands: stop-instances (AWS CLI/AWS CloudShell), Stop-EC2Instance (AWS Tools for Windows PowerShell).
[Instance store-backed instance] You can't stop the instance to modify the attribute. Instead, skip to the next procedure.
-
From your local computer, enable the enhanced networking attribute using one of the following commands:
-
(Optional) Create an AMI from the instance, as described in Create an Amazon EBS-backed AMI. The AMI inherits the enhanced networking attribute from the instance. Therefore, you can use this AMI to launch another instance with enhanced networking enabled by default.
If your instance operating system contains an
/etc/udev/rules.d/70-persistent-net.rules
file, you must delete it before creating the AMI. This file contains the MAC address for the Ethernet adapter of the original instance. If another instance boots with this file, the operating system will be unable to find the device andeth0
might fail, causing boot issues. This file is regenerated at the next boot cycle, and any instances launched from the AMI create their own version of the file. -
From your local computer, start the instance using the Amazon EC2 console or one of the following commands: start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell).
-
(Optional) Connect to your instance and verify that the module is installed.
To enable enhanced networking (instance store–backed instances)
Follow the previous procedure until the step where you stop the instance. Create a new AMI as described in Create an instance store-backed AMI, making sure to enable the enhanced networking attribute when you register the AMI.
If you launched your instance and it does not have enhanced
networking enabled already, you must download and install the required network
adapter driver on your instance, and then set the sriovNetSupport
instance attribute to activate enhanced networking. You can only enable this
attribute on supported instance types. For more information, see Enhanced networking on Amazon EC2 instances.
Important
To view the latest driver updates in the Windows AMIs, see Windows AMI version history in the AWS Windows AMI Reference.
To enable enhanced networking
-
Connect to your instance and log in as the local administrator.
-
[Windows Server 2016 and later] Run the following EC2 Launch PowerShell script to configure the instance after the driver is installed.
PS C:\>
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -ScheduleImportant
The administrator password will reset when you enable the initialize instance EC2 Launch script. You can modify the configuration file to disable the administrator password reset by specifying it in the settings for the initialization tasks.
-
From the instance, download the Intel network adapter driver for your operating system:
-
Windows Server 2022
Visit the download page
and download Wired_driver_
.version
_x64.zip -
Windows Server 2019 including for Server version 1809 and later*
Visit the download page
and download Wired_driver_
.version
_x64.zip -
Windows Server 2016 including for Server version 1803 and earlier*
Visit the download page
and download Wired_driver_
.version
_x64.zip -
Windows Server 2012 R2
Visit the download page
and download Wired_driver_
.version
_x64.zip -
Windows Server 2012
Visit the download page
and download Wired_driver_
.version
_x64.zip -
Windows Server 2008 R2
Visit the download page
and download PROWinx64Legacy.exe
.
*Server versions 1803 and earlier as well as 1809 and later are not specifically addressed on the Intel Drivers and Software pages.
-
-
Install the Intel network adapter driver for your operating system.
-
Windows Server 2008 R2
-
In the Downloads folder, locate the
PROWinx64Legacy.exe
file and rename it toPROWinx64Legacy.zip
. -
Extract the contents of the
PROWinx64Legacy.zip
file. -
Open the command line, navigate to the extracted folder, and run the following command to use the
pnputil
utility to add and install the INF file in the driver store.C:\>
pnputil -a PROXGB\Winx64\NDIS62\vxn62x64.inf
-
-
Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, and Windows Server 2012
-
In the Downloads folder, extract the contents of the
Wired_driver_
file.version
_x64.zip -
In the extracted folder, locate the
Wired_driver_
file and rename it toversion
_x64.exeWired_driver_
.version
_x64.zip -
Extract the contents of the
Wired_driver_
file.version
_x64.zip -
Open the command line, navigate to the extracted folder, and run one of the following commands to use the
pnputil
utility to add and install the INF file in the driver store.-
Windows Server 2022
C:\>
pnputil -i -a PROXGB\Winx64\WS2022\vxs.inf -
Windows Server 2019
C:\>
pnputil -i -a PROXGB\Winx64\NDIS68\vxn68x64.inf -
Windows Server 2016
C:\>
pnputil -i -a PROXGB\Winx64\NDIS65\vxn65x64.inf -
Windows Server 2012 R2
C:\>
pnputil -i -a PROXGB\Winx64\NDIS64\vxn64x64.inf -
Windows Server 2012
C:\>
pnputil -i -a PROXGB\Winx64\NDIS63\vxn63x64.inf
-
-
-
-
From your local computer, enable the enhanced networking attribute using one of the following commands:
-
(Optional) Create an AMI from the instance, as described in Create an Amazon EBS-backed AMI. The AMI inherits the enhanced networking attribute from the instance. Therefore, you can use this AMI to launch another instance with enhanced networking enabled by default.
-
From your local computer, start the instance using the Amazon EC2 console or one of the following commands: start-instances (AWS CLI), Start-EC2Instance (AWS Tools for Windows PowerShell).
Troubleshoot connectivity issues
If you lose connectivity while enabling enhanced networking, the
ixgbevf
module might be incompatible with the kernel. Try
installing the version of the ixgbevf
module included with the
distribution of Linux for your instance.
If you enable enhanced networking for a PV instance or AMI, this can make your instance unreachable.
For more information, see How
do I turn on and configure enhanced networking on my EC2 instances?