Назад | Перейти на главную страницу

Threat Management Gateway 2010 убивает SQL-соединения

Моя компания только начала использовать TMG 2010 в качестве нашего брандмауэра / веб-прокси на сервере Windows 2008 R2. После перемещения все подключения к SQL Server закрываются примерно через 30 секунд.

Например:

  1. Запустите запрос из SSMS, который будет успешно выполнен
  2. Подождите 30+ секунд
  3. Запустите запрос еще раз, и он завершится ошибкой со следующей ошибкой

    A transport-level error has occurred when sending the request to the server.
    (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.
    
  4. Запустите запрос еще раз, и он будет работать правильно.

Та же проблема возникает и с запросами, выполнение которых занимает более 30 секунд.

Я предполагаю, что ошибка на шаге 3 связана с тем, что SSMS не осознает, что существующее соединение было закрыто.

Просматривая журналы TMG, я вижу, что SQL-соединения закрываются, со следующей информацией:

Closed Connection
Log type: Firewall service
Status: Unspecified error
Rule: Internal Internet Access
Source: Internal (xx.xx.xx.xx)
Destination: External (xx.xx.xx.xx:1433)
Protocol: Microsoft SQL (TCP)
The result code is: 0x80004005

Для справки я пытаюсь подключиться к SQL Azure. Однако я подключил свой ноутбук напрямую к коммутатору (в обход TMG) ​​и могу без проблем подключиться к тому же экземпляру SQL Azure. Исходя из этого, я не верю, что проблема связана с SQL Azure или чем-то вышестоящим от TMG.

Я нашел несколько статей, обвиняющих настройки TCP Chimney, но, похоже, это применимо к Windows Server 2003, и в любом случае я безуспешно пытался отключить его.

Любая помощь в этом будет принята с благодарностью.

Изменить: оказалось, что TMG устарел, я обновил его до SP2, но проблема все еще сохраняется.

Изменить: я обнаружил максимальный тайм-аут подключения в настройках веб-прокси, который в настоящее время установлен на 1800 секунд. Я даже не уверен, имеет ли веб-прокси отношение к sql-соединениям более 1433, но, поскольку у меня заканчиваются идеи, я полностью отключил прокси. К сожалению, это не помогло.

Есть ли еще одно место для тайм-аутов простоя tcp, которое мне не хватает?

Наконец-то мне удалось решить проблему с помощью поддержки Microsoft. Похоже, что пока сервер TMG получал пакеты проверки активности от SSMS, TMG не пересылал эти пакеты в SQL Azure.

Я написал сообщение в блоге о проблеме полностью со сценариями vb, которые Microsoft предоставила мне для запуска.

http://www.danrowlands.co.uk/2012/03/sql-connections-timing-out-with-tmg.html