Автор Тема: Оптимизация для шлюза и файрволла  (Прочитано 3716 раз)

Оффлайн Ilya Evseev

  • Участник
  • *
  • Сообщений: 52
Имеется сервер Core2Quad с ALTLinux 5.0, сетевые карты 2*BCM5721, драйвер tg3.
Используется как шлюз и файрволл, все лишние пакеты деинсталлированы.
Планируемая нагрузка - сотни мегабит.

Вопрос: что можно оптимизировать в sysctl, опциях загрузки и т.д.,
чтобы увеличить быстродействие?


Сейчас сделан самый минимум:
1) lan- и wan-интерфейсы разнесены по разным сетевым картам,
2) карты через smp_affinity разнесены по разным ядрам (eth0 - cpu2, eth1 - cpu1):
# grep -i eth /proc/interrupts
2299:   57472419          0          0  100615589   PCI-MSI-edge      eth1
2300:   36060621          0   88082164          0   PCI-MSI-edge      eth0

Текущая нагрузка около 100mbps, 15-20kpps, в ip_conntrack ~64k записей, cpu2 и cpu3 загружены примерно на 25%.
« Последнее редактирование: 16.12.2009 20:34:49 от Ilya Evseev »

Drool

  • Гость
Re: Оптимизация для шлюза и файрволла
« Ответ #1 : 16.12.2009 15:04:47 »
Здесь на Ваш вопрос ответить могут максимум несколько человек. А здесь: https://lists.altlinux.org/mailman/listinfo/sysadmins - намного больше.

Оффлайн Ilya Evseev

  • Участник
  • *
  • Сообщений: 52
Re: Оптимизация для шлюза и файрволла
« Ответ #2 : 16.12.2009 18:26:10 »
Ближе к вечеру жизнь заставила подкрутить sysctl:
net.ipv4.netfilter.ip_conntrack_max = 1048576
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1800

По умолчанию было 65536 и 432000 соответственно.

Оффлайн black_13

  • Участник
  • *
  • Сообщений: 657
  • Gentoo + Debian + ALT
    • diff.org.ua
Re: Оптимизация для шлюза и файрволла
« Ответ #3 : 16.12.2009 18:28:56 »
Сорри за офтоп ... а шейпить будеш на этом шлюзе?

Оффлайн Ilya Evseev

  • Участник
  • *
  • Сообщений: 52
Re: Оптимизация для шлюза и файрволла
« Ответ #4 : 16.12.2009 19:15:33 »
Сорри за офтоп ... а шейпить будеш на этом шлюзе?
Пока однозначно нет. Минимальный файрволл, NAT и BGP.
Главное сейчас - чтобы NAT работал с максимальной производительностью.

Оффлайн black_13

  • Участник
  • *
  • Сообщений: 657
  • Gentoo + Debian + ALT
    • diff.org.ua
Re: Оптимизация для шлюза и файрволла
« Ответ #5 : 17.12.2009 09:45:50 »
А можна еще один вопрос не по теме? Сорри если напрягаю  ??? А чем обусловлен выбор AltLinux под такую задачу?

Оффлайн Ilya Evseev

  • Участник
  • *
  • Сообщений: 52
Re: Оптимизация для шлюза и файрволла
« Ответ #6 : 17.12.2009 13:57:59 »
чем обусловлен выбор AltLinux под такую задачу?
принципиальной разницы не вижу.
дистрибутив должен быть binary based, чтобы не разводить бесконечное компиляние и перекомпиляние.
с квалифицированным core-team, который заведомо не забьёт на проект.
с большой пакетной базой и осмысленной сборкой пакетов.
с обратной связью и большим комьюнити.
всё это в АльтЛинуксе есть.
кроме того, нравится etcnet (ну очень нравится).
нравится инсталлятор - неоднократно бывали случаи, когда parted в убунте и федоре
вместо таблицы разделов показывали чистый диск, а альтератор всё делал правильно.

не нравится отсутствие варианта установки "core router" или "raw server" (название можно обсуждать),
отсутствие поддержки ipset и ipt-netflow в ядре. Многим пригодился бы accel-pptp.

Drool

  • Гость
Re: Оптимизация для шлюза и файрволла
« Ответ #7 : 17.12.2009 14:00:08 »
не нравится отсутствие варианта установки "core router" или "raw server"...

Есть: ftp://ftp.altlinux.ru/pub/people/rider/

Оффлайн Ilya Evseev

  • Участник
  • *
  • Сообщений: 52
Re: Оптимизация для шлюза и файрволла
« Ответ #8 : 17.12.2009 21:05:41 »
не нравится отсутствие варианта установки "core router" или "raw server"...

Есть: ftp://ftp.altlinux.ru/pub/people/rider/
я в курсе, но это:
1) независимая сборка, а не опция в инсталляторе,
2) beta-версия,
3) собрана на базе сизифа (вечной beta-свалки),
4) и непонятно, что будет с её развитием.
кроме того, вопрос был актуален до установки, а сейчас я систему уже установил и всё лишнее поудалял.

предлагаю вернуться к первоначальному вопросу:
какие опции sysctl, параметры загрузки ядра и драйверов можно крутить,
чтобы увеличить быстродействие nat-шлюза?

Оффлайн dubrsl

  • alt linux team
  • ***
  • Сообщений: 238
Re: Оптимизация для шлюза и файрволла
« Ответ #9 : 17.12.2009 22:56:17 »
чем обусловлен выбор AltLinux под такую задачу?
не нравится отсутствие варианта установки "core router" или "raw server" (название можно обсуждать),
отсутствие поддержки ipset и ipt-netflow в ядре. Многим пригодился бы accel-pptp.
Присоединяйтесь к https://bugzilla.altlinux.org/22081
Зачем ipt-netflow когда есть ulog?
WBR,
Slava

Оффлайн Ilya Evseev

  • Участник
  • *
  • Сообщений: 52
Re: Оптимизация для шлюза и файрволла
« Ответ #10 : 20.12.2009 12:53:46 »
Зачем ipt-netflow когда есть ulog?
Это отдельная песня.
fprobe-ulogd сразу загрузил процессорное ядро на 100% (аж консоль встормозила),
ipcad через libpcap занял процентов 40% (через ulog проверять даже не стал).
При этом загрузка на обоих ядрах, обслуживавших прерывания от сетевых карт, тоже нехило подскочила:
с 60% до 75% для ipcad и до 90% для fprobe-ulogd (естественно, с "--ulog-cprange 48 --ulog-qthreshold 10").

Попробовал считать не на самом шлюзе, а на соседней машине через зеркалированный порт.
fprobe-ulogd пошёл лесом, т.к. iptables в Альте собран без PROMISC-модуля,
а ebtables отправляет в ulog пакеты другого формата.
ipcad в promisc-режиме заработал, и сравнительно неплохо (загрузка процессора ~12%).

ng_netflow и pfflowd во FreeBSD на этом фоне начинают выглядеть каким-то недосягаемым эталоном. ;D

Оффлайн dubrsl

  • alt linux team
  • ***
  • Сообщений: 238
Re: Оптимизация для шлюза и файрволла
« Ответ #11 : 20.12.2009 15:34:36 »
Зачем ipt-netflow когда есть ulog?
Это отдельная песня.
fprobe-ulogd сразу загрузил процессорное ядро на 100% (аж консоль встормозила),
Есть такое
Цитировать
ipcad через libpcap занял процентов 40% (через ulog проверять даже не стал).
При этом загрузка на обоих ядрах, обслуживавших прерывания от сетевых карт, тоже нехило подскочила:
с 60% до 75% для ipcad и до 90% для fprobe-ulogd (естественно, с "--ulog-cprange 48 --ulog-qthreshold 10").
libpcap на больших загрузках даже не рассматривается, т.к. теряет до 50% пакетов
Цитировать
Попробовал считать не на самом шлюзе, а на соседней машине через зеркалированный порт.
fprobe-ulogd пошёл лесом, т.к. iptables в Альте собран без PROMISC-модуля,
а ebtables отправляет в ulog пакеты другого формата.
ipcad в promisc-режиме заработал, и сравнительно неплохо (загрузка процессора ~12%).

ng_netflow и pfflowd во FreeBSD на этом фоне начинают выглядеть каким-то недосягаемым эталоном. ;D
ну не все так плохо,  может и лучше :D
я для этого собрал pmacct (nfacct, sfacct, uacct) могу сказать что очень нравится.
В вашем случае должна подойти такая свяка iptables+ulog - uacct - База_данных
Мы используем nfacct в 2 ДЦ и довольны. NetFlow отдает роутер (правда пришлось поставить семплинг в 100, а то циска загибалась все посчитать)
Если есть желание - попробуйте. Я недавно в ливежурнале написал с каким конфигом работает
WBR,
Slava

Оффлайн black_13

  • Участник
  • *
  • Сообщений: 657
  • Gentoo + Debian + ALT
    • diff.org.ua
Re: Оптимизация для шлюза и файрволла
« Ответ #12 : 14.02.2010 11:13:48 »
Вот случайно надыбал статейку по "тюнингу" TCP .... мож кому пригодится  ;)
http://www.psc.edu/networking/projects/tcptune/