Duas portas Ethernet (LAN) onboard é um recurso que existe em algumas placas-mães há mais de uma década. Começou quando as pessoas queriam compartilhar a Internet via cabo ou ADSL com um segundo PC, mas roteadores ainda não eram tão comuns. Com o tempo roteadores se popularizaram, mas a segunda LAN permanece sendo incluída em algumas placas. A Placa-Mãe ASUS ROG Crosshair VIII Hero Wi-Fi, cujo review eu fiz há alguns dias aqui no Skooter Blog, é uma delas.
Muitas vezes o recurso acaba sendo sub-utilizado, pois as conexões de Internet no Brasil raramente passam de 1 Gbps, e uma única porta Gigabit Ethernet dá conta do recado. Mas quem movimenta grande quantidade de dados em rede local pode se beneficiar da segunda porta Ethernet.
Este é o meu caso, pois eu faço sincronização de dados e backup no NAS Synology Diskstation DS918+, que também já mostrei aqui no Skooter Blog, e que também tem duas portas Ethernet. Além disso, tenho também um NAS Synology Diskstation DS214, também já mostrado aqui no Skooter Blog, que também recebe alguns backup. Por fim, há ainda as cópias eventuais de dados de um equipamento para outro, também locais.
Apenas conectar as duas portas Ethernet da placa-mãe ou do NAS no switch Ethernet não adianta muita coisa, pois tipicamente cada uma ficará com um IP diferente e as transferências se concentrarão em apenas um deles, a menos que o IP seja definido explicitamente. Mas alguns switches suportam agregação de portas, de modo que duas ou mais portas são combinadas para funcionar como se fosse apenas uma, mas com vazão equivalente à soma da vazão de todas.
Esse tipo de recurso tem vários nomes como teaming, trunking, bonding, dentre outros. Há também diferentes padrões usados para implementar este recurso, como o protocolo LACP (Link Aggregation Control Protocol) e várias soluções proprietárias.
Meu switch é um TP-Link TL-SG1016DE, também já mostrado aqui no Skooter Blog. Ele oferece agregação de links, mas apenas de forma estática, conforme definido no protocolo IEEE 802.3ad. É necessário escolher as portas que vão compor o tronco (trunk) e conectar então os dois cabos Ethernet que vem do mesmo dispositivo nas portas selecionadas. Desse modo, eu fiz um tronco para o DS918+ e outro para a ASUS ROG Crosshair VIII Hero:
O DS918+ usa o termo bond em vez de trunk. Ele também suporta modos diferentes de agregação. No meu caso eu usei o Balance XOR, que corresponde ao modo suportado pelo TP-Link TL-SG1016DE:
No caso da Placa-Mãe ASUS ROG Crosshair VIII Hero Wi-Fi, o Windows 10 tem formas de fazer a agregação de links nativamente, através de comandos Powershell. Mas caso pelo menos uma das interfaces de rede seja da Intel, é mais fácil instalar os drivers e softwares da Intel e fazer a agregação pela interface gráfica do Intel PROSet Adapter Configuration Utility. Nele o recurso se chama Teaming, e basta selecionar as interfaces que farão parte do time, podendo definir qual será a primária, secundária, etc. Também é necessário selecionar o tipo de agregação, que no meu caso é o Static Link Aggregation:
Vale destacar que, apesar de uma das interfaces de rede da ASUS ROG Crosshair VIII Hero ser de 2,5 Gbps, o switch é apenas Gigabit Ethernet, limitando a vazão em 1 Gbps. Além disso, vários métodos de agregação só funcionam com enlaces de vazão igual, de modo que a vazão agregada será o dobro da vazão do enlace mais estreito.
Como cada equipamento escolhe qual interface vai usar em cada conexão é algo que varia conforme a implementação. Em geral isto é feito com hashes baseados em endereços MAC (camada 2 – enlace), endereços IPs (camada 3 – rede), ou mesmo em números de portas TCP/UDP (camada 4 – transporte). Infelizmente não consegui encontrar informações de como a implementação é feita em cada um de meus equipamentos.
O que percebi é que se estou, por exemplo, copiando um arquivo grande do meu NAS Synology Diskstation DS918+ para o meu PC, a vazão fica em torno de 111 MB/s (888 Mbps), típica do uso de uma única interface Gigabit Ethernet, ou seja uma única conexão TCP aparentemente não vai utilizar mais de uma interface. Mesmo duas transferências sendo feitas a partir do mesmo NAS ficam limitadas, de modo que possivelmente um de meus equipamentos está fazendo o hash apenas em nível 2 ou 3 (MACs e IPs) sem considerar números de porta.
Por outro lado, ao copiar ao mesmo tempo um arquivo do meu NAS Synology Diskstation DS918+ e outro do meu NAS Synology Diskstation DS214 a vazão total oscilou em torno de 169 MB/s (1352 Mbps) comprovando que ambas as interfaces estavam sendo usadas ao mesmo tempo.
Note que o DS214 tem apenas uma interface de rede, é um equipamento mais lento, e não está ligado diretamente no TL-SG1016DE. Na verdade há 5 saltos Gigabit Ethernet (em nível de enlace) para chegar nele (quatro switches no caminho) a partir do meu PC. Mesmo copiando um arquivo dele isoladamente a transferência não chega a saturar uma conexão Gigabit Ethernet, oscilando apenas em torno de 70 MB/s (560 Mbps). Desse modo, é possível que com um segundo equipamento mais rápido fosse possível chegar mais próximo do limite de 2 Gbps das duas interfaces somadas.
Tentei então transferir três arquivos ao mesmo tempo, de três fontes diferentes, os dois dos NAS e mais um arquivo do HD Externo que está no MSI Cubi, também já mostrado aqui no Skooter Blog. Note que o MSI Cubi também está há 4 saltos Gigabit Ethernet (em nível de enlace) do meu PC, e todos os switches no caminho são compartilhados com o DS214, de modo que os dois somados não poderiam passar do limite dos limites de vazão da Gigabit Ethernet. De fato, os dois somavam por volta de 90 MB/s enquanto o DS918+ atingia outros 90 MB/s, totalizando por volta de 180 MB/s (1440 Mbps).
Percebi então que a esta altura o gargalo era o HDD do meu PC que estava recebendo os arquivos. Fiz o mesmo teste gravando os arquivos no SSD Sandisk Ultra m.2 NVMe 3D 1TB 2280, também já mostrado aqui no Skooter Blog, e a vazão saltou para a casa dos 204 MB/s (1632 Mbps).
Eu poderia ir além, fazer outros testes além de copiar arquivos, usando outros protocolos além do SMB, com dispositivos todos ligados no mesmo switch, mas acho que já deu para ter uma ideia dos ganhos de vazão. Nesses meus testes simples, os ganhos passaram de 80%, o que é bastante considerável.
É claro que no dia-a-dia eu dificilmente vou estar copiando três arquivos de três fontes diferentes, mas há situações comuns com potencial de ganho, como estar realizando tarefas de backups automáticos em ambos os NAS (com limite de 1 Gbps para um) e ainda baixando algo da Internet (com limite de 200 Mbps), por exemplo.
Compartilhe o artigo com seus amigos se você gostou . O Skooter Blog precisa de sua ajuda para continuar existindo.