From abc56e490f47e2a36502256aeaff7ecccdf1f78e Mon Sep 17 00:00:00 2001 From: Leon Schoch Date: Mon, 14 Aug 2023 14:36:04 +0200 Subject: [PATCH] Docker, BGP, DRF, Consul short description --- abk.tex | 4 +++- kapitel2.tex | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/abk.tex b/abk.tex index bdd52db..fe6276c 100644 --- a/abk.tex +++ b/abk.tex @@ -17,7 +17,8 @@ % Folgendes benutzen, wenn der Plural einer Abk. benöigt wird % \newacroplural{Name}{Darstellung der Abkürzung}{Langform der Abkürzung} \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{API}[API]{Application Programming Interface} @@ -31,6 +32,7 @@ \acro{HTTP}[HTTP]{Hypertext transfer protocol} \acro{SQL}[SQL]{Structured Query Language} \acro{AS}[AS]{Autonome Systeme} + \acro{VM}[VM]{Virtuelle Maschine} % Wenn neicht benutzt, erscheint diese Abk. nicht in der Liste diff --git a/kapitel2.tex b/kapitel2.tex index 026f272..81cc663 100644 --- a/kapitel2.tex +++ b/kapitel2.tex @@ -22,12 +22,57 @@ Der Aufbau und die Entwicklung der \ac{API} Komponente wurde bereits in der T100 \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{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} +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