La respuesta ARP desaparece de br0 a tap0 usando OpenVPN en modo puente


9

He configurado una caja de Linux (en un esxi5) que actúa como un servidor OpenVPN. el servidor está configurado para usar puentes para los clientes, lo que esencialmente funciona, con una excepción.

Si el cliente hace ping a alguna máquina en la red que no es el servidor en sí, no funciona. Descarté todo lo que sé (iptables, etc.) y ejecutar tcpdump lo redujo a las siguientes cosas:

  • Veo solicitudes ARP en tap0 y br0
  • Veo las respuestas ARP en br0
  • NO veo las respuestas ARP en tap0

Pregunta: ¿por qué el dispositivo br0 no reenvía las respuestas ARP al dispositivo tap0?


1
ok, tengo un paso más allá. cuando veo la tabla mac del puente usando brctl showmacs, veo la dirección mac de mi cliente vpn en el lado tap0. si ahora empiezo a hacer ping desde el cliente vpn a la subred, la dirección mac se mueve al puerto over bridge que, por supuesto, bloquea la respuesta arp de la subred. el mac vuelve a cambiar casi de inmediato cuando se detiene el ping. Entonces, lo que no sé es por qué la dirección MAC cambia al puerto de conmutación incorrecto: todas mis búsquedas no arrojaron resultados hasta ahora.
fen

si se "mueve" a otro puerto, eso sería una pista definitiva de que la dirección MAC está presente más de una vez en su red o está viendo los efectos de un bucle de red (dos puertos del mismo puente conectados por un activo camino). Ambos son problemas de configuración que deben corregirse.
the-wabbit

1
aísle el problema usando una entrada ARP estática primero en su cliente, si los pings funcionan bien después de eso, puede pasar a la solución de problemas ARP. Si no funciona, entonces tiene un problema de red más grande que solo ARP.
Ricardo

Como no podemos saber nada sobre cómo se ve su red. Tiro largo; ¿tienes client-to-clienten el archivo de configuración openvpn de tu servidor? Si sus servidores están conectados a la red VPN usando openvpn como cliente, entonces la oración podría ser cierta. PD. ¿Qué tipo de distribución estás usando?
Michal Sokolowski

Respuestas:


1

Sin más información, estamos adivinando, pero intentemos:

Primero asegúrese de que eth0 y tap0 estén en modo promiscuo. br0 no debe estar en modo promiscuo.

Luego verifique que tenga arptables y cualquier regla de iptables que pueda estar interfiriendo.

Como ya recibe respuestas de arp, probablemente no tenga esto , pero verifíquelo de todos modos.

finalmente verifique la configuración de rp_filter , pero también verifique cualquier parámetro sysctl adicional que haya establecido.


1
... y dado que es ESXi, asegúrese de que el modo promiscuo esté habilitado en el conmutador virtual.
Gerald Combs

^ ^ ^ ^ Es esencial habilitar el modo promiscuo en el vSwitch si está ejecutando ESXi. De Verdad.
roaima

1

Si su host ESXi tiene conexiones redundantes a la red, hay una variedad de problemas ARP que pueden aparecer debido a la configuración predeterminada de Net.ReversePathFwdCheckPromisc. Los usuarios de pfSense que usan CARP fueron de los primeros en depurar esto, descritos en https://doc.pfsense.org/index.php/CARP_Configuration_Troubleshooting

En un entorno similar, tenemos el puente OpenVPN configurado en FreeBSD, pero también la complicación adicional de vlans. En un host donde Net.ReversePathFwdCheckPromisc no se ha establecido en 1, y donde existen múltiples enlaces ascendentes a la red, vemos una pérdida masiva de paquetes (95% +) en el tráfico entrante al dispositivo de tap. Funciona bien cuando se establece en 1.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.