Aleatoriamente incapaz de se conectar ao servidor web localhost

3

Temos um problema muito estranho que surgiu há algumas semanas e que não conseguimos resolver.

Estamos executando alguns sites no IIS (porta 80,443) e no Apache (8080,8090) todos na mesma máquina com o Windows Server 2003 SP2. Estamos executando essa configuração há alguns anos.

Os aplicativos da web em execução no IIS se conectam às vezes aos aplicativos em execução no Apache (no mesmo servidor) antes de responder ao cliente. Outras vezes, os aplicativos se conectam a um servidor de banco de dados em execução em outro servidor e, às vezes, também se conectam a um compartilhamento de arquivos do Windows em outro servidor.

Em todos os três cenários acima, obteremos o aplicativo relatando esporadicamente um dos seguintes erros:

  • Impossível ler dados da conexão de transporte: Uma conexão estabelecida foi anulada pelo software em sua máquina host.
  • A conexão subjacente foi fechada: ocorreu um erro inesperado em um recebimento.

Além disso, percebemos que, enquanto conectado ao servidor enquanto o problema está ocorrendo, tentando fazer uma solicitação para o link , link , link (IP local) tudo dará uma mensagem de erro "Conexão foi redefinida" (Firefox). Os pedidos da Web do IIS e do Apache falham. Podemos nos conectar ao servidor a partir de uma máquina diferente (usando o endereço IP ou o nome do host), e podemos nos conectar a sites externos a partir do servidor e fazer um ping para si mesmo não é interrompido durante esse período.

O problema irá se corrigir magicamente por um período aleatório de tempo. Às vezes podemos passar mais de 24 horas sem um problema, outras vezes apenas 20 a 30 minutos. Enquanto o problema está ocorrendo, ele pode durar de alguns segundos a vários minutos (geralmente não mais que 10-15).

Também não tivemos problemas para nos conectarmos ao servidor de banco de dados ou ao servidor de compartilhamento de arquivos de outros servidores quando o encontramos neste servidor.

Alguma idéia de onde deveríamos estar procurando?

Atualização: Então, ainda estamos recebendo essas áreas, mas para adicionar mais detalhes, recebemos esses erros aleatoriamente em conexões para vários servidores e vários tipos diferentes de conexões. Nós obtê-lo em cifs (compartilhamento de arquivos), SQL Server e conexões da web para vários servidores tanto na LAN e WAN, e para si mesmo. Na maioria das vezes, é o "Uma conexão estabelecida foi abortada pelo software em sua máquina host".

NETSH DUMP

#========================
# Interface configuration
#========================
pushd interface

reset all


popd
# End of interface configuration

#========================
# Interface configuration
#========================
pushd interface ipv6

uninstall


popd
# End of interface configuration



# ----------------------------------
# ISATAP Configuration
# ----------------------------------
pushd interface ipv6 isatap



popd
# End of ISATAP configuration



# ----------------------------------
# 6to4 Configuration
# ----------------------------------
pushd interface ipv6 6to4

reset



popd
# End of 6to4 configuration

#========================
# Port Proxy configuration
#========================
pushd interface portproxy

reset


popd
# End of Port Proxy configuration



# ---------------------------------- 
# Interface IP Configuration         
# ---------------------------------- 
pushd interface ip


# Interface IP Configuration for "SW-1A"

set address name="SW-1A" source=static addr=192.168.xxx.51 mask=255.255.255.0
add address name="SW-1A" addr=192.168.xxx.50 mask=255.255.255.0
set address name="SW-1A" gateway=192.168.xxx.254 gwmetric=0
set dns name="SW-1A" source=static addr=192.168.xxx.2 register=PRIMARY
add dns name="SW-1A" addr=192.168.xxx.3 index=2
set wins name="SW-1A" source=static addr=none


popd
# End of interface IP configuration


# ------------------------------------
# Bridge configuration (not supported)
# ------------------------------------

# ------------------------------------
# End of Bridge configuration
# ------------------------------------


# ----------------------------------------- 
# aaaa Configuration                         
# ----------------------------------------- 
# This script will NOT work across different versions of IAS.
# ----------------------------------------- 

# aaaa configuration script.  
# Known Issues and limitations: 
# Import/Export between different versions is not supported.
# IAS.MDB Version = 7
pushd aaaa
set config  blob=\
blob snippped
\
AA\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*\
A7ACI/wD\
\
*
popd

# End of aaaa show config


# End of aaaa configuration.                  




# ----------------------------------------- 
# Remote Access Configuration               
# ----------------------------------------- 
pushd ras

set authmode mode = standard
delete authtype type = PAP
delete authtype type = SPAP
delete authtype type = MD5CHAP
delete authtype type = MSCHAP
delete authtype type = MSCHAPv2
delete authtype type = EAP
add authtype type = MSCHAP
add authtype type = MSCHAPv2
delete link type = SWC
delete link type = LCP
add link type = SWC
add link type = LCP
delete multilink type = MULTI
delete multilink type = BACP
add multilink type = MULTI
add multilink type = BACP

set user name = ASPNET dialin = policy cbpolicy = none 
set user name = Guest dialin = policy cbpolicy = none 
set user name = IUSR_WX-WWW1 dialin = policy cbpolicy = none 
set user name = IWAM_WX-WWW1 dialin = policy cbpolicy = none 
set user name = customuser1 dialin = policy cbpolicy = none 
set user name = customuser2 dialin = policy cbpolicy = none 
set user name = customuser3 dialin = policy cbpolicy = none 
set user name = SUPPORT_388945a0 dialin = policy cbpolicy = none 
set user name = customuser4 dialin = policy cbpolicy = none 


popd

# End of Remote Access configuration.        




# ----------------------------------------- 
# Remote Access AppleTalk Configuration     
# ----------------------------------------- 
pushd ras appletalk

set negotiation mode = allow

popd

# End of Remote Access AppleTalk Configuration. 



# ----------------------------------------- 
# Remote Access Diagnostics Configuration   
# ----------------------------------------- 
pushd ras diagnostics

set rastracing component = * state = disabled

set modemtracing state = disabled

set cmtracing state = disabled

set securityeventlogs state = disabled


popd

# End of Remote Access Diagnostics Configuration.




# ----------------------------------------- 
# Remote Access IP Configuration            
# ----------------------------------------- 
pushd ras ip

delete pool

set negotiation mode = allow
set access mode = all
set addrreq mode = deny
set broadcastnameresolution mode = disabled
set addrassign method = auto

popd

# End of Remote Access IP configuration.     



# ----------------------------------------- 
# Remote Access IPX Configuration           
# ----------------------------------------- 
pushd ras ipx

set negotiation mode = allow
set access mode = all
set nodereq mode = allow
set netassign method = autosame

popd

# End of Remote Access IPX configuration.    




# ----------------------------------------- 
# Remote Access NBF Configuration           
# ----------------------------------------- 
pushd ras netbeui

set negotiation mode = allow
set access mode = all

popd

# End of Remote Access NBF configuration.   




# ----------------------------------------- 
# Remote Access AAAA Configuration          
# ----------------------------------------- 
pushd ras aaaa

set authentication provider = windows
set accounting provider = windows

delete authserver name = *
delete acctserver name = *



popd

# End of Remote Access AAAA configuration.     


# Routing Configuration
pushd routing
reset
popd
# IP Configuration
pushd routing ip
reset
set loglevel error
add preferenceforprotocol proto=LOCAL preflevel=1
add preferenceforprotocol proto=NetMgmt preflevel=10
add preferenceforprotocol proto=STATIC preflevel=3
add preferenceforprotocol proto=NONDOD preflevel=5
add preferenceforprotocol proto=AUTOSTATIC preflevel=7
add preferenceforprotocol proto=OSPF preflevel=110
add preferenceforprotocol proto=RIP preflevel=120
add interface name="SW-1B" state=enable
set filter name="SW-1B" fragcheck=disable
add interface name="SW-1A" state=enable
set filter name="SW-1A" fragcheck=disable
add interface name="Internal" state=enable
set filter name="Internal" fragcheck=disable
add interface name="Loopback" state=enable
set filter name="Loopback" fragcheck=disable
popd
# End of IP configuration



# ---------------------------------- 
# DNS Proxy configuration            
# ---------------------------------- 
pushd routing ip dnsproxy
uninstall


popd
# End of DNS proxy configuration



# ---------------------------------- 
# IGMP Configuration                 
# ---------------------------------- 
pushd routing ip igmp
uninstall


popd
# End of IGMP configuration



# ---------------------------------- 
# NAT configuration                  
# ---------------------------------- 
pushd routing ip nat
uninstall


popd




# ---------------------------------- 
# OSPF configuration                 
# ---------------------------------- 

pushd routing ip ospf
uninstall

popd
# End of OSPF configuration




# ---------------------------------- 
# DHCP Relay Agent configuration     
# ---------------------------------- 
pushd routing ip relay
uninstall


popd
# End of DHCP Relay configuration



# ---------------------------------- 
# RIP configuration                  
# ---------------------------------- 
pushd routing ip rip
uninstall


popd
# End of RIP configuration



# ---------------------------------- 
# Router Discovery Configuration     
# ---------------------------------- 
pushd routing ip routerdiscovery
uninstall
add interface name="SW-1B" disc=disable minint=7 maxint=10 life=30 level=0
add interface name="SW-1A" disc=disable minint=7 maxint=10 life=30 level=0
add interface name="Internal" disc=disable minint=7 maxint=10 life=30 level=0
add interface name="Loopback" disc=disable minint=7 maxint=10 life=30 level=0


popd


# ---------------------------------- 
# DHCP Allocator Configuration       
# ---------------------------------- 
pushd routing ip autodhcp
uninstall


popd
# End of DHCP Allocator Configuration


Loading of DLL WinsEvnt.dll failed.
Wins Operation failed with Error There are no more endpoints available from the endpoint mapper.

Atualização: Acabamos instalando o Windows Server 2008 R2 no mesmo hardware no final de julho e o problema desapareceu e não voltamos atrás desde então. Há um ponto em que você apenas corta suas perdas, morde a bala e corre com ela.

    
por Lloyd Cotten 20.04.2011 / 22:55

4 respostas

5

Uma possibilidade: esgotamento da porta efêmera. Tente algo como netstat -an | find /c ":" para contar quantas conexões você tem em todos os vários estados. Se esse número é mais de dez mil ou mais, então as chances são de que este é o seu problema.

    
por 13.07.2011 / 04:43
1

Você está vendo alguma coisa útil nos registros de eventos? Os drivers têm problemas para carregar na inicialização? Você pode verificar o interruptor e ver se há erros de transmissão ou soma de verificação na interface de uplink do sistema?

Se você tiver erros na reinicialização relacionados à rede, de qualquer maneira, eu os procuraria primeiro. Se você tiver erros de troca, eu substituirei os cabos e moverei para uma porta diferente no switch.

Se você não tiver erros, considere a instalação de uma nova placa de rede. Na melhor das hipóteses, resolve o problema, na pior das hipóteses, junto com novos cabos e um switchport diferente, você pode cruzar fisicamente inteiramente fora da lista.

ATUALIZADO

Como isso está acontecendo em várias máquinas, acho que podemos descartar problemas de camada física.

Meu pensamento então, dado que é intermitente e afeta vários serviços, seria TCP Chimney. Consulte este artigo da base de conhecimento: link e veja se isso ajuda.

Depois disso, desligue tudo no painel de conexão de rede, exceto Cliente, Compartilhamento e Protocolo IP. Sem QoS, sem firewall, sem NLB, sem porta no nível do fornecedor combinando drivers, etc.

ATUALIZADO novamente

Bem, com tudo isso, eu diria que você deve passar pelas configurações avançadas do nível do driver em seguida. Se você puder, publique-as aqui. Se não, anote-as e tente isso: ative o controle de fluxo se estiver desligado - RX e TX ativados / Responder & Gere dependendo do driver. Em seguida, encontre qualquer coisa marcada para descarregar e desligue-a. Desative os quadros jumbo e o suporte vlan. Desligue qualquer coisa marcada como QOS. Basicamente, faça o hardware fazer todo o trabalho e tire todas as tarefas do SO / Driver / CPU do caminho de dados.

E, finalmente, se você puder capturar o servidor durante um "evento", siga as etapas neste artigo para verificar o uso da página do kernel e ver se isso ajuda a diagnosticar o problema: link

Minha sugestão final

Considere desativar o SynAttackProtect e outras proteções TCP no nível do kernel: link ou, pelo menos, colidir com as configurações do TcpMax * que podem causar sua entrada.

    
por 13.07.2011 / 19:24
0

Eu posso pensar em duas coisas:

  • Você está ficando sem portas efêmeras. Se você está no linux - as configurações padrão são geralmente muito conservadoras, então você deve sempre ajustá-las para uso em produção. Você pode verificar com cat /proc/sys/net/ipv4/ip_local_port_range . Note que este problema pode não estar no próprio servidor, mas no seu firewall, especialmente se você estiver usando NAT.

  • Você está ficando sem descritores de arquivos. Cada conexão TCP usa dois descritores de arquivos, portanto, contando o número de conexões abertas, você pode estimar o número de descritores de arquivos necessários e compará-los aos limites do sistema. ulimit -a lhe dará seus limites atuais. Novamente, as configurações padrão do Linux são conservadoras (no Centos 5.xo limite padrão é 1024), então talvez seja necessário fazer alguns ajustes.

por 15.07.2011 / 05:47
0

Será possível que seus serviços se autentiquem através do Kerberos (via AD) e os serviços chamados parem de responder devido a problemas de autenticação? Isso deve ser detectável com NetMon ou WireShark.

    
por 15.07.2011 / 23:50