Генерация трафика что это
50 источников целевого трафика
Трафик похож на живую воду из сказки: чем его больше, тем успешнее проект как в плане известности, так и в расчете на достижение конверсионных целей. Увеличить трафик помогут знания об его источниках.
Текст основан на материалах вебинара «50 источников целевого трафика», который в рамках курса «Интернет-маркетолог от Ingate» провел Роман Молчанов.
4 способа получить посетителей из поиска
1. SEO (органическая выдача из «Яндекс», Google, Mail, Bing и пр.)
Самый популярный канал привлечения трафика. При продвижении через поиск учитывайте, что в таких тематиках, как медицина, недвижимость и банки, все высокочастотные и среднечастотные запросы забирают себе различные агрегаторы. В этих тематиках работайте с низкочастотными запросами с региональной привязкой. В остальных направлениях данный канал по-прежнему работает хорошо.
2. Поисковые блоки «Яндекс.Директ» и Google AdWords
Контекстная реклама в основном генерирует трафик на основе актуальной потребности. Если вы выходите с продуктом на несформировавшийся рынок, то спроса как такового не будет. Контекстная реклама потеряла лидирующие позиции в тематике e-commerce. В лидеры вышли price- и товарные агрегаторы.
3. «Яндекс.Карты» и Google Maps
Этот способ подойдет прежде всего компаниям в секторе B2C, таким как банки, аптеки, сети общественного питания. Например, на карте можно указать точку продаж. В тот момент, когда от потенциального клиента в поиске поступит геолокационный запрос, будет показан именно ваш магазин. Есть важный нюанс: как правило, запрос в поиске размыт — «магазин обуви мокасины», «аптека рядом» и так далее.
Чтобы «Яндекс» или Google показали именно ваш магазин, у него должна быть правильно заполнена карточка компании, высокий рейтинг и положительные отзывы. Обязательно просите своих покупателей писать отзывы и ставить оценки на картах. Также учитывайте, что отметка вашего офиса или точки продаж — это платная услуга со стороны поисковиков.
Если сравнивать поиск, контекст и приоритетное размещение в «Яндекс.Картах», то стоимость трафика на сайт снижается в 5–7 раз за счет использования карт.
4. Поиск по картинкам
Заполняем атрибуты ALT и TITLE тега IMG, даем читаемое название файлу изображения и стараемся разместить его как можно выше на странице.
5 вариантов получения трафика из рекламных сетей
1. Рекламные сети «Яндекс.Директ» и Google AdWords
При использовании РСЯ и Google Adwords в первую очередь нужно понимать, какой цели вы хотите добиться. И исходя из этого делать вижуалы.
2. Медийная реклама
Главное правило в медийной рекламе — нельзя размещаться без какого-то определенного посыла или предложения. Если вы просто решите пропиариться без привязки к какому-то предложению, из этого, к сожалению, ничего не выйдет. Чтобы выбрать площадку для медийной рекламы, используйте сервисы SimilarWebs, Serpstat, Adindex и другие. Внимательно изучайте медиакиты, которые есть у площадок.
Важно!
Вам нужно точно знать, что на том портале, где вы собираетесь разместить рекламу, есть ваша целевая аудитория.
Основной инструмент для оценки влияния медийной рекламы сегодня — линейная атрибуция.
3. CPA-сети
При использовании CPA-сетей вы платите за результат. Это могут быть определенные действия, такие как регистрация, переход на сайт или непосредственно покупка.
4. Тизерные сети
Тизерные сети служат для генерации дешевого трафика. В то же время этот канал ассоциируется с фродом, с мотивированным трафиком. Подойдет для генерации охватного трафика, когда нужно где-то засверкать на время. И все же подумайте десять раз, прежде чем включать его в свою рекламную стратегию.
5. Programmatic RTB
RTB позволяет покупать показы на разных площадках, подстраиваясь не под площадку, а под настройки целевой аудитории. Programmatic хорошо подойдет для финансовой сферы и недвижимости.
3 варианта ремаркетинга
1. Ремаркетинг (PPC-каналы, соцсети)
Настраивая ремаркетинг, помните о пути пользователя, который он должен пройти к цели, и в зависимости от этого настраивайте вижуалы.
Процесс целевого действия имеет много итераций и включает множество точек касания, предшествующих собственно целевому действию.
2. Динамический ремаркетинг (Google AdWords, Criteo)
Динамический ремаркетинг можно реализовывать через стандартные привязки Google Merchant Center, Google Adwords либо сторонние сервисы, такие как Criteo и другие. Отлично подходит для e-commerce.
3. Look-alike-расширение трафика на основе данных ремаркетинга
С помощью таргетинга на похожие аудитории можно значительно увеличить воронку продаж за счет привлечения новых пользователей.
8 вариантов привлечения клиентов из социальных сетей
1. Таргетированная реклама в Facebook и «Инстаграме»
В Facebook на данный момент хорошо работает реклама в карусели, будь то спецпредложения или генерация трафика на сайт. Лиды приходят качественные.
2. Таргетированная реклама во «ВКонтакте»
Во «ВКонтакте» важно уметь настраивать таргет на целевую аудиторию. Хорошо работает тематика недвижимости. А вот финансовая тематика там сейчас не показывает хороших результатов ни в трафике, ни в конверсионных действиях.
3. Таргетированная реклама в MyTarget
Большой агрегатор социального трафика, который приводит лояльный и качественный трафик на ваш сайт. MyTarget все любят и используют на полную катушку.
4. Промопосты
На данный момент это один из лучших способов привлечения трафика из соцсетей. Используя сервисы Target Hunter, «Церебро» и другие, можно собирать аудиторию социальных сетей вплоть до последней активности. Правильно расписав портрет целевой аудитории, вы получите действительно качественный трафик. Промопосты хорошо работают для событий, услуг, в рамках акций в e-commerce.
5. Оплаченные посты, заказанные напрямую или через биржи
Заказные посты имеет смысл размещать у селебрити или адвокатов бренда. Найти таких людей можно самостоятельно или с помощью бирж, таких как Sociate. Перед покупкой поста изучите профиль селебрити или активность в группе. Если угадаете с аудиторией, вас ждет приток новых пользователей на ваш сайт.
6. Комментарии под популярными постами
Если у вас нет денег на селебрити или рекламу в популярных группах, идите в комментарии.
Важно!
Главное правило продвижения в комментариях — никакого рекламного текста, якорей, UTM-меток и прочего, только формат нативной рекламы и ссылка.
Если сам селебрити или администратор группы скопирует и где-то поставит эту ссылку, то мы получим не только трафик, но и адвокатов бренда.
7. Виральный контент
Это сложный способ генерации трафика, но если удается его запустить, то пойдет цепная реакция. Пример вирусной рекламы — новость «Пушкин и Ленин подрались на Красной площади из-за клиента». Эту новость стал продвигать даже «Яндекс», не разобравшись, что это реклама сериала «Пушкин» на СТС.
8. Ссылки из популярных профилей
Например, можно найти в Steam профили популярных ютуберов по Counter-Strike: Global Offensive, связаться с ними и договориться о размещении своей ссылки в их профилях.
5 форматов контент-маркетинга, приносящих трафик
1. Ведение блога
Главное для блога — быть живым. А значит, его надо вести регулярно. В таком случае блог будет генерировать трафик на основной сайт.
2. Публикация статей
В продвижении статьями важно определить правильные сайты для их размещения, исходя из вашего бизнеса. Контент должен быть интересен целевой аудитории и быть по возможности нативным. Важно, чтобы аудитория вам поверила, тогда в будущем она обратится к вам для решения своей проблемы.
3. Комментарии экспертов в статьях
Используйте такие сервисы, как Pressfeed и другие. Отвечая на вопросы журналистов, вы тем самым приобретаете экспертность в глазах потенциальных покупателей. А упоминание вашей компании или сайта в статье увеличивает трафик.
4. Издание книг
Издание книг подчеркивает вашу солидность и авторитет на рынке. Данный вид контента позволяет организовать дополнительный источник трафика за счет публикации ссылок в тексте книги.
5. Вебинары
Вебинары хорошо конвертируют зрителей в покупателей. Известный блогер и маркетолог, основатель KISSmetrics Нейл Патель приводил данные, что, проведя77 вебинаров, он привлек на свой сайт свыше полумиллиона человек, из которых около17 000 стали покупателями его услуг.
2 способа привлечения аудитории из видеохостингов
1. Продвижение видео в YouTube
Продвижение с помощью видео отлично работает на генерацию трафика. Например, вы рассказываете, как ремонтировать дом. Люди интересуются и переходят на сайт.
2. Видеореклама в YouTube
Сегодня видеореклама — самый потребляемый канал. Youtube отлично работает на брендирование, на генерацию трафика и целевые действия. Только не забывайте измерять эффективность видеорекламы в рамках линейной атрибуции.
20 других способов привести клиентов на сайт
1. Посты на тематических форумах
Трафик из форумов самый дешевый, он дешевле даже товарных агрегаторов. При этом качественный, потому что посетители форумов, как правило, приходят туда с конкретной целью, вопросом, за помощью и так далее. Достаточно один раз разместить посты с нативной рекламой, и они будут долго генерировать переходы.
2. Товарные агрегаторы
Идеальный вариант для e-commerce. Если вы чем-то торгуете, первым делом идите туда.
3. Реклама на Avito
На «Авито» можно реализовать две стратегии маркетинга. Первая — покупка контекстной рекламы. Она дешевая и позволяет получать качественный трафик. Вторая — использование приоритетного размещения. С его помощью можно рекламировать сайты с услугами или магазины. Многие размещают объявление якобы от частного лица, а затем переводят человека на свой сайт.
4. Брендирование ветки форума на профильных площадках
Этот вид рекламы хорошо работает на долгосрочную перспективу. Дешевле, чем контекстная и медийная реклама, плюс ко всему позволяет увеличить узнаваемость бренда. Часто говорят, что все разговоры ушли в соцсети. Это не так, форумы отлично себя чувствуют.
5. Спонсорство/партнерство
Расширенная версия генерации трафика с брендированного форума — спонсорство и партнерство: например, брендирование главной страницы Lostfilm. Конечно, это дорого, и не все могут себе такое позволить, зато эффективно.
6. Трафик с фотохостингов
Можно разместить ссылку в ватермарке, опубликовать ссылку в профиле или включить в название и подпись изображения.
7. Email-рассылки
Существует два вида email-рассылок — триггерные и контентные. Триггерные хорошо использовать в e-commerce. Например, пользователь зашел на сайт, положил что-то в корзину, но в итоге ничего не купил. Срабатывает триггер «брошенная корзина», тут же на почту летит письмо со скидкой и в итоге человек покупает товар. А через некоторое время срабатывает триггер кросс-продажи и клиенту приходит письмо с предложением сопутствующего товара.
Контентные рассылки хорошо использовать для построения долгосрочных отношений с клиентом.
8. Купонаторы
Если правильно проработать региональную привязку, то с купонатора можно получить дешевый и качественный трафик за счет размещения медийной рекламы. Здесь хорошо зайдут товары, относящиеся к индустрии развлечений, например билеты на концерты. Помимо этого, можно использовать рассылку по базе купонатора.
9. Ссылки в футере сайтов клиентов
Подойдет для студий, которые разрабатывают сайты. Прописывайте в договоре о создании сайта размещение ссылки на вас в футере. Чем больше сайтов, тем больше будет трафик.
10. Трансляция RSS-ленты
Экстравагантный способ общения с аудиторией, но тем не менее, если у вас на сайте постоянно выходят новости, вы можете возвращать целевую аудиторию на сайт за счет трансляции новостей о компании.
11. Рейтинги
Рейтинги позволяют поддерживать узнаваемость вашей компании. А еще присутствие в них — подтверждение репутации компании и, как следствие, рост трафика на сайт.
12. Партнерские программы
Хороший пример партнерки — клуб «Много.ру». Для его участников проводятся различные акции со скидками. Такое решение подходит для e-commerce в качестве поставщика лидов.
13. Офлайн-реклама с помощью QR-кодов и купонов со скидкой
QR-коды или скидки можно размещать на чеках, раздатке, купонах. До тех пор пока не будет запрещена бумага, этот способ генерации трафика на сайт будет жить.
14. SMS-рассылки
Речь идет об sms-рассылке только по своей базе, ни в коем случае не спам. Подходит для информирования клиентов об акциях.
15. Ссылка при копировании текста
Ссылка на сайт появляется при попытке скопировать текст с сайта. Трафика мало, но зато он полностью бесплатен.
16. Размещение на отзовиках
Положительные отзывы на сайтах специализированных сервисов и в их приложениях позволят добавить еще один небольшой ручеек трафика.
17. Реклама в мобильных приложениях
Существует стереотип, что реклама в мобильных приложениях должна быть направлена прежде всего на саму себя, то есть на другие мобильные приложения. Это не так. Хороший результат приносит реклама недвижимости или финансовых услуг. Но здесь особенно важно внимательно изучать трафик, так как пользователи часто просто промахиваются мимо закрывающего крестика на баннере.
18. Размещение в сервисе otvet.mail.ru
Ищем вопросы по своей тематике и затем в нативном формате, со ссылкой, размещаем ответ.
19. Мессенджеры: WhatsApp, Viber, Telegram
Даже после блокировки каналы «Телеграма» остаются поставщиками качественного трафика.
20. Каталоги и справочники
Каталоги и справочники тоже дают небольшой поток трафика. Просто разместите там информацию о компании.
Подведем итог
Количество посетителей является одним из главных показателей успешности проекта в любой области интернет-бизнеса. Используйте приведенные выше рекомендации для своего проекта.
Важно!
Не забывайте при этом проводить качественный анализ источников трафика. Важно не просто применить все50 способов, а выбрать наиболее эффективные для вас.
Узнать больше о том, как анализировать входящий трафик, планировать продвижение и разрабатывать рекламные и PR-стратегии, а после этого применить полученные умения на практике, пройдя стажировку в одном из топовых российских digital-агентств, вы сможете, записавшись на курс «Интернет-маркетолог от Ingate».
Ведущий digital-стратег компании Ingate. Окончил факультет робототехнических систем в ТулГУ.
Генерируем трафик в инфобизнес без остановки: как избегать блокировок и пауз в рекламе?
Ежедневно трафик-агентства, фрилансеры и все, кто так или иначе работает с холодным трафиком из Facebook/Instagram для инфобизнеса, сталкиваются с большим количеством ограничения со стороны сети в виде блокировок. Сегодня я хочу поделиться наработками своей команды по трафику, как нам удается сводить блоки к минимуму, какие инструменты для этого используем и какие решения пришлось внедрить чтобы работать в текущих реалиях рекламы Фейсбук. Стабильность трафика, особенно в инфобизнесе, это один из наиболее весомых факторов, тк воронки не могут существовать без входящего трафика, и если его нет, то предприниматель не зарабатывает вовсе. Погнали 🚀
И как сделать так, чтобы объявление проходило модерацию как можно чаще, а уже работающая реклама была не заблокирована или приостановлена Фейсбук?
Поговорим в этой статье.
*вся информация в статье от маркетологов Facebook.
Почему Facebook блокирует рекламу?
Рекламная система Facebook устроена таким образом, что иногда объявления сперва очень легко проходят модерацию, но в конечном итоге после повторной проверки их отклоняют, а рекламный аккаунт блокируется.
Есть несколько причин, по которым так происходит. Вот самые частые:
(особенно часто это относится к арбитражникам — людям, которые запускают трафик на серые и чёрные темы, а также всячески пытаются обойти правила фейсбук. Именно поэтому соцсеть активно борется с такими участниками и рекламой, которую они запускают)
(Бывает, что фейсбук может по ошибке приурочить объявление, которое ничего не нарушает, к запрещенному просто из за ошибки алгоритмов или сбоя системы).
Чтобы снизить риски блокировки рекламы на Facebook важно начать с подготовки новой бизнес-страницы или аудита уже существующей.
Какой должна быть бизнес-страница?
Очень важно заполнить все поля в настройках бизнес-страницы. Да, казалось бы, это всего лишь бизнес-страница, которую потенциальный клиент даже особо не видит. Но ее видит Фейсбук) А он намного более избирательный, чем типичный пользователь.
Страница должна быть максимально заполнена контентом под рекламируемый продукт. Потому что если вы, например, ведете профиль на тему фитнеса, а потом рекламируйте товары для дома, то у Facebook сразу появятся подозрения.
Кроме релевантного контента нужно регулярно чистить комментарии, отвечать на них, добавлять новую контактную информацию в профиль. Так вы обеспечите не только развитие страницы, но и минимизируете риски блокировки.
Правила по использованию бизнес страницы:
Что позволяет команде Digital PLUR обходить затяжные паузы в трафике?
У таргетинга, как и у любого другого вида рекламы, есть свои законы, с которыми нужно считаться, чтобы рассчитывать на успешное прохождение модерации и длительное функционирование рекламного кабинета.
Правилами рекламной деятельности Facebook ЗАПРЕЩЕНО:
Это не все правила, которые помогут обезопасить рекламу в FB/Inst от неожиданной блокировки, но это самые распространённые, которые встречаются. Именно их наша команда постоянно придерживается при запуске новых объявлений, чтобы у Фейсбук не было подозрений.
Важный момент: даже соблюдая политику Facebook на 100%, можно попасть в бан, так как это искусственный интеллект и он анализирует наши действия как человек, а не робот, у которого механизм работает по точным алгоритмам.
Фейсбуке также бывают форс-мажоры в виде сбоев, которых не избежать. То есть из-за подобных лагов блокировка всё равно может произойти, даже если вы соблюдаете все правила.
Однако на каждый форс-мажор должен быть чёткий план действий, по которому специалист может быстро разрешить ситуацию: либо перенести на другой рекламный аккаунт, либо отправить кампанию на повторную модерацию.
Мы советуем людям оцифровывать процессы, чтобы каждый участник команды знал, что ему нужно сделать в той или иной критической ситуации. Такой подход сильно сокращает потери в трафике.
Тем не менее любую блокировку можно оспорить. Если объявление не прошло модерацию, но вы считаете, что действительно не нарушили ни один из пунктов рекламной политики Facebook, смело отправляйте рекламу на повторную модерацию. Если нарушения действительно нет, объявления запустятся автоматически (если кампания была активна).
Ключевые лица команды Digital PLUR, которые “спасают” рекламу от блокировки.
По опыту длительной работы с рекламой Facebook/Instagram, особенно в период прошлогодних выборов (таргетологи всплакнули), мы создали специальный отдел предмодерации, который делает модерацию всех элементов запуска рекламы: посадочных страниц, рекламных макетов, текстов, бизнес-страниц и прочего. В отделе собраны обученные люди, которые досконально знают правила фейсбук и корректируют все элементы исходя из них.
Перед тем, как загрузить рекламные кампании в кабинет, все элементы запуска проходят через чуткий глаз предмодерации:
Благодаря этим своевременным действиям мы не допускаем долгих пауз в рекламе и, соответственно, потери прибыли в онлайн-школе.
Важный момент: отливать трафик с минимальными паузами нам также помогают отлаженные процессы работы, чек-листы внутри и команды и прочие техники.
Работать с ФБ выгодно определенно выгодно и будет так еще продолжительное время. Даже блокировки и прочие «палки в колеса» от сети не должны быть для вас ключевым фактором смены источника или вообще деятельности. Но не стоит пытаться сделать весь профит за один день. Мы терпеливы и как следствие – помогаем владельцам онлайн-школ привлекать стабильный поток заявок в течение продолжительного времени.
Заинтересованы в получении целевого трафика из соцсетей без блокировок и пауз?
Телефон для связи, либо WhatsApp/Telegram: +7(999)632-60-61.
Генерация трафика в маркетинге
Генерация трафика, один из наиболее важных процессов в маркетинге. От этого процесса зависит успех работы организации. Поток входящих обращений определяет потребность на товары и услуги компании на рынке, а качество входящего трафика определяет экономическое целесообразие компании.
В теории «воронки» продаж, маркетинг находится в самом верху этой самой воронки, генерация трафика формируется путем распространения информации в различных каналах, проведении мероприятий, научными исследованиями.
Сам же процесс продажи можно поделить на несколько этапов сопоставляя эти этапы с «жизненным» циклом покупателя:
Дальше можно добавить этап Повторная сделка, это уже будет повторяющийся цикл в котором клиент приобретает статус “лояльный”, такие клиенты очень важны и для них составляется отдельная маркетинговая программа лояльности.
Для успешной генерации трафика необходимо тщательно подготовится к этапу осведомленность, продумать каналы распространения информации, просчитать бюджеты, замерить эффективность.
К нам должно обратится 100 человек (l), мы готовы заплатить за это 15 000 (s), считаем 15 000/100=150, выходит одно обращение у нас стоит 150 юнитов.
Важно понимать, что клиент не всегда переходит от этапа Осведомленность на Этап Обращение, а чаще всего находится какое то время в этапе Интерес, поэтому необходимо предусмотреть все пути, по которым клиент будет ходить во время стадии интерес и максимально доступно и понятно разложить там информацию, в тех местах где будет наш клиент. В этом случае клиент будет максимально подготовлен для этапа Обращение и сделка, в которой, одним из ключевых факторов успеха, будет профессиональная работа продавца, выявления потребности клиента и его “закрытие”. Хороший продавец это хороший психолог, который знает что нужно клиенту и дает это ему.
Вот так, хороший маркетолог как хороший садовод, подготавливает почву для своих товаров и услуг, сеет на ней интересные и выгодные предложения, и получает плодоносный урожай в виде обращений клиентов.
Генерация трафика в юзерспейсе
Генерация трафика посредством MoonGen + DPDK + Lua в представлении художника
Нейтрализация DDoS-атак в реальных условиях требует предварительных тестирования и проверки различных техник. Сетевое оборудование и ПО должно быть протестировано в искусственных условиях близких к реальным — с интенсивными потоками трафика, имитирующего атаки. Без таких экспериментов крайне затруднительно получить достоверную информацию о специфических особенностях и ограничениях, имеющихся у любого сложного инструмента.
В данном материале мы раскроем некоторые методы генерации трафика, используемые в Qrator Labs.
Мы настойчиво рекомендуем читателю не пытаться использовать упомянутые инструменты для атак на объекты реальной инфраструктуры. Организация DoS-атак преследуется по закону и может вести к суровому наказанию. Qrator Labs проводит все тесты в изолированном лабораторном окружении.
Современный технический уровень
Показательной задачей в нашей области является насыщение 10G Ethernet-интерфейса небольшими пакетами, что подразумевает обработку 14.88 Mpps (миллионов пакетов в секунду). Здесь и далее мы рассматриваем сетевые пакеты Ethernet наименьшего размера — 64 байта, — поскольку нашим основным интересом является максимизация количества переданных пакетов в единицу времени. Простой подсчет показывает, что у нас есть всего около 67 наносекунд для обработки одного такого пакета.
Просто для сравнения — это время близко к тому, что требуется современному процессору для получения кусочка данных из памяти в случае промаха в кэш. Все становится еще сложнее, когда мы начинаем работать с 40G и 100G Ethernet-интерфейсами и пытаемся полностью насытить их вплоть до line rate (максимально возможной заявленной производительности сетевого устройства).
Другим возможным подходом является получение прямого доступа из userspace к буферам памяти сетевого контроллера. Этот путь более сложен, однако сто́ит усилий в целях достижения более высокой производительности. Недостатки включают в себя высокую сложность и низкую гибкость. Примерами такого подхода являются технологии netmap, PF_RING и DPDK [4].
Еще одним эффективным, хотя и весьма затратным способом добиться высокой производительности является использование не универсального, а специализированного оборудования. Пример: Ixia.
Также существуют решения основанные на DPDK с использованием скриптов, что повышает гибкость в управлении параметрами генератора, а также позволяет варьировать тип генерируемых пакетов в процессе запуска. Ниже мы опишем собственный опыт с одним из таких инструментов — MoonGen.
Архитектура MoonGen
Отличительными особенностями MoonGen являются:
Архитектура MoonGen, схема из материала [1].
MoonGen
MoonGen — это скриптовый высокоскоростной генератор пакетов, основанный на библиотеке DPDK. Скрипты Lua контролируют полностью весь процесс: созданный пользователем скрипт занимается созданием, модификацией и отправкой пакетов. Благодаря очень быстрому LuaJIT и библиотеке обработки пакетов DPDK, такая архитектура позволяет насытить 10-гигабитный Ethernet-интерфейс 64-байтными пакетами, используя только одно ядро центрального процессора. MoonGen позволяет достичь такой скорости даже в случае, когда Lua-скрипт модифицирует каждый пакет. При этом не используются трюки вроде переиспользования одного и того же буфера сетевого контроллера.
MoonGen может также принимать пакеты, то есть проверять, какие пакеты были отброшены тестируемой системой. Так как прием пакетов управляется исключительно пользовательским Lua скриптом, он может быть использован и для создания более сложных тестовых скриптов. Например, возможно использование двух экземпляров MoonGen для установки соединения друг с другом. Подобная конфигурация может использоваться, в частности, для тестирования так называемых мидлбоксов (оборудования между точкой отправки и приема трафика), например файрволлов. MoonGen фокусируется на четырех основных направлениях:
DPDK расшифровывается как Data Plane Development Kit и состоит из библиотек, основными функциями которых является повышение производительности генерации сетевых пакетов на широком разнообразии архитектур центральных процессоров.
В мире, где компьютерные сети становятся фундаментом человеческой коммуникации, производительность, пропускная способность и задержки становятся все более критичными параметрами работы таких систем как беспроводные сети и кабельная инфраструктура, включая все их индивидуальные составляющие части: маршрутизаторы, балансировщики нагрузки, файрволы; а также сферы применений: передача медиа (стриминг), VoIP и др.
DPDK — это легковесный и удобный способ построения тестов и скриптов. Передача данных в рамках userspace — это то, что мы наблюдаем не так часто, в основном потому, что большинство приложений коммуницирует с сетевым оборудованием через операционную систему и стек ядра, что является противоположностью модели DPDK.
Основной целью существования Lua является предоставление простых и гибких выразительных средств, расширяемых под конкретные текущие задачи, вместо набора примитивов, применимого лишь в одной парадигме программирования. В результате, базовый язык очень легок — весь интерпретатор занимает лишь 180 кБ в скомпилированном виде и легко адаптируется к широкому спектру возможных реализаций.
Lua — это динамический язык. Он настолько компактен, что может быть размещен практически на каком угодно устройстве. Lua поддерживает небольшой набор типов: булевы значения, числа (с плавающей точкой двойной точности) и строки. Обычные структуры данных, такие как массивы, множества и списки, могут быть представлены единственной существующей в Lua встроенной структурой данных — таблицей, которая представляет собой гетерогенный ассоциативный массив.
Lua задействует компиляцию JIT (just in time), поэтому, будучи скриптовым языком, показывает производительность сравнимую с компилируемыми языками, такими как C [10].
Почему MoonGen
Являясь компанией, специализирующейся на нейтрализации DDoS-атак, Qrator Labs нуждается в надежном способе создавать, модернизировать и тестировать собственные решения по безопасности. Именно для последнего — тестирования, необходимы различные способы генерации трафика, имитирующие реальные атаки. Тем не менее, не так просто сымитировать опасную, при этом прямолинейную, атаку флудом на 2-3 уровнях модели OSI, в первую очередь из-за трудностей с достижением высокой производительности в генерации пакетов.
Другими словами, для компании, занимающейся непрерывной доступностью и нейтрализацией DDoS, симуляция различных DoS-атак в изолированном лабораторном окружении — это способ понять, как в реальности поведет себя различное оборудование, входящее в состав аппаратных комплексов компании.
MoonGen — это хороший способ генерировать близкие к предельным для сетевого контроллера значения трафика на минимуме ядер центрального процессора. Передача данных в рамках userspace значительно поднимает производительность рассматриваемого стека (MoonGen + DPDK), по сравнению со многими другими вариантами генерации высоких значений трафика. Использование чистого DPDK требует значительно бо́льших усилий, поэтому не нужно удивляться нашему стремлению к оптимизации работы. Мы также поддерживаем клон [7] оригинального репозитория MoonGen с целью расширения функциональности и имплементации собственных тестов.
С целью достижения максимальной гибкости, логика генерации пакетов задается пользователем с помощью скрипта Lua, что является одной из основных особенностей работы MoonGen. В случае относительно простой обработки пакетов это решение работает достаточно быстро для насыщения 10G-интерфейса на одном ядре CPU. Типичный способ модификации входящих пакетов и создания новых — это работа с пакетами одного типа, в которых меняются лишь некоторые из полей.
В качестве примера может служить тест l3-tcp-syn-ack-flood, описанный ниже. Отметим, что любая модификация пакета может быть произведена в том же самом буфере, где оказался сгенерированный или полученный на предыдущем этапе пакет. Действительно, такого рода преобразования пакетов выполняются очень быстро, так как не задействуют дорогие операции, вроде системных вызовов, доступа к потенциально не закэшированным участкам памяти и тому подобных.
Тесты на оборудовании Qrator Labs
Qrator Labs проводит все тесты в лаборатории на различном оборудовании. В данном случае нами были задействованы следующие контроллеры сетевых интерфейсов:
В случае сетевых контроллеров производства Mellanox возможно изменение некоторых параметров и настроек устройства с помощью tuning guide [3], предоставляемого производителем. Это позволяет поднять производительность, а в некоторых особенных случаях — глубже изменить поведение NIC. Другие производители могут иметь похожие документы для собственных высокопроизводительных устройств, предназначенных к профессиональному использованию. Даже если вы не можете найти такой документ в открытом доступе, всегда имеет смысл связаться с производителем напрямую. В нашем случае представители компании Mellanox были очень любезны и, помимо предоставления документации, быстро отвечали на возникающие у нас вопросы, благодаря чему удалось добиться утилизации полосы на 100%, что было для нас очень важно.
Тест TCP SYN flood
L3-tcp-syn-ack-flood — это пример имитации атаки типа SYN flood [6]. Это расширенная Qrator Labs версия теста l3-tcp-syn-flood из основного репозитория MoonGen, которая хранится в нашем клоне репозитория.
Наш тест может запускать три вида процессов:
Общая идея создания ответного пакета заключается в следующем. Для начала, необходимо вынуть пакет из очереди RX, затем проверить, совпадает ли тип пакета с ожидаемым. В случае совпадения — подготовить ответ, модифицируя некоторые поля оригинального пакета. Наконец, поместить созданный пакет в очередь TX, используя тот же буфер. Для повышение производительности, вместо того чтобы по очереди брать и модифицировать пакеты один за одним, мы агрегируем их, извлекая из очереди RX все доступные пакеты, создаем соответствующие ответы и помещаем их все в очередь TX. Несмотря на достаточное большое количество манипуляций над одним пакетом, производительность остается высокой, в первую очередь благодаря тому, что Lua JIT компилирует все эти операции в небольшое количество процессорных инструкций. Множество других тестов, не только TCP SYN/ACK, работают по тому же принципу.
Таблица ниже демонстрирует результаты теста SYN flood (генерация SYN без попыток ответа) с использованием Mellanox ConnectX-4. Этот NIC обладает двумя портами 40G с теоретическим потолком производительности в 59.52 Mpps на одном порту и 2 * 50 Mpps для двух портов. Конкретная реализация подключения NIC к PCIe несколько ограничивает пропускную способность (давая 2 * 50 вместо ожидаемых 2 * 59.52).
cores per port | 1 port, Mpps | 2 ports, Mpps per each port |
1 | 20 | 19 |
2 | 38 | 36 |
3 | 56.5 | 47 |
4 | 59.5 | 50 |
SYN flood test; NIC: Mellanox Technologies MT27700 Family (ConnectX-4), dual 40G port; CPU: Intel® Xeon® Silver 4114 CPU @ 2.20GHz
Следующая таблица показывает результаты того же самого теста SYN flood, проведенного на Mellanox ConnectX-5 с одним портом 100G.
cores | Mpps |
1 | 35 |
2 | 69 |
3 | 104 |
4 | 127 |
5 | 120 |
6 | 131 |
7 | 132 |
8 | 144 |
SYN flood test; NIC: Mellanox Technologies MT27800 Family (ConnectX-5), single 100G port; CPU: Intel® Xeon® Silver 4114 CPU @ 2.20GHz
Отметьте, что во всех случаях мы достигаем более чем 96% от теоретического потолка производительности на небольшом количестве ядер процессора.
Захват входящего трафика и сохранение в PCAP-файлы
Другим примером теста является rx-to-pcap, который пытается захватить весь входящий трафик и сохранить в определенное количество PCAP-файлов [8]. Хотя конкретно этот тест и не касается генерации пакетов как таковой, он служит демонстрацией того факта, что самым слабым звеном в организации передачи данных через userspace является файловая система. Даже виртуальная файловая система tmpfs значительно замедляет поток. В данном случае 8 ядер центрального процессора необходимы для утилизации 14.88 Mpps, в то время как лишь одного ядра достаточно для получения (и сброса, либо перенаправления) того же объема трафика.
Следующая таблица демонстрирует количество трафика (в Mpps), который был получен и сохранен в PCAP-файлы, находящиеся в файловой системе ext2 на SSD (вторая колонка) или на файловой системе tmpfs (третья колонка).
cores | on SSD, Mpps | on tmpfs, Mpps |
1 | 1.48 | 1.62 |
2 | 4 | 4.6 |
3 | 6.94 | 8.1 |
4 | 9.75 | 11.65 |
5 | 12.1 | 13.8 |
6 | 13.38 | 14.47 |
7 | 14.4 | 14.86 |
8 | 14.88 | 14.88 |
Rx-to-pcap test; NIC: Intel 82599ES 10-Gigabit; CPU: Intel® Xeon® CPU E5-2683 v4 @ 2.10GHz
Модификация MoonGen: менеджер заданий tman
Мы бы также хотели представить читателю собственное расширение функционала MoonGen, предоставляющее другой способ запустить группу задач для тестирования. Основная идея здесь заключается в разделении общей конфигурации и специфических для каждой задачи настроек, позволив запускать произвольное количество различных заданий (то есть скриптов Lua) одновременно. В нашем клоне репозитория MoonGen представлена имплементация MoonGen с менеджером заданий [9], здесь мы лишь кратко перечислим его основные функции.
Новый интерфейс командной строки позволяет запускать одновременно несколько заданий разного типа. Базовый сценарий выглядит следующим образом:
Однако существует некоторое ограничение — обычные файлы заданий Lua несовместимы с интерфейсом tman. Файл задания tman должен четко определять следующие объекты:
Выводы
Метод, который предлагает MoonGen, оказался хорошо подходящим нашим целям и удовлетворил сотрудников полученными результатами. Мы получили инструмент, обладающий высокой производительностью, при этом сохранив и тестовое окружение, и язык достаточно простыми. Высокая производительность данного сетапа достигается благодаря двум основным особенностям: прямым доступом к буферам контроллера сетевого интерфейса и технике компиляции Just-In-Time в Lua.
Как правило, достижение теоретического потолка производительности контроллера сетевого интерфейса — вполне посильная задача. Как мы продемонстрировали, одного ядра может быть достаточно для насыщения порта 10G, в то время как с бо́льшим количеством ядер не представляет особой проблемы и полная загрузка порта 100G.
Мы особенно благодарны команде Mellanox за помощь при работе с их оборудованием и команде MoonGen за их реакцию в исправлении ошибок.