Nous avons récemment implémenté HAProxy pour stackoverflow.com. Nous avons décidé d'utiliser TProxy pour maintenir l'adresse source des clients se connectant afin que nos journaux et autres modules IIS qui dépendent de l'adresse IP du client n'aient pas besoin d'être modifiés. Ainsi, les paquets arrivent usurpés comme s'ils venaient d'une adresse IP Internet externe, alors qu'en réalité ils provenaient d'une IP HAProxy 192.168.xx locale sur notre réseau local.
Nos deux serveurs Web ont deux NIC - une adresse routable de classe B sur Internet public avec une adresse IP statique, DNS et une passerelle par défaut et une adresse privée de classe C non routable configurée avec une passerelle par défaut pointée vers l'IP privée pour HAProxy. HAProxy a deux interfaces - une publique et une privée et effectue le travail de routage transparent des paquets entre les interfaces et de diriger le trafic vers le serveur Web approprié.
Adaptateur Ethernet Internet: La description . . . . . . . . . . . : carte réseau # 1 DHCP activé. . . . . . . . . . . : Non Autoconfiguration activée. . . . : Oui Adresse IPv4. . . . . . . . . . . : 69.59.196.217 (préféré) Masque de sous-réseau. . . . . . . . . . . : 255.255.255.240 Passerelle par défaut. . . . . . . . . : 69.59.196.209 Serveurs DNS. . . . . . . . . . . : 208.67.222.222 208.67.220.220 NetBIOS sur Tcpip. . . . . . . . : Activée Adaptateur Ethernet Private Local: La description . . . . . . . . . . . : carte réseau # 2 DHCP activé. . . . . . . . . . . : Non Autoconfiguration activée. . . . : Oui Adresse IPv4. . . . . . . . . . . : 192.168.0.2 (préféré) Masque de sous-réseau. . . . . . . . . . . : 255.255.255.0 Passerelle par défaut. . . . . . . . . : 192.168.0.50 NetBIOS sur Tcpip. . . . . . . . : Activée
Nous avons désactivé les métriques automatiques sur chacun des serveurs Web et attribué à la classe publique routable B une métrique de 10 et notre interface privée une métrique de 20.
Nous avons également défini ces deux clés de registre:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DeadGWDetectDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"EnableDeadGWDetect"=dword:00000000
Environ deux fois par jour, nous constatons des problèmes où l'un des serveurs Web ne peut pas contacter le DNS ou établir des connexions avec d'autres serveurs sur Internet public.
Nous pensons que la détection de passerelle morte détecte à tort une panne sur la passerelle publique et commute tout le trafic vers la passerelle privée qui n'a pas d'accès DNS à ce stade mais n'a aucun moyen de le vérifier.
Existe-t-il un moyen de savoir si la détection de passerelle morte est en cours d'exécution ou même une option dans le serveur Windows 2008?
Si oui, existe-t-il un moyen de désactiver la détection de passerelle morte dans le serveur Windows 2008?
Sinon, pourrait-il y avoir d'autres raisons pour lesquelles nous perdons la capacité de résoudre le DNS ou de nous déconnecter pendant une courte période?
la source
Réponses:
Ces DWORD de détection de passerelle morte sont inutiles sur Windows Server 2008. La seule raison pour laquelle ils existent est pour des raisons de compatibilité. Le pilote TCP / IP et les composants du routeur Windows ne recherchent plus ces valeurs.
Je soupçonne que cette fonctionnalité a été intégrée dans le réglage automatique, qui a fait ses débuts dans Windows Vista. Essayez d'exécuter ce qui suit dans une invite de commande élevée (et redémarrez):
Mise à jour ( ajoutée le 13 septembre 2009 à 19 h 58 HNE )
Si cela ne fonctionne pas, nous aurons besoin de plus de résultats de diagnostic. Démarrez une trace (circulaire) avec les scénarios NetConnection ou LAN et laissez-la continuer à fonctionner jusqu'à ce que le problème se produise.
(Exemple: démarre le scénario de suivi NetConnection, avec une taille maximale de journal de suivi de 512 Mo)
Vous pouvez ouvrir la trace résultante dans le Moniteur réseau 3.3 , assurez-vous simplement d'installer les derniers analyseurs .
la source
Nous n'avons pas pu arriver à un résultat concluant quant à la raison pour laquelle nous ne pouvions pas contrôler le comportement de la détection de passerelle morte.
Plutôt que de passer une tonne de temps à résoudre ce problème, nous avons choisi de faire en sorte que notre instance HAProxy achemine le trafic vers la passerelle sortante et définisse la passerelle par défaut des deux serveurs Web sur l'IP de haproxy et a supprimé l'adresse de passerelle interne.
Maintenant, il n'y a qu'une seule passerelle par défaut qui élimine notre problème car la détection de passerelle par défaut morte n'est plus utilisée.
la source
Je me demande pourquoi vous devez même changer la passerelle par défaut pour être HAproxy. En règle générale, vous ne devez pas modifier votre passerelle par défaut, sauf si vous la pointez vers une configuration N + 1 hautement disponible où l'IP de la passerelle peut basculer vers un autre routeur / machine en cas de problème. Si quelque chose arrivait à votre machine HAproxy et que vous n'aviez aucun accès hors bande, les serveurs Web abandonneraient simplement Internet.
Comme je pense que la raison pour laquelle vous le faites est parce que vous utilisez Tproxy dans votre configuration pour faire apparaître l'adresse IP des clients dans vos journaux et non l'IP du serveur proxy, puis-je vous suggérer de le faire à la place
Je n'ai pas de machine Windows pour tester cela, mais je pense que cela devrait produire l'effet souhaité sans perte de connectivité indésirable.
la source
x-forwarded-for
tête et les filtres IIS pour modifier les journaux, mais nous ne savons pas comment (ou si) nos autres modules IIS facultatifs utilisent également l'en-tête dans leur fonctionnement.Lorsque l'accès à Internet est impliqué (généralement), les passerelles par défaut ne doivent être utilisées que pour indiquer un chemin d'accès à INTERNET. Si vous avez défini plusieurs passerelles par défaut, le routeur du système d'exploitation ne peut pas décider laquelle utiliser, et si une passerelle par défaut pointe vers un cul-de-sac (par exemple, votre réseau local multisegment), les paquets qui y sont transmis pour Internet sont ne va pas le faire.
la source