Страница 1 из 1
Выбор конфигурации пограничного роутера
Добавлено: 2011-07-06 16:05:41
allan_sundry
Доброе время суток!
Помогите выбрать конфигурацию для пограничного роутера (FreeBSD 8.2 + PF Shaping + немного NAT, VLAN, BGP, OSPF) c intel dual head 10G NIC c SFP+.
Сетевая карта должна уметь распаралеливать очреди между ядрами процессора (например Core i7).
У кого-то есть опыт построеня таких роутеров?
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-06 17:10:37
homoadminus
любая 10G карточка умеет несколько аппаратных очередей. Вы лучше скажите, зачем вам оно, если используется pf, который под GIANT LOCK'ом ходит и вся параллельность сводится им на нет? всё равно в один и тот же момент времени сетевым трафиком сможет заниматься только одно ядро.
Вы сколько гигабит хотите прокачивать? сколько kpps? сколько префиксов с бгпшечки? размеры областей ospf и их количество?
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-06 17:36:21
allan_sundry
homoadminus писал(а):любая 10G карточка умеет несколько аппаратных очередей. Вы лучше скажите, зачем вам оно, если используется pf, который под GIANT LOCK'ом ходит и вся параллельность сводится им на нет? всё равно в один и тот же момент времени сетевым трафиком сможет заниматься только одно ядро.
Вы сколько гигабит хотите прокачивать? сколько kpps? сколько префиксов с бгпшечки? размеры областей ospf и их количество?
http://onlamp.com/pub/a/bsd/2005/01/20/smpng.html
The PF filter is the only one that runs without the Giant lock. It is an adoption of the same codebase that OpenBSD developed several years ago and is the one with the most active development in FreeBSD. Being that it does not require the Giant lock, it has the potential to be the fastest of the three.
что-то не сходится
интересно прокачать максисмум что может 10G сетевая карта

.
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-06 19:12:50
homoadminus
вместо того, чтобы смотреть статьи 6-летней давности, можно просто посмотреть в код и обратить внимание на макросы PF_LOCK()/PF_UNLOCK(), которые лочат целиком весь PF
глядя на коммиты видно, что народ пытается с этим что-то делать, но пока в openbsd с smp не будет всё так же хорошо, как сейчас во фре/нетке затея не имеет смысла. Тем более, что pf никак не интегрируется с netgraph.
А то что описано в статье по ссылке уже давно сделано
Кстати, интел на 10G смогла отроутить 20 гигабит. Но для этого надо ioatdma/dca, которых во фре пока нет(но в мейллистах это обсуждают).
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-06 21:58:18
allan_sundry
homoadminus писал(а):вместо того, чтобы смотреть статьи 6-летней давности, можно просто посмотреть в код и обратить внимание на макросы PF_LOCK()/PF_UNLOCK(), которые лочат целиком весь PF
глядя на коммиты видно, что народ пытается с этим что-то делать, но пока в openbsd с smp не будет всё так же хорошо, как сейчас во фре/нетке затея не имеет смысла. Тем более, что pf никак не интегрируется с netgraph.
А то что описано в статье по ссылке уже давно сделано
Кстати, интел на 10G смогла отроутить 20 гигабит. Но для этого надо ioatdma/dca, которых во фре пока нет(но в мейллистах это обсуждают).

Что лучше тогда использовать в качестве шейпера + NAT?
При какой конфигурации и с какой ОС получилось отроутить 20 гигабит?
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-06 22:45:03
homoadminus
Ссылки:
http://vger.kernel.org/netconf2009_slid ... _final.pdf
http://download.intel.com/embedded/proc ... 322973.pdf
Ну и нагугливается по "intel nehalem vyatta 10Gbit". Если кратко, то нужен камень с большим кэшем, быстрая DDR3 память и карточка, умеющая несколько аппаратных очередей + более-менее свежее ядро. Я бы еще пропатчил на тему PF_RING, чтобы иметь возможность хватать пакеты wire speed. бгпшечку крутить на квагге/bird, ни в коем случае не использовать xorp(жрёт память нещадно).
Если не сильно надо statefull firewall, то выкинуть conntrack и фильтровать в табличке raw.
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-06 23:10:07
allan_sundry
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-07 1:40:59
homoadminus
по вашей же ссылке то, о чем я говорил изначально:
Код: Выделить всё
Despite the recent development of multiple processors support in the OpenBSD, the kernel still operates as if were running on a single processor system. On a SMP system only one processor is able to run the kernel at any point in time, a semantic which is enforced by a Big Giant Lock. The Big Giant Lock (BGL) works like a token. If the kernel is being run under one CPU then it has the BGL and thus the kernel can _not_ be run on a second CPU. The network stack and thus pf and pfsync run in the kernel and so under the Big Giant Lock.
If you have access to a multi core machine and are expecting to use programs that will take advantage of the cores then the multi core board is a good choice. PF is _not_ a multi core program so it will not benefit from multi core kernel.
как бы в тестах у них всё красиво, достигли 9Гбит/с в тестах iperf в одно соединение. Только практической пользы в реальном мире от такого нет.
Т.к. в таблице роутинга всего несколько записей и какой-либо обработки трафика не происходит. Гораздо интереснее на всё это смотреть, если по бгп влить full view(а это как бы уже 330k записей, что в ядре freebsd на i386 - где-то чуть меньше 20Мб, а на amd64 - уже в районе 50Мб. В Linux c CONFIG_FIB_RULES(зовётся fib_trie в опциях ядра) цифры процентов на 30 где-то меньше и на i386 большая часть влезет в L3-кеш, что сильно ускорит лукап если маршрута нет route cache.
Опять же, в статье по вашей ссылке написано, что на карточках 10GE не работает ALTQ.
Вообщем, при вашей задаче я бы либо сделал дистриб для себя(на базе, например, убунты или дебиана), либо если лень - взял бы vyatta. Там всё из коробки.
PS: все цифры получены в результате различных экспериментов, когда работал в ISP и мы искали альтернативы j4350.
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-07 11:33:44
allan_sundry
Какой был результат экспериментов? На какой конфигуации остановились?
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-09 1:35:00
homoadminus
результат - железка с linux + bird(как-то он поприятнее), Но у нас линки были 1GE, а не 10GE.
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-11 12:29:12
allan_sundry
homoadminus писал(а):результат - железка с linux + bird(как-то он поприятнее), Но у нас линки были 1GE, а не 10GE.
Какая версия Linux была использована?
Re: Выбор конфигурации пограничного роутера
Добавлено: 2011-07-11 12:59:53
homoadminus
тогда я использовал 2.6.36(брал >= 2.6.35 из-за RPS(
http://moblog.wiredwings.com/archives/2 ... .6.35.html )
Сейчас бы взял 2.6.39 из-за выпиленного BKL.