\documentclass{f4_beamer}
\usepackage{graphicx}
\usepackage{float}
\usepackage{subfigure}
\usepackage{xspace}
\usepackage{textcomp}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{amsmath}
\usepackage{subfigure} 
\usepackage{here}
\usepackage{verbatim}
\usepackage{listings}
\usepackage{url}
\usepackage{xcolor}
\usepackage{caption}
\usepackage[autostyle=true,german=quotes]{csquotes}

% Suppress numbering captions
\captionsetup{labelformat=empty}

% Setup für Codeblocks
\lstset{
	% Optionen
	breaklines=true,
	breakatwhitespace=true,
	breakautoindent=true,
	frame=single,
	%framexleftmargin=19pt,
	inputencoding=utf8,
	%language=awk,
	%numbers=left,
	%numbersep=8pt,
	showspaces=false,
	showstringspaces=false,
	tabsize=1,
	%xleftmargin=19pt,
	captionpos=b,
	% Styling
	basicstyle=\footnotesize\ttfamily,
	commentstyle=\footnotesize,
	keywordstyle=\footnotesize\ttfamily,
	numberstyle=\footnotesize,
	stringstyle=\footnotesize\ttfamily,
}
% Hack für Sonderzeichen in Codeblocks
\lstset{literate=%
    {Ö}{{\"O}}1
    {Ä}{{\"A}}1
    {Ü}{{\"U}}1
    {ß}{{\ss}}1
    {ü}{{\"u}}1
    {ä}{{\"a}}1
    {ö}{{\"o}}1
    {°}{{${^\circ}$}}1
}

% Define colors
\definecolor{hlr}{RGB}{255,180,180}
\definecolor{hlg}{RGB}{180,255,180}
\definecolor{hlb}{RGB}{180,180,255}

\mode<presentation>
\title{IPv6}
\subtitle{Einführung und Sicherheitsaspekte}
\author{Jan Philipp Timme}
\date{\today}

\begin{document}
\tableofcontents[hideallsubsections]

\section{Einstieg IPv6}

\begin{frame}{Neuigkeiten mit IPv6}
\begin{itemize}
\item 128 Bit Adressraum
\item Neu: Link-lokale Adressen
\item Multicast anstelle von Broadcast
\item ICMPv6 für Betrieb essentiell
\item Konfiguration via SLAAC und DHCPv6
\item Router Advertisments
\item Vollwertiges Routing, kein NAT!
\item Paketfragmentierung nur noch durch den Absender
\end{itemize}
\end{frame}

\begin{frame}{Notation und Kurzschreibweise}
Gegeben: IPv6-Adresse
\texttt{2001:0db8:2407:08d3:0000:0000:0000:1234} \newline
\newline
1) Führende Nullen streichen \newline
\texttt{2001:\colorbox{hlb}{0}db8:2407:\colorbox{hlb}{0}8d3:\colorbox{hlb}{000}0:\colorbox{hlb}{000}0:\colorbox{hlb}{000}0:1234} \newline
$\Rightarrow$ \texttt{2001:db8:2407:8d3:0:0:0:1234} \newline
\newline
2) Zusammenhängende Nullsegmente mit \texttt{::} ersetzen
\texttt{2001:db8:2407:8d3:\colorbox{hlb}{0:0:0}:1234} \newline
$\Rightarrow$ \texttt{2001:db8:2407:8d3::1234} \newline
\newline
Ergebnis kürzer, aber dennoch zu lang $\rightarrow$ DNS!
\end{frame}

\begin{frame}{Beispiel für Zuweisung von Netzen}
ISP bekommt: \texttt{2001:db8:4c6f::/48}
Kunde von ISP bekommt: \texttt{2001:db8:4c6f:9600:/56}
Ein Netz erhält ein \texttt{/64}-Präfix\footnote{RFC}
\end{frame}

\begin{frame}{Adressen: Präfixe und Suffixe\footnote{Siehe RFC 4291, Kapitel 2.3.}}
Notation wie Classless Inter-domain Routing (CIDR\footnote{RFC 4632}) bei IPv4 \newline
\newline
IPv6-Adresse mit angegebener Prefix-Länge: \texttt{2001:db8:2407:8d3::1234/\colorbox{hlr}{64}} \newline
\newline
Bedeutung: Präfix mit \colorbox{hlr}{64} Bit Länge fest vorgegeben
$\Rightarrow$ Übriges Suffix mit (128 - \colorbox{hlr}{64}) = \colorbox{hlg}{64} Bit Länge frei zur Verwendung
\newline

\texttt{\colorbox{hlr}{2001:0db8:2407:08d3}:\colorbox{hlg}{0000:0000:0000:1234}/\colorbox{hlr}{64}} \newline

\end{frame}


\subsection{Adressklassen}

\begin{frame}{Adressklassen: Unspezifizierte Adresse\footnote{Siehe RFC 4291, Kapitel 2.5.2.}}
Aus IPv4 bekannt als \texttt{0.0.0.0/0} \newline
\newline
In IPv6: \texttt{0000:0000:0000:0000:0000:0000:0000:0000} (kurz: \texttt{::}) \newline
\begin{itemize}
\item Zeigt das Fehlen einer Adresse an
\item \dots oder signalisiert Erreichbarkeit eines Sockets auf allen Adressen eines Geräts
\item Darf nie einem Gerät zugewiesen werden
\item Als Quelladresse für Pakete erlaubt
\begin{itemize}
\item \dots sofern Rechner noch keine IPv6-Adresse besitzt
\item \dots diese dürfen dann nicht geroutet werden
\end{itemize}
\end{itemize}
\end{frame}

\begin{frame}{Adressklassen: Loopback Adresse\footnote{Siehe RFC 4291, Kapitel 2.5.3.}}
Aus IPv4 bekannt als \texttt{127.0.0.1/8} \newline
\newline
\texttt{0000:0000:0000:0000:0000:0000:0000:0001} (kurz: \texttt{::1})
\newline
\begin{itemize}
\item Wie bereits aus IPv4 bekannt
\end{itemize}
\end{frame}


\begin{frame}{Adressklassen: Link-lokale Unicast Adresse\footnote{Siehe RFC 4291, Kapitel 2.5.6.}}
Ähnlich zu \texttt{169.254.0.0/16} \newline
\newline
Bereich: \texttt{fe80::/64} \newline
Beispiel: \texttt{fe80::7ae4:ff:fecf:8a50/64}
\newline
\begin{itemize}
\item Gilt nur innerhalb der Broadcast-Domäne eines Interface
\item Darf nicht geroutet werden
\item Für Tätigkeiten auf dem lokalen Link
\begin{itemize}
\item Neighbor Dicovery
\item Automatic Address Configuration
\end{itemize}
\end{itemize}
\end{frame}


\begin{frame}{Adressklassen: Lokale Unicast Adresse (LUA)\footnote{Siehe RFC 4291, Kapitel 2.5.4.}}
Analog zu global gerouteter IPv4-Adresse \newline
\newline
\texttt{2001:db8:2407:8d3::1234}
\newline
\begin{itemize}
\item Wie bereits aus IPv4 bekannt
\end{itemize}
\end{frame}


\begin{frame}{Adressklassen: Globale Unicast Adresse (GUA)\footnote{Siehe RFC 4291, Kapitel 2.5.4.}}
Analog zu global gerouteter IPv4-Adresse \newline
\newline
\texttt{2001:db8:2407:8d3::1234}
\newline
\begin{itemize}
\item Wie bereits aus IPv4 bekannt
\item Global erreichbare Adresse
\end{itemize}
\end{frame}

\begin{frame}[fragile]{}
\begin{lstlisting}
jpt@server:~$ ip -6 addr show eth0
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:41d0:8:9147::1/128 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::222:4dff:fe82:dbff/64 scope link 
       valid_lft forever preferred_lft forever
\end{lstlisting}

\begin{lstlisting}
jpt@server:~$ ip -6 route show
2001:41d0:8:9147::1 dev eth0 proto kernel metric 256 
2001:41d0:8:91ff:ff:ff:ff:ff dev eth0 metric 1024 
fe80::/64 dev eth0 proto kernel metric 256 
default via 2001:41d0:8:91ff:ff:ff:ff:ff dev eth0 metric 1024 
\end{lstlisting}
\end{frame}

\section{Hauptteil}
\begin{frame}{TODO}
\begin{itemize}
\item TODO
\end{itemize}
\end{frame}

\section{Schluss}
\begin{frame}{TODO}
\begin{itemize}
\item TODO
\end{itemize}
\end{frame}

\begin{frame}{}
\begin{itemize}
\item
\end{itemize}
\end{frame}

\begin{frame}{}
\begin{itemize}
\item
\end{itemize}
\end{frame}

\begin{frame}{}
\begin{itemize}
\item
\end{itemize}
\end{frame}



% The end.
\end{document}