Docker, BGP, DRF, Consul short description

This commit is contained in:
Leon Schoch
2023-08-14 14:36:04 +02:00
parent 550230630f
commit abc56e490f
2 changed files with 49 additions and 2 deletions

View File

@@ -17,7 +17,8 @@
% Folgendes benutzen, wenn der Plural einer Abk. benöigt wird % Folgendes benutzen, wenn der Plural einer Abk. benöigt wird
% \newacroplural{Name}{Darstellung der Abkürzung}{Langform der Abkürzung} % \newacroplural{Name}{Darstellung der Abkürzung}{Langform der Abkürzung}
\newacroplural{Abk}[Abk-en]{Abkürzungen} \newacroplural{Abk}[Abk-en]{Abkürzungen}
\newacroplural{AS}[ASes]{Autonomen Systemen} \newacroplural{AS}[ASen]{Autonomen Systemen}
\newacroplural{VM}[VMs]{Virtuellen Maschinen}
\acro{H2O}[\ensuremath{H_2O}]{Di-Hydrogen-Monoxid} \acro{H2O}[\ensuremath{H_2O}]{Di-Hydrogen-Monoxid}
\acro{API}[API]{Application Programming Interface} \acro{API}[API]{Application Programming Interface}
@@ -31,6 +32,7 @@
\acro{HTTP}[HTTP]{Hypertext transfer protocol} \acro{HTTP}[HTTP]{Hypertext transfer protocol}
\acro{SQL}[SQL]{Structured Query Language} \acro{SQL}[SQL]{Structured Query Language}
\acro{AS}[AS]{Autonome Systeme} \acro{AS}[AS]{Autonome Systeme}
\acro{VM}[VM]{Virtuelle Maschine}
% Wenn neicht benutzt, erscheint diese Abk. nicht in der Liste % Wenn neicht benutzt, erscheint diese Abk. nicht in der Liste

View File

@@ -22,12 +22,57 @@ Der Aufbau und die Entwicklung der \ac{API} Komponente wurde bereits in der T100
\section{Genutze Technologien} \section{Genutze Technologien}
\subsection{Django Rest Framework}
Django ist ein Web-Framework, dessen Ziel es ist, die 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.
\subsection{Hashicorp Consul} \subsection{Hashicorp Consul}
\subsection{Django Rest Framework} 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 Paare über das Netzwerk in Consul gespeichert werden.
\subsection{Docker} \subsection{Docker}
Docker ist Platform zur Containerisierung von Anwendungen.
Hierdurch wird die Möglichkeit geschaffen eine isoliertes und leichtgewichtige Umgebung zu schaffen, welche sonst lediglich mittels \acp{VM} möglich wäre.
Durch Docker wird auf produktiven System durch die zusätzliche Isolationsschicht der Containerisierung eine weitere Sicherheitsstufe hinzugefügt, welche potenziellen Angreifern den Zugriff auf das Hostsystem erschwert.
\subsection{\ac{BGP}}
Das \ac{BGP} ist ein Protokoll des Internet-Routings, das die besten Wege für den Datenverkehr zwischen \acp{AS} bestimmt.
Es verwendet Peering-Verbindungen zwischen Routern, um Informationen über erreichbare Netzwerke auszutauschen und die optimalen Pfade für den Datenaustausch zu ermitteln.
\ac{BGP}-Communities sind ein Mechanismus, mit dem Netzwerkbetreiber spezifische Gruppen oder Kategorien von Präfixen markieren können.
Diese Markierungen, als \glqq Communities\grqq bezeichnet, können verwendet werden, um Routen zu identifizieren und zu beeinflussen, wie sie von anderen \acp{AS} interpretiert werden.
Durch die Verwendung von Communities können Netzwerkbetreiber das Routing auf feinere Weise steuern und anpassen, ohne die Kernstruktur des \ac{BGP}-Netzwerks zu verändern.
Die Manipulation von Routen mittels \ac{BGP} Communities erfolgt, indem einem bestimmten Präfix eine oder mehrere Community-Markierungen zugewiesen werden.
Andere \ac{AS} können dann diese Community-Markierungen verwenden, um spezifische Aktionen auszuführen, wie z.B.:
\begin{itemize}
\item Pfadwahl beeinflussen: Durch das Zuweisen von Communities zu bestimmten Präfixen können Netzwerkbetreiber festlegen, wie andere \ac{AS} ihre Routen interpretieren sollen.
Dies kann dazu verwendet werden, den bevorzugten Weg für den Datenverkehr zu beeinflussen.
\item Traffic-Engineering: Netzwerkbetreiber können Communities verwenden, um den Datenverkehrsfluss zu steuern.
Durch Markieren von Präfixen können sie bestimmte AS dazu anleiten, den Datenverkehr auf bestimmten Wegen zu leiten, um Netzwerkressourcen effizienter zu nutzen.
\item Blackhole-Routing: \ac{BGP} Communities können dazu genutzt werden, bestimmte Präfixe zu markieren und den Datenverkehr über Blackholes zu lenken, um Angriffe oder Überlastungen zu bewältigen.
\item Routenfilterung: \ac{AS} können Community-Markierungen verwenden, um präzise Routenfilterung durchzuführen.
Damit können sie bestimmte Routen von bestimmten Quellen oder für bestimmte Zwecke filtern oder akzeptieren.
\end{itemize}
Die Verwendung von BGP Communities ermöglicht eine flexiblere und zielgerichtete Steuerung des Internet-Routings. Netzwerkbetreiber können so gezielt auf unterschiedliche Anforderungen reagieren und gleichzeitig die Integrität und Stabilität des BGP-Netzwerks aufrechterhalten.
\begin{flushleft}
Durch den nahezu identischen Technologiestack wie bei der T1000 und um den Lesefluss zu wahren, wurden einige Kurzbeschreibungen in abgeänderter Form wiederverwendet.
\end{flushleft}
\newpage \newpage