Write MPLS

This commit is contained in:
flyingscorpio@clevo 2022-12-12 23:28:25 +01:00
parent 8527cdd8b4
commit 0e8e66751a
2 changed files with 151 additions and 16 deletions

View file

@ -101,6 +101,9 @@
\@addtoreset{chapter}{part}
\makeatother
\usepackage{tikz}
\usetikzlibrary{shapes}
\usepackage{letltxmacro}
\LetLtxMacro{\normalparagraph}{\paragraph}
\renewcommand{\paragraph}[1]{\normalparagraph{#1}\mbox{}}

View file

@ -20,7 +20,92 @@
Le routage se fait à l'entrée du réseau.
À l'intérieur du réseau, on a une plus grande rapidité~: l'intelligence se trouve aux extrémités du réseau.
\gls{mpls} permet également un mariage facile d'\gls{ip} avec des technologies de niveau 2 telles qu'\gls{atm} par l'ajout d'une couche très simple sur \gls{ip}.
\subsection{La commutation de label}
\begin{center}
\begin{tikzpicture}
\node (site_a) at (-5,0) {Site A};
\node[rectangle,draw] (ler_a) at (-3,0) {\acrshort{ler}};
\node[circle,draw] (lsr) at (0,0) {\acrshort{lsr}};
\node[rectangle,draw] (ler_b) at (3,0) {\acrshort{ler}};
\node (site_b) at (5,0) {Site B};
\draw (site_a) -- (ler_a) -- (lsr) -- (ler_b) -- (site_b);
\node (ler_a_ins) at (-3,-2) {\parbox{3cm}{\centering
\begin{tabular}{|c|c|}
\hline
& IP \\
\hline
IP & L48 \\
\hline
ETH & ETH \\
\hline
PHY & PHY \\
\hline
\end{tabular}
}};
\draw[-latex,very thick] (ler_a_ins) -- (ler_a);
\node (lsr_ins) at (0,-2) {\parbox{3cm}{\centering
\begin{tabular}{|c|c|}
\hline
L48 & L52 \\
\hline
ETH & ETH \\
\hline
PHY & PHY \\
\hline
\end{tabular}
}};
\draw[-latex,very thick] (lsr_ins) -- (lsr);
\node (ler_b_ins) at (3,-2) {\parbox{3cm}{\centering
\begin{tabular}{|c|c|}
\hline
IP & \\
\hline
L52 & IP \\
\hline
ETH & ETH \\
\hline
PHY & PHY \\
\hline
\end{tabular}
}};
\draw[-latex,very thick] (ler_b_ins) -- (ler_b);
\end{tikzpicture}
\end{center}
\subsubsection{L'en-tête \gls{mpls}}
\begin{tabularx}{\linewidth}{|Y|c|c|Y|}
\hline
Label & CoS & S & TTL \\
\hline
20\glspl{bit} & 3\glspl{bit} & 1\gls{bit} & 8\glspl{bit} \\
\end{tabularx}
\subsubsection{Fonctionnement}
\gls{mpls} permet également un mariage facile d'\gls{ip} avec des technologies de niveau 2 telles qu'\gls{atm} par l'ajout d'une couche très simple sur \gls{ip}.
Le trafic de base est présenté au \gls{ler}, où les labels sont mis en place.
Ces paquets sont envoyés au travers des \gls{lsp-mpls} aux \gls{lsr}, où les labels sont traités.
En sortie de réseau \gls{mpls} (\gls{egress} to the network), le \gls{ler} enlève les labels et délivre les paquets \gls{ip}.
Il est possible de gérer un trafic à travers plusieurs réseaux, en empilant les labels pour créer un tunnel.
\subsubsection{Étapes}
\begin{enumerate}
\item Push --- À l'arrivé dans le réseau \gls{mpls} (\gls{ingress} network), le \gls{ler} affecte un label et l'insère entre les couches~\ref{itm:osi2} et~\ref{itm:osi3}.
\item Swap --- À chaque passage de \gls{lsr}, le label est échangé suivant la table de commutation du \gls{lsr}.
\item Pop --- En sortie de réseau \gls{mpls} (\gls{egress} network), le label est retiré.
\end{enumerate}
\subsection{Les \acrshort{fec}}
@ -38,27 +123,74 @@
Une \gls{fec} est associée à un label local dans chaque \gls{lsr}.
\subsubsection{Distribution des labels}
\subsection{Distribution des labels}
Le \gls{ldp} est du routage implicite.
C'est un protocole de distribution des labels \emph{hop by hop}.
La table de commutation de labels est construite sur chaque routeur.
Il se base sur le protocole de routage interne pour le routage.
Le \gls{ldp} est du routage implicite.
C'est un protocole de distribution des labels \emph{hop by hop}.
La table de commutation de labels est construite sur chaque routeur.
Il se base sur le protocole de routage interne pour le routage.
\subsubsection{Downstream on-demand}
Il s'agit d'une demande de label qu'on recevra.
\subsubsection{Downstream unsolicited}
Il s'agit de l'envoi de label.
\subsubsection{Connexion \gls{ldp}}
\gls{ldp} est bidirectionnel et découvre les n\oe{}uds adjacents de manière dynamique grâce à des messages \texttt{Hello} échangés par \acrshort{udp}.
Une fois que les n\oe{}uds se sont découverts, ils établissent une session \acrshort{tcp}.
\subsubsection{Rétention des labels}
\subsection{Rétention des labels}
Il y a deux modes~:
Il y a deux modes~:
\begin{enumerate}
\item Le mode \emph{liberal} --- Un \gls{lsr} conserve tous les labels annoncés, même ceux non utilisés.
La convergence est rapide mais ce mode est consommateur en mémoire.
Ce mode est utilisé en mode \emph{Downstream Unsolicited}.
\item Le mode \emph{conservative} --- Les \gls{lsr} conservent seulement les labels reçus des next-hop pour chaque \gls{fec}.
La convergence est plus lente, mais peu de mémoire est consommée.
Ce mode est utilisé en mode \emph{Downstream On Demand}.
\end{enumerate}
\begin{enumerate}
\item Le mode \emph{liberal} --- Un \gls{lsr} conserve tous les labels annoncés, même ceux non utilisés.
La convergence est rapide mais ce mode est consommateur en mémoire.
Ce mode est utilisé en mode \emph{Downstream unsolicited}.
\item Le mode \emph{conservative} --- Les \gls{lsr} conservent seulement les labels reçus des next-hop pour chaque \gls{fec}.
La convergence est plus lente, mais peu de mémoire est consommée.
Ce mode est utilisé en mode \emph{Downstream on-demand}.
\end{enumerate}
\subsection{Établissement d'un \gls{lsp-mpls}}
Un \gls{lsr} lie un label à une \gls{fec}~:
\begin{itemize}
\item S'il est le \gls{egress} \gls{ler}.
\item S'il a déjà reçu une association label/\gls{fec} du prochain saut pour cette \gls{fec}.
\end{itemize}
\begin{itemize}
\item En mode \emph{Downstream unsolicited}~:
\begin{center}
\begin{tikzpicture}
\node[rectangle,draw,thick] (iler) at (-5,0) {\acrshort{iler}};
\node[rectangle,draw,thick] (lsr) at (0,0) {\acrshort{lsr}};
\node[rectangle,draw,thick] (eler) at (5,0) {\acrshort{eler}};
\draw[-latex] (eler) -- (lsr) node[above,midway] {\small 1. label mapping};
\draw[-latex] (lsr) -- (iler) node[above,midway] {\small 2. label mapping};
\end{tikzpicture}
\end{center}
\item En mode \emph{Downstream on-demand}~:
\begin{center}
\begin{tikzpicture}
\node[rectangle,draw,thick] (iler) at (-5,0) {\acrshort{iler}};
\node[rectangle,draw,thick] (lsr) at (0,0) {\acrshort{lsr}};
\node[rectangle,draw,thick] (eler) at (5,0) {\acrshort{eler}};
\draw[-latex] (iler.north east) -- (lsr.north west) node[above,midway] {\small 1. label request};
\draw[-latex] (lsr.north east) -- (eler.north west) node[above,midway] {\small 2. label request};
\draw[-latex] (eler.south west) -- (lsr.south east) node[below,midway] {\small 3. label mapping};
\draw[-latex] (lsr.south west) -- (iler.south east) node[below,midway] {\small 4. label mapping};
\end{tikzpicture}
\end{center}
\end{itemize}