Назад | Перейти на главную страницу

Динамически блокируете чрезмерное использование полосы пропускания HTTP?

Мы были немного удивлены, увидев это на нашем Кактусы графики веб-трафика от 4 июня:

Мы бежали Анализатор журнала в наших журналах IIS, и оказалось, что это был идеальный шторм ботов Yahoo и Google, индексирующих нас ... за этот трехчасовой период мы увидели 287 тысяч обращений с 3 разных IP-адресов Google, плюс 104 тысячи с Yahoo. Ой?

Хотя мы не хотим блокировать Google или Yahoo, это уже возникало раньше. У нас есть доступ к Cisco PIX 515E, и мы думаем о том, чтобы поставить это на первый план, чтобы мы могли динамически бороться с нарушителями пропускной способности, не касаясь напрямую наших веб-серверов.

Но разве это лучшее решение? Мне интересно, есть ли какое-либо программное обеспечение или оборудование, которое может помочь нам выявить и заблокировать чрезмерное использование полосы пропускания., в идеале в реальном времени? Возможно, мы сможем поставить перед нашими веб-серверами какое-то оборудование или программное обеспечение с открытым исходным кодом?

В основном мы работаем с Windows, но у нас есть и некоторые навыки работы с Linux; мы также открыты для покупки оборудования, если PIX 515E недостаточно. Что бы вы порекомендовали?

Если ваш PIX работает под управлением ОС версии 7.2 или выше или может быть обновлен до нее, вы можете реализовать политики QOS на уровне межсетевого экрана. В частности, это позволяет формировать трафик и должно позволять ограничивать полосу пропускания, используемую ботами. Cisco хорошо разбирается в этом Вот.

Для уменьшения нагрузки сканирования - это работает только с Microsoft и Yahoo. Для Google вам нужно будет указать более низкую скорость сканирования в Инструментах для веб-мастеров (http://www.google.com/webmasters/).

Будьте ОЧЕНЬ осторожны при реализации этого, потому что, если вы слишком сильно замедляете сканирование, роботы не смогут получить доступ ко всему вашему сайту, и вы можете потерять страницы из индекса.

Вот несколько примеров (они входят в ваш robots.txt файл):

# Yahoo's Slurp Robot - Please wait 7 seconds in between visits

User-agent: slurp
Crawl-delay: 7

# MSN Robot - Please wait 5 seconds in between visits

User-agent: msnbot
Crawl-delay: 5

Немного не по теме, но вы также можете указать файл Sitemap или файл индекса Sitemap.

Если вы хотите предоставить поисковым системам полный список ваших лучших URL-адресов, вы также можете указать одну или несколько директив автоматического обнаружения файлов Sitemap. Обратите внимание, что user-agent не применяется к этой директиве, поэтому вы не можете использовать его для указания карты сайта для некоторых, но не для всех поисковых систем.

# Please read my sitemap and index everything!

Sitemap: http://yourdomain.com/sitemap.axd

Я не уверен насчет yahoo, но вы можете настроить частоту, с которой робот Google индексирует ваш сайт. Посмотри на Веб-мастера Google. Я не уверен, есть ли у Yahoo что-нибудь подобное. Во всяком случае, это снизит ваш трафик до 50%.

Кроме того, некоторые веб-серверы могут ограничивать трафик на одно соединение, поэтому вы можете попробовать это. Лично я бы держался подальше от аппаратных решений, поскольку они, скорее всего, будут стоить дороже.

Мы используем межсетевой экран Watchguard (у нас X1000, срок службы которого подошел к концу). У них есть много функций, связанных с блокировкой доменов или IP-адресов, которые видны снова и снова или используют чрезмерно большую пропускную способность.

Это потребует некоторой настройки, потому что вы явно не захотите блокировать Джона Скита в stackoverflow :)

Я бы порекомендовал Microsoft ISA Server 2006. Специально для этого требования он по умолчанию ограничивает 600 HTTP-запросов / мин на IP-адрес, и вы можете применить исключение для Джона Скита (извините, я понимаю, что "шутка" уже была! ).

У вас есть дополнительные преимущества фильтрации на уровне приложений, возможность балансировки нагрузки между несколькими веб-серверами (вместо NLB на этих серверах), завершение работы VPN и т. Д. Доступен ряд коммерческих расширений, и вы даже можете написать свой собственный фильтр ISAPI, если ты чувствуешь себя храбрым.

Он явно не с открытым исходным кодом, но имеет преимущества по сравнению с магазином Windows и работает на стандартном оборудовании.

Мы используем балансировщики нагрузки Foundry (в частности, SI850) для решения такого рода проблем с формированием, он также обрабатывает довольно много других «неприятностей», таких как SYN-флуд и т. Д. Хотя это может быть для вас немного излишним.

Продукты Bluecoat (ранее Packeteer) PacketShaper могут динамически ограничивать чрезмерное использование трафика, которым он управляет.

Вы даже можете выполнить элементарное ограничение скорости с любым обычным маршрутизатором Cisco любой приличной емкости / выпуска. Вы используете маршрутизатор Cisco?