raven428 Опубликовано 20 января, 2009 (изменено) · Жалоба здравствуйте. посоветуйте, что покрутить для уменьшения нагрузки на "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 Изменено 20 января, 2009 пользователем raven428 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
IvanI Опубликовано 20 января, 2009 · Жалоба natd заменит на ng_nat Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mikevlz Опубликовано 20 января, 2009 · Жалоба ipfw nat заменить на ng_nat/pfnat. в фиде видел отзывы о писателе Ipfw nat в духе, что у него ДНК не из того места растет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
raven428 Опубликовано 20 января, 2009 · Жалоба вы будете смеяться, но с ipfw nat работает примерно в полтора раза быстрей, чем с ng_nat. да, и ipfw nat и natd - это всё таки разные вещи, хоть и работают в одном месте. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
raven428 Опубликовано 20 января, 2009 · Жалоба может быть ещё подскажите, что нужно предпринять в ipfw, чтобы в этих сотне с лишним натов не забивались таблицы. например, чтобы было, скажем, по 200-300 записей на один серый адрес и остальное всё "забывалось"? или может быть ещё какие-то ограничения сделать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
IvanI Опубликовано 20 января, 2009 · Жалоба а сколько трафика через машинку? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
raven428 Опубликовано 21 января, 2009 · Жалоба сейчас 60-80 мегабит, весь проходит через нат. не натовый трафик я пустил мимо неё. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
IvanI Опубликовано 21 января, 2009 · Жалоба 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 похоже вы фрю затюнили досмерти :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mikevlz Опубликовано 21 января, 2009 · Жалоба Несколько раз подумать над остальными 170 правилами. По возможности распихать по таблицам, включая пайпы. Дополнительно раскидать правила группами через skipto так, чтобы пакет на всем пути маршрутизации проходил как можно меньше правил. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
XeonVs Опубликовано 21 января, 2009 · Жалоба Жуткая конфигурация. Первое и самое главное, обновиться до стейбла, там много полезных коммитов было. по остальными пунктам: 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) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 21 января, 2009 · Жалоба net.inet.ip.intr_queue_maxlen=256 увеличить до 4000-8000 тысяч Пока нет дропов нет никакого смысла увеличивать. Особенно при 80Mbps нагрузки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
XeonVs Опубликовано 21 января, 2009 · Жалоба net.inet.ip.intr_queue_maxlen=256 увеличить до 4000-8000 тысяч Пока нет дропов нет никакого смысла увеличивать. Особенно при 80Mbps нагрузки. про запас, вдруг вири попрут массово :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
raven428 Опубликовано 22 января, 2009 · Жалоба "таймеры отложенных прерываний вернуть для эксперементов в дефолт." - это что? "natd выкинуть, заменить на pfnat". где вы увидели natd? я пробовал схему с ng_nat, и ipfw nat работает примерно в полтора раза быстрей, я это проверил на практике. hw.em.rxd и hw.em.txd в sysctl нет. давно они появились? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ingress Опубликовано 22 января, 2009 · Жалоба hw.em.rxd и hw.em.txd в sysctl нет. давно они появились? давно, в loader.conf надо добавлять и sysctl их не видит. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...