Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Vadim Goncharov                      2:5020/400     03 Sep 2006  18:40:20
 To : Eugene Grosbein
 Subject : Re: ng_ipacct
 -------------------------------------------------------------------------------- 
 
 Hi Eugene Grosbein! 
 
 On Sun, 03 Sep 2006 13:15:02 +0400; Eugene Grosbein wrote about 'Re: ng_ipacct':
 
  EG>>> Пришла мысль трафик направлять в ng_ipacct не напрямую после ng_tee,
  EG>>> а пропустив через ng_bpf и отфильтровав пакеты его средствами.
  EG>>> Убивается сразу два зайца - снимается лишняя нагрузка с ng_ipacct
  VG>> И добавляется большая нагрузка на ng_bpf. Скорее всего ты все таки
  VG>> проиграешь в производительности.
  EG> В производительности по сравнению с ng_ipacct без ng_bpf
  EG> или по сравнению с ipacctd?
 
 Думаю, что оба варианта, хотя проверять надо.
 
  VG>> Ибо ng_bpf очень прожорлив. Он мало
  VG>> того что делает malloc(9) для каждого пакета, собирая его из цепочки
  VG>> mbuf'ов (потому что bpf требует непрерывноо блока),
  EG> Только если пакет занимает более одного mbuf-а.
  EG> А от чего зависит, будет ли пришедший из vlan'а пакет
  EG> занимать более одного mbuf?
 
 От размера пакета, например. Размер данных mbuf'а - менее 256 байт, а
 mbuf cluster'а - 2 килобайта (для 5.5 на 386). Кроме того, идея mbuf'ов
 - в легком добавлении или удалении заголовков протоколов, так что цепочка
 может запросто получиться и для маленького пакета. Я не вдавался
 в детали работы всех подсистем, так что не знаю, как часто mbuf'ы на
 входе выстраиваются в цепочку, но на выходе из машины это должно
 случаться часто (т.е. вешать ng_bpf лучше всего непосредственно после
 получения входящих с ng_ether, а не после ip_input(), файрвола и т.п.).
 
  VG>> так еще и исполняет
  VG>> инструкции на виртуальной bpf-машине (в 7-ке включили bpf_jitter,
  VG>> компилиирующий в нативный код, но неизвестна производительность
  VG>> сравнительно с ipfw). Кроме того, ассемблер bpf не вполне полноценен
  VG>> - запрещены джампы назад, в результате что-то серьезное в лимит в 512
  VG>> инструкций может и не получиться впихнуть.
  EG> Мне не нужно серьезное. Мне нужно 'not from x.x.x.x/x' и все.
  EG> Получается совсем немножко. А виртуальная машина сильно тормозная?
 
 Hе замерял. Судя по работе tcpdump'а, не очень :) Сравнительно
 с нативными вариантами, конечно, кода в несколько раз больше, но это
 относительный показатель. Для одного 'not from x.x.x.x/x' наверное будет
 нормально.
 
  EG>>> и обходится проблема ipfw tee, который хотя и передает пакет
  EG>>> через ksocket в netgraph, но и прекращает просмотр правил для
  EG>>> этого пакета, а это тут не годится.
  VG>> Уходи с 4-ки - пора уже (at least на таких задачах). А в 6-ке есть
  VG>> нормальный netgraph/ngtee в ipfw. Если совсем уж никак - ipfw divert
  VG>> + ksocket + ng_echo.
  EG> Помнится, во времена 6-CURRENT ipfw divert+ksocket был глючный
  EG> и Глеб эту связку фиксил и делал MFC в пятерку. Информации о том,
  EG> что в для четверки фиксы были нужны/прокоммичены у меня нет.
  EG> Оно нормально работает на четверке?
 
 Рекомендую таки уходить с 4-ки. Её поддержка прекратится уже через
 несколько месяцев.
 
 -- 
 WBR, Vadim Goncharov. ICQ#166852181       mailto:vadim_nuclight@mail.ru
 [Moderator of RU.ANTI-ECOLOGY][FreeBSD][http://antigreen.org][LJ:/nuclight]
 --- slrn/0.9.8.1 on FreeBSD 4.11/i386
  * Origin: Nuclear Lightning @ Tomsk, TPU AVTF Hostel (2:5020/400@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: ng_ipacct   Vadim Goncharov   03 Sep 2006 18:40:20 
Архивное /ru.unix.bsd/10359d32d1ccc.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional