Вопрос: 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, которые мне не хватает?


5
2018-02-18 22:58


Источник


Некоторые брандмауэры закрывают соединения через некоторое время, если данные не были переданы. Я уверен, что для этого есть настройки. - usr
Спасибо за подсказку, знаете ли вы, где эта настройка может быть? Я уточню вопрос с тем, что я нашел до сих пор. - Dan Rowlands
К сожалению, я вообще ничего не знаю о «Threat Management Gateway». Я только понимаю, что это брандмауэр / фильтрующий продукт. Вот почему я не посмел написать ответ ;-) - usr
Это может помочь techninja.com.au/?p=85 - aduljr
Спасибо за предложение aduljr, я уже смотрел настройки обнаружения наводнений, но, к сожалению, это не помогло. - Dan Rowlands


Ответы:


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

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

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


1
2018-03-09 22:12