diff --git a/imgs/Git-Logo-1788C.eps b/imgs/Git-Logo-1788C.eps new file mode 100644 index 0000000..9109fa1 Binary files /dev/null and b/imgs/Git-Logo-1788C.eps differ diff --git a/slides.tex b/slides.tex index 82a8973..de8ac26 100644 --- a/slides.tex +++ b/slides.tex @@ -30,7 +30,7 @@ routing protocol} \href{https://datatracker.ietf.org/doc/draft-bastian-babel-v4ov6/}{ draft-bastian-babel-v4ov6}} \author[\slidecountline] -{Théophile Bastian, Juliusz Chroboczek} +{Théophile Bastian, joint work with Juliusz Chroboczek} \date{} %\subject{} %\logo{} @@ -44,29 +44,30 @@ draft-bastian-babel-v4ov6}} \maketitle{} \begin{frame}{Traditional routing} - \begin{align*} - \text{Network prefix (IPvX)} \quad &\longrightarrow - \quad \text{Next-Hop (IPvX)} - \end{align*} - - \pause{} - \begin{table} \centering \textbf{IPv4 routing table} \\ \medskip \begin{tabular}{@{} lcl @{}} \toprule - Prefix & $\rightarrow$ & Next-Hop \\ + Network Prefix (IPvX) & $\rightarrow$ & Next-Hop (IPvX)\\ \midrule default & & 10.42.0.254 \\ 10.102.0.0/16 & & 10.102.0.1 \\ - 10.102.10.0/24 & & 10.102.10.1 \\ - \only<3>{10.0.0.0/8 & & % \makebox[0pt]{\color{red}---} - \xcancel{fd80:1::1}} \\ + 10.102.0.0/24 & & 10.102.0.2 \\ + 10.0.0.0/8 & & \xcancel{fd80:1::1} \\ \bottomrule \end{tabular} \end{table} + + \vspace{1em} + + \begin{itemize} + \item \textbf{Control plan:} \alert{babel}, routing protocol. + \alert{Fills the routing table}. + \item \textbf{Data plan:} correctly forward incoming packets. + \alert{Uses the routing table}. + \end{itemize} \end{frame} \begin{frame}{The router's job} @@ -76,7 +77,7 @@ draft-bastian-babel-v4ov6}} \end{figure} \end{frame} -\begin{frame}{What's under the hull?} +\begin{frame}{What's under the hood?} \begin{figure} \centering \only<1>{\includegraphics[width=\columnwidth]{imgs/_autogen/mac/01.pdf}} @@ -93,7 +94,12 @@ draft-bastian-babel-v4ov6}} \end{figure} \end{frame} -\begin{frame}{Why would we want this?} +\begin{frame}{The idea behind} + \textbf{New type of route!} v4 prefix with v6 next-hop: \alert{v4-over-v6 + route}. + + \vspace{2em} + \begin{itemize} \item Supporting both v4 and v6 is cumbersome: twice the configuration \item v6-only core, still serve v4 to clients @@ -103,15 +109,27 @@ draft-bastian-babel-v4ov6}} \item no need for DHCP or IP addresses configuration \emph{at all}! \end{itemize} \end{itemize} + + \vspace{2em} + + \textbf{Not an original idea!} BGP had it first: + \href{https://datatracker.ietf.org/doc/draft-ietf-bess-rfc5549revision/}{draft-ietf-bess-rfc5549revision} \end{frame} -\begin{frame}[fragile]{Supported in Linux since 5.2 --~July 2019} - \begin{block}{d1566268 -- 2019-04-05 -- ipv4: Allow ipv6 gateway with ipv4 routes} - \quad{}Add support for \lstbash{RTA_VIA} and allow an IPv6 nexthop for v4 - routes. - \end{block} +\begin{frame}[fragile]{Linux support} + \textbf{Supported in Linux} since 5.2 --~July 2019! - \vspace{1em} + \begin{minipage}[c]{0.1\textwidth} + \includegraphics[height=1.2em]{imgs/Git-Logo-1788C} + \end{minipage} + \begin{minipage}[c]{0.85\textwidth} + \begin{block}{d1566268 -- 2019-04-05 -- ipv4: Allow ipv6 gateway with ipv4 routes} + \quad{}Add support for \lstbash{RTA_VIA} and allow an IPv6 nexthop for v4 + routes. + \end{block} + \end{minipage} + + \vspace{2em} \begin{itemize} \item{} Usually, add a v4 route with @@ -141,6 +159,17 @@ draft-bastian-babel-v4ov6}} \end{itemize} \end{frame} +\begin{frame}{Backwards compatibility} + \textbf{An unextended node must} + + \begin{itemize} + \item Be able to \alert{ignore v4-over-v6 routes} + \item \alert{Route correctly} pure v4 and v6 + \end{itemize} + + \todo{Choices considered} +\end{frame} + \begin{frame}{Introducing a new AE} In Babel, \alert{Address Encodings} (AEs) define the type of address/prefix contained in a TLV. @@ -157,23 +186,6 @@ draft-bastian-babel-v4ov6}} introduced. \end{frame} -\begin{frame}{Backwards compatibility} - \textbf{With older implementations} - \begin{itemize} - \item Ignore v4-over-v6 routes - \item No state updates missed - \end{itemize} - - \vspace{2em} - - \textbf{With older kernels} - \begin{itemize} - \item Won't advertise a route that cannot be locally set - \item In babeld, detect kernel version - \end{itemize} -\end{frame} - - %%%%%%%%%%% Conclusion frame %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}{}