%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Descr:       Vorlage für Berichte der DHBW-Karlsruhe, Ein Kapitel
%% Author:      Prof. Dr. Jürgen Vollmer, vollmer@dhbw-karlsruhe.de
%% $Id: kapitel1.tex,v 1.24 2020/03/13 16:02:34 vollmer Exp $
%% -*- coding: utf-8 -*-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Route Injection}

\section{Aufgabenstellung}

Um im Falle eines \ac{DDoS} Angriffs schnell reagieren zu können, muss es eine bequeme und einfache Möglichkeit geben, Routen zu manipulieren.
Hierfür wurde das Projekt Remote Triggered Blackholing gestartet.
Im Falle eines \ac{DDoS} Angriffs, könnten somit IP Präfixe des Angreifers gezielt in ein Blackhole geroutet werden.
Eine Belastung der Zielsysteme könnte somit verhindert werden, da die boshaften Pakete des Angreifers somit nicht beim Zielsystem ankommen würde, sondern in das schwarze Loch (Blackhole) weitergeleitet werden.
Um die Routen in Routern manipulieren zu können, müssen diese über Injektoren in diese injiziert werden.
Im Verlaufe dieser Projektarbeit wird die Entwicklung einer \ac{API}, welche mit Consul kommuniziert genauer betrachtet.

\newpage


\section{Verknüpfung zu Vorlesungsinhalten}

\section{Praktische Lösung}

\subsection{Zusammenfassung wichtiger Komponenten und Begriffe}

\begin{flushleft}
    Django \ac{REST} Framework:

    Django ist ein Web-Framework, dessen Ziel es ist, Entwicklung von Web Applikationen schnell, einfach und übersichtlich zu machen.
    Das Django \ac{REST} Framework, hier nachfolgend als \ac{DRF} bezeichnet, ist ein \ac{REST} Framework welches auf Django basiert. Mit \ac{DRF} lassen sich \ac{REST}-ful \ac{API}s schnell und einfach gestalten. Hierfür bietet Django eine Reihe an vorgefertigten Hilfestellung an, welche im Verlaufe dieser Projektarbeit näher erläutert werden. Datenbankmodelle werden hier einfach programmatisch deklariert und werden anschließend von Django automatisch verwaltet. Über Objekte können somit einzelne Werte aus der Datenbank entnommen werden, ohne sich mühsam mit \ac{SQL} Queries auseinandersetzen zu müssen.
    Sowohl Django als auch \ac{DRF} basieren auf der Programmiersprache Python. Die aktuell (Stand 20.09.2022) höchst unterstütze Version von Python für \ac{DRF} ist Python 3.10.
\end{flushleft}

\begin{flushleft}
    Hashicorp Consul:

    Consul, entwickelt von Hashicorp, ist eine Netzwerk Service Lösung, welche eine sichere Kommunikation zwischen Services und Applikation erlaubt.
    Consul kann sowohl redundant mit mehreren Nodes, als auch standalone genutzt werden. Für diese Projektarbeit, wird eine standalone Lösung eingesetzt und es wird lediglich die Key-Value Store Funktion genutzt. Mit dieser Funktion können Key-Value, also Schlüssel:Wert Paare über das Netzwerk in Consul gespeichert werden.
\end{flushleft}

\begin{flushleft}
    \ac{BGP}:

    Das Border Gateway Protocol (BGP) ist die Post des Internets.
    Wenn jemand einen Brief in ein Postbriefkasten wirft, verarbeitet die Post diese Sendung und wählt einen schnellen und effizienten Weg, um den Brief beim Empfänger zuzustellen. Wenn jemand Daten über das Internet übermittelt, BGP in ähnlicher Weise dafür verantwortlich, alle verfügbaren Pfade zu prüfen, die Daten zurücklegen können, und die beste Route auszuwählen, was normalerweise bedeutet, zwischen autonomen Systemen zu wechseln.''
    \citeurl{cloudflare}

    Das \ac{BGP} Stellt hier nun auch die Möglichkeit, Routen eine Community anzuhängen. Communities beschreiben im wesentlichen wie mit dieser Route umgegangen werden soll.
\end{flushleft}

\newpage

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
