Нещодавно ми впровадили HAProxy для stackoverflow.com. Ми вирішили використовувати TProxy для підтримки вихідної адреси для клієнтів, що підключаються, щоб наші журнали та інші модулі IIS, які залежать від IP-адреси клієнта, не потребували змін. Таким чином, пакети приходять в опудало, як ніби вони прийшли з зовнішньої Інтернет-адреси, коли насправді вони прийшли з локального IP-адреси HAProxy 192.168.xx в нашій локальній мережі.
На обох наших веб-серверах є два NIC - одна маршрутизована адреса B класу в загальнодоступному Інтернеті зі статичним IP, DNS та шлюзом за замовчуванням та одна приватна незахищена адреса класу C, налаштована на шлюз за замовчуванням, вказаний на приватний IP для HAProxy. HAProxy має два інтерфейси - один загальнодоступний та один приватний та виконує завдання маршрутизації пакетів прозоро між інтерфейсами та спрямовує трафік на відповідний веб-сервер.
Ethernet адаптер Інтернет: Опис . . . . . . . . . . : мережева карта №1 DHCP увімкнено. . . . . . . . . . . : Ні Автоконфігурація ввімкнена. . . . : Так Адреса IPv4. . . . . . . . . . . : 69.59.196.217 (Краще) Маска підмережі . . . . . . . . . . . : 255.255.255.240 Шлюз по замовчуванням . . . . . . . . . : 69.59.196.209 DNS-сервери. . . . . . . . . . . : 208.67.222.222 208.67.220.220 NetBIOS через Tcpip. . . . . . . . : Увімкнено Приватний локальний адаптер: Опис . . . . . . . . . . : мережева карта №2 DHCP увімкнено. . . . . . . . . . . : Ні Автоконфігурація ввімкнена. . . . : Так Адреса IPv4. . . . . . . . . . . : 192.168.0.2 (Краще) Маска підмережі . . . . . . . . . . . : 255.255.255.0 Шлюз по замовчуванням . . . . . . . . . : 192.168.0.50 NetBIOS через Tcpip. . . . . . . . : Увімкнено
Ми вимкнули автоматичні показники на кожному з веб-серверів і призначили маршрутизованому загальнодоступному класу B показник 10, а наш приватний інтерфейс - показник 20.
Ми також встановили обидва ці ключі реєстру:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DeadGWDetectDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"EnableDeadGWDetect"=dword:00000000
Приблизно двічі на день ми бачимо проблеми, коли один із веб-серверів не може зв’язатися з DNS або встановити з'єднання з будь-якими іншими серверами в загальнодоступному Інтернеті.
Ми підозрюємо, що виявлення мертвого шлюзу є помилковим виявленням відключення на загальнодоступному шлюзі і переключає весь трафік на приватний шлюз, який не має доступу до DNS на даний момент, але не має можливості перевірити це.
Чи є спосіб дізнатися, чи працює виявлення мертвого шлюзу або навіть є опція на сервері Windows 2008?
Якщо так, чи є спосіб відключити виявлення мертвого шлюзу на сервері Windows 2008?
Якщо не могли бути інші причини, через які ми втрачаємо можливість вирішити DNS або підключитися на короткий час?