ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
From: "Michael A. Kangin" <mak@complife.ru>
To: ALT Linux sysadmins' discussion <sysadmins@lists.altlinux.org>
Subject: [Sysadmins] Борьба с synflood
Date: Wed, 12 Dec 2012 02:33:02 +0400
Message-ID: <50C7B49E.9040305@complife.ru> (raw)

Добрый день.

хочется запинать систему, которая бы выдерживала как можно большее PPS 
синфлуда без вреда для предоставляемых сервисов.

Есть тестовый сервер с двумя ксеончиками, и сетевухой Intel Corporation 
82580 Gigabit Network Connection (драйвер igb).

Запускаем на нём в качестве жертвы апача с тестовым cgi, который 
рассказывает текущее время - так проверяем отзывчивость сервиса.

атакуем так с другого сервера:
hping3 <ip> -p 80 -S --rand-source --flood
Это даёт нам порядка 380K pps исходящего.

А атакуемый сервер (p6, std-def) принимает только порядка 75K, остальное 
дропает. Ну и сервис отвечает более-менее уверенно только до 150K.

Если поставить 3.4.21-un-def-alt0.M60P.1, число принимаемых пакетов 
немного увеличивается, до 110К. Причём, количество принимаемых пакетов 
снижается с ростом нагрузки - так, при атаке под 500К принимается уже 
только 90K.

Немного лучше себя ведёт Centos6 - она вполне принимает до 140K, и 
сохраняет отзывчивость сервиса до 200К с атакующей стороны.

На атакуемой машинке в htop'е светятся красным все ядра, отданные под 
прерывания сетевухи и довольно высокий LA.


Интриги добавляет тот факт, что Линупс сосёт.

Если на этот сервер поставить FreeBSD9, то она принимает под 450К без 
всякого ухудшения сервиса. И живёт со скрипом вплоть до 750К с атакующей 
машины, больше я с неё не смог выжать.

Собственно, что сделать можно под Линуксом?
Все настройки в целом по умолчанию (кроме раскидывания прерываний по 
ядрам процессора). Я пробовал много шаманств - и всякие там sysсtl 
крутить, и длины очередей в ifconfig и ethtool, и параметры igb. Все 
бесполезно (да и раскидывание прерываний, подозреваю, тоже).

Была идея, что 2-4 сетевухи в бондинге будут лучше справляться. Авотфиг. 
Хуже.

-- 
Michael A. Kangin


             reply	other threads:[~2012-12-11 22:33 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-11 22:33 Michael A. Kangin [this message]
2012-12-12  7:20 ` Viacheslav Dubrovskyi
2012-12-12  8:31   ` Anton Gorlov
2012-12-12  9:54     ` Viacheslav Dubrovskyi
2012-12-12 10:12       ` Anton Gorlov
2012-12-13  7:47     ` Sergey
2012-12-12  9:40   ` Michael A. Kangin
2012-12-14 12:17   ` Sergey Alembekov
2012-12-12  8:39 ` Anton Gorlov
2012-12-12  9:42   ` Michael A. Kangin
2012-12-12  9:58     ` Viacheslav Dubrovskyi
2012-12-12 10:20       ` Alexei Takaseev
2012-12-12 10:34         ` Viacheslav Dubrovskyi
2012-12-12 10:44       ` Michael A. Kangin
2012-12-12 10:40   ` Michael A. Kangin
2012-12-12 10:46   ` Michael A. Kangin
2012-12-12 10:51 ` Viacheslav Dubrovskyi
2012-12-12 11:10   ` Michael A. Kangin
2012-12-20  6:20 ` Dubrovskiy Viacheslav
2012-12-20 18:15   ` Michael A. Kangin
2013-01-06 12:04     ` Dubrovskiy Viacheslav

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50C7B49E.9040305@complife.ru \
    --to=mak@complife.ru \
    --cc=sysadmins@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux sysadmins discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
		sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
	public-inbox-index sysadmins

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sysadmins


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git