Compare commits
2 commits
bc97078f76
...
3051695878
Author | SHA1 | Date | |
---|---|---|---|
Théophile Bastian | 3051695878 | ||
Théophile Bastian | 686280811a |
88
slides.tex
88
slides.tex
|
@ -10,14 +10,25 @@
|
|||
\usepackage{texlib/todo}
|
||||
|
||||
\usepackage{booktabs}
|
||||
\usepackage[normalem]{ulem}
|
||||
\usepackage[thicklines]{cancel}
|
||||
|
||||
\renewcommand{\CancelColor}{\color{red}}
|
||||
|
||||
%\usepackage{inconsolata}
|
||||
|
||||
|
||||
\lstdefinelanguage{iproute} {
|
||||
morekeywords={inet6},
|
||||
sensitive=true,
|
||||
}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\title{Announcing IPv4 routes with an IPv6 next-hop in the Babel
|
||||
routing protocol}
|
||||
\subtitle{\textit{aka.} draft-bastian-babel-v4ov6}
|
||||
\subtitle{\textit{aka.}
|
||||
\href{https://datatracker.ietf.org/doc/draft-bastian-babel-v4ov6/}{
|
||||
draft-bastian-babel-v4ov6}}
|
||||
\author[\slidecountline]
|
||||
{Théophile Bastian, Juliusz Chroboczek}
|
||||
\date{}
|
||||
|
@ -34,7 +45,8 @@ routing protocol}
|
|||
|
||||
\begin{frame}{Traditional routing}
|
||||
\begin{align*}
|
||||
\text{Network prefix (IPvX)} &\longrightarrow \text{Next-Hop (IPvX)}
|
||||
\text{Network prefix (IPvX)} \quad &\longrightarrow
|
||||
\quad \text{Next-Hop (IPvX)}
|
||||
\end{align*}
|
||||
|
||||
\pause{}
|
||||
|
@ -50,12 +62,11 @@ routing protocol}
|
|||
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 & & \sout{fd80:1::1}} \\
|
||||
\only<3>{10.0.0.0/8 & & % \makebox[0pt]{\color{red}---}
|
||||
\xcancel{fd80:1::1}} \\
|
||||
\bottomrule
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
\todo{Better strikeout}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{The router's job}
|
||||
|
@ -89,9 +100,72 @@ routing protocol}
|
|||
\item IPv6 has \alert{link-local} and \alert{automatic addresses}
|
||||
(SLAAC)
|
||||
\begin{itemize}
|
||||
\item no need for DHCP or IP configuration \emph{at all}!
|
||||
\item no need for DHCP or IP addresses configuration \emph{at all}!
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]{Supported in Linux since 5.2}
|
||||
\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}
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
\begin{itemize}
|
||||
\item{} Usually, add a v4 route with
|
||||
\begin{lstlisting}[language=iproute, numbers=none]
|
||||
# ip route add 10.42.0.0/16 via 10.40.0.42 dev eno1
|
||||
\end{lstlisting}
|
||||
|
||||
\item{} v4-over-v6 (recent kernel):
|
||||
\begin{lstlisting}[language=iproute, numbers=none]
|
||||
# ip route add 10.42.0.0/16 via inet6 fe80::a0de:baf:b39b dev eno1
|
||||
\end{lstlisting}
|
||||
\end{itemize}
|
||||
|
||||
\end{frame}
|
||||
|
||||
\section{Babel protocol extension}
|
||||
|
||||
\begin{frame}{Advertising v4-over-v6 routes}
|
||||
\textbf{An IPv4 interface} never announces v4-over-v6 routes
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
\textbf{A v6-only interface}
|
||||
\begin{itemize}
|
||||
\item{} \alert{Installs a v4 route} nevertheless when receiving it
|
||||
\item{} \alert{Announces a v4-over-v6 route} for each v4 route
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Introducing a new AE}
|
||||
In Babel, \alert{Address Encodings} (AEs) define the type of address/prefix
|
||||
contained in a TLV.
|
||||
\begin{itemize}
|
||||
\item IPv4 address
|
||||
\item IPv6 address
|
||||
\item link-local IPv6 address
|
||||
\item[$\bigstar$] \alert{v4-over-v6 address}
|
||||
\end{itemize}
|
||||
\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}
|
||||
|
||||
\end{document}
|
||||
|
|
Loading…
Reference in a new issue