Перейти к содержимому
Калькуляторы

pf(как нат)+ipfw(как firewall) на FreeBSD

нормально ли работает ?

у кого есть опыт ?

раньше пробовали использовать связку: ipnat(ipfilter)+ipfw

при большой нагрузке системы стали виснуть (4.10,5.2.1,5.3) на разном железе.

Использовать только pf - проблематично.

Всеже интересует subj

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у меня была похожая проблема

вылечилось так:

net.inet.ipf.fr_icmptimeout=35

net.inet.ipf.fr_udptimeout=90

net.inet.ipf.fr_tcphalfclosed=300

net.inet.ipf.fr_tcpclosed=60

net.inet.ipf.fr_tcptimeout=240

net.inet.ipf.fr_tcplastack=120

net.inet.ipf.fr_tcpclosewait=120

net.inet.ipf.fr_tcpidletimeout=7200

net.inet.ipf.fr_defnatage=300

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А мне вот интерестно если фключить оба фильтра, то в какой фильтр попадёт пакет с начала?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А мне вот интерестно если фключить оба фильтра, то в какой фильтр попадёт пакет с начала?

interface in->bpf->ipnat->ipfilter->ipfw->pkt

pkt->ipfilter->ipnat->ipfw->bpf->interface out

 

pf - будет работать на тоже уровне что и ipfilter

 

у меня была похожая проблема

вылечилось так:

net.inet.ipf.fr_icmptimeout=35

net.inet.ipf.fr_udptimeout=90

net.inet.ipf.fr_tcphalfclosed=300

net.inet.ipf.fr_tcpclosed=60

net.inet.ipf.fr_tcptimeout=240

net.inet.ipf.fr_tcplastack=120

net.inet.ipf.fr_tcpclosewait=120

net.inet.ipf.fr_tcpidletimeout=7200

net.inet.ipf.fr_defnatage=300

даже лечить не стали. Через машинки ходил большой трафик. ipnat быстро удалили, поставив natd. Загрузка проца вырасла с 5-10% до 45-50% =))

ipfilter на FreeBSD - теперь даже ставить боюсь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

даже лечить не стали. Через машинки ходил большой трафик. ipnat быстро удалили, поставив natd. Загрузка проца вырасла с 5-10% до 45-50% =))

ipfilter на FreeBSD - теперь даже ставить боюсь

как говорится, смерть пациента наступила в результате вскрытия

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А тестировать на нагрузку сейчас не модно ? сразу ставим все в продакшин ? :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

особенно радуют термины "ходил большой трафик" и "загрузка проца вырасла с X до Y"

без указания траффика и проца :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ipnat согнется когда будет сесий >20k будет дропать пакеты

natd похоронит машину еще быстрее (userland)

щас гоняем nat от pf в среднем от 40k до 80к записей полет нормальный...

в pf.conf: set optimization aggressive и

обязательно нужно включать polling, без него машинка загнется от interrupt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нормально ли работает ?

у кого есть опыт ?

раньше пробовали использовать связку: ipnat(ipfilter)+ipfw

при большой нагрузке системы стали виснуть (4.10,5.2.1,5.3) на разном железе.

Использовать только pf - проблематично.

Всеже интересует subj

 

Без проблем, ipfw и pf работают вместе. От pf я использую только NAT. В тонкости настройки я не вдавался, но у меня для входящиxе пакеты попадают в первую очередь в ipfw, затем в pf, ну и для исходящих соответственно наоборот.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ОК

У нас 2 дня - тоже полет нормальный

pf.conf

no nat on em0 from any to 10.0.0.0/8

no nat on em0 from any to 172.16.0.0/12

no nat on em0 from any to 192.168.0.0/24

nat on em0 from 10.68.0.0/16 to any -> xxx.xxx.xxx.xxx/31 source-hash

 

Сейчас думаю переписать правила на роутерах под pf.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ipnat согнется когда будет сесий >20k будет дропать пакеты  

 

Настраивать не пробовали ? :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

пробовали :)

правились исходники (увеличивался размер таблиц)

c pf все намного проще и стабильнее:

set limit { states 1000000, frags 5000 } # с запасом на флуд

и уже около года про нат не вспоминаю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

пробовали :)

правились исходники (увеличивался размер таблиц)

c pf все намного проще и стабильнее:

set limit { states 1000000, frags 5000 }  # с запасом на флуд

и уже около года про нат не вспоминаю...

 

А какое среднее количество открытых сессий на каждого

пользователя в пике считается нормальным ? :-)

Скажем при 5000 одновременно работающих юзерах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

текущий поток 100мбит/с и примерно ~4k online пользователей

State Table Total Rate

current entries 42334

 

Получается на 1 лицо в среднем 10 записей

при set optimization aggressive

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну это и ipnat вполне потянет, при нормальных таймаутах :-)

 

Вообще странно, у меня current entries 41434... может это pfctl врет ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уважаемый вы это о чем???

Ну это и ipnat вполне потянет, при нормальных таймаутах :-)

 

Вообще странно, у меня current entries 41434... может это pfctl врет ?

pfctl -- control the packet filter (PF) and network address translation (NAT) device. Оно никак не связано с ipnat :))))))

 

Под ночь поток возрастает почти в 2 раза... а это уже ~80k и почти 200мбит/с

Работает ipnat пользуйтесь наздоровье :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

P.S Если кто подскажет аппаратную замену на такие нагрузки стоимостью в

районе 20k $ скажу спасибо. :)

Пока рассматривается Джуниор 7i

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уважаемый вы это о чем???
Ну это и ipnat вполне потянет, при нормальных таймаутах :-)

Вообще странно, у меня current entries 41434... может это pfctl врет ?

pfctl -- control the packet filter (PF) and network address translation (NAT) device. Оно никак не связано с ipnat :))))))

 

Под ночь поток возрастает почти в 2 раза... а это уже ~80k и почти 200мбит/с

Работает ipnat пользуйтесь наздоровье :)

 

Ну у меня и ipnat есть и pf, и ipfw, вот там где pf - там поток поменьше

чем 100Mbit/s был, когда я смотрел. Да и процессор там какой-то

Celeron2400. ;-)

 

А замена аппаратная мне не нужна, все на флешках. :-)

За $20k - это можно все еще и зарезервировать и отбалансировать

раз десять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а не поскажете:

 

1)какие таймауты ставить для ipnat-а чтобы выдерживать большие нагрузки ?

 

2) кто как гоняет фтп трафик при нате посредством pf ? через inetd ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а не поскажете:

1)какие таймауты ставить для ipnat-а чтобы выдерживать большие нагрузки ?

2) кто как гоняет фтп трафик при нате посредством pf ? через inetd ?

по первому пункту: читайте man pf, man pf.conf - там optimization aggressive расписан должен быть по параметрам, можете выдрать значения оттуда.

по второму: был pure-ftpd, с inetd заморачиваться не стали, работал сам от себя (+ pf->nat)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а не поскажете:

1)какие таймауты ставить для ipnat-а чтобы выдерживать большие нагрузки ?

2) кто как гоняет фтп трафик при нате посредством pf ? через inetd ?

по первому пункту: читайте man pf, man pf.conf - там optimization aggressive расписан должен быть по параметрам, можете выдрать значения оттуда.

по второму: был pure-ftpd, с inetd заморачиваться не стали, работал сам от себя (+ pf->nat)

 

по первому пункту я про ipnat спрашиваю а не про pf %)

 

а по второму - не про "свой" ftp а про все ftp в инете Ж)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В таком случае марш читать man inetd (хотя бы в части его функционального предназначения), а то, глядишь, предложите HTTP-контент при помощи cron'а генерить и отдавать.

 

"По первому же вопросу" - можете не читать и тупо перебирать... Думаю, за годик, оптимальное подберёте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можете не читать и тупо перебирать... Думаю, за годик, оптимальное подберёте.

я вижу ты очень умный

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А никто с таким не встречался:

 

Длииинный ipfw, коротенький pf только для nat.

 

На внешнем интерфейсе (только на нем включен pf, на остальных стоит set skip <interface>, теряются пакеты, причем tcpdump видит, например входящие, а ответные сервер уже не посылает. Стоит optimization aggressive, 3 правила no nat, потом 3 правила nat. Когда откатываюсь на natd - потери уходят, возврат на pf опять приводит к потерям.

 

Машинка Xeon 2.4 dual core, карточки em* на pci-express, Free-BSD (ядро amd64 с поддержкой SMP)

 

Нагрузка на нат прямо сейчас:

State Table Total Rate

current entries 2348

searches 35302083788 25522.5/s

inserts 59620559 43.1/s

removals 59618211 43.1/s

Counters

match 31512966696 22783.1/s

bad-offset 0 0.0/s

fragment 450 0.0/s

short 20 0.0/s

normalize 0 0.0/s

memory 1993988 1.4/s

bad-timestamp 0 0.0/s

congestion 0 0.0/s

ip-option 0 0.0/s

proto-cksum 0 0.0/s

state-mismatch 582898 0.4/s

state-insert 0 0.0/s

state-limit 0 0.0/s

src-limit 0 0.0/s

synproxy 0 0.0/s

 

 

Нагрузка вечером раза в 3 выше.

 

Еще на гейте mpd в качестве VPN-терминатора, 400-500 пользователей. Для максирования прерываний стоят dev.em.*.*x.delay порядка 1000. Отключение оного картину не влияет, только проц прерываниями грузится активнее.

 

Помогите, куда рыть? Потери только на интерфейсе, на котором нат, причем даже на трафике, который в сам нат не попадает.

Изменено пользователем CoMax

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.