Добрый день.

хочется запинать систему, которая бы выдерживала как можно большее 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
_______________________________________________
Sysadmins mailing list
[email protected]
https://lists.altlinux.org/mailman/listinfo/sysadmins

Ответить