\RequirePackage{pdf14}
\documentclass{beamer}
\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{pgfpages}
\usepackage{listings}
\usepackage{graphicx}

\usetheme{Singapore}
\useoutertheme[subsection=false]{miniframes}
\setbeamercolor{section in head/foot}{use=structure,bg=structure.fg!25!bg}
\setbeamertemplate{footline}[frame number]
\setbeameroption{show notes on second screen=left}

\usepackage[doi=false,
  isbn=false,
  url=false,
  bibstyle=authoryear,
  style=authoryear,
  backend=bibtex]{biblatex}
\def\bibfont{\tiny}
\bibliography{biblio.bib}

\title{Instanciation de topologies réseaux complexes}
\author{Arthur Garnier \\ \footnotesize Maitre d'apprentissage : Lucas Nussbaum \\ Tuteur académique : Thibault Cholez}\institute{INRIA - Madynes - Grid'5000}
\date{Jan 14, 2016}
\begin{document}

\begin{frame}
  \titlepage
  \begin{center}
    \includegraphics[width=2cm]{ressources/tn.jpg} \;
    \includegraphics[width=3cm]{ressources/INRIA.png} \;
    \includegraphics[width=2cm]{ressources/UL.jpg}
  \end{center}
\end{frame}

\begin{frame}
  \tableofcontents
\end{frame}

\section{Introduction}

\large
\begin{frame}
  \frametitle{Présentation du contexte}
  \begin{itemize}
  \item Grid'5000
    \begin{itemize}
    \item Tests à échelle réelle
    \item Personnalisation totale
    \end{itemize}
  \item Topologies réseaux complexes
    \begin{itemize}
    \item Outil manquant sur la plate-forme
    \item Besoin pour la recherche sur les systèmes distribués
    \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Sujet}
  \begin{itemize}
  \item \'Etude de l'existant
  \item \'Evaluer les possibilités de KaVLAN
  \item Développer un outil d'instanciation
  \item \'Etendre à l'émulation réseau
  \end{itemize}
\end{frame}

\section{\'Etude de l'existant}

\begin{frame}
  \frametitle{Synthèse de l'existant}
  \begin{table}[!htb]
    \scriptsize
    \centering
    \leftskip -1cm
              {
                \setlength\tabcolsep{0.04cm}
                \begin{tabular}{|c|c|c|c|c|c|c|c|}
                  \hline
                  & ModelNet & Emulab & CloudLab & MiniNet & Maxinet & SSF & Distem \\
                  \hline
                  N\oe uds virtuels & Oui & Oui/Non & Non & Oui & Oui & Non & Oui \\
                  \hline
                  Émulation réseau & Oui & Oui & Oui & Oui & Oui & Oui & Oui \\
                  \hline
                  Emulateur utilisé & DummyNet & DummyNet & DummyNet  & tc\& & tc \& & $\mathbf{X}$ & tc \\
                  &          &          &   & HTB  & HTB  &              &       \\
                  \hline
                  Précision & M-H & H & H & F-M & M-H & F & M-H \\
                  \hline
                  Application native & Oui & Oui & Oui & Oui & Oui & Non & Oui \\
                  \hline
                  Scaling & \'Elevé & Limité & Limité & Moyen & \'Elevé & Très élevé & \'Elevé \\
                  &         & à élevé &       &       &         &            &         \\
                  \hline
                  Limite machine physique & Non & $\mathbf{X}$ & $\mathbf{X}$ & 1 & Non & 1 & Non \\
                  \hline
                  Type expérimentation & \'Emulé & Réel & Réel & \'Emulé & \'Emulé & Simulé & Emulé \\
                  &         & ou émulé &  &         &         &        &       \\
                  \hline
                  Description topologie & XML & NS & Rspec & Python+                           & Python+ & DML & CL+REST \\
                  &     &    &       & CL & CL  &                                             & +Ruby \\
                  \hline
                \end{tabular}
              }
              \caption{Tableau comparatif des solutions\label{tabcomp}}
  \end{table}
\end{frame}

\begin{frame}
  \frametitle{Types d'expérimentation}
  \only<1>{\begin{itemize}
    \item Simulation
    \item \'Emulation
    \item \'Echelle réelle
    \end{itemize}
  }
  \only<2>{\begin{table}
      \small
      \centering
          {
            \setlength\tabcolsep{0.04cm}
            \begin{tabular}{|c|c|c|c|c|c|c|c|}
              \hline
              &ModelNet & Emulab & CloudLab & MiniNet & Maxinet & SSF & Distem \\
              \hline
              Type&\'Emulé & Réel & Réel & \'Emulé & \'Emulé & Simulé & Emulé \\
              & & ou émulé &  &         &         &        &       \\
              \hline
              App.Nat&Oui & Oui & Oui & Oui & Oui & Non & Oui \\
              \hline
            \end{tabular}
          }
  \end{table}}
  \begin{figure}
    \centering
    \includegraphics[width=10cm]{ressources/tab_app-env.png}
    \footnote{\fullcite{exp_meth}}
  \end{figure}
\end{frame}

\begin{frame}
  \frametitle{N\oe uds virtuels}
  \begin{itemize}
  \item Virtualisation
  \item<2-> Sur les émulateurs et Emulab\footnote{\fullcite{emulab}}
  \item<3> \textcolor{red}{Ressources limitées}
  \end{itemize}

  \only<2->{\begin{table}
      \centering
      
      {
        \setlength\tabcolsep{0.04cm}
        \begin{tabular}{|c|c|c|c|c|c|c|}
          \hline
          ModelNet & Emulab & CloudLab & MiniNet & Maxinet & SSF & Distem \\
          \hline
          Oui & Oui/Non & Non & Oui & Oui & Non & Oui \\
          \hline
        \end{tabular}
      }
  \end{table}}
\end{frame}

\begin{frame}
  \frametitle{Utilisation de plusieurs machines}
  \begin{itemize}
  \item Mininet\footnote{\fullcite{mininet}} $\subset$ Maxinet\footnote{\fullcite{maxinet}}
  \end{itemize}

  \only<2->{\begin{table}
      \centering
      \footnotesize
      \leftskip -0.7cm
                {
                  \setlength\tabcolsep{0.04cm}
                  \begin{tabular}{|c|c|c|c|c|c|c|c|}
                    \hline
                    & ModelNet & Emulab & CloudLab & MiniNet & Maxinet & SSF & Distem \\
                    \hline
                    N\oe uds virtuels&Oui & Oui/Non & Non & Oui & Oui & Non & Oui \\
                    \hline
                    Limite machine physique & Non & $\mathbf{X}$ & $\mathbf{X}$ & 1 & Non & 1 & Non \\
                    \hline
                    Précision & M-H & H & H & \textcolor{red}{F-M} & \textcolor{red}{M-H} & F & M-H \\
                    \hline
                    Scaling & \'Elevé & Limité & Limité & \textcolor{red}{Moyen} & \textcolor{red}{\'Elevé} & Très élevé & \'Elevé \\
                    &         & à élevé &       &       &         &            &         \\
                    \hline
                  \end{tabular}
                }
  \end{table}}

\end{frame}

\begin{frame}
  \frametitle{Scalabilité et précision}
  \begin{itemize}
  \item Scalabilité au détriment de la précision ?\footnote{\fullcite{ssf}}\note{dilatation temporelle prévue sur Mininet}
  \item Pas de contrôle sur le statut du CPU\note{mininet précision faible et plus élevée sur Maxinet}
  \item Scalabilité limitée sur les infrastructures réelles\note{500 machines CloudLab}
  \end{itemize}
  \only<2>{\center\includegraphics[width=10cm]{ressources/ping.png}}
\end{frame}

\begin{frame}
  \frametitle{\'Emulation réseau}
  \begin{itemize}
  \item Deux types d'émulateurs\footnote{\fullcite{compareNet}}
    \begin{itemize}
    \item \'Emulateur de réseaux virtuels
    \item \'Emulateur de liens réseaux
    \end{itemize}
  \item Emulation de n\oe uds hétérogènes grâce à Distem\footnote{\fullcite{distem}}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Compatibilité des topologies}
  \begin{table}
    \centering
        {
          \setlength\tabcolsep{0.04cm}
          \begin{tabular}{|c|c|c|c|c|c|c|}
            \hline
            ModelNet & Emulab & CloudLab & MiniNet & Maxinet & SSF & Distem \\
            \hline
            XML & NS & Rspec & Python+                           & Python+ & DML & CL+REST \\
            &    &       & CL & CL  &                                             & +Ruby \\
            \hline
          \end{tabular}
        }
  \end{table}
\end{frame}

\section{Solution Grid'5000}

\begin{frame}
  \frametitle{Choix effectués}
  \begin{itemize}
  \item Rspec
  \item Application native
  \item Expériences réelles
  \item Scalabilité limitée à 1000 n\oe uds\note{Mais distem possible}
  \item \'Emulation réseau
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Choix de l'émulateur réseaux}
  \begin{itemize}
  \item Choix parmis les solutions de \fullcite{compareNet}
    \begin{itemize}
    \item NISTNet
    \item tc
    \item \only<1>{Dummynet}\only<2>{\textcolor{red}{Dummynet}}
    \end{itemize}
  \end{itemize}

  \begin{table}
    \centering
        {
          \setlength\tabcolsep{0.04cm}
          \begin{tabular}{|c|c|c|c|c|c|c|}
            \hline
            ModelNet & Emulab & CloudLab & MiniNet & Maxinet & SSF & Distem \\
            \hline
            DummyNet & DummyNet & DummyNet  & tc \& & tc \& & $\mathbf{X}$ & tc \\
            &          &   & HTB\footnote{Hierarchical token bucket}  & HTB  &              &       \\
            \hline
          \end{tabular}
        }
  \end{table}
  \note{Donner un exemple : Entre deux ips le débit est limité à X Kbps}
  \note{permet de contrôler le débit passant par un nœud d'un réseau informatique.}
\end{frame}

\section{Implémentation}

\begin{frame}
  \frametitle{KaVLAN}
  \begin{itemize}
  \item Gestion des VLANs
  \item SNMP\note{simple network management protocol} ou SSH sur les switchs
  \item 3 types de VLAN sur Grid'5000
    \begin{itemize}
    \item Locaux
    \item Routés
    \item Globaux
    \end{itemize}
    \item Ajout d'un quatrième type \note{histoire passerelle}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Développement de TopoMaker}
  \begin{itemize}
  \item Ruby
  \item Changement des spécifications du sujet
  \item Fonctionnalités :
    \begin{itemize}
    \item Déploiement des n\oe uds
    \item Configuration IP
    \item Mise en place des interfaces dans les VLANs
    \item Sortie YAML
    \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Fonctionnalités manquantes à l'utilisation}
  \begin{itemize}
  \item Impossible de se déplacer de n\oe ud en n\oe ud \\
    \only<2->{$\Rightarrow$ Génération de clés RSA}
  \item Pas d'accès à Internet dans les VLANs \\
    \only<3>{$\Rightarrow$ Ajout d'un champ au fichier de topologie}
  \end{itemize}
\end{frame}

\section{Conclusion}

\begin{frame}
  \frametitle{Conclusion}
  \begin{itemize}
  \item Vision globale
  \item Solution compatible avec CloudLab
  \item Amélioration des services proposés sur Grid'5000 \note{Nouvel outils, plus de VLAN}
  \item Perspectives d'amélioration
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Conclusion}
   \begin{table}[!ht]
   \tiny
   \centering
   \leftskip -0.5cm
   \setlength\tabcolsep{0.1cm}
 {
\begin{tabular}{|c|c|c|c|c|c|c|c|}
  \hline
  & ModelNet & Emulab & CloudLab & MiniNet & Maxinet & Distem & topoMaker\\
  \hline
  N\oe uds virtuels & Oui & Oui/Non & Non & Oui & Oui & Oui & Non\\
  \hline
  Émulation réseau & Oui & Oui & Oui & Oui & Oui & Oui & Bientôt\\
  \hline
  Emulateur utilisé & DummyNet & DummyNet & DummyNet  & tc \& & tc \& & tc & DummyNet\\
                    &          &          &           & HTB   & HTB   &       &\\
  \hline
  Précision & M-H & H & H & F-M & M-H & M-H & H\\
  \hline
  Application native & Oui & Oui & Oui & Oui & Oui & Oui & H \\
  \hline
  Scaling & \'Elevé & Limité & Limité & Moyen & \'Elevé & \'Elevé & Limité \\
          &         & à élevé &       &       &         &         & 1000 n\\oe  uds\\
  \hline
  Limite machine physique & Non & $\mathbf{X}$ & $\mathbf{X}$ & 1 & Non & Non & $\mathbf{X}$ \\
  \hline
  Type expérimentation & \'Emulé & Réel & Réel & \'Emulé & \'Emulé & Emulé & Réel\\
                       &         & ou émulé &  &         &         &       &\\
  \hline
  Description topologie & XML & NS & Rspec & Python+                           & Python+  & CL+REST & Rspec \\
                        &     &    &       & CL   & CL       & +Ruby   &\\
  \hline
\end{tabular}
 }
  \caption{Tableau comparatif comprenant la solution Grid'5000\label{tabf}}
\end{table}                     

\end{frame}


\end{document}
