Windows 2008 ignora las solicitudes ARP gratuitas

38

Recientemente vimos un problema después de una falla de nuestro enrutador en el que nuestras cajas de Windows 2008 no comenzaron a hablar con el enrutador principal después de la recuperación.

Cuando hicimos algunas excavaciones, todavía tenían la entrada ARP del enrutador secundario. Según el blog de TechNet, esto es por diseño:

Primero, un Windows Vista o Windows Server 2008 no actualizará el caché vecino si se recibe una transmisión ARP a menos que sea parte de una solicitud ARP de transmisión para el receptor . Esto significa que cuando se envía un ARP gratuito en una red con Windows Vista y Widows Server 2008, estos sistemas no actualizarán su caché con información incorrecta si hay un conflicto de dirección IP.

En segundo lugar, parece que el caché vecino de Windows (caché arp) solo se actualiza si la máquina ya no puede hablar con la máquina que está actualmente en su caché. No envía solicitudes ARP ocasionales para asegurarse de que el caché no esté obsoleto. Si bien esto no es un problema durante la conmutación por error inicial, durante la conmutación por error cuando ambas cajas están activas, esto hace que Windows siga hablando con la caja secundaria.

¿Hay alguna forma de obligar a Windows 2008 a aceptar solicitudes ARP gratuitas?

Zypher
fuente

Respuestas:

8

Después de probar, parece que el Hotfix 2582281 soluciona el problema. Puede obtener la revisión sin tener que pagar el soporte utilizando su página de solicitud de revisión .

Ejecuté una prueba de esto usando arpingy sin parches de Windows 2008 R2. Agregué una IP secundaria, 64.34.119.80, a una máquina con el mismo segmento L2 de red. Luego emití el siguiente comando desde una máquina diferente , la red ( sudo arping -U 64.34.119.80 -I bond0 -c1). Justo después de eso, saqué el 64.34.119.80 del recuadro de Windows después de ver que recibía el arp en wireshark. Luego apliqué el hotfix y repetí la prueba.

Además, parece que el comando arping no necesita usar una dirección MAC de unidifusión, sino más bien la difusión MAC porque este es el único tipo de GARP ignorado de mis pruebas.

Antes del parche:

ingrese la descripción de la imagen aquí

En esta captura de Wirehark, el ping después de la solicitud de GARP no se envía al destino MAC del que proviene el GARP, por lo que puede ver que se está ignorando GARP.

Después del parche:

ingrese la descripción de la imagen aquí

En esta prueba, después del parche, la solicitud de GARP parece cumplirse ya que el ping se envía a la dirección MAC de la que proviene GARP.

Entonces, a partir de estas pruebas, parece que la revisión 2582281 corrige el problema de que las transmisiones GARP se ignoren.

Kyle Brandt
fuente
4

Al investigar mi propio problema TCPIP en este momento, me encontré con esta revisión muy interesante:

http://support.microsoft.com/kb/2582281

Porque:

Este problema se produce porque la pila TCP / IP del servidor de aplicaciones ignora incorrectamente las solicitudes gratuitas de Protocolo de resolución de direcciones (ARP).

Esto suena muy parecido a lo que estás encontrando. Y también es una revisión nueva, lanzada el 22/07/2011, por lo que no estaba presente cuando se topó por primera vez.

sysadmin1138
fuente
Parece que este KB desapareció?
Kyle Brandt
@KyleBrandt Estaba allí, y ahora se ha ido. Me pregunto si el problema ahora está cubierto en un paquete de servicio / actualización en otro lugar, posiblemente este: support.microsoft.com/kb/2578103
sysadmin1138
3

Pruebe netsh interface ipv4 set interface x basereachable=ydonde x es el índice de la interfaz e y es el tiempo de espera ARP en milisegundos que desee. ¡Recuerde hacerlo desde un símbolo del sistema con privilegios de administrador!


fuente
2
En realidad, eso solo ajusta el tiempo entre el momento en que la memoria caché vecina piensa que la entrada es obsoleta o accesible. Si las dos cajas HA están activas en el momento de la recuperación, Windows nunca lo verá como obsoleto y reactivado.
Zypher
1
No creo que haya una manera de obligar a Windows a aceptar ARP gratuitos. De hecho, he tenido que reducir el tiempo de acceso base para lograr la conmutación por error / recuperación en un escenario diferente debido a esto.
3

¿Qué protocolo de redundancia de primer salto está utilizando?

Soy consciente de que esto no responde a su pregunta directamente, sin embargo, VRRP (y su antecesor patentado, HSRP) usan una dirección MAC compartida que se cambia a un nuevo puerto de conmutador cuando cambia el enrutador maestro. Esto evita la necesidad de un ARP gratuito por completo.

Murali Suriar
fuente
1

Requisitos previos
1. WinPCAP 4.0.1 (la versión 4.1.2 no funciona)
- http://www.winpcap.org/archive/4.0.1-WinPcap.exe (versión de Windows)
2. Wireshark 1.6.7
3. IPv6 deshabilitado en la interfaz de red, debido a restricciones de arping
4. Arping
- http://mathieu.carbou.free.fr/pub/arping/2.06/arping.zip (Windows Binary)

Ejecución
1. Obtenga el nombre de la interfaz
- "E: \ Archivos de programa \ Wireshark \ tshark.exe "-D
- Desde los detalles de la interfaz de Wireshark
2. Ejecute arping, para enviar la solicitud ARP
Gratuita - arping.exe -A -i \ Device \ NPF_ {4399F778-AF25-4B6D-AFFB-A1F2C7DFA667} 10.20.30.50 -c 3 -S 10.20.30.50
Donde 10.20.30.50 es la dirección IP que desea anunciar a la red (enrutador)

Antonio N
fuente
-4

Encontré esto en el enlace de http://blog.serverfault.com/post/windows-2008-and-broken-arp/ .

Si hubiera preguntado sobre stackoverflow, podría haber tenido una solución mucho más rápida.

Olfatee los paquetes GARP y ejecute arp -s inet_addr eth_addr.

No haga esto si existe la posibilidad más remota de obtener una máquina hostil en su LAN.

joshudson
fuente
Eso no es realmente una solución. Es una solución alternativa que funciona en una máquina. El comportamiento aún está roto. Todo lo que está haciendo es cambiar manualmente la dirección en la tabla arp, no corregir la causa raíz del comportamiento.
Zypher