BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: FreeBSD 10.1 + nat (IP Filter: v5.1.2)
СообщениеДобавлено: Ср 04 фев, 2015 1:59 pm 
Не в сети

Зарегистрирован: Ср 04 фев, 2015 1:43 pm
Сообщения: 6
Проблемы с ipnat на FreeBSD 10.1 + (IP Filter: v5.1.2). Кто нибудь подымал данную связку? Начну с того что в этой версии IPfilter вместо одного значения inuse (как было в старом ipnat) при команде ipnat -s выдает еще параметр active, а также само значение разделено на in и out. Так вот за день active на превышает 200, а тем временем inuse in и inuse out постоянно стабильно растет, мало того команда ipnat -CF -f не обнуляет их! IPf -D -E тоже не обнуляет их! Если не перегружать сервак, то эти значения медленно но верно и стабильно растут у меня достигали через недели 2 - более 65000, помогает только перезагрузка. IPnat был изначально в ядре, потом подключил его как модуль. Ситуацию это не поменяло! команда ipf -D -T tcp_idletimeout=3600 -E вызывает кернел паник и полное зависание (как с ядерным так и с модульным натом). Это значение удалось поменять через sysctl net.inet.ipf.fr_tcpidletimeout=3600, но ситуацию это не изменило. Советы перейти на другой нат давать не нужно.. и так понятно что если проблему не победить, то придется это делать. Интересно решение проблемы.
ipnat.rules: (xxx, xxx1 - внешние IP 2 провайдера), нат только на xxx
map em0 192.168.0.0/24 -> xxx/32 proxy port ftp ftp/tcp
map em0 192.168.0.0/24 -> xxx/32 portmap tcp/udp 20000:25000
#Redirect SSLPOP
rdr em0 from any to xxx/32 port = 995 -> 192.168.0.1 port 995
rdr ste0 from any to xxx1/32 port = 995 -> 192.168.0.1 port 995
#Redirect VOIP
rdr em0 from any to xxx/32 port = 5060 -> 192.168.0.114 port 5060
rdr ste0 from any to xxx1/32 port = 5060 -> 192.168.0.114 port 5060
#
#Redirect pop3, sslsmtp and RDP
rdr ste0 from yyy to xxx1/32 port = 1110 -> 192.168.0.1 port 110
rdr ste0 from yyy to xxx1/32 port = 1465 -> 192.168.0.1 port 465
rdr ste0 from yyy to xxx1/32 port = 3389 -> 192.168.0.54 port 3389
#

ipf.rules:
pass out quick on em0 proto tcp/udp from 192.168.0.0/24 to any keep state
block in quick on em0 from any to 192.168.0.0/24

PS еще особенностью данной версии ната оказалось то, что напрочь отказывался заворачивать 80 порт на транспарент squid (сквид само собой собран с поддержкой ipnat). Завернул 80 порт на squid с помощью ipfw и в принципе забил на эту досаду.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD 10.1 + nat (IP Filter: v5.1.2)
СообщениеДобавлено: Чт 05 фев, 2015 4:34 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн 26 мар, 2007 6:04 pm
Сообщения: 1107
Откуда: Kiev
Насколько мне удалось узнать, то параметра tcp_idletimeout в ipf нет(поэтому наверное и происходит kernelpanic при попытке заюзать неизвестный параметр). Зато есть fr_tcpidletimeout (что собственно вы и поменяли через sysctl). В целом похоже на баг.
А на rdr можно было бы повесить log и посмотреть, действительно ли он не заворачивает или уже это squid не хочет принимать.

_________________
"Винда съела дрова и резет здесь не фурычит"
"Все говорят, что у меня /dev/hands кривой и я всё делаю через /dev/ass. А у меня этих файлов вообще нет!"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD 10.1 + nat (IP Filter: v5.1.2)
СообщениеДобавлено: Ср 11 фев, 2015 6:05 pm 
Не в сети

Зарегистрирован: Ср 04 фев, 2015 1:43 pm
Сообщения: 6
skeletor писал(а):
Насколько мне удалось узнать, то параметра tcp_idletimeout в ipf нет(поэтому наверное и происходит kernelpanic при попытке заюзать неизвестный параметр). Зато есть fr_tcpidletimeout (что собственно вы и поменяли через sysctl). В целом похоже на баг.
А на rdr можно было бы повесить log и посмотреть, действительно ли он не заворачивает или уже это squid не хочет принимать.

1. Тут вы не правы. В 5 ipfilter как раз параметр tcp_idle_timeout:
ipf -T tcp_idle_timeout
tcp_idle_timeout min 1 max 2147483647 current 3600
То что вы пишете, то было в 4 версии.
Параметр меняется вручную через sysctl, но там действительно фигурирует fr_tcpidletimeout.
Добавив строки
net.inet.ipf.fr_tcpidletimeout=3600
net.inet.ipf.fr_tcphalfclosed=1800
в sysctl.conf значения не изменились при перезагрузке :(. В логах ничего не нашел по этому поводу. Меняю только вручную, хотя все равно не помогает. Главная проблема остается.
2. К сквиду трафик доходит.. но сквид его почему-то не принимает. Но это меня сейчас совсем не беспокоит.
3. Самое главное и неприятное это переполнение inuse in и inuse out
ipnat -s | grep inuse
4166 inuse in
3858 inuse out
И это за 5 дней при активных сессиях менее 200
ipnat -s | grep active
151 active
Нашел похожую тему с такой же проблемой у человека, но 4 версии ipfilter. Он пишет что проблема началась когда он повесил алиас на интерфейс который натится. У меня тоже был алиас, так как нужно было провайдеру подсунуть MAC со старого сервака, убрал его прописав мак в файлике start_if.em0, но проблема осталась. Так же у него таблица хотя бы сбрасывалась командой ipnat -CF -f /etc/ipnat.rules, но у меня этого также не происходит, сбрасываются только активные сессии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD 10.1 + nat (IP Filter: v5.1.2)
СообщениеДобавлено: Ср 11 фев, 2015 7:47 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн 26 мар, 2007 6:04 pm
Сообщения: 1107
Откуда: Kiev
А в man 8 написано так, как я написал. Кому верить? Более того, если пройтись по сорцам, то встречается оба варианта (fr_tcpidletimeout чаще):
Код:
[root@officebackup /usr/src]# grep -ri tcp_idle_timeout ./
./sys/contrib/ipfilter/netinet/fil.c:           "tcp_idle_timeout",     1,      0x7fffffff,
./sys/contrib/ipfilter/netinet/fil.c:   if (!strcmp(t->ipft_name, "tcp_idle_timeout") ||
./contrib/ipfilter/man/ipf.5:tcp_idle_timeout
./contrib/ipfilter/man/ipf.5:tcp_idle_timeout   1       MAXINT  864000

Код:
[root@officebackup /usr/src]# grep -ri fr_tcpidletimeout ./
./share/examples/ipfilter/ipf-howto.txt:     net.inet.ipf.fr_tcpidletimeout: 864000
./sys/contrib/ipfilter/netinet/mlfk_ipl.c:SYSCTL_IPF(_net_inet_ipf, OID_AUTO, fr_tcpidletimeout, CTLFLAG_RWO,
./contrib/ipfilter/mlfk_ipl.c:SYSCTL_IPF(_net_inet_ipf, OID_AUTO, fr_tcpidletimeout, CTLFLAG_RWO,
./contrib/ipfilter/mlf_ipl.c:SYSCTL_IPF(_net_inet_ipf, OID_AUTO, fr_tcpidletimeout, CTLFLAG_RWO,
./contrib/ipfilter/man/ipf.8:ipf -D -T fr_tcpidletimeout,fr_tcpidletimeout=3600 -E

_________________
"Винда съела дрова и резет здесь не фурычит"
"Все говорят, что у меня /dev/hands кривой и я всё делаю через /dev/ass. А у меня этих файлов вообще нет!"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD 10.1 + nat (IP Filter: v5.1.2)
СообщениеДобавлено: Ср 11 фев, 2015 8:00 pm 
Не в сети

Зарегистрирован: Ср 04 фев, 2015 1:43 pm
Сообщения: 6
rontex писал(а):
А в man 8 написано так, как я написал. Кому верить?

Верить ipf -T list, которая говорит что tcp_idle_timeout.
Малотого
ipf -D -T fr_tcpidletimeout,fr_tcpidletimeout=3600 -E - не работает , так как говорит что
ipf -T fr_tcpidletimeout
77:ioctl(SIOCIPFGET) could not find tunable
зато
ipf -T tcp_idle_timeout
tcp_idle_timeout min 1 max 2147483647 current 3600.
А касательно манов так они вообще ориентированы на ipfilter 3.3 и черти когда писались. А в /usr/share/example/ipfilter/README про апдейты вообще указан http://www.obfuscation.org/ipf/ - сайт компании интерьера дома... жесть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD 10.1 + nat (IP Filter: v5.1.2)
СообщениеДобавлено: Ср 11 фев, 2015 8:08 pm 
Не в сети

Зарегистрирован: Ср 04 фев, 2015 1:43 pm
Сообщения: 6
Только что поменял сетевую карту с родным MAC для прова, дабы исключить глюк от назначения стороннего MAC.
Перегрузил комп, подождал немного пока заполнится таблица nat. Выполняю
ipf -D
ipf -E
ipnat -CF
ipf -Fa
ipnat -s | grep inuse
28 inuse in
22 inuse out
Вот БЛИН откуда это остается???? После 5-ти мин. работы уже какие-то залипшие сессии образовались, а должно быть 0!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD 10.1 + nat (IP Filter: v5.1.2)
СообщениеДобавлено: Пт 03 фев, 2017 8:02 pm 
Не в сети

Зарегистрирован: Пт 03 фев, 2017 8:00 pm
Сообщения: 1
Удалось победить сию проблему ??
11 аналогично себя ведёт.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot], Majestic-12 [Bot], Yahoo [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика