Dynamisches Blockieren übermäßiger HTTP-Bandbreitennutzung?

24

Wir waren ein wenig überrascht, dies in unseren Cacti- Diagrammen für den Web-Verkehr am 4. Juni zu sehen:

Wir haben Log Parser in unseren IIS-Protokollen ausgeführt und es stellte sich heraus, dass dies ein perfekter Sturm von Yahoo- und Google-Bots war, die uns indizierten. In diesem Zeitraum von 3 Stunden haben wir 287.000 Treffer von 3 verschiedenen Google-IPs und 104.000 Treffer von Yahoo gesehen. Autsch?

Obwohl wir Google oder Yahoo nicht blockieren möchten, wurde dies bereits erwähnt. Wir haben Zugriff auf eine Cisco PIX 515E , und wir denken darüber nach, dies in den Vordergrund zu stellen , damit wir dynamisch mit Bandbreitensündern umgehen können, ohne unsere Webserver direkt zu berühren.

Aber ist das die beste Lösung? Ich frage mich, ob es Software oder Hardware gibt, die uns helfen kann, übermäßige Bandbreitennutzung zu identifizieren und zu blockieren , idealerweise in Echtzeit. Vielleicht etwas Hardware oder Open-Source-Software, die wir unseren Webservern zur Verfügung stellen können?

Wir sind größtenteils ein Windows-Shop, aber wir haben auch einige Linux-Kenntnisse. Wir sind auch offen für den Kauf von Hardware, wenn die PIX 515E nicht ausreicht. Was würdest du empfehlen?

Jeff Atwood
quelle

Antworten:

23

Wenn auf Ihrer PIX Version 7.2 oder höher des Betriebssystems ausgeführt wird oder ein Upgrade auf diese Version möglich ist, können Sie QOS-Richtlinien auf Firewall-Ebene implementieren. Dies ermöglicht Ihnen insbesondere die Gestaltung des Datenverkehrs und sollte es Ihnen ermöglichen, die von Bots verwendete Bandbreite zu begrenzen. Cisco hat eine gute gudie dazu hier .

Sam Cogan
quelle
Das einzige Problem, das ich mit dieser Antwort habe, ist, dass das Poster Google oder Yahoo nicht blockieren (oder herabsetzen) möchte, sondern dass sie "nett kriechen".
KPWINC
1
Bei QOS geht es nicht um das Blockieren. Aus diesem Grund schrieb Sam Cogan "sollte es Ihnen ermöglichen , die von Bots verwendete Bandbreite zu begrenzen ".
Piotr Dobrogost
9

Ich bin mir bei Yahoo nicht sicher, aber Sie können die Häufigkeit konfigurieren, mit der der Google-Bot Ihre Website indiziert. Werfen Sie einen Blick auf Google Webmasters . Ich bin mir nicht sicher, ob Yahoo etwas ähnliches hat. Bei jedem, der Ihren Datenverkehr um bis zu 50% reduziert.

Alternativ können einige Webserver den Datenverkehr pro Verbindung begrenzen, sodass Sie dies versuchen können. Ich persönlich würde mich von Hardwarelösungen fernhalten, da dies höchstwahrscheinlich mehr kosten wird.

bückend
quelle
Yahoo! hat Site Explorer.
Amok
9

So reduzieren Sie die Crawling-Belastung: Dies funktioniert nur mit Microsoft und Yahoo. Für Google müssen Sie in den Webmaster-Tools ( http://www.google.com/webmasters/ ) eine langsamere Crawling-Geschwindigkeit angeben .

Seien Sie bei der Implementierung sehr vorsichtig, denn wenn Sie das Crawlen zu stark verlangsamen, können Roboter nicht auf Ihre gesamte Site zugreifen und verlieren möglicherweise Seiten aus dem Index.

Hier sind einige Beispiele (diese sind in Ihrer robots.txtDatei enthalten):

# 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

Leicht vom Thema abweichend, aber Sie können auch eine Sitemap oder eine Sitemap-Indexdatei angeben.

Wenn Sie Suchmaschinen eine umfassende Liste Ihrer besten URLs zur Verfügung stellen möchten, können Sie auch eine oder mehrere Direktiven zur automatischen Sitemap-Erkennung bereitstellen. Bitte beachten Sie, dass User-Agent nicht für diese Direktive gilt. Sie können dies daher nicht verwenden, um eine Sitemap für einige, aber nicht alle Suchmaschinen anzugeben.

# Please read my sitemap and index everything!

Sitemap: http://yourdomain.com/sitemap.axd
KPWINC
quelle
4

Wir verwenden eine Watchguard-Firewall (bei unserer handelt es sich um eine X1000, die derzeit nicht mehr verwendet wird). Sie haben viele Vorteile, wenn es darum geht, Domains oder IPs zu blockieren, die immer wieder gesehen werden oder eine übermäßige Menge an Bandbreite verbrauchen.

Dies würde einige Anpassungen erfordern, da Sie Jon Skeet auf stackoverflow nicht blockieren möchten :)

Matt
quelle
3

Ich würde Microsoft ISA Server 2006 empfehlen. Speziell für diese Anforderung ist die Anzahl der HTTP-Anforderungen pro IP standardmäßig auf 600 pro Minute begrenzt, und Sie können eine Ausnahme für Jon Skeet anwenden. ).

Sie haben die zusätzlichen Vorteile der Filterung auf Anwendungsebene, der Lastverteilung über mehrere Webserver (anstelle von NLB auf diesen Servern), der VPN-Terminierung usw. Es gibt eine Reihe kommerzieller Erweiterungen und Sie können sogar Ihren eigenen ISAPI-Filter schreiben, wenn du fühlst dich mutig

Es ist offensichtlich kein Open-Source-Produkt, hat jedoch Vorteile für einen Windows-Shop und läuft auf Standardhardware.

Robin M
quelle
Dies ist der flexibelste Ansatz zusammen mit modifyig robots.txt
Jim B
Vielen Dank. Ich bin damit einverstanden, dass den Crawlern eine Anweisung gegeben werden muss!
Robin M
2

Wir verwenden Foundry-Load-Balancer (speziell SI850s), um diese Art von Formungsproblemen zu lösen. Es werden auch viele andere Probleme wie SYN-Floods usw. angegangen.

Chopper3
quelle
2

Bluecoat (ehemals Packeteer) PacketShaper-Produkte können die übermäßige Nutzung des von ihnen verwalteten Datenverkehrs dynamisch drosseln.

Kevin Kuphal
quelle
1

Sie können sogar eine rudimentäre Ratenbegrenzung mit jedem normalen Cisco-Router mit angemessener Kapazität / Jahrgang durchführen. Verwenden Sie einen Cisco-Router?

Brian Knoblauch
quelle