The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Ошибки подключения при перезагрузке правил ipnat"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Ошибки подключения при перезагрузке правил ipnat"  
Сообщение от Orlic email(??) on 02-Окт-06, 16:52 
Есть ipfw и ipnat, разделяющие web-сервер ASP.Net и MS SQL сервер, на который работает web-сервер. Между ними есть правило ipnat, которое транслирует запросы от weи к sql:
map bge1 from IP_web/32 to IP_sql/32 -> ip_gate/32 portmap tcp/udp 20000:30000

так вот, когда gate ЗАГРУЖАЕТСЯ, или перегружаем ipnat
ipnat -CF -f /etc/ipnat.rules

то никаких таблиц транслирования еще нет, и ASP страницы выдают
Server Error in '/' Application.
________________________________________
General network error. Check your network documentation.

и так постоянно пока не появятся правила трансляции (ls -l)

Как быть????

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Ошибки подключения при перезагрузке правил ipnat"  
Сообщение от Orlic email(??) on 03-Окт-06, 18:08 
По данной проблеме в результате поиска по инету нашел такие статьи:
http://weblogs.asp.net/pleloup/archive/2003/07/23/10451.aspx
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q229/5/64.asp&NoWebContent=1
http://sqljunkies.com/WebLog/orfda/archive/2003/10/22/295.aspx

Оказывается, это трабла не из-за ipnat или ФАЙРВОЛА, а проблема MS SQL и коннектов к нему. ASP юзает ADO connection, которое по умолчанию все коннекты запихивает в пул и потом их юзает, а не создает новые. Когда же мы долго коннект не используем, он закрывается (ms sql сервером, или в моем случае ipnat-ом).

Когда же яя перегружаю правила
ipnat -CF -f /etc/ipnat.rules

у меня все коннекты обрываются, а ASP же считает, что коннект установлен, и шлет по нему пакетики, которые разумеется не доходят до адресата (правила ipnat то уже нет). Отсюда и косяк. Принудительная перезагрузка страницы Ctrl+F5 несколько раз подряд спасала, но это не есть гуд.

Даже если правила ipnat не перегружать, через некоторое время бездействия правила правила трансляции из таблицы ipnat исчезали, и в самый неподходящий момент пользователь мог получить некрасивый дебаг вместо странички.

Как решить проблему? В вышеуказанных статьях есть много способов (или попыток). Я добавил параметр pooling=false в connction string. Теперь при создании коннекта asp не пытается использовать старый коннект, а создает новый. Все работает (пока тестировал мало, с 2-мя клиентами одновременно). Но вот что беспокоит: раньше таблица ipnat -l содержала немного правил (до 15), а сейчас они разрастаются (до 50 для 2-ух клиентов). Хотя у меня для маппинга выделено 10000 портов, не будет ли это недостаточным для нескольких десятков одновременных подключений? Вот например, была активность, потом бездействие:
[root@~]# ipnat -l | grep -c мой_порт
24
[root@~]# ipnat -l | grep -c мой_порт
9
[root@~]# ipnat -l | grep -c мой_порт
0
потом была активность на сайте:
[root@~]# ipnat -l
List of active sessions:
MAP xxxxxxxxxx      4601  <- -> yyyyyyyyyyy     20097 [zzzzzzzzzzz МОЙ_порт]
MAP xxxxxxxxxx      4600  <- -> yyyyyyyyyyy     20096 [zzzzzzzzzzz МОЙ_порт]
MAP xxxxxxxxxx      4599  <- -> yyyyyyyyyyy     20095 [zzzzzzzzzzz МОЙ_порт]

новые правила назначаются не с первого разрешенного порта (20000), а с какого то зафиксированнного значения (20097), хотя предыдущий ipnat -l / grep -c мой_порт говорил 0...

не заткнется ли ipnat ???


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру