O tráfego de rede não parece sair do tronco

8

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 lacpmas 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 namediretiva; está listado como uma untaggedporta na estrofe da vlan 70 para SW1.

o que estou perdendo?

sysadmin1138
fonte
Você pode publicar as estrofes da VLAN de seus comutadores Procurve? E também quais portas o hypervisor (aka VM) 1, clientes 1 e 2 estão usando?
jftuga
@jftuga As estrofes foram inseridas.
sysadmin1138
Para os switches sw1,2,3, todas as portas do tronco de uplink (para outros switches) estão marcadas na vlan 70? Além disso, o que o tracert mostra?
Jtuga 26/07
@jftuga Sim, todos os links entre comutadores são entroncados e marcados. O SW3 NÃO possui VLAN 70 nele. O traceroute mostra pouco interesse; o rastreamento morre no salto quando chegaria ao host da VM. Além disso, de dentro do próprio switch, não consigo executar ping no endereço IP do host da VM quando troncalizado. Vou ver se consigo alguma coisa para cheirar esse conjunto de portas troncalizadas.
sysadmin1138
Você diz que esta é uma VM, como na máquina virtual? Você está executando isso no ESX (i)?
26411 pauska

Respostas:

7

Após um longo debate no bate-papo envolvendo MikeyB , Pauska e ChrisS , o problema acabou sendo duplo:

  1. Um possível bug no CentOS 6 não foi alterar as opções do bondingmódulo como parte dele service network restart, por isso não estava rastreando minhas alterações entre o modo LACP (4) e roundrobin (0).
  2. O modo Round-Robin não gosta de trabalhar com os switches ProCurve.

Uma vez forcei a interface ligada ao modo LACP / 802.1qa através deste comando:

ifconfig bond0 down
echo "4" > /sys/class/net/bond0/bonding/mode
ifconfig bond0 up

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 restartnão faz com que a MODE="4"parte do ifcfg-bond0arquivo 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 do bondingmódulo).

sysadmin1138
fonte
Fico feliz em ajudar :)
MikeyB
Fico feliz em ver que você consertou isso.
jftuga
Uma pergunta e resposta muito profissional. Obrigado para ajudar alguém.
Artifex
0

Você tem em sua configuração:

trunk 35-36,38,40 Trk16 trunk
vlan 70 
   name "Virtualization Subnet" 
   tagged Trk1-Trk2,Trk5,Trk8,Trk16
   no ip address 
   jumbo 
   exit 

Não deveria ser:

   untagged Trk16
   tagged Trk1-Trk2,Trk5,Trk8
MikeyB
fonte
Bem, há um erro na postagem original, mas não o que você está sugerindo. Sob a configuração untrunked deve haver uma "Trk16 não marcado" na VLAN 70.
pauska
Eu tentei essa variante também. Ambas as variantes têm o mesmo desempenho, não funcionam. O uso untagged 35-36,38,40e os tagged 35-36,38,40...dois funcionam desde que eu não tente agregar interfaces no servidor Linux. untagged Trk16e tagged Trk16...ambos não funcionam.
sysadmin1138
Executando o Xen? O Centos 6 ainda mexe com as definições da interface? Lembro-me de um problema que tive em que as interfaces vlan foram criadas a partir da interface incorreta (o phys em vez da bridge ou vice-versa) e coisas estranhas aconteceram.
26611 MikeyB