Kucher2 122 Posted 2010-02-11 16:54:21 Share Posted 2010-02-11 16:54:21 Дано: Шлюз сети. FreeBSD 8.0, прозрачный SQUID и пока ещё только pf в качестве фаерволла. Внешний ИФ-10.0.1.3, внутренний 192.168.0.1. Сколько юзаю FreeBSD - всё время пользовался ipfw + natd. Решил перейти на pf. Главным образом из-за того, что pf как бы меньше грузит проц, по отзывам. Добился пока что прозрачного прокси: http://local.com.ua/forum/topic/20228-pomogite-s-pf/page__pid__149630__st__0entry149630 На pf - Столкнулся со сложностью шейпа юзеров. Если кто юзает pf - пожалуйста, покажите как на нём зарезать траф для юзеров в обе стороны. Сижу вот и думаю: а стоит ли заморачиваться? Link to post Share on other sites
Kto To 602 Posted 2010-02-11 16:59:23 Share Posted 2010-02-11 16:59:23 для "в обе стороны" надо искать заплатку на пф. по дефолту он шейпит в одну сторону только Link to post Share on other sites
Enferno 163 Posted 2010-02-11 17:31:04 Share Posted 2010-02-11 17:31:04 altq вам в помощь! Link to post Share on other sites
Kucher2 122 Posted 2010-02-11 17:35:22 Author Share Posted 2010-02-11 17:35:22 Я просил примеры. Желательно рабочие. Пожалуйста, не надо туманных намёков. Я уже перебрал множество вариантов, но все либо режут только в одном направлении, либо вообще не пропускают трафик. Интересует так же мнение бывалых: на pf вообще возможно сделать полноценный шейпер или нет? Хочется полностью уйти от ipfw, иначе не вижу смысла его менять. В принципе по функциям он меня устраивает. Link to post Share on other sites
warzoni 7 Posted 2010-02-11 17:49:37 Share Posted 2010-02-11 17:49:37 Используйте Ipfw pipe в место pf сним удобнее примеров уйма. Link to post Share on other sites
Kucher2 122 Posted 2010-02-11 17:55:50 Author Share Posted 2010-02-11 17:55:50 Т.е. не переходить на pf? Остаться на ipfw и natd? Link to post Share on other sites
Enferno 163 Posted 2010-02-11 17:59:28 Share Posted 2010-02-11 17:59:28 такс, я скажу только Бог в помощь разобрать это: =) ################## ###ALTQ Секция ### ################## altq on $int_if hfsc bandwidth 90Mb queue {inet_in,admin_in,mail_in,w_in,radio_in,default_in} # Входящий траффик # <UA-IX Секция> # Все звери queue inet_in bandwidth 10Mb hfsc (upperlimit 10Mb){other_in,inet_taz_in} queue other_in bandwidth 7Mb hfsc(realtime 7Mb upperlimit 10Mb) queue inet_taz_in bandwidth 3Mb hfsc(realtime 3Mb upperlimit 10Mb) # Все админы queue admin_in bandwidth 40Mb hfsc (upperlimit 90Mb){xsoft_in,z1_in,servers_in,olekko_in} queue xsoft_in bandwidth 10Mb hfsc(realtime 10Mb upperlimit 90Mb) queue servers_in bandwidth 15Mb hfsc(realtime 15Mb upperlimit 90Mb) # Дефолтная полоса queue default_in bandwidth 5Mb hfsc(default realtime 5Mb) # </UA-IX Секция> # <Мировая секция (входящий траффик)> queue w_in bandwidth 4Mb hfsc(upperlimit 4Mb){xsoft_w_in, z1_w_in, servers_w_in, other_w_in} queue xsoft_w_in bandwidth 1Mb priority 5 hfsc(realtime 512Kb upperlimit (3Mb,4000,1536Kb)) queue servers_w_in bandwidth 1Mb priority 4 hfsc(realtime 1536Kb upperlimit (3Mb,4000,2Mb)) queue other_w_in bandwidth 1Mb priority 6 hfsc(realtime 512Kb upperlimit (4Mb,4000,1536Kb)) # </Мировая секция (входящий траффик)> #<------------------------------------------------------------------------------------># # altq on $ext_if hfsc bandwidth 65Mb queue {inet_out,admin_out,mail_out,w_out,default_out,radio_out} # Исходящий траффик # <UA-IX Секция> # Все звери queue inet_out bandwidth 5Mb hfsc (upperlimit 5Mb) {other_out,inet_taz_out} queue other_out bandwidth 3Mb hfsc(realtime 3Mb upperlimit 5Mb) queue inet_taz_out bandwidth 2Mb hfsc(realtime 2Mb upperlimit 5Mb) # Все админы queue admin_out bandwidth 40Mb hfsc (upperlimit 60Mb){xsoft_out,z1_out,servers_out,olekko_out} queue xsoft_out bandwidth 10Mb hfsc(realtime 10Mb upperlimit 60Mb) queue servers_out bandwidth 10Mb hfsc(realtime 10Mb upperlimit 60Mb) # Дефолтная полоса queue default_out bandwidth 2Mb hfsc(default realtime 2Mb) # </UA-IX Секция> # <Мировая секця (исходящий траффик)> queue w_out bandwidth 12Mb hfsc(upperlimit 12Mb){xsoft_w_out, z1_w_out, servers_w_out, other_w_out} queue xsoft_w_out bandwidth 2Mb priority 5 hfsc(realtime 1Mb upperlimit (12Mb,500,6Mb)) queue other_w_out bandwidth 1Mb priority 6 hfsc(realtime 1Mb upperlimit 2Mb) # </Мировая секция (исходящий траффик)> Link to post Share on other sites
Kucher2 122 Posted 2010-02-11 18:17:03 Author Share Posted 2010-02-11 18:17:03 Спасибо. Link to post Share on other sites
warzoni 7 Posted 2010-02-11 18:20:55 Share Posted 2010-02-11 18:20:55 Т.е. не переходить на pf? Остаться на ipfw и natd? да оставайтесь, у Ipfw функций на шейпер гибче чем у Pf, хотя-бы пример в две стороны на одном интерфейсе режет Ipfw, а pf Только входящий, для того что бы резать ввход и выход, у юзеров вам следует на двух интерфейсах устанавливать altq, используя ipfw pipe вы можете резать на одном интерфейсе не трогая другой. Link to post Share on other sites
blackjack 250 Posted 2010-02-11 18:25:40 Share Posted 2010-02-11 18:25:40 старые песни о главном ось кілька посилань про все теж _http://forum.lissyara.su/viewtopic.php?f=8&t=17513 _http://forum.lissyara.su/viewtopic.php?f=8&t=23956 _http://forum.lissyara.su/viewtopic.php?f=8&t=21744 _http://www.opennet.ru/search.shtml?exclude=index|%2Fman.shtml&words=pf+altq _http://house.hcn-strela.ru/BSDCert/BSDA-course/single.html#firewall-pf Link to post Share on other sites
Kucher2 122 Posted 2010-02-11 18:28:38 Author Share Posted 2010-02-11 18:28:38 Так. Всем спасибо, попробую pf+ipfw щас настроить. Исключительно ради быстродействия. Link to post Share on other sites
warzoni 7 Posted 2010-02-11 18:30:16 Share Posted 2010-02-11 18:30:16 Я исползую связку pf + ipfw у меня pf, nat, проброс портов,ipfw чисто режет блочит всё нужно конкретно и индеведуально рассматривать в этом случаи нельзя решатьч то лучьше что хуже. Link to post Share on other sites
Kucher2 122 Posted 2010-02-11 18:33:18 Author Share Posted 2010-02-11 18:33:18 Вот и я про то же. Буду пробовать. Спасибо. Link to post Share on other sites
Queeq 0 Posted 2010-02-12 07:16:17 Share Posted 2010-02-12 07:16:17 Я тоже люблю PF, но в плане шейпинга у него, к сожалению, есть ужасный недостаток: на каждого юзера нужно вешать шейпер индивидуально. Нельзя, например, как на циске применить одну политику на всех (в этом случае PF засунет всех в одну очередь). Поскольку у меня внутренних зашейпленных тачек не много - я всех определил явно. Да, на двух интерфейсах. Ну а вообще народ, насколько я знаю, нормально совмещает PF (как основной фаер) + IPFW для шейпинга. Сам не пробовал. Link to post Share on other sites
Kucher2 122 Posted 2010-02-12 08:37:40 Author Share Posted 2010-02-12 08:37:40 http://local.com.ua/forum/topic/20228-pomogite-s-pf/page__view__findpost__p__149597 Link to post Share on other sites
adeep 212 Posted 2010-02-12 09:11:51 Share Posted 2010-02-12 09:11:51 Сколько юзаю FreeBSD - всё время пользовался ipfw + natd. Решил перейти на pf. Главным образом из-за того, что pf как бы меньше грузит проц, по отзывам. Кто вам сказал такую глупость? переходите на ipfw + ipfw-nat Link to post Share on other sites
Queeq 0 Posted 2010-02-12 09:25:54 Share Posted 2010-02-12 09:25:54 Сколько юзаю FreeBSD - всё время пользовался ipfw + natd. Решил перейти на pf. Главным образом из-за того, что pf как бы меньше грузит проц, по отзывам. Кто вам сказал такую глупость? переходите на ipfw + ipfw-nat Вы тестировали лично? Link to post Share on other sites
911 140 Posted 2010-02-12 09:43:12 Share Posted 2010-02-12 09:43:12 Сколько юзаю FreeBSD - всё время пользовался ipfw + natd. Решил перейти на pf. Главным образом из-за того, что pf как бы меньше грузит проц, по отзывам. Кто вам сказал такую глупость? переходите на ipfw + ipfw-nat Вы тестировали лично? насколько я знаю, он так и использует ) Link to post Share on other sites
Clone 8 Posted 2010-02-12 09:53:46 Share Posted 2010-02-12 09:53:46 Я тоже люблю PF, но в плане шейпинга у него, к сожалению, есть ужасный недостаток: на каждого юзера нужно вешать шейпер индивидуально. Нельзя, например, как на циске применить одну политику на всех (в этом случае PF засунет всех в одну очередь). Поскольку у меня внутренних зашейпленных тачек не много - я всех определил явно. Да, на двух интерфейсах. Ну а вообще народ, насколько я знаю, нормально совмещает PF (как основной фаер) + IPFW для шейпинга. Сам не пробовал. У меня так-же, PF как фаервол и IPFW - шейпер. Работает уже много лет и вполне нормально. Link to post Share on other sites
Queeq 0 Posted 2010-02-12 11:08:02 Share Posted 2010-02-12 11:08:02 (edited) Сколько юзаю FreeBSD - всё время пользовался ipfw + natd. Решил перейти на pf. Главным образом из-за того, что pf как бы меньше грузит проц, по отзывам. Кто вам сказал такую глупость? переходите на ipfw + ipfw-nat Вы тестировали лично? насколько я знаю, он так и использует ) Я немного неправильно спросил Имелось в виду тестирование производительности PF против IPFW. Объясню почему спрашиваю: у меня когда-то был IPFW на 5-й фре. Работал он с natd через divert. Компик был что-то около пня 1.8. В общем на 40 Мбитах он сжирал весь проц. Потом поставили другой комп вместо него (Пень 2.4, гиговые сетевухи, фря 6.2 и PF с NAT'ом, шейпингом, anchor'ами и прочими плюшками). На полных 100 Мбитах download и около 15 Мбит upload этот комп (стоит до сих пор) показывает загрузку проца системой около 5-6%. Полагаю, что это и есть то, что жрёт PF. При этом набор правил там далеко не элементарный, плюс в нём несколько раз в правилах без keep state обрабатывается таблица украинских сетей (на момент написания - 2797 записей). Ещё около 40% съедают interrupts с двух сетевух (не тюнил за ненадобностью). Не знаю, может быть вышел какой-то новый IPFW, который лучше того, что пробовал я. Но я абсолютно доволен гибкостью PF (шейпинг не в счёт) и его производительностью при такой нагрузке. З.Ы. Да, есть у PF ещё один недостаток: он не может использовать несколько процов/ядер. Пока что. Вроде там уже что-то шевелятся на этот счёт. З.З.Ы. Забыл упомянуть, что при той нагрузке около 115 мбит количество сессий было около 5000. Edited 2010-02-12 11:21:14 by Queeq Link to post Share on other sites
911 140 Posted 2010-02-12 11:27:10 Share Posted 2010-02-12 11:27:10 у меня когда-то был IPFW на 5-й фре. Работал он с natd через divert. Компик был что-то около пня 1.8. В общем на 40 Мбитах он сжирал весь проц. ну мы же вроде говорим про ipfw + ipfw_nat, а не про natd З.Ы. Да, есть у PF ещё один недостаток: он не может использовать несколько процов/ядер. Пока что. Вроде там уже что-то шевелятся на этот счёт. ну это главный камень преткновения З.З.Ы. Забыл упомянуть, что при той нагрузке около 115 мбит количество сессий было около 5000. количество сессий или pps ? Link to post Share on other sites
adeep 212 Posted 2010-02-12 13:09:39 Share Posted 2010-02-12 13:09:39 Я немного неправильно спросил Имелось в виду тестирование производительности PF против IPFW. Не знаю, может быть вышел какой-то новый IPFW, который лучше того, что пробовал я. Но я абсолютно доволен гибкостью PF (шейпинг не в счёт) и его производительностью при такой нагрузке. З.Ы. Да, есть у PF ещё один недостаток: он не может использовать несколько процов/ядер. Пока что. Вроде там уже что-то шевелятся на этот счёт. З.З.Ы. Забыл упомянуть, что при той нагрузке около 115 мбит количество сессий было около 5000. Не путайте natd и ipfw-nat. Я вполне полагаю что pfnat работает быстрее чем natd. Только потому что natd работает через DIVERT сокеты, которые гоняют пакеты между kernel и userland, что означает очень высокие потери на обработку пакета. libalias более прогрессивная в плане поддержки ftp протокола чем pf, ipfw-nat реализован через NETGRAPH, что означает очень малые затраты на обработку пакетов и соответственно более высокую скорость. Я очень уважаю Theo, но опененок не очень скоро обзаведется нормальной многоядерностью и соответственно за ним и pf. На самом деле было время когда сравнивалась в целом производительность шейп + нат + файрвол. Варианты были такие: 1)Все на pf 2) ipfw + ipfwnat + ipfw-altq 3) dummynet + ipfwnat + ipfw Разница в производительности между первым и третьим вариантом была практически двукратная, ессно в пользу ipfw К сожалению, конкретно по нату тестов не было. З.Ы. забудьте времена 5й фри. это было слишком давно. Пропасть в фичастости между 5 и 7 фрей громадна Link to post Share on other sites
Queeq 0 Posted 2010-02-12 13:49:21 Share Posted 2010-02-12 13:49:21 З.З.Ы. Забыл упомянуть, что при той нагрузке около 115 мбит количество сессий было около 5000. количество сессий или pps ? Количество сессий. Если быть точнее - количество записей в state таблице PF. На самом деле было время когда сравнивалась в целом производительность шейп + нат + файрвол. Варианты были такие: 1)Все на pf 2) ipfw + ipfwnat + ipfw-altq 3) dummynet + ipfwnat + ipfw Разница в производительности между первым и третьим вариантом была практически двукратная, ессно в пользу ipfw К сожалению, конкретно по нату тестов не было. Двукратная разница? А как тестировалось, можно поподробнее? Link to post Share on other sites
nightfly 1,252 Posted 2010-02-12 15:32:02 Share Posted 2010-02-12 15:32:02 Количество сессий. Если быть точнее - количество записей в state таблице PF. Не есть много, вобще немного. Не вижу смысла связывать себя с дубовым pf на таких нагрузках. Я уже молчу о отсутствии банального smp. ipfw с ядерным натом на порядок гибче и веселее в целом. Просто нужно уметь готовить. Ещё около 40% съедают interrupts с двух сетевух (не тюнил за ненадобностью). выбросьте свои rl =) 10-15% интеррапта на ~300 Мбит потоках считается нормой. В общем на 40 Мбитах он сжирал весь проц. омг... хотя да с реалтеками, 100% дефолтом... на смартфоне... возможно load averages: 0.33, 0.44, 0.32 4 x natd - резервный канал, плюс еще пачка сервисов на борту. Что я делаю не так? Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now