TMG 2010 и медленная работа банк клиента
Не так давно столкнулся со следующей проблемой – есть банк клиент, он написан на Java. После миграции одного из офисов с ISA 2006 на TMG 2010 возникла проблема, а именно постоянно наблюдались тормоза в интерфейсе банк клиента, переход между меню, формирование запросов происходило по 10-15 минут.
В ходе анализа сетевого трафика было выяснено следующее – TMG 2010 до SP2 не соответствует RFC 793, а именно после разрыва соединения, когда клиент и сервер обменялись FIN-ACK, ACK – TMG 2010 все равно продолжал использовать тот же порт исходящего соединения что и в уже разорванной сессии. В итоге оборудование Cisco не давало установить повторное TCP соединение пока не истечет установленный в RFC timeout, и банк клиенту приходилось каждый раз переустанавливать TCP соединение после запроса какого-нибудь элемента в его интерфейсе. От чего и появлялись такие дикие проблемы в его работе.
Лог сетевого трафика, который был получен при анализе:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Где-то выше установили соединение, запросили какие-то данные в интерфейсе банк клиента: 54565 12:51:31.086843 87.245.x.x -> 195.91.x.x TCP 9091 > 31294 [ACK] Seq=41 Ack=338 Win=65198 Len=0 54569 12:51:31.089041 87.245.x.x -> 195.91.x.x TCP 9091 > 31294 [ACK] Seq=41 Ack=338 Win=65198 Len=536 54570 12:51:31.089041 87.245.x.x -> 195.91.x.x TCP 9091 > 31294 [ACK] Seq=577 Ack=338 Win=65198 Len=536 54571 12:51:31.089424 87.245.x.x -> 195.91.x.x TCP 9091 > 31294 [ACK] Seq=1113 Ack=338 Win=65198 Len=536 54572 12:51:31.089424 87.245.x.x -> 195.91.x.x TCP 9091 > 31294 [ACK] Seq=1649 Ack=338 Win=65198 Len=536 54573 12:51:31.089460 195.91.x.x -> 87.245.x.x TCP 31294 > 9091 [ACK] Seq=338 Ack=1113 Win=64423 Len=0 54574 12:51:31.089711 195.91.x.x -> 87.245.x.x TCP 31294 > 9091 [ACK] Seq=338 Ack=2185 Win=65535 Len=0 54575 12:51:31.094693 87.245.x.x -> 195.91.x.x TCP 9091 > 31294 [FIN, PSH, ACK] Seq=2185 Ack=338 Win=65198 Len=258 54576 12:51:31.094901 195.91.x.x -> 87.245.x.x TCP 31294 > 9091 [ACK] Seq=338 Ack=2444 Win=65277 Len=0 54582 12:51:31.096598 195.91.x.x -> 87.245.x.x TCP 31294 > 9091 [FIN, ACK] Seq=338 Ack=2444 Win=65277 Len=0 54584 12:51:31.102534 87.245.x.x -> 195.91.x.x TCP 9091 > 31294 [ACK] Seq=2444 Ack=339 Win=65198 Len=0 (Получили какой-либо элемент в банк клиенте и разорвали соединение по запросу со стороны банка) 54590 12:51:31.104648 195.91.x.x -> 87.245.x.x TCP [TCP Port numbers reused] 31294 > 9091 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 (Послали запрос на переустановку соединения с того же порта, что и предыдущая сессия) 59034 12:51:34.020847 195.91.x.x -> 87.245.x.x TCP 31294 > 9091 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 66893 12:51:40.036479 195.91.x.x -> 87.245.x.x TCP 31294 > 9091 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 (Не получили ответа от оборудования банка в течение 10 секунд, в итоге TCP сессия не установилась и в интерфейсе банк клиента у бухгалтеров возникли «тормоза») 82356 12:51:52.177898 195.91.x.x -> 87.245.x.x TCP 30993 > 9091 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 82367 12:51:52.182222 87.245.x.x -> 195.91.x.x TCP 9091 > 30993 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460 (Так как установка прошлого TCP соединения не удалась, перезапустили установку TCP соединения по новой) 82368 12:51:52.184245 195.91.x.x -> 87.245.x.x TCP 30993 > 9091 [ACK] Seq=1 Ack=1 Win=65535 Len=0 |
По идее исправление http://support.microsoft.com/kb/2596065/en-us, которое входит в SP2 должно было решить проблему, но на практике наблюдается следующее поведение:
1) При создании ключа ApplyCooldownForLocalSourcePortReuseValue = 1 и последующей перезагрузке сервера с TMG 2010 процесс Microsoft Firewall запускался, но иногда переставал пропускать через себя трафик. Такое происходило редко, но все равное неприятно.
2) При создании ключа CooldownForLocalSourcePortReuseTime процесс Microsoft Firewall запускался, но иногда переставал пропускать через себя трафик в любом случае.
При этом все равно, даже с созданным ключом ApplyCooldownForLocalSourcePortReuseValue = 1 через какое-то время работы, где то 5-7 дней прежнее поведение банк клиента возвращалось и проблему удавалось решить только повторной перезагрузкой.
comments powered by HyperComments