Recentemente, vimos um problema após um failover de nosso roteador, em que nossas caixas do Windows 2008 não começaram a conversar com o roteador principal após o failback.
Quando fizemos algumas escavações, eles ainda tinham a entrada ARP do roteador secundário. De acordo com o Blog do TechNet, este é um projeto específico:
Primeiro, um Windows Vista ou Windows Server 2008 não atualizará o cache do vizinho se uma transmissão de ARP for recebida, a menos que faça parte de uma solicitação de transmissão de ARP para o receptor . O que isso significa é que, quando um ARP gratuito é enviado em uma rede com Windows Vista e Widows Server 2008, esses sistemas não atualizam seu cache com informações incorretas se houver um conflito de endereço IP.
Em segundo lugar, parece que o cache vizinho do Windows (arp-cache) só é atualizado se a máquina não puder mais falar com a máquina que está no cache atualmente. Ele não envia solicitações ARP ocasionais para garantir que o cache não fique obsoleto. Embora isso não seja um problema durante o failover inicial, durante o failback quando as duas caixas estiverem ativas, isso fará com que o Windows continue falando com a caixa secundária.
Existe alguma maneira de forçar o Windows 2008 a aceitar solicitações gratuitas de ARP?
Respostas:
Após o teste, parece que o Hotfix 2582281 corrige o problema. Você pode obter o hotfix sem precisar pagar pelo suporte usando a página de solicitação de hotfix .
Fiz um teste usando o
arping
Windows 2008 R2 sem patch. Adicionei um IP secundário, 64.34.119.80, a uma máquina com o mesmo segmento L2 da rede. Em seguida, emiti o seguinte comando de uma máquina diferente da rede (sudo arping -U 64.34.119.80 -I bond0 -c1
). Logo depois disso, fiz o ping 64.34.119.80 da caixa do Windows depois de vê-lo receber o arp no wireshark. Apliquei o hotfix e repeti o teste.Além disso, parece que o comando arping precisa não usar o endereço MAC de difusão ponto a ponto, mas o MAC de difusão, porque esse é o único tipo de GARP ignorado nos meus testes.
Antes do patch:
Nesta captura do wireshark, o ping após a solicitação do GARP não é enviado ao destino MAC do qual o GARP veio, para que você possa ver que o GARP está sendo ignorado.
Após o patch:
Neste teste, após o patch, a solicitação GARP parece ser atendida, pois o ping é enviado para o endereço MAC de onde o GARP veio.
Portanto, a partir desses testes, parece que o hotfix 2582281 corrige o problema das transmissões GARP sendo ignoradas.
fonte
Ao pesquisar meu próprio problema de TCP / IP agora, deparei-me com esse hotfix muito interessante:
http://support.microsoft.com/kb/2582281
Isso parece muito com o que você está enfrentando. E também é um hotfix totalmente novo, lançado em 22/07/2011, portanto não estava presente quando você o encontrou pela primeira vez.
fonte
Tente
netsh interface ipv4 set interface x basereachable=y
onde x é o índice da interface e y é o tempo limite do ARP em milissegundos que você deseja. Lembre-se de fazê-lo em um prompt de comando com privilégios de administrador!fonte
Qual protocolo de redundância de primeiro salto você está usando?
Sei que isso não responde diretamente à sua pergunta, mas o VRRP (e seu precursor proprietário, HSRP) usa um endereço MAC compartilhado que é invertido para uma nova porta de switch quando o roteador principal é alterado. Isso evita totalmente a necessidade de um ARP gratuito.
fonte
Pré-requisitos
1. WinPCAP 4.0.1 (versão 4.1.2 não funciona)
- http://www.winpcap.org/archive/4.0.1-WinPcap.exe (versão Windows)
2. Wireshark 1.6.7
3. IPv6 desativado na interface de rede, devido a restrições de arping
4. arping
- http://mathieu.carbou.free.fr/pub/arping/2.06/arping.zip (Windows Binary)
Execução
1. Obtenha o nome da interface
- "E: \ Arquivos de Programas \ Wireshark \ tshark.exe "-D
- A partir dos detalhes da interface do Wireshark
2. Execute arping, para enviar um pedido gratuito de ARP
- arping.exe -A -i \ Device \ NPF_ {4399F778-AF25-4B6D-AFFB-A1F2C7DFA667} 10.20.30.50 -c 3 -S 10.20.30.50
Onde 10.20.30.50 é o endereço ip que você deseja anunciar para a rede (roteador)
fonte
Encontrei isso no link em http://blog.serverfault.com/post/windows-2008-and-broken-arp/ .
Se você tivesse perguntado no stackoverflow, poderia ter corrigido muito mais rapidamente.
Cheire os pacotes GARP e execute arp -s inet_addr eth_addr.
Não faça isso se houver a chance mais remota de obter uma máquina hostil na sua LAN.
fonte