Estoy en el proceso de organizar algunos nuevos servidores de virtualización, y parte de eso es conseguir algunos canales de mayor ancho de banda. El objetivo final es unir 4 puertos GigE en un solo tronco que transporta tráfico etiquetado 802.1q. Puedo llegar tan lejos, sin embargo, me he encontrado con un problema extraño. Pero primero, un diagrama.
---------- ---------- 1GbE trunks
| | 10GbE | | ------------- --------
| SW1 |-------| SW2 | ------------- | VM1 |
| | | | ------------- --------
---------- ----------
| | 1GbE -----------
| 1GbE |--------| client2 |
| -----------
----------
| | 1GbE -----------
| SW3 |------| client1 |
| | -----------
----------
Todos los conmutadores son conmutadores HP ProCurve 2910al y no están apilados. El Cliente2 en el diagrama anterior está en la misma VLAN que VM1. Client1 está en una VLAN diferente. Para la máquina VM (CentOS 6) tanto iptables como SELinux han sido deshabilitados.
Mi problema es que cuando se trata de enlaces troncales, el tráfico de red bidireccional es imposible cuando se habla con cualquiera de las máquinas del Cliente. TCPDUMP muestra que los pings son recibidos por ellos y que se envían los paquetes ECHO REPLY, pero el host VM nunca los ve. Al mismo tiempo, si trato de hacer ping a la VM desde una máquina cliente, tampoco funciona. El hecho de que no pueda hacer ping al cliente2, que está en la misma subred, sugiere que algo está mal en la capa de red en alguna parte.
Curiosamente, desde el host VM puedo hacer ping a las puertas de enlace IP en cualquiera de los conmutadores. Si uso una sola interfaz, todo funciona bien con y sin etiquetado VLAN. Si solo ato una sola interfaz y giro el etiquetado de VLAN en esa interfaz, puedo ir a cualquier parte. Construir un baúl, y estoy limitado a la tela del interruptor.
El tipo de tronco no parece importar. En este momento están configurados con troncales en modo 0 (balance-rr), aunque el uso de LACP / 802.1qa se comporta de la misma manera.
vlan 70
name "Virtualization Subnet"
untagged 35,36,38,40
tagged Trk1-Trk2,Trk5,Trk8
no ip address
jumbo
exit
Esa es la configuración de VLAN en SW2 allí. La definición de la VLAN 70 de SW1 tiene la "dirección IP" definida en ella. El fragmento de arriba está en el modo completamente sin troncos. Cuando estoy truncado:
trunk 35-36,38,40 Trk16 trunk
vlan 70
name "Virtualization Subnet"
tagged Trk1-Trk2,Trk5,Trk8,Trk16
no ip address
jumbo
exit
La versión 802.1qa / LACP intercambia la definición de troncal trunk 35-36,38,40 Trk16 lacp
pero, como dije, no cambia la presentación del problema.
Client2 está realmente conectado a SW1, pero ponerlo allí en el gráfico habría hecho que el formato sea más complicado. En cualquier caso, lo único en la sección Interfaz es una name
directiva; aparece como un untagged
puerto en la stanza vlan 70 para SW1.
¿Qué me estoy perdiendo?
fuente
Respuestas:
Después de un largo debate en el chat que involucró a MikeyB , Pauska y ChrisS , el problema terminó siendo doble:
bonding
módulo como parte deservice network restart
, por lo que no estaba rastreando mis cambios entre el modo LACP (4) y el roundrobin (0).Una vez que forcé la interfaz unida al modo LACP / 802.1qa a través de este comando:
Tanto el servidor como el conmutador estaban hablando. En ese punto, comenzando con solo una interfaz habilitada en el conmutador, el tráfico comenzó a funcionar normalmente. La habilitación de una segunda, tercera y, finalmente, la cuarta interfaz mantuvo el tráfico funcionando.
En definitiva, el modo LACP es lo que hace que las cosas funcionen. La pista era que el modo round-robin funcionaba cuando solo había un puerto de switch habilitado en el Trunk. El servidor sobrevive a un reinicio y aparece en el modo correcto. Sin embargo, a
service network restart
no hace que laMODE="4"
parte delifcfg-bond0
archivo/etc/sysconfig/network-scripts/
surta efecto. Si ese modo cambia, seguirá siendo lo que se configuró en el arranque (o más probablemente, el tiempo de carga delbonding
módulo).fuente
Tienes en tu configuración:
¿No debería ser eso?
fuente
untagged 35-36,38,40
ytagged 35-36,38,40...
ambos funcionan siempre que no intente agregar interfaces en el servidor Linux.untagged Trk16
Ytagged Trk16...
ambos no funcionan.