1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bc_thesis/defense/slides.tex

290 lines
7.3 KiB
TeX

\documentclass{beamer}
\usetheme{Madrid}
% Ref: https://tex.stackexchange.com/a/692
\setbeamertemplate{navigation symbols}{}
% We may as well create a PDF/A, why not. (I am too lazy to invent my
% own header, instead I just pick line from the thesis' one :-))
\usepackage[a-2u]{pdfx}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{xcolor}
\usepackage{listings}
\hypersetup{unicode}
\hypersetup{breaklinks=true}
\def\uv#1{``#1''}
\title{Visualising OSPF topology}
\subtitle{Motivation and design of Birdvisu} %FIXME?
\author{Pavel Turinský}
\date{7 September 2023}
%\date{07-09-2023} % Looks weird imho :-/
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\iffalse % Maybe drop, in that case, comment the next line.
%\else
\begin{frame}
\frametitle{Outline}
\begin{itemize}
\item Introduction
\begin{itemize}
\item What is Birdvisu
\item Reasons for creating Birdvisu
\item Goals
\end{itemize}
% intro:
%% what
%% why (comparison)
%% goals
\item Technologies
\begin{itemize}
\item OSPF overview
\item Interaction with BIRD
\end{itemize}
% tech stack
%% OSPF summary + history
%% BIRD: why and how
%%% the dump format
%%% note gennet
\item Design
\begin{itemize}
\item Retrieving topologies
\item Annotation
\item Drawing
\end{itemize}
% design
%% the three phases
\item Results
\begin{itemize}
\item Small networks
\item Large: czela.net
\end{itemize}
% results
%% czela,net
%%% known deficiencies
\item Future
% future?
%% exports, integration
%% saving layouts
% gennet?
\end{itemize}
\end{frame}
\fi
%TODO: slide about Birdvisu is, very highlevel
\begin{frame}
\frametitle{Project goals}
The Birdvisu project aims to present the network topology, as known
by OSPF, to the administrator and allow them to analyse it.
\bigskip
Goals:
\begin{itemize}
\item As independent on other services as possible
\item Easy deployment
\begin{itemize}
\item Runnable on admin's laptop
\end{itemize}
\item No changes to other hosts required
\item It should be easy to create new analysis tools
\item Target: administrators of homelabs to middle-sized systems
\end{itemize}
\medskip
To our knowledge, there is no such application yet.
\medskip
Birdvisu is implemented in Python 3 and Qt 6.
\end{frame}
% \begin{frame}
% %\frametitle{Why visualise/analyse topologies}
% \frametitle{Motivation and goals}
% Existing analysis/monitoring tools:
% \begin{itemize}
% \item Need to collect data on individual hosts,
% \item do may not have accurate data (network splits)
% \item or need to be deployed on a server
% \end{itemize}
% \dots yet in systems routed by OSPF each router knows all of this.
%
% \vfill
%
% The aim of Birdvisu is to present this information to
% administrators.
% \begin{itemize}
% \item single-host, easy-to-run, few dependencies on services
% \item Target: administrators of homelabs to middle-sized systems
% \end{itemize}
% \end{frame}
% TODO: wanted features?
%%% design
\begin{frame}
\frametitle{Birdvisu design}
% uwu uwu FIXME TODO
The program consists of three main steps:
\begin{itemize}
\item Obtaining the topologies
% shenanigans?
% non-matchability of uwu uwu.
\begin{itemize}
\item Reference (from file), current state
\item Representation: weighted directed multigraph
% \item Reference and current one merged into a single object
% \item Extracted from BIRD or loaded from saved files
% \item Networks can have various forms: orieiwnted weighted multigraph
\end{itemize}
\item Annotating
\begin{itemize}
\item Extending the topology with analysis results, other data, \dots
% \item Many single-purpose annotators
% \item e.g. compute topology differences, find shortest paths
\end{itemize}
\item Displaying the result
% own try of layouting alg
% each highlight has its StyleAnnotator
\begin{itemize}
\item Reduction of the topology to a simple graph
\item Highlight relevant annotator results
\medskip
\item Alternatively export the annotated topology (in future)
% \item Use Qt's features: dragging, interaction
% \item Layout loaded from file or determined by ad-hoc
% algorithm
% \item Reuses Annotator design
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{OSPF}
\begin{itemize}
\item Link-state IGP: routers share information about the current state of the system
\item Long evolution (1989), multiple extensions, rather complex
\item Different versions for IPv4 and IPv6 routing
\begin{itemize}
\item Same idea, quite different internals
\end{itemize}
\end{itemize}
\bigskip
Instead of implementing OSPF ourselves, we extract the state from existing routing daemon.
\end{frame}
\begin{frame}
\frametitle{BIRD Internet Routing Daemon}
\begin{itemize}
\item Originally SW project at this faculty, now maintained by CZ.NIC
\item Experience from deployment at home, Dept{.} of Applied Mathematics
\item One of two maintained OSPF daemons for general-purpose HW %FIXME: check BrE
\begin{itemize}
\item future extensions more likely to be implemented
\end{itemize}
\end{itemize}
\bigskip
\begin{itemize}
\item Currently no machine-readable export
\begin{itemize}
\item The output for humans contains sufficient information
\end{itemize}
\item No dynamic output -- needs polling
\end{itemize}
% logo? snippet of output?
\end{frame}
\begin{frame}
\frametitle{Annotators}
\begin{itemize}
\item Can add arbitrary$^*$ data to vertices and edges
\begin{itemize}
\item Exportable in future
\end{itemize}
\item Can depend on each other
\item Idea: many simple and single-purpose annotators
\item Uses: analysis, providing additional information, \dots
\begin{itemize}
\item e.g. comparing topologies, finding shortest path DAGs
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Visualisation}
\begin{itemize}
\item Reuse Annotators for styling vertices and edges
\item Reduce topology to a simple graph by taking the most relevant edge
\begin{itemize}
\item lightest edge with positive cost
\end{itemize}
\item Layout can be loaded from a file
\begin{itemize}
\item New vertices placed to proximity of neighbours
\end{itemize}
\item Qt provides UI features: dragging, context menus
\end{itemize}
\end{frame}
% Results and examples
\begin{frame}
\frametitle{Small network example: Gennet}
\begin{center}
\includegraphics[keepaspectratio,height=0.7\textheight]{gennet.png}
\\
Highlighting differences from expectation on a test network (Gennet)
\end{center}
\end{frame}
\begin{frame}
\frametitle{Medium-sized network: Czela.net}
Community network system in Čelákovice, 45 routers, 210 networks (incl. external), about 1600 people
\begin{center}
\includegraphics[keepaspectratio,height=0.6\textheight]{czmess.png}
\\
Our layouting approach is not great without any initial placements.
\end{center}
\end{frame}
\begin{frame}
\frametitle{Fixing Czela.net}
\begin{center}
\includegraphics[keepaspectratio,height=0.7\textheight]{czbug.png}
\\
Misconfiguration, found after some dragging of vertices
\end{center}
\end{frame}
\begin{frame}
\begin{center}
\begin{Large}
Thank you!
\end{Large}
\end{center}
\end{frame}
\end{document}