Com base em uma pergunta anterior há mais de um ano ( Ethernet multiplexada de 1 Gbps? ), Parti e configurei um novo rack com um novo ISP com links LACP em todo o lugar. Precisamos disso porque temos servidores individuais (um aplicativo, um IP) que atendem milhares de computadores clientes em toda a Internet além de 1 Gbps cumulativo.
Supõe-se que essa idéia do LACP nos permita romper a barreira de 1 Gbps sem gastar uma fortuna em switches e placas de rede 10GoE. Infelizmente, eu tive alguns problemas com a distribuição de tráfego de saída. (Isso apesar do aviso de Kevin Kuphal na questão vinculada acima).
O roteador do ISP é um Cisco de algum tipo. (Deduzi isso do endereço MAC.) Meu switch é um HP ProCurve 2510G-24. E os servidores são HP DL 380 G5s executando o Debian Lenny. Um servidor está em espera quente. Nosso aplicativo não pode ser agrupado. Aqui está um diagrama de rede simplificado que inclui todos os nós de rede relevantes com IPs, MACs e interfaces.
Embora tenha todos os detalhes, é um pouco difícil trabalhar e descrever o meu problema. Portanto, por uma questão de simplicidade, aqui está um diagrama de rede reduzido aos nós e links físicos.
Então, saí e instalei meu kit no novo rack e conectei os cabos do meu ISP a partir do roteador. Ambos os servidores têm um link LACP para o meu switch, e o switch possui um link LACP para o roteador ISP. Desde o início, percebi que minha configuração do LACP não estava correta: os testes mostravam todo o tráfego de e para cada servidor passando por um link GoE físico exclusivamente entre o servidor para o switch e o switch para o roteador.
Com algumas pesquisas no Google e muito tempo RTMF em relação à ligação NIC do linux, descobri que podia controlar a ligação da NIC modificando /etc/modules
# /etc/modules: kernel modules to load at boot time.
# mode=4 is for lacp
# xmit_hash_policy=1 means to use layer3+4(TCP/IP src/dst) & not default layer2
bonding mode=4 miimon=100 max_bonds=2 xmit_hash_policy=1
loop
Isso fez com que o tráfego saísse do meu servidor pelas duas placas de rede, conforme o esperado. Mas o tráfego estava passando do switch para o roteador por apenas um link físico, ainda .
Precisamos desse tráfego passando pelos dois links físicos. Após ler e reler o Guia de Configuração e Gerenciamento do 2510G-24 , eu encontro:
[LACP usa] pares de endereços de origem e destino (SA / DA) para distribuir o tráfego de saída através de links troncalizados. O SA / DA (endereço de origem / endereço de destino) faz com que o comutador distribua o tráfego de saída para os links dentro do grupo de troncos com base nos pares de endereços de origem / destino. Ou seja, o switch envia tráfego do mesmo endereço de origem para o mesmo endereço de destino através do mesmo link troncalizado e envia tráfego do mesmo endereço de origem para um endereço de destino diferente através de um link diferente, dependendo da rotação das atribuições de caminho entre os links no tronco.
Parece que um link vinculado apresenta apenas um endereço MAC e, portanto, o caminho do servidor para o roteador sempre estará sobre um caminho do switch para o roteador porque o switch vê apenas um MAC (e não dois - um de cada porta) para os dois links do LACP.
Entendi. Mas é isso que eu quero:
Um switch HP ProCurve mais caro é o 2910al usa endereços de origem e destino de nível 3 em seu hash. Na seção "Distribuição de tráfego de saída através de links troncalizados" do Guia de gerenciamento e configuração do ProCurve 2910al :
A distribuição real do tráfego através de um tronco depende de um cálculo usando bits do endereço de origem e endereço de destino. Quando um endereço IP está disponível, o cálculo inclui os últimos cinco bits do endereço de origem e endereço de destino IP, caso contrário, os endereços MAC são usados.
ESTÁ BEM. Portanto, para que isso funcione da maneira que eu quero, o endereço de destino é a chave, pois meu endereço de origem é fixo. Isso leva à minha pergunta:
Como exatamente e especificamente o hash LACP da camada 3 funciona?
Preciso saber qual endereço de destino é usado:
- o IP do cliente , o destino final?
- Ou o IP do roteador , o próximo destino de transmissão do link físico.
Ainda não saímos e compramos um interruptor de substituição. Por favor, ajude-me a entender exatamente se o hash do endereço de destino da camada 3 do LACP é ou não o que eu preciso. Comprar outra opção inútil não é uma opção.