Jump to content

Recommended Posts

Posted

Тут дело не в операционке а в железе. Такое количество клииентов одним писюком скорее всего не зашейпиш.

Posted

А каки могут быть проблемы? Буфера сетевых карт? Процессорная мощность? Шина? Дело в том что трафик не такой большой - около 80 Мбит.

Posted (edited)

Проблемы возникают когда много пакетов, мнго юзеров и много правил, когда каждый пакет нужно проверить по списку правил размера N, где N = количество юзеров * количество правил шейпинга.

Edited by Kaban
Posted

Какие именно проблемы, проблемы Железа? Проблемы софта? Хотелось бы услышать о проблемах от людей которые реально этим занимались.

Posted

У знакомого на сервере 2 x PIII 1GHz, с траффиком 2000 пакетов в секунду на FreeBSD при формировании файрвольных правил (без шейпинга) на 800 записей загрузка CPU в interrupt возросла на 2%.

 

Логично предположить что при 100000 пакетах/секунду и 800 записях в ipfw.conf или при том же траффике и при 40000 записях сервак склеит ласты (а скорее всего еще раньше).

Posted
Подскажите какая ОС наиболее подходит для шейпирования по IP адресам для 2-3 тысяч клиентов?
80 мбит с натом и шейпингом - на одном писюке не прокачаете, скорее всего.

Так-то я бы порекомендовал Mikrotik. Ну и комп надо уровня п4-3.6, тогда есть шансы.

Микротик, зараза, коре2дуо и прочее многоядерное не поддерживает, к сожалению.

Posted

Гм. Возможно, я что-то не так делаю, но у меня один комп (Athlon64 4000+ 256Mb, какая-то небрендовая мать на чипсете от nVidia, intel'овские гигабитные сетевушки с включенным polling'ом) выступает в качестве граничного роутера на потоке 60-70Mbit/~20-25 тыс. pps делая клиентам шейпинг трафика (ipfw dummynet, по 14 pipe'ов разной скорости от 128Кбит до 4Мбит в обе стороны), NAT (через pf), файрволл (ipfw с минимальным количеством правил - все клиенты убраны в таблицы) и плюс считая весь трафик в обе стороны через ng_netflow. Загрузка проца - процентов 25 где-то... Система - FreeBSD 6.2.

Так что, все вопросы и проблемы производительности - не в проце и ОС, а в том, кто настраивает. :-) Если строить систему по древним переводным мануалам, делая NAT через natd, создавая по правилу и по отдельной "трубе" в ipfw на каждого клиента, а считая все это, скажем, ipcad'ом - тогда, конечно, да - никакое железо не выдержит. Читайте свежие маны в оригинале, впускайте по-больше креатива и будет вам счастье. :-)

 

ps: Гонял указанную систему в стресс-тесте - "затыкалась" только где-то после 200Мбит полосы... Ну, ИМХО, а по достижению такого объема трафика в продакшене уже не западло и какую-нибудь Cisco 7206 купить... :-)

Posted (edited)
Гм. Возможно, я что-то не так делаю, но у меня один комп (Athlon64 4000+ 256Mb, какая-то небрендовая мать на чипсете от nVidia, intel'овские гигабитные сетевушки с включенным polling'ом) выступает в качестве граничного роутера на потоке 60-70Mbit/~20-25 тыс. pps делая клиентам шейпинг трафика (ipfw dummynet, по 14 pipe'ов разной скорости от 128Кбит до 4Мбит в обе стороны), NAT (через pf), файрволл (ipfw с минимальным количеством правил - все клиенты убраны в таблицы) и плюс считая весь трафик в обе стороны через ng_netflow. Загрузка проца - процентов 25 где-то... Система - FreeBSD 6.2.

Так что, все вопросы и проблемы производительности - не в проце и ОС, а в том, кто настраивает. :-) Если строить систему по древним переводным мануалам, делая NAT через natd, создавая по правилу и по отдельной "трубе" в ipfw на каждого клиента, а считая все это, скажем, ipcad'ом - тогда, конечно, да - никакое железо не выдержит. Читайте свежие маны в оригинале, впускайте по-больше креатива и будет вам счастье. :-)

 

ps: Гонял указанную систему в стресс-тесте - "затыкалась" только где-то после 200Мбит полосы... Ну, ИМХО, а по достижению такого объема трафика в продакшене уже не западло и какую-нибудь Cisco 7206 купить... :-)

К сожалению купив 7206 вы не избавитесь от проблемы шейпирования :)

Сейчас стоит 3825 а шейпить все равно не на чем... На CISCO шэйпинг гибкий возможно сделать только на Virtual-Template'ах а это значит нужен BRAS.

 

мне в данном случае нужен только шейпинг, ну возможно еще фаервол.

 

А где можно почитать так как сделано у вас (ipfw dummynet). Потому как я последний раз где то год назад как раз чтолкнулся с тем что приходилось для каждого клиента отдельный pipe в ipfw создавать.

 

 

P.S. А если взять NETBsd или еще какую - вы уверены что ядро системы не влияет на быстродействие?

Edited by PereIks
Posted

насколько я понимаю все таблици с пользователями всеравно преобрауются в правила ipfw 1 строка - 1 правило, и с пайпами также 1 юзер - 2 пайра просто описывается проще, а сократить цепочки можно skip или skipto

Posted
Если совсем уж тяжко, то бюжетный вариант:

1) PC с 2-мя (так проще) PCI express

2) Сетевухи интел под PCI Express (такие есть)

3) Linux + читаем lartc на предмет "very mass shaping"

Ух, ну предложите небюджетный вариант???

В сети нет ни pppoe не pptp! Бюджет $15k

Posted (edited)

Не знаю зачем на потоке 80 мбит PCI-E гигабитные сетевушки, хотя это конечно полезно.

По идее Linux, если шейпить без общей иерархии (HTB), 2000-3000*2 правил должен прожевать любой приличный писюк.

С HTB действительно нужна мощность по-больше, но любой 3 ггц-овник, даже одноядерник должен это прожевать.

Единственное, что можно посоветовать массово шейпить лучше через fwmark, чем через u32.

Если нужна полоса больше (предпологая что железо её пропускает без проблем), то придется менять iptables на hi-pac http://www.hipac.org/, так как он умеет стоит древовидную систему правил, против линейной.

tc дерево правил строит изначально, так что проблем с ним я не вижу.

Edited by Kirya
Posted (edited)
К сожалению купив 7206 вы не избавитесь от проблемы шейпирования :)

Сейчас стоит 3825 а шейпить все равно не на чем... На CISCO шэйпинг гибкий возможно сделать только на Virtual-Template'ах а это значит нужен BRAS.

Спасибо за информацию! :-) То-то у меня недавно один хороший знакомый все конфиги ipfw выспрашивал... Говорил, что на Cisco шейпинг нормально сделать не получается...

Дык, а для чего тогда вообще эту 7206 использовать? Только трафик гонять да по BGP роутить?

 

мне в данном случае нужен только шейпинг, ну возможно еще фаервол.

А где можно почитать так как сделано у вас (ipfw dummynet). Потому как я последний раз где то год назад как раз чтолкнулся с тем что приходилось для каждого клиента отдельный pipe в ipfw создавать.

Я читал man ipfw - там местами немного муторно, но если вникать, то в итоге получается хорошо. На тот момент когда я делал - русских док по ipfw2 (т.е. там, где таблицы) и рациональному использованию dummynet вообще не было по-моему...

Раз уж пошла такая пьянка, то вот вам выдержки из конфига, скажем, для безлимитного тарифа со скоростью 1Мбит в обе стороны:

${fwcmd} add 982 pipe 12 ip from table\(14\) to any in via em0

${fwcmd} pipe 12 config buckets 128 mask src-ip 0xffffffff bw 1024Kbit/s

 

${fwcmd} add 982 pipe 32 ip from any to table\(14\) in

${fwcmd} pipe 32 config buckets 128 mask dst-ip 0xffffffff bw 1024Kbit/s

 

Пояснения:

1) table(14) - это таблица с адресами входящих в этот тариф пользователей. Ну, про таблицы - см. man ipfw. На самом деле - очень классно. :-) Не понимаю, почему до сих пор на эту тему так мало док, хотя это появилось еще несколько лет назад. Да и в других файрволлах аналогичный функционал давно есть - т.е. ничего сверхестесственного. Однако все почему-то предпочитают использовать синтаксис из древних версий 4-й ветки FreeBSD...

2) em0 - сетевушка, которая смотрит внутрь сети. Так как на этом же компьютере стоит NAT, исходящую от клиентов скорость режем, когда данные только попадают на интерфейс...

3) mask src-ip 0xffffffff и mask dst-ip 0xffffffff - позволяет не создавать на каждого пользователя по отдельной "трубе" в отдельном правиле. Подробнее - см. man

4) Входящий на клиента трафик режется на входе в интерфейс (в конце правила - "in"). Т.к. стоит NAT, это может показаться странным, но фишка в том, что трафик на FreeBSD попадает сначала в pf (который, соответственно, его "разворачивает" из NAT'а), а уж потом в ipfw. Это вообще надо иметь в виду, если строить сеть на двух файрволлах одновременно - в манах об этом ничего не сказано.

 

Вот, это коротенечко, чтобы стало понятно в чем суть. :-) Будут конкретные вопросы - стучите в аську...

 

P.S. А если взять NETBsd или еще какую - вы уверены что ядро системы не влияет на быстродействие?
Гм. А вы уверены, что в той ОС, которую вы хотите использовать, есть соответствующий функционал? ;-) В том смысле, что разве в NetBSD или в OpenBSD есть dummynet? Я честно говоря, на память сходу это гарантировать не готов. :-) В OpenBSD там родной файрволл - pf, у него шейпер - altq, но это штука во-первых намного менее гибкая (ИМХО), а во-вторых - и это критично - не выдерживает точной скорости. В смысле, полоса сильно "гуляет" туда-сюда и "выданный" пользователю мегабит будет то "меньше", то "больше". А dummynet режет очень точно. Реально у пользователя при скачивании получается то, что указано в pipe'е минус 8% на служебные расходы. Можно у себя на сайте об этом написать и посылать всех лесом, можно просто скорсть в pipe на эти 8 % увеличить - каждому свое. Главное - что есть определенность и заранее известен результат. :-)

Что же касается Linux в качестве ОС для шейпера - не знаю, не пользовался. Вообще, Линукс пользую только на десктопе. :-) Поэтому не буду ничего врать - спросите у кого-нибудь, кто делал это реально. :-) Т.е. именно у кого это действительно работает в продакшене...

 

насколько я понимаю все таблици с пользователями всеравно преобрауются в правила ipfw 1 строка - 1 правило, и с пайпами также 1 юзер - 2 пайра просто описывается проще, а сократить цепочки можно skip или skipto
Неа. В том-то и фишка! ;-)

 

Ух, ну предложите небюджетный вариант???

В сети нет ни pppoe не pptp! Бюджет $15k

Убиццо веником! Мне бы кто такие деньги дал на шейпер! ;-) В упомянутом моем компе самое дорогое - корпус рэковый 4U. ;-)))) Блин, буду в понедельник руководство грузить тем, что оно меня не ценит... ;-))) Edited by Skylord
Posted

насколько я понимаю все таблици с пользователями всеравно преобрауются в правила ipfw 1 строка - 1 правило, и с пайпами также 1 юзер - 2 пайра просто описывается проще, а сократить цепочки можно skip или skipto

Неа. В том-то и фишка! ;-)

 

покажи ipfw -a l

Posted (edited)

если так сильно хочется "очень железное и не очень бюджетное решение", то за $25K можно взять бандл ERX-310 c 8 GE. это взрослый полноценный BRAS, который терминирует до 16000 PPPoE/IPoE клиентов, при желании по несколько очередей шейпинга на каждого.

Edited by nording
Posted

Если совсем уж тяжко, то бюжетный вариант:

1) PC с 2-мя (так проще) PCI express

2) Сетевухи интел под PCI Express (такие есть)

3) Linux + читаем lartc на предмет "very mass shaping"

Ух, ну предложите небюджетный вариант???

В сети нет ни pppoe не pptp! Бюджет $15k

Из небюджетных вариантов глянь в сторону Catalyst-ов из серии Metro. Умеют шейпить в ASIC-ах (именно шейпать с буферизацией а не тупо обрезать по скорости).

Posted (edited)
То-то у меня недавно один хороший знакомый все конфиги ipfw выспрашивал... Говорил, что на Cisco шейпинг нормально сделать не получается...

Дык, а для чего тогда вообще эту 7206 использовать? Только трафик гонять да по BGP роутить?

и кофе варить 7206 не умеет... представляете?...

 

кстати 72я циска как раз раз предлагается циской в качестве одной из возможных платформ для BRAS... А вот 3825 в том списке нет.

Edited by puh
Posted

И сколько можно на 7206 virtual-template'ов создать?

 

если так сильно хочется "очень железное и не очень бюджетное решение", то за $25K можно взять бандл ERX-310 c 8 GE. это взрослый полноценный BRAS, который терминирует до 16000 PPPoE/IPoE клиентов, при желании по несколько очередей шейпинга на каждого.

А он смогет как ISG работать?

Чтоб пользователь авторизации через радиус даже не замечал?

Posted
И сколько можно на 7206 virtual-template'ов создать?

 

если так сильно хочется "очень железное и не очень бюджетное решение", то за $25K можно взять бандл ERX-310 c 8 GE. это взрослый полноценный BRAS, который терминирует до 16000 PPPoE/IPoE клиентов, при желании по несколько очередей шейпинга на каждого.

А он смогет как ISG работать?

Чтоб пользователь авторизации через радиус даже не замечал?

не знаю, что вы имеете в виду под "как ISG", но ERX может работать в CVLAN модели, без pppoe, и соответственно, логинов-паролей со стороны пользователя

Posted

Я имею в виду что при поступлении ip flow к роутеру, он посылает радиусу запрос на доступ этого ip и если доступ разрешен создает для этого ip flow virtual-template.

 

А где можно про CVLAN подробнее почитать?

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.