From 3051695878c6ca8655516ba4573dff3d9dff450c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Bastian?= Date: Tue, 21 Jul 2020 15:12:40 +0200 Subject: [PATCH] Tentative "Babel protocol extension" section --- slides.tex | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/slides.tex b/slides.tex index 00d1533..d0be3fe 100644 --- a/slides.tex +++ b/slides.tex @@ -100,9 +100,72 @@ draft-bastian-babel-v4ov6}} \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}