Erstellen eines JunOS-Firewallfilters basierend auf dynamischen Routing-Eigenschaften

7

Einer meiner BGP-Transitkunden hat mich um eine Lösung gebeten, die es ihm erleichtert, den Datenverkehr innerhalb unseres Netzwerks zu blockieren, wenn er unter DDoS-Angriffen leidet. Normalerweise erfolgt das BGP-Blackholing durch Blackholing des Ziels . Mein Kunde sucht jedoch nach einer Lösung für Blackhole basierend auf der Quelladresse, damit das Ziel des Angriffs nicht offline geschaltet wird.

Das Erstellen einer Blackhole-Lösung basierend auf der Zieladresse ist nicht so schwierig: Lassen Sie den Kunden das Ziel einfach über eine separate BGP-Sitzung als spezifischere Route bekannt geben oder mit einer bestimmten Community kennzeichnen und verwenden Sie dann eine Routing-Richtlinie, um die festzulegen Next-Hop zu einer Discard-Schnittstelle.

Es scheint etwas schwieriger zu sein, eine Blackhole-Lösung zu erstellen, bei der Angriffsquellen (die sich nicht im IP-Bereich des Kunden befinden) Blackholed sind. Wenn ich die gleiche Lösung wie zum Filtern von Zielen verwenden würde, besteht mein Problem darin, dass ich nur Datenverkehr von bestimmten Quellen zu diesem bestimmten Kunden verwerfen möchte. Das Einfügen von Verwerfungsrouten in meine Routing-Tabelle ist daher nicht mehr akzeptabel, da dies andere Kunden betreffen würde Gut. Ich brauche also eine Möglichkeit, einen Filter zu erstellen, der nur für diesen bestimmten Kunden gilt.

Die erste Lösung, über die ich nachdachte, war die Verwendung von BGPFlowspec. Leider funktioniert dies für diesen bestimmten Kunden nicht, da seine Ausrüstung dies nicht unterstützt.

Ich habe nach einer Möglichkeit gesucht, einen dynamischen Firewall-Filter basierend auf einer Routing-Eigenschaft zu erstellen, höchstwahrscheinlich einer Community, die entweder von unserem Kunden oder von uns festgelegt wurde, wenn eine bestimmte Route über eine dedizierte BGP-Blackhole-Sitzung empfangen wird. Dieser Filter kann dann auf die Schnittstellen des Kunden angewendet werden, um unerwünschten Datenverkehr zu blockieren. Leider habe ich keine einfache Möglichkeit gefunden, auf diese Weise einen Firewall-Filter (oder eine Präfixliste) zu erstellen.

Ich habe http://thomas.mangin.com/posts/bgp-firewall.html gefunden , das SCU / DCU "missbraucht", um mehr oder weniger das zu erreichen, wonach ich suche, aber es klingt wie ein Hack .

Eine der anderen Lösungen, die ich mir vorstellen kann, besteht darin, einen statischen Filter auf unseren Routen zu erstellen und eine Schnittstelle zu erstellen, über die unser Kunde die von diesem Filter verwendete Präfixliste ändern kann. Es ist jedoch nicht wirklich das, was ich möchte, wenn Konfigurationsänderungen auf meinen Routern jedes Mal vorgenommen werden, wenn der Kunde ein Blackhole hinzufügen möchte. Eine Lösung unter Verwendung von BGP wäre bevorzugt.

Auf unserer Seite wird das Routing auf Juniper durchgeführt. Für eine Lösung würde ich es vorziehen, etwas zu haben, das auf einer Vielzahl von Plattformen verwendet werden kann. Daher sollte es im Grunde nur BGP über eine separate Sitzung sein oder Routen über eine bestimmte Community markieren. Auf diese Weise kann ich es auch für andere Kunden verwenden.

Ich bin wirklich interessiert, ob jemand eine gute Lösung dafür hat (außer der SCU / DCU).

Teun Vink
quelle
Hast du das jemals herausgefunden, ich weiß, das ist super alt, dachte, es könnte sich lohnen, es zu überprüfen? Welche Plattform benutzt du?
Jordan Head
@ JordanHead leider nicht, ich habe das mehr oder weniger aufgegeben. Wir betreiben eine Plattform mit verschiedenen Juniper MX-Routern (meistens 5/80/104).
Teun Vink
Wie viele Quelladressen greifen an?
Jordan Head
Das wäre Sache des Kunden und sollte dynamisch sein, aber mindestens zehn oder Hunderte sollten möglich sein. Ich suche etwas, mit dem mein Kunde Quellen einfügen kann, für die kein Datenverkehr über BGP in sein Netzwerk geliefert wird. Vielleicht ist es einfacher, einfach über ein Portal Zugriff auf eine dedizierte Box anzubieten, in die Blackhole-Routen (Flowspec) eingefügt werden.
Teun Vink
Schauen Sie sich ExaBGP an, geschrieben von Thomas Mangin (SCU / DCU-Hack-Autor) - ein voll programmierbarer BGP-Daemon, der Flowspec unterstützt. Es wäre eine gute Lösung, eine Portalschnittstelle für Ihren Kunden einzurichten
Benjamin Dale,

Antworten:

1

GRNET (das griechische Forschungs- und Bildungsnetzwerk) hat eine Webanwendung entwickelt, mit der Kunden dies mit Flowspec tun können. Das Webportal verfügt über ein BGP Flowspec-Backend, das Flowspec in Ihr Netzwerk einfügt. Hoch konfigurierbar und auf dem europaweiten GEANT-Backbone mit 500 bis 1.000 Gbit / s im Einsatz: https://www.noc.grnet.gr/en/fod

user3866265
quelle
1

Um (endlich) meine eigene Frage zu beantworten:

Dies ist nicht möglich, wie ich dies mit den derzeit unterstützten Versionen von JunOS implementieren möchte. Ja, es gibt andere Wege, um das Ziel zu erreichen, wie in der anderen Antwort und in den Kommentaren erwähnt, aber meine spezielle Frage war, in der Lage zu sein, Blackholing mithilfe einer BGP-Sitzung zu signalisieren.

Teun Vink
quelle
1

Die dynamische Erstellung von Firewall-Regeln dient nicht nur dazu, den Datenverkehr für eine Blachole umzuleiten, sondern auch die geoverteilung des Datenverkehrs zwischen Datencentern, Unternehmen und Intranets zu ermöglichen und Firewall-Richtlinien mit IP-Abstraktion zu definieren, wobei das dynamische Routing mit einer Beschriftung versehen wird Firewall-Objekte und dann die Kontrolle des Datenverkehrs zu ermöglichen. Ich habe vor einigen Jahren mit Juniper nach einer solchen Lösung gesucht, aber ich hatte kein Feedback. Es gibt einige Skripte auf Junos, die für das Thema hilfreich sein können, aber dann wurde die Objektpopulation nicht vollständig als Reaktion auf Routing-Austauschereignisse erstellt. Es gab auch keine Möglichkeit, direkte Routen zu markieren, um sie nach den Anforderungen zu klassifizieren:

  • Wenn es in einem Datencenter ein Netzwerk für Backends geben würde, könnte dies mithilfe eines "Backend-Tags" direkt auf der Schnittstelle gekennzeichnet werden
  • Auf dem dynamischen Routing könnte dieses "Backend-Tag" in eine Community (zB BGP SoO) übersetzt und damit beworben werden
  • Das entfernte Datencenter würde das angekündigte Netzwerk empfangen und eine Objektgruppe von Adressen füllen, die direkten Zugriff auf andere Backends ermöglichen könnten.

FlowSpec könnte eine Hilfe sein, und eine Firewall, die als PE eine direkte Verbindung zum mpls-Kern herstellen könnte, wäre ebenfalls eine Hilfe. Kennt jemand eine solche Lösung?

Alexandre Melo Damas
quelle