A ligação de duas interfaces pode duplicar a velocidade?

6

Eu tenho 2 caixas de linux rodando centos 6.5, cada uma com 2 interfaces conectadas juntas, ligadas a um switch Cisco 2960-S com portas configuradas lacp.

A configuração no switch

port-channel load-balance src-dst-mac
!
interface Port-channel1
 switchport access vlan 100
 switchport mode access
!
interface Port-channel2
 switchport access vlan 100
 switchport mode access
!
interface FastEthernet0
 no ip address
!
interface GigabitEthernet0/1
 switchport access vlan 100
 switchport mode access
 speed 1000
 duplex full
 spanning-tree portfast
 channel-protocol lacp
 channel-group 1 mode active
!
interface GigabitEthernet0/2
 switchport access vlan 100
 switchport mode access
 speed 1000
 duplex full
 spanning-tree portfast
 channel-protocol lacp
 channel-group 1 mode active
!
interface GigabitEthernet0/3
 switchport access vlan 100
 switchport mode access
 speed 1000
 duplex full
 spanning-tree portfast
 channel-protocol lacp
 channel-group 2 mode active
!
interface GigabitEthernet0/4
 switchport access vlan 100
 switchport mode access
 speed 1000
 duplex full
 spanning-tree portfast
 channel-protocol lacp
 channel-group 2 mode active
!

e nos dois lados do Linux eu carreguei o módulo de ligação do kernel com a configuração

alias bond0 bonding
options bond0 miimon=100 mode=4 lacp_rate=1

Agora, o problema é que eu transfiro muitos arquivos de um servidor para outro, monitorando os gráficos de tráfego, mostrando que a velocidade não excede a velocidade de 1 Gb / s para a interface de união bond0 .

existe algum problema com a configuração? a velocidade não deveria ser dobrada para 2Gb / s?

    
por Ammar Lakis 24.01.2014 / 21:09

4 respostas

11

O LACP não dividirá pacotes em várias interfaces para um único fluxo / segmento. Por exemplo, um único fluxo TCP sempre enviará / receberá pacotes no mesmo NIC.

Veja o seguinte post para referência:

Taxa de transferência máxima de agregação de link (LACP / 802.3ad)

Espero que isso ajude.

    
por 24.01.2014 / 21:16
5

A maneira como a Agregação de links funciona é usando um algoritmo de hashing para decidir quais pacotes devem sair de qual porta.

Os pacotes do mesmo endereço MAC de origem, para o mesmo endereço MAC de destino, sempre sairão da mesma porta.

Algumas implementações de Agregação de Link suportam o uso da camada 3 (endereços IP) e até mesmo da camada 4 (número da porta TCP / UDP) como parte do hash, mas isso não é comum.

É por isso que você só recebe 1 gbit / seg ao transferir arquivos de um servidor para outro.

Se o sistema operacional e o switch suportarem a camada 3, você poderá obter mais velocidade usando vários endereços IP. No entanto, devido à maneira como o algoritmo de hashing funciona, existe uma chance de 50/50 de que ambos os streams acabem saindo pelo mesmo link.

    
por 22.03.2015 / 02:32
3

Meu entendimento de ligação de rede é que você não pode exceder a velocidade do link das interfaces de membro em uma conexão. Uma conexão irá se ater a uma interface na ligação depois de estabelecida.

No entanto, as conexões agora estão divididas entre as duas interfaces. Se você tivesse duas conexões em execução do servidor A para o servidor B, então as conexões não deveriam começar a marcar a outra uma na outra até onde a largura de banda fosse, porque elas estariam viajando por diferentes interfaces. Sua largura de banda total usando várias conexões deve ser de 2 Gb / s, mas cada conexão será limitada a um máximo de 1 Gb / s.

    
por 24.01.2014 / 21:22
1

Também vale considerar o algoritmo hash usado pelo Linux. Algumas versões do driver de ligação usam algoritmos hash muito simplistas, por exemplo, l2 hash no linux 3.6.5 é apenas o xor do último byte do MAC de origem e destino, o que leva a um tráfego desequilibrado em muitas circunstâncias. Alterar o algoritmo de hash para l2 + l3 ajudará muito.

    
por 20.09.2016 / 17:11