

# Unidade de transmissão máxima (MTU) de rede para a instância do EC2
<a name="network_mtu"></a>

A unidade de transmissão máxima (MTU) de uma conexão de rede é o tamanho, em bytes, do maior pacote permissível que pode ser passado pela conexão. Quanto maior a MTU de uma conexão, mais dados podem ser passados em um único pacote. Os quadros de Ethernet consistem no pacote, ou nos dados em si que você envia, e nas informações de overhead de rede que o cercam.

Os quadros de ethernet podem vir em diferentes formatos, sendo o mais comum o Ethernet v2 padrão. Ele é compatível com 1.500 MTU, que é o maior tamanho de pacote de Ethernet compatível na maior parte da Internet. A MTU máxima compatível com uma instância depende do tipo de instância.

Todos os tipos de instância do EC2 são compatíveis com 1.500 MTU.

**Topics**
+ [Frames jumbo (9001 MTU)](#jumbo_frame_instances)
+ [Path MTU Discovery](#path_mtu_discovery)
+ [Definir a MTU para as instâncias do Amazon EC2](ec2-instance-mtu.md)
+ [Solução de problemas](#mtu-troubleshooting)

## Frames jumbo (9001 MTU)
<a name="jumbo_frame_instances"></a>

Com os frames jumbo, você pode aumentar o tamanho da carga útil por pacote, aumentando assim a porcentagem do pacote que não é sobrecarga de pacotes. Com os frames jumbo, menos pacotes são necessários para enviar a mesma quantidade de dados utilizáveis. No entanto, certos tipos de tráfego estão sujeitos às seguintes cargas úteis máximas:

**Limite de MTU de 1500 bytes**
+ Tráfego em um gateway de Internet
+ Tráfego através de ligações VPN
+ Tráfego entre regiões da AWS, a menos que um gateway de trânsito seja usado

**Limite de MTU de 8500 bytes**
+ Tráfego em uma conexão de emparelhamento de VPC entre regiões

Se os pacotes estiverem acima do limite de MTU, eles serão fragmentados, ou descartados se o marcador `Don't Fragment` for definido no cabeçalho IP.

Os frames Jumbo devem ser usados com cuidado para o tráfego voltado para Internet ou qualquer tráfego que saia de uma VPC. Os pacotes são fragmentados por sistemas intermediários, que retarda o tráfego. Para usar frames jumbo dentro de uma VPC e não diminuir o tráfego vinculado para fora da VPC, é possível configurar o tamanho de MTU por rota ou usar interfaces de rede elásticas com diferentes tipos de MTU e rotas diferentes.

Para instâncias posicionadas em um grupo de posicionamento de cluster, os frames jumbo ajudam a alcançar a máxima throughput de rede possível e são recomendados neste caso. Para obter mais informações, consulte [Grupos de posicionamento para as instâncias do Amazon EC2](placement-groups.md).

É possível usar quadros jumbo para tráfego entre suas VPCs e suas redes on-premises por meio do Direct Connect. Para obter mais informações e para saber como verificar se há capacidade de frames jumbo, consulte [MTU para interfaces virtuais privadas ou interfaces virtuais de trânsito](https://docs.aws.amazon.com/directconnect/latest/UserGuide/WorkingWithVirtualInterfaces.html#set-jumbo-frames-vif.html) no *Guia do usuário do Direct Connect*.

Todas as instâncias da [geração atual](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-types.html#current-gen-instances) são compatíveis com frames jumbo. Os seguintes tipos de instância da [geração anterior](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-types.html#previous-gen-instances) são compatíveis com frames jumbo: A1, C3, I2, M3 e R3.

**Recursos relacionados**
+ Para gateways NAT, consulte [NAT gateway basics](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-basics.html) no *Manual do usuário da Amazon VPC*.
+ Para gateways de trânsito, consulte [Maximum transmission unit](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-quotas.html#mtu-quotas) no *Guia do usuário do Transit Gateways da Amazon VPC*.
+ Para zonas locais, consulte [Considerations](https://docs.aws.amazon.com/local-zones/latest/ug/how-local-zones-work.html#considerations) no *AWS Local Zones User Guide*.
+ Para AWS Wavelength, consulte [Maximum transmission unit](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#mtu) no *Guia do usuário do AWS Wavelength*.
+ Para o Outposts, consulte [Service link maximum transmission unit requirements](https://docs.aws.amazon.com/outposts/latest/userguide/region-connectivity.html#sl-max-mtu-requirements) no *Guia do usuário do AWS Outposts*.

## Path MTU Discovery
<a name="path_mtu_discovery"></a>

A Path MTU Discovery (PMTUD) é usada para determinar a MTU do caminho entre dois dispositivos. A MTU do caminho é o tamanho de pacote máximo com suporte no caminho entre o host de origem e o host de recepção. Quando há alguma diferença no tamanho da MTU da rede entre dois hosts, a PMTUD permite que o host de recepção responda ao host de origem com uma mensagem de ICMP. Essa mensagem instrui o host de origem a usar o menor tamanho de MTU no caminho de rede para enviar novamente a solicitação. Sem essa negociação, a perda de pacotes pode ocorrer porque a solicitação é muito grande para o host aceitar.

Para o IPv4, quando um host enviar um pacote que for maior que a MTU do host de recebimento ou que a MTU de um dispositivo ao longo do caminho, o host ou o dispositivo de recebimento eliminará o pacote e retornará a seguinte mensagem ICMP: `Destination Unreachable: Fragmentation Needed and Don't Fragment was Set` (Tipo 3, Código 4). Isso instrui o host de transmissão a dividir a carga útil em vários pacotes menores e, em seguida, retransmiti-los. 

O protocolo IPv6 não é compatível com a fragmentação na rede. Se um host enviar um pacote que for maior que a MTU do host de recebimento ou que a MTU de um dispositivo ao longo do caminho, o host ou dispositivo de recebimento eliminará o pacote e retornará a seguinte mensagem ICMP: `ICMPv6 Packet Too Big (PTB)` (Tipo 2). Isso instrui o host de transmissão a dividir a carga útil em vários pacotes menores e, em seguida, retransmiti-los. 

As conexões feitas por meio de alguns componentes, como gateways NAT e balanceadores de carga, são [rastreadas automaticamente](security-group-connection-tracking.md#automatic-tracking). Isso significa que o [rastreamento de grupos de segurança](security-group-connection-tracking.md) é habilitado automaticamente para suas tentativas de conexão de saída. Se as conexões forem rastreadas automaticamente ou se as regras do seu grupo de segurança permitirem tráfego ICMP de entrada, será possível receber respostas do PMTUD.

Observe que o tráfego ICMP pode ser bloqueado mesmo se o tráfego for permitido no nível do grupo de segurança, como se você tiver uma entrada na lista de controle de acesso à rede que negue o tráfego ICMP para a sub-rede. 

**Importante**  
O Path MTU Discovery não garante que os quadros Jumbo não sejam descartados por alguns roteadores. Um gateway da Internet na VPC encaminhará somente pacotes de até 1.500 bytes. São recomendados pacotes de 1.500 MTU para o tráfico de Internet.

Para regras de MTU sobre gateways NAT, consulte [Unidade de transmissão máxima (MTU)](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#ngw-mtus) no *Guia do usuário do Amazon VPC*. Para regras de MTU sobre gateways de trânsito, consulte [Unidade de transmissão máxima (MTU)](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-quotas.html#mtu-quotas) no *Guia do usuário do AWS Transit Gateway*.

# Definir a MTU para as instâncias do Amazon EC2
<a name="ec2-instance-mtu"></a>

A unidade de transmissão máxima (MTU) de uma conexão de rede é o tamanho, em bytes, do maior pacote permissível que pode ser passado pela conexão. Todas as instâncias do Amazon EC2 são compatíveis com quadros padrão (1.500 MTU), e todos os tipos de instância da geração atual são compatíveis com quadros jumbo (9.001 MTU).

É possível visualizar a MTU para as instâncias do Amazon EC2, visualizar a MTU do caminho entre a instância e outro host e configurar as instâncias para usar quadros padrão ou jumbo.

**Topics**
+ [Verificar o MTU do caminho entre dois hosts](#check_path_mtu)
+ [Verificação da MTU para a instância](#check_mtu)
+ [Definição da MTU para a instância](#set_mtu)

## Verificar o MTU do caminho entre dois hosts
<a name="check_path_mtu"></a>

É possível verificar a MTU do caminho entre a instância EC2 e outro host. É possível especificar um nome DNS ou um endereço IP como o destino. Se o destino for outra instância do EC2, verifique se o grupo de segurança permite tráfego UDP de entrada.

O procedimento usado dependerá do sistema operacional da instância.

### Instâncias do Linux
<a name="check-path-mtu-linux"></a>

Execute o comando **tracepath** na instância para verificar a MTU do caminho entre a instância EC2 e o destino especificado. Esse comando faz parte do pacote `iputils`, que está disponível, por padrão, em muitas distribuições do Linux.

Este exemplo verifica a MTU do caminho entre a instância do EC2 e o arquivo `amazon.com`.

```
[ec2-user ~]$ tracepath amazon.com
```

Neste exemplo de saída, a MTU do caminho é 1500.

```
 1?: [LOCALHOST]     pmtu 9001
 1:  ip-172-31-16-1.us-west-1.compute.internal (172.31.16.1)   0.187ms pmtu 1500
 1:  no reply
 2:  no reply
 3:  no reply
 4:  100.64.16.241 (100.64.16.241)                          0.574ms
 5:  72.21.222.221 (72.21.222.221)                         84.447ms asymm 21
 6:  205.251.229.97 (205.251.229.97)                       79.970ms asymm 19
 7:  72.21.222.194 (72.21.222.194)                         96.546ms asymm 16
 8:  72.21.222.239 (72.21.222.239)                         79.244ms asymm 15
 9:  205.251.225.73 (205.251.225.73)                       91.867ms asymm 16
...
31:  no reply
     Too many hops: pmtu 1500
     Resume: pmtu 1500
```

### Instâncias do Windows
<a name="check-path-mtu-windows"></a>

**Para verificar a MTU do caminho usando mturoute**

1. Faça o download de **mturoute.exe** para a instância do EC2 em [https://elifulkerson.com/projects/mturoute.php](https://elifulkerson.com/projects/mturoute.php).

1. Abra uma janela do prompt de comando e altere para o diretório para onde você fez o download de **mturoute.exe**.

1. Use o comando apresentado a seguir para verificar a MTU do caminho entre a instância do EC2 e o destino especificado. Este exemplo verifica a MTU do caminho entre a instância do EC2 e o arquivo `www.elifulkerson.com`.

   ```
   .\mturoute.exe www.elifulkerson.com
   ```

   Neste exemplo de saída, a MTU do caminho é 1500.

   ```
   * ICMP Fragmentation is not permitted. *
   * Speed optimization is enabled. *
   * Maximum payload is 10000 bytes. *
   + ICMP payload of 1472 bytes succeeded.
   - ICMP payload of 1473 bytes is too big.
   Path MTU: 1500 bytes.
   ```

## Verificação da MTU para a instância
<a name="check_mtu"></a>

É possível verificar o valor da MTU para a instância. Algumas instâncias são configuradas para usar frames jumbo, e outras são configuradas para usar tamanhos de quadro padrão. 

O procedimento usado dependerá do sistema operacional da instância.

### Instâncias do Linux
<a name="check-mtu-linux"></a>

**Para verificar a configuração de MTU em uma instância do Linux**  
Execute o comando **ip** apresentado a seguir na instância do EC2. Se a interface de rede primária não for `eth0`, substitua `eth0` pela sua interface de rede.

```
[ec2-user ~]$ ip link show eth0
```

Neste exemplo de saída, *mtu 9001* indica que a instância usa frames jumbo.

```
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 02:90:c0:b7:9e:d1 brd ff:ff:ff:ff:ff:ff
```

### Instâncias do Windows
<a name="check-mtu-windows"></a>

O procedimento usado dependerá do driver da instância.

------
#### [ ENA driver ]

**Versão 2.1.0 e versões posteriores**  
Para obter o valor da MTU, use o comando **Get-NetAdapterAdvancedProperty** apresentado a seguir na instância do EC2. Use o caractere curinga (asterisco) para obter todos os nomes Ethernet. Verifique a saída para o nome da interface `*JumboPacket`. Um valor de 9015 indica que os frames jumbo estão ativados. Os frames jumbo ficam desativados por padrão.

```
Get-NetAdapterAdvancedProperty -Name "Ethernet*"
```

**Versão 1.5 e versões anteriores**  
Para obter o valor da MTU, use o comando **Get-NetAdapterAdvancedProperty** apresentado a seguir na instância do EC2. Verifique a saída para o nome da interface `MTU`. Um valor de 9001 indica que os frames jumbo estão ativados. Os frames jumbo ficam desativados por padrão.

```
Get-NetAdapterAdvancedProperty -Name "Ethernet"
```

------
#### [ Intel SRIOV 82599 driver ]

Para obter o valor da MTU, use o comando **Get-NetAdapterAdvancedProperty** apresentado a seguir na instância do EC2. Verifique entrada do nome da interface `*JumboPacket`. Um valor de 9014 indica que os frames jumbo estão ativados. (Observe que o tamanho do MTU inclui o cabeçalho e a carga.) Os frames jumbo ficam desativados por padrão.

```
Get-NetAdapterAdvancedProperty -Name "Ethernet"
```

------
#### [ AWS PV driver ]

Para obter o valor da MTU, use o comando apresentado a seguir na instância do EC2. O nome da interface pode variar. Na saída, procure uma entrada intitulada "Ethernet", "Ethernet 2" ou "Conexão Local". Você precisará do nome da interface para ativar ou desativar os frames jumbo. Um valor de 9001 indica que os frames jumbo estão ativados.

```
netsh interface ipv4 show subinterface
```

------

## Definição da MTU para a instância
<a name="set_mtu"></a>

É possível querer usar frames jumbo para o tráfego de rede na VPC e frames padrão para o tráfego para a Internet. Seja qual for o seu caso de uso, recomendamos verificar se a instância se comporta conforme o esperado.

O procedimento usado dependerá do sistema operacional da instância.

### Instâncias do Linux
<a name="set-mtu-linux"></a>

**Para definir o valor de MTU em uma instância do Linux**

1. Execute o comando **ip** apresentado a seguir na instância. O comando define o valor da MTU desejado para 1500, mas é possível usar 9001. Se a interface de rede primária não for `eth0`, substitua `eth0` pela interface de rede real.

   ```
   [ec2-user ~]$ sudo ip link set dev eth0 mtu 1500
   ```

1. (Opcional) Para persistir a configuração de MTU de rede após a reinicialização, modifique os arquivos de configuração a seguir com base no tipo de sistema operacional.
   + **Amazon Linux 2023**: modifique a seção `[Link]` do arquivo de configuração. O arquivo de configuração padrão é `/usr/lib/systemd/network/80-ec2.network`, ou você pode atualizar qualquer arquivo de configuração personalizado criado em /run/systemd/network/, em que o nome do arquivo é *priority*-*interface*.network. Para obter mais informações, consulte [Networking service](https://docs.aws.amazon.com/linux/al2023/ug/networking-service.html) na documentação do Amazon Linux.

     ```
     MTUBytes=1500
     ```
   + **Amazon Linux 2**: adicione a seguinte linha ao arquivo `/etc/sysconfig/network-scripts/ifcfg-eth0`:

     ```
     MTU=1500
     ```

     Adicione a linha a seguir ao arquivo `/etc/dhcp/dhclient.conf`:

     ```
     request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-search, domain-name-servers, host-name, nis-domain, nis-servers, ntp-servers;
     ```
   + **Outras distribuições do Linux**: consulte a documentação específica.

1. (Opcional) Reinicialize sua instância e verifique se a configuração de MTU está correta.

### Instâncias do Windows
<a name="set-mtu-windows"></a>

O procedimento usado dependerá do driver da instância.

------
#### [ ENA driver ]

É possível alterar a MTU usando o Gerenciador de Dispositivos ou o comando **Set-NetAdapterAdvancedProperty** na instância.

**Versão 2.1.0 e versões posteriores**  
Use o comando apresentado a seguir para habilitar frames jumbo.

```
Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*JumboPacket" -RegistryValue 9015
```

Use o comando apresentado a seguir para desabilitar frames jumbo.

```
Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*JumboPacket" -RegistryValue 1514
```

**Versão 1.5 e versões anteriores**  
Use o comando apresentado a seguir para habilitar frames jumbo.

```
Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "MTU" -RegistryValue 9001
```

Use o comando apresentado a seguir para desabilitar frames jumbo.

```
Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "MTU" -RegistryValue 1500
```

------
#### [ Intel SRIOV 82599 driver ]

É possível alterar a MTU usando o Gerenciador de Dispositivos ou o comando **Set-NetAdapterAdvancedProperty** na instância.

Use o comando apresentado a seguir para habilitar frames jumbo.

```
Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*JumboPacket" -RegistryValue 9014
```

Use o comando apresentado a seguir para desabilitar frames jumbo.

```
Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*JumboPacket" -RegistryValue 1514
```

------
#### [ AWS PV driver ]

É possível alterar a MTU usando o comando **netsh** na instância. Não é possível alterar a MTU usando o Gerenciador de Dispositivos.

Use o comando apresentado a seguir para habilitar frames jumbo.

```
netsh interface ipv4 set subinterface "Ethernet" mtu=9001
```

Use o comando apresentado a seguir para desabilitar frames jumbo.

```
netsh interface ipv4 set subinterface "Ethernet" mtu=1500
```

------

## Solução de problemas
<a name="mtu-troubleshooting"></a>

Se você tiver problemas de conectividade entre a instância do EC2 e um cluster do Amazon Redshift ao usar jumbo frames, consulte [As consultas parecem travar e às vezes não se comunicam com o cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/troubleshooting-connections.html#connecting-drop-issues) no *Guia de gerenciamento do Amazon Redshift*.