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

24

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

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

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

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

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

Джефф Этвуд
источник

Ответы:

23

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

Сэм Коган
источник
Единственная проблема, с которой я сталкиваюсь в этом ответе, заключается в том, что постер не хочет блокировать (или ухудшать) Google или Yahoo, а хочет, чтобы они «красиво ползали».
KPWINC
1
QOS не о блокировке. Вот почему Сэм Коган написал, что «должен позволить вам ограничить полосу пропускания, используемую ботами».
Петр Доброгост
9

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

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

buecking
источник
Yahoo! имеет Site Explorer.
Amok
9

Чтобы уменьшить нагрузку сканирования - это работает только с 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
KPWINC
источник
4

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

Это потребует некоторой настройки, потому что вы, очевидно, не захотите блокировать Jon Skeet в stackoverflow :)

Matt
источник
3

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

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

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

Робин М
источник
Это наиболее гибкий подход наряду с modifyig robots.txt
Джим Б.
Спасибо. Я согласен, что сканерам нужно дать какое-то направление!
Робин М
2

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

Chopper3
источник
2

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

Кевин Куфал
источник
1

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

Брайан Кноблаух
источник