Estou no processo de preparação de alguns novos servidores de virtualização, e parte disso é obter alguns canais de largura de banda maior para eles. O objetivo final é ligar 4 portas GigE em um único tronco, transportando tráfego com etiqueta 802.1q. Eu posso chegar tão longe, no entanto, eu me deparei com um problema estranho. Mas primeiro, um diagrama.
---------- ---------- 1GbE trunks
| | 10GbE | | ------------- --------
| SW1 |-------| SW2 | ------------- | VM1 |
| | | | ------------- --------
---------- ----------
| | 1GbE -----------
| 1GbE |--------| client2 |
| -----------
----------
| | 1GbE -----------
| SW3 |------| client1 |
| | -----------
----------
Todos os comutadores são comutadores HP ProCurve 2910al e não estão empilhados. O cliente2 no diagrama acima está na mesma VLAN que a VM1. O Client1 está em uma VLAN diferente. Para a máquina VM (CentOS 6), o iptables e o SELinux foram desativados.
Meu problema é que, quando o entroncamento está envolvido, o tráfego de rede bidirecional é impossível quando se fala com uma máquina cliente. TCPDUMP mostra que os pings são recebidos por eles e os pacotes ECHO REPLY são enviados, mas o host da VM nunca os vê. Ao mesmo tempo, se eu tentar executar ping na VM de uma máquina cliente, ela também não funcionará. O fato de não poder executar ping no client2, que está na mesma sub-rede, sugere que algo está mal na camada de rede em algum lugar.
Estranhamente, no host da VM, posso efetuar ping nos IPs do gateway em qualquer um dos comutadores. Se eu usar uma única interface, tudo funcionará bem com e sem a marcação de VLAN. Se eu apenas vincular uma única interface e ativar a marcação VLAN nessa interface, posso ir a qualquer lugar. Construa um porta-malas, e eu estou limitado à estrutura do switch.
O tipo de tronco não parece importar. No momento, eles estão configurados com os troncos do modo 0 (balance-rr), embora o uso do LACP / 802.1qa se comporte da mesma maneira.
vlan 70
name "Virtualization Subnet"
untagged 35,36,38,40
tagged Trk1-Trk2,Trk5,Trk8
no ip address
jumbo
exit
Essa é a configuração da VLAN no SW2 lá em cima. A definição de VLAN 70 do SW1 possui o "endereço IP" definido. O trecho acima está no modo totalmente sem troncos. Quando estou com troncos:
trunk 35-36,38,40 Trk16 trunk
vlan 70
name "Virtualization Subnet"
tagged Trk1-Trk2,Trk5,Trk8,Trk16
no ip address
jumbo
exit
A versão 802.1qa / LACP comercializa a definição de tronco, trunk 35-36,38,40 Trk16 lacp
mas como eu disse, não altera a apresentação do problema.
O Client2 está realmente conectado ao SW1, mas colocá-lo lá no gráfico tornaria a formatação mais complicada. De qualquer forma, a única coisa na estrofe da interface é uma name
diretiva; está listado como uma untagged
porta na estrofe da vlan 70 para SW1.
o que estou perdendo?
fonte
Respostas:
Após um longo debate no bate-papo envolvendo MikeyB , Pauska e ChrisS , o problema acabou sendo duplo:
bonding
módulo como parte deleservice network restart
, por isso não estava rastreando minhas alterações entre o modo LACP (4) e roundrobin (0).Uma vez forcei a interface ligada ao modo LACP / 802.1qa através deste comando:
O servidor e o switch estavam conversando. Nesse ponto, começando com apenas uma interface ativada no comutador, o tráfego começou a funcionar normalmente. A ativação de uma segunda, terceira e finalmente quarta interfaces mantinha o tráfego funcionando.
Por fim, o modo LACP é o que fez as coisas funcionarem. A pista era que o modo round-robin funcionava quando havia apenas uma porta de switch ativada no tronco. O servidor sobrevive a uma reinicialização e aparece no modo correto. No entanto, a
service network restart
não faz com que aMODE="4"
parte doifcfg-bond0
arquivo entre em/etc/sysconfig/network-scripts/
vigor. Se esse modo mudar, permanecerá o que foi definido na inicialização (ou, mais provavelmente, o tempo de carregamento dobonding
módulo).fonte
Você tem em sua configuração:
Não deveria ser:
fonte
untagged 35-36,38,40
e ostagged 35-36,38,40...
dois funcionam desde que eu não tente agregar interfaces no servidor Linux.untagged Trk16
etagged Trk16...
ambos não funcionam.