%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 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{Architekur}

Die Architektur des Route Injection Service besteht aus drei wesentlichen Bestandteilen, welche entweder direkt verbunden sind oder mittels Hashicorp Consul Daten austauschen können.

\begin{figure}[H]
    \centering
    \fbox{\includegraphics[width=\textwidth]{images/ri-structure}}
    \caption{\label{ri-structure}Route Injection Architektur}
    \centering{Quelle: Firmenintern}
\end{figure}

\newpage

\section{\ac{API}}

Die \ac{API} ist dafür verantwortlich die Eingaben des Users, welche über die Engine übermittelt wurden zu überprüfen und zu validieren.
Sind die Eingaben nicht korrekt, so gibt die \ac{API} eine entsprechende Fehlermeldung zurück.
In der Zukunft wird die \ac{API} auch dafür verantwortlich sein entsprechende Monitoring Endpunkte zur Verfügung zu stellen, sodass der allgemeine Status des Service überwacht werden kann.

\section{Hashicorp Consul}

Hashicorp Consul, im weiteren Verlauf nur `Consul` genannt, wird als Zwischenspeicher für Routen und deren injizierte \ac{BGP}-Communities verwendet.
Des Weiteren können Injectoren hier Ihren `Heartbeat` abspeichern.

\section{Injector}

Der Injector bezieht periodisch(alle 5 Sekunden) die in Consul gespeicherten Routen.
Sollte es hier eine Änderung gegeben haben, wird eine Konfigurationsdatei für den Bird Routingdaemon neu erstellt.
Anschließend wird über das 'Bird Controlsocket' der Befehl zum Neuladen der Konfiguration gegeben.

\section{Router}

Als Router wird der Bird Routingdaemon eingesetzt.
Dieser stellt eine \ac{BGP}-Session mit einem physischen Router her, welcher die von Bird zu Verfügung gestellten Router importiert und innerhalb des \ac{BGP}-Netzwerks weitergibt.

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