John_obn Опубликовано 22 февраля, 2013 · Жалоба dadv, смущает именно то, что такая же конфигурация на E3-1270 справляется более, чем лучше. ОК, попробую для чистоты эксперимента с pf nat перейти на ipfw nat. Правда была уже одна попытка, неудачная. Может что то изменилось с тех пор, может просто не допилил, как надо. Что можете сказать по поводу dummynet? Стоит ли переходить на тот же ng_car ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dadv Опубликовано 1 марта, 2013 · Жалоба Могу добавить только одно - пробуйте Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bird_of_Luck Опубликовано 3 марта, 2013 · Жалоба Без отказа от PF тут оптимизировать ничего не получится. Лучше попробуйте ipfw nat, если проблемы будут оставаться - можно будет в этом же тредике пооптимизировать систему/рулсет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 5 марта, 2013 · Жалоба Попробовал перейти на ipfw nat , результат был хороший. По top загрузка от dummynet упала почти в ноль, по данным из скрипта от dadv - с 60% до 30-40%. Это был еще не совсем ЧНН. В ближайшее время переделаем скрипты на роутере, чтобы использовал ipfw nat, да и вообще оптимизировать их надо, и посмотрим, как будет общая загрузка + производительность. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 15 марта, 2013 · Жалоба Запустил бордер с Freebsd 9.1 . Карта Intel 82599 X520-da2 . На сервере только PF NAT(Натимм пулом адресом /26) и немного роутинга . Процессор Intel® Xeon® CPU E31240 @ 3.30GHz Сервер HP ProLiant DL120 G7 Partnumber 628692-421 . Посоветйте железо , чтобы отмолотить более > 4 гбит (Rx) top -SHPI last pid: 86197; load averages: 4.56, 4.19, 4.19 up 1+02:28:28 20:55:09 137 processes: 8 running, 98 sleeping, 31 waiting CPU 0: 0.0% user, 0.0% nice, 3.0% system, 68.7% interrupt, 28.4% idle CPU 1: 0.0% user, 0.0% nice, 1.5% system, 67.2% interrupt, 31.3% idle CPU 2: 0.0% user, 0.0% nice, 1.5% system, 43.3% interrupt, 55.2% idle CPU 3: 0.0% user, 0.0% nice, 3.0% system, 52.2% interrupt, 44.8% idle Mem: 116M Active, 259M Inact, 1472M Wired, 31M Cache, 210M Buf, 63M Free Swap: 4096M Total, 4096M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 11 root 155 ki31 0K 64K RUN 2 21.3H 46.58% idle{idle: cpu2} 11 root 155 ki31 0K 64K RUN 3 23.1H 45.75% idle{idle: cpu3} 12 root -92 - 0K 544K RUN 0 116:02 38.67% intr{irq265: ix0:que } 12 root -92 - 0K 544K CPU0 0 117:41 36.47% intr{irq264: ix0:que } 12 root -92 - 0K 544K CPU1 1 114:19 33.25% intr{irq267: ix0:que } 12 root -92 - 0K 544K WAIT 1 115:09 33.15% intr{irq266: ix0:que } 11 root 155 ki31 0K 64K CPU1 1 20.4H 32.08% idle{idle: cpu1} 12 root -92 - 0K 544K WAIT 2 88:09 27.88% intr{irq269: ix1:que } 11 root 155 ki31 0K 64K RUN 0 21.5H 26.27% idle{idle: cpu0} 12 root -92 - 0K 544K WAIT 3 91:16 25.78% intr{irq271: ix1:que } 12 root -92 - 0K 544K WAIT 3 90:05 24.27% intr{irq272: ix1:que } 12 root -92 - 0K 544K WAIT 2 87:54 24.07% intr{irq270: ix1:que } netstat -w1 -h root@gate_rnet:/root # netstat -w1 -h input (Total) output packets errs idrops bytes packets errs bytes colls 321k 0 0 241M 321k 0 236M 0 324k 0 0 245M 324k 0 241M 0 331k 0 0 249M 330k 0 251M 0 324k 0 0 243M 324k 0 246M 0 PF OK - states: 910183 (50.6% - limit: 1800000) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Azamat Опубликовано 15 марта, 2013 · Жалоба что то маловато для такой нагрузки на проц. наш простой i7-3770 как НАТ срв дает такие данные: 531k 0 0 447M 526k 0 446M 0 0 516k 0 0 433M 511k 0 432M 0 0 517k 0 0 434M 512k 0 433M 0 0 518k 0 0 435M 513k 0 434M 0 0 545k 0 0 458M 540k 0 457M 0 0 513k 0 0 428M 508k 0 428M 0 0 при: last pid: 80973; load averages: 3.86, 3.40, 3.46 up 32+07:36:58 00:10:00 107 processes: 7 running, 76 sleeping, 24 waiting CPU 0: 0.0% user, 0.0% nice, 5.9% system, 73.5% interrupt, 20.6% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 67.6% interrupt, 32.4% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 64.7% interrupt, 35.3% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 58.8% interrupt, 41.2% idle Mem: 24M Active, 196M Inact, 1264M Wired, 1207M Buf, 10G Free Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 15 марта, 2013 (изменено) · Жалоба Может потому , что у меня одна планка памяти стоит(2Гб)? Азамат, вы чем натите? И какой у вас проц? Изменено 15 марта, 2013 пользователем roysbike Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Azamat Опубликовано 15 марта, 2013 (изменено) · Жалоба выше сразу написал: наш простой i7-3770 как НАТ срв дает такие данные ipfw nat Изменено 15 марта, 2013 пользователем Azamat Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 15 марта, 2013 · Жалоба выше сразу написал: наш простой i7-3770 как НАТ срв дает такие данные ipfw nat Вы натите пулом адресов? можете показать конфиг ipfw nat . Попробую впилить и проверить разницу потив pf nat Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Azamat Опубликовано 16 марта, 2013 (изменено) · Жалоба вот выдержка из файла в автозагрузке (в таблице 40 ip адреса для НАТ instances, в таблице 30 "серые" подсети , которые натятся): таблица 30 заполняется примерно таким образом: ${fwcmd} table 30 add 192.168.59.0/24 81 ${fwcmd} table 30 add 192.168.46.0/24 82 таблица 40 заполняется скриптом # IP POOL at table 40 START_PREFIX="/sbin/ipfw table 40 add xxx.xxx.xxx" NUMBER=0 while [ $NUMBER -lt 123 ]; do NUMBER=$(($NUMBER+1)) $START_PREFIX.$NUMBER $NUMBER done # NAT # NUMBER2=0 while [ $NUMBER2 -lt 100 ]; do NUMBER2=$(($NUMBER2+1)) /sbin/ipfw nat $NUMBER2 config ip xxx.xxx.xxx.$NUMBER2 reset same_ports deny_in done ${fwcmd} add 20100 nat tablearg ip from table\(30\) to any out via ${ext_if} ${fwcmd} add 20200 nat tablearg ip from any to table\(40\) in via ${ext_if} На сейчас показатели такие: input (Total) output packets errs idrops bytes packets errs bytes colls drops 631k 0 0 496M 626k 0 493M 0 0 627k 1 0 491M 619k 0 493M 0 0 629k 0 0 493M 622k 0 492M 0 0 607k 0 0 474M 600k 0 470M 0 0 618k 0 0 483M 611k 0 486M 0 0 615k 0 0 480M 608k 0 480M 0 0 635k 0 0 503M 627k 0 503M 0 0 На графике потолок был 3.6Гбит/с (IN) / 825Мбит/с (Out) через ix0, похоже процессора впритык хватит на 4Гбит/с IN, что себя вполне окупает. Утилизация процессора: last pid: 84751; load averages: 5.35, 5.50, 5.59 up 33+05:42:15 22:15:17 107 processes: 8 running, 75 sleeping, 24 waiting CPU 0: 0.0% user, 0.0% nice, 8.2% system, 75.5% interrupt, 16.3% idle CPU 1: 0.0% user, 0.0% nice, 6.1% system, 83.7% interrupt, 10.2% idle CPU 2: 0.0% user, 0.0% nice, 6.1% system, 75.5% interrupt, 18.4% idle CPU 3: 0.0% user, 0.0% nice, 2.0% system, 79.6% interrupt, 18.4% idle Mem: 24M Active, 187M Inact, 1274M Wired, 1207M Buf, 10G Free Swap: 2048M Total, 2048M Free Изменено 16 марта, 2013 пользователем Azamat Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Megas Опубликовано 17 марта, 2013 · Жалоба Народ, а сколько pps на 10ке у вас промолачивает? у меня тут мысль о резервации пограничного роутероа, но там порядка 400к pps сейчас, планируется до 600-700к. Надо чтобы можно было присекать приходящие ddos. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 17 марта, 2013 · Жалоба По поводу ipfw nat: на pf использовали правило редиректа вида rdr pass on vlan19 inet proto tcp from <blocked_clients> to ! <servers> port = http -> 1.2.3.4 port 8000 Для редиректа заблокированных пользователей на страницу "Заплати". Как сделать правило такого редиректа на ipfw nat? fwd не подходит, ибо меняет только nexthop. redirect_port как бы да, но судя по манам и тестам, редиректит только пакеты, которые приходят с dst ip инстанса НАТа. Подозреваю, что надо использовать как то reverse, но пока тесты и курение манов не дали прозрения. Подскажите, пожалуйста, кто поднимал такую задачу на ipfw nat. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fenix-vt Опубликовано 17 марта, 2013 (изменено) · Жалоба ipfw add 500 fwd 1.2.3.4,8000 tcp from table(32) to any dst-port 80,443 via ng* ? Изменено 17 марта, 2013 пользователем fenix-vt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 17 марта, 2013 (изменено) · Жалоба ipfw add 500 fwd 1.2.3.4,8000 tcp from table(32) to any dst-port 80,443 via ng* ? я форвардю на 127.0.0.1,80 а 127.0.0.1,80 слушает nginx(и ngnix ридект на ссылку сайт.рф/баланс) . fwd работает только если IP веб-сервера в одном броадкаст домене с NAS. Изменено 17 марта, 2013 пользователем roysbike Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 17 марта, 2013 · Жалоба Хотелось бы без fwd, чтобы не поднимать на каждом NAS nginx. Наверняка кто-нибудь использует конструкцию без fwd. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 17 марта, 2013 · Жалоба ipfw add 500 fwd 1.2.3.4,8000 tcp from table(32) to any dst-port 80,443 via ng* ? я форвардю на 127.0.0.1,80 а 127.0.0.1,80 слушает nginx(и ngnix ридект на ссылку сайт.рф/баланс) . fwd работает только если IP веб-сервера в одном броадкаст домене с NAS. Хмм, т.е. fwd не просто меняет next-hop (т.е. по сути dst mac address), но и dst ip? Если так, то дальше можно и redirect_port прикрутить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
boco Опубликовано 18 марта, 2013 · Жалоба Хмм, т.е. fwd не просто меняет next-hop (т.е. по сути dst mac address), но и dst ip? man ipfw: The fwd action does not change the contents of the packet at all. In particular, the destination address remains unmodified, so packets forwarded to another system will usually be rejected by that system unless there is a matching rule on that system to capture them. For packets forwarded locally, the local address of the socket will be set to the original destination address of the packet. This makes the netstat(1) entry look rather weird but is intended for use with transparent proxy servers. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Azamat Опубликовано 18 марта, 2013 (изменено) · Жалоба Мы для редиректа держим отдельный natd на VLAN сервере (до НАТ). трафика обычно не много, поэтому нагрузка незаметна. /sbin/natd -proxy_rule port 80 server ${billing_IP}:81 -p 3388 yes -a ${int_IP} До этих правил пропускается трафик разрешенных пользователей, потом остальной трафик на 80 порт разворачивается. divert 3388 tcp from any to not ${billing_IP} dst-port 80 out via ix0 divert 3388 tcp from ${billing_IP} 81 to any in via em0 Ну и на билинге сама страница с оповещенем вешается на 81 порт. Изменено 18 марта, 2013 пользователем Azamat Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 18 марта, 2013 · Жалоба ipfw fwd заюзать для этих целей не получится, т.к. при попадании в это правило пакет выходит из ipfw (pass). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fenix-vt Опубликовано 18 марта, 2013 (изменено) · Жалоба Хотелось бы без fwd, чтобы не поднимать на каждом NAS nginx. Наверняка кто-нибудь использует конструкцию без fwd. Прекрасно работает такая конструкция. На нас, на пример, каждом BRASе поднято одно правило: fwd 10.0.0.1 ip from 172.16.5.0/24 to any (Должникам выдается такой пул, если выдаются реальные -- используйте таблицу) А на отдельностоящем хосте 10.0.0.1 поднято.... да что угодно, у нас это транспарент прокси. Вы можете поставить nginx, apache, etc В man'е белым по черному написано: fwd | forward ipaddr | tablearg[,port] Change the next-hop on matching packets to ipaddr, which can be an IP address or a host name. ... If ipaddr is not a local address, then the port number (if specified) is ignored, and the packet will be forwarded to the remote address, using the route as found in the local routing table for that IP. бегло переводя на язык русских админов: 1. некстхоп МЕНЯЕТСЯ. 2. если некстхоп -- чужая тачка, то порт будет проигнорирован, но роут на этот адрес ДОЛЖЕН присутствовать в системе. P.S. забыл добавить: на удаленном хосте (10.0.0.1) тоже должно быть правило вида: fwd 127.0.0.1,3128 tcp from 172.16.5.0/24 to any dst-port 80 ну и проксисервер (или http-сервер), который слушает порт 3128. все отлично работает уже около 5 лт :) Изменено 18 марта, 2013 пользователем fenix-vt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 18 марта, 2013 · Жалоба Я имел в виду, что не получится конструкция с fwd и дальнейшим redirect_port. Сейчас курю маны на предмет ng_nat и proxyrule. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
roysbike Опубликовано 18 марта, 2013 (изменено) · Жалоба Я имел в виду, что не получится конструкция с fwd и дальнейшим redirect_port. Сейчас курю маны на предмет ng_nat и proxyrule. может я прослушал. А чем мешает слушать 127.0.0.1 например nginx. и при обращении редиректить на ваш веб сервер? Изменено 18 марта, 2013 пользователем roysbike Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 18 марта, 2013 · Жалоба Я имел в виду, что не получится конструкция с fwd и дальнейшим redirect_port. Сейчас курю маны на предмет ng_nat и proxyrule. может я прослушал. А чем мешает слушать 127.0.0.1 например nginx. и при обращении редиректить на ваш веб сервер? nginx не подходит, т.к. есть необходимость перенаправлять не только http трафик. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
DemYaN Опубликовано 18 марта, 2013 · Жалоба Я имел в виду, что не получится конструкция с fwd и дальнейшим redirect_port. Сейчас курю маны на предмет ng_nat и proxyrule. ng_nat, редирект 80-порта для table(10) на XXX.XXX.XXX.XXX:81 netgraph: mkpeer ipfw: nat 100 out name ipfw:100 nat connect ipfw: nat: 101 in msg nat: setaliasaddr YYY.YYY.YYY.YYY msg nat: setmode {flags=0x60 mask=0xff} msg nat: proxyrule "type no_encode port 80 server XXX.XXX.XXX.XXX:81 proto tcp" ipfw: netgraph tablearg ip from table(10) to any dst-port 80 netgraph 100 ip from XXX.XXX.XXX.XXX to any src-port 81 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 20 марта, 2013 · Жалоба DemYaN, благодарю, подобные примеры и нагугливал. Только в правилах ipfw должно быть так: netgraph 100 ip from table(10) to any dst-port 80 netgraph 101 ip from XXX.XXX.XXX.XXX to any src-port 81 Таким образом редирект заработал. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...