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

FreeBSD 7.1-PRERELEASE/amd64 ipfw nat посоветуйте, что покрутить для увеличения производительности ната

здравствуйте. посоветуйте, что покрутить для уменьшения нагрузки на "swi1: net" и увеличить производительность, а значит и размер полосы, которую он может отнатить.

 

вот конфиги:

# -- [r00] 8 marta 108 - 01
natd2_enable="YES"
natd2_alias="92.43.185.2"
natd2_network="10.72.21.0/24"
natd2_port="8702"
...
(повторяем 118 раз)
...
# -- [r30] agal 46 - 05
natd118_enable="YES"
natd118_alias="92.43.185.118"
natd118_network="10.72.217.0/24"
natd118_port="8818"

$fwcmd table 2 flush
$fwcmd table 3 flush
for nat in ${nats}; do
natd_port="$(eval echo \${${nat}_port})"
natd_alias="$(eval echo \${${nat}_alias})"
natd_network="$(eval echo \${${nat}_network})"
$fwcmd nat $natd_port config ip $natd_alias deny_in reset same_ports
natd_port1=$natd_port
$fwcmd table 2 add $natd_network $natd_port1
$fwcmd table 3 add $natd_alias $natd_port1
done
for oif in ${oiflist}; do
$fwcmd add 2000 nat tablearg all from any to table\(3\) in via ${oif}
$fwcmd add 2000 nat tablearg all from table\(2\) to any out via ${oif}
done

ещё в файерволе есть ещё около 170 всяких deny/allow и пайпы. загрузка этого роутера на 60 мегабитах около 60-65% в "sw1: net" ну и остальное по мелочи. работает он на xeon e5410, два гига памяти, гиг всегда свободен.

 

/etc/sysctl.conf:

security.jail.allow_raw_sockets=1
kern.maxfiles=40000
net.inet.ip.fw.one_pass=0
dev.em.0.rx_int_delay=1500
dev.em.0.tx_int_delay=1500
dev.em.0.rx_abs_int_delay=2000
dev.em.0.tx_abs_int_delay=2000
dev.em.1.rx_int_delay=1500
dev.em.1.tx_int_delay=1500
dev.em.1.rx_abs_int_delay=2000
dev.em.1.tx_abs_int_delay=2000
net.inet.ip.dummynet.hash_size=1024
net.inet.ip.intr_queue_maxlen=256
net.graph.maxdgram=81920
net.graph.recvspace=81920
net.inet.ip.dummynet.io_fast=1
net.isr.direct=0

если убрать net.isr.direct=0, то роутер начинает произвольно перегружаться кернел паниками, видимых причин я не обнаружил.

 

/boot/loader.conf

autoboot_delay="1"
geom_mirror_load="YES"
geom_journal_load="YES"
if_tap_load="YES"
ng_ipfw_load="YES"
ipfw_nat_load="YES"
kern.maxusers="2048"
net.graph.maxalloc=4096
kern.ipc.maxpipekva=32000000

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

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


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

natd заменит на ng_nat

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


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

ipfw nat заменить на ng_nat/pfnat.

в фиде видел отзывы о писателе Ipfw nat в духе, что у него ДНК не из того места растет.

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


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

вы будете смеяться, но с ipfw nat работает примерно в полтора раза быстрей, чем с ng_nat.

 

да, и ipfw nat и natd - это всё таки разные вещи, хоть и работают в одном месте.

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


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

может быть ещё подскажите, что нужно предпринять в ipfw, чтобы в этих сотне с лишним натов не забивались таблицы. например, чтобы было, скажем, по 200-300 записей на один серый адрес и остальное всё "забывалось"? или может быть ещё какие-то ограничения сделать?

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


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

а сколько трафика через машинку?

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


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

сейчас 60-80 мегабит, весь проходит через нат. не натовый трафик я пустил мимо неё.

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


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

http://forum.nag.ru/forum/index.php?showto...st&p=363863

Весь траф (более 200 Мбит/с входящего) идет через шифрованые тунели, ng_nat и ng_netflow, полинга нет, тюнинг - options KVA_PAGES=512 и sysctl net.inet.ip.fw.dyn_max=65000

похоже вы фрю затюнили досмерти :)

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


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

Несколько раз подумать над остальными 170 правилами.

По возможности распихать по таблицам, включая пайпы.

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

 

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


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

Жуткая конфигурация.

Первое и самое главное, обновиться до стейбла, там много полезных коммитов было.

 

по остальными пунктам:

 

sysctl:

net.inet.ip.intr_queue_maxlen=256 увеличить до 4000-8000 тысяч

добавить к ней в пару

net.route.netisr_maxqlen=1024

 

добавить net.inet.ip.fastforwarding=1

 

дотюнить сетевухи:

dev.em.0.rx_processing_limit=4096

dev.em.1.rx_processing_limit=4096

 

таймеры отложенных прерываний вернуть для эксперементов в дефолт.

 

в loader.conf

hw.em.rxd=4096

hw.em.txd=4096

 

 

natd выкинуть, заменить на pfnat(работа с таблицами ограничение числа сессий) или ng_nat(больший паралелиризм при правельной настройке)

 

по поводу net.isr.direct=0

нужен крешдамп для анализа, в принципе после избавления от natd можно попробовать вернуть его в дефолт(1)

 

 

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


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

net.inet.ip.intr_queue_maxlen=256 увеличить до 4000-8000 тысяч

Пока нет дропов нет никакого смысла увеличивать. Особенно при 80Mbps нагрузки.

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


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

net.inet.ip.intr_queue_maxlen=256 увеличить до 4000-8000 тысяч

Пока нет дропов нет никакого смысла увеличивать. Особенно при 80Mbps нагрузки.

про запас, вдруг вири попрут массово :)

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


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

"таймеры отложенных прерываний вернуть для эксперементов в дефолт." - это что?

 

"natd выкинуть, заменить на pfnat". где вы увидели natd? я пробовал схему с ng_nat, и ipfw nat работает примерно в полтора раза быстрей, я это проверил на практике.

 

hw.em.rxd и hw.em.txd в sysctl нет. давно они появились?

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


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

hw.em.rxd и hw.em.txd в sysctl нет. давно они появились?

давно, в loader.conf надо добавлять и sysctl их не видит.

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


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

Join the conversation

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

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

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

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

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

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

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