292 lines
9.4 KiB
TeX
292 lines
9.4 KiB
TeX
\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 in IPv6}
|
|
|
|
\begin{frame}{Neuigkeiten mit IPv6}
|
|
\begin{itemize}
|
|
\item Spezifiziert in RFC 2460, 1998/12 - IPv6 Specification
|
|
\item 128 Bit Adressraum
|
|
\item Neu: Link-lokale Adressen
|
|
\item Multicast anstelle von Broadcast
|
|
\item ICMPv6 für Betrieb essentiell (Bei IPv4 war ICMP optional)
|
|
\item Konfiguration via SLAAC\footnote{RFC 2462, 1998/12 - IPv6 Stateless Address Autoconfiguration} und DHCPv6
|
|
\item Router Advertisments
|
|
\item Vollwertiges Routing, kein NAT erforderlich!
|
|
\item Paketfragmentierung nur noch durch den Absender
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\subsection{Notation, Schreibweisen, }
|
|
|
|
\begin{frame}{Notation und Kurzschreibweise\footnote{Alle Beispiele mit RFC 3849, 2004/07 - IPv6 Address Prefix Reserved for Documentation}}
|
|
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
|
|
\enquote{Das ist schon kürzer, aber tippen will ich das nicht...} \newline
|
|
$\rightarrow$ \enquote{Dafür gibt es DNS!}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Adressen: Präfixe und Suffixe\footnote{Kapitel 2.3. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}}
|
|
Notation wie Classless Inter-domain Routing (CIDR\footnote{RFC 4632, 2006/08 - Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan}) bei IPv4 \newline
|
|
\newline
|
|
IPv6-Adresse mit angegebener Präfix-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}} \end{frame}
|
|
|
|
\begin{frame}{Hierarchische Zuweisung von Netzen (Beispiel)}
|
|
\begin{itemize}
|
|
\item ISP bekommt ein \texttt{\colorbox{hlr}{/24}} Präfix zugewiesen
|
|
\begin{itemize}
|
|
\item $128 - \texttt{\colorbox{hlr}{24}} = 104$ Bit Suffix für ISP
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\texttt{\colorbox{hlr}{2001:0d}00:0000:0000:0000:0000:0000:0000/\colorbox{hlr}{24}}
|
|
\begin{itemize}
|
|
\item ISP weist Kunden ein \texttt{\colorbox{hlb}{/56}} Präfix aus seinem \texttt{\colorbox{hlr}{/24}} Präfix zu
|
|
\begin{itemize}
|
|
\item $128 - \texttt{\colorbox{hlb}{56}} = 72$ Bit Suffix für Kunde
|
|
\item $\rightarrow$ $104 - 72 = 32$ Bit bleiben für Subnetzbildung
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\texttt{\colorbox{hlb}{\colorbox{hlr}{2001:0d}b8:2407:d3}00:0000:0000:0000:0000/\colorbox{hlb}{56}}
|
|
\begin{itemize}
|
|
\item Kundenrouter weist jedem Subnetz ein \texttt{\colorbox{hlg}{/64}}-Präfix\footnote{Empfohlene Subnetzgröße laut RFC 6177, 2011/03 - IPv6 Address Assignment to End Sites} zu
|
|
\begin{itemize}
|
|
\item $72 - 64 = 8$ Bit bleiben für Subnetzbildung
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\texttt{\colorbox{hlg}{\colorbox{hlb}{\colorbox{hlr}{2001:0d}b8:2407:d3}42:}0000:0000:0000:0000/\colorbox{hlg}{64}}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Fassungsvermögen von IPv6-Netzen}
|
|
Adresse eines Gerätes in Kundennetz: \newline
|
|
\texttt{\colorbox{hlg}{\colorbox{hlb}{\colorbox{hlr}{2001:0d}b8:2407:d3}42:}7ae4:00ff:fecf:8a50/\colorbox{hlg}{64}} \newline
|
|
\newline
|
|
Anzahl \texttt{\colorbox{hlb}{/56}} Präfixe für Kunden: $2^{104-(128-56)} = 2^{32} = \colorbox{hlb}{4.294.967.296}$ \newline
|
|
Anzahl \texttt{\colorbox{hlg}{/64}} Subnetze für einen Kunden: $2^{8} = \colorbox{hlg}{256}$ \newline
|
|
Anzahl Adressen pro Subnetz: $2^{64} = 18.446.744.073.709.551.616$ \newline
|
|
\newline
|
|
$\Rightarrow$ Adressmangel in IPv6-Netzen vorerst nicht in Sicht
|
|
\end{frame}
|
|
|
|
|
|
\subsection{Adressklassen}
|
|
|
|
\begin{frame}{Adressklassen: Unspezifizierte Adresse\footnote{Kapitel 2.5.2. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}}
|
|
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{Kapitel 2.5.3. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}}
|
|
Aus IPv4 bekannt als \texttt{127.0.0.1/8} \newline
|
|
\newline
|
|
\texttt{0000:0000:0000:0000:0000:0000:0000:0001/128} (kurz: \texttt{::1/128})
|
|
\newline
|
|
\begin{itemize}
|
|
\item Wie bereits aus IPv4 bekannt
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\begin{frame}{Adressklassen: Link-lokale Unicast Adresse\footnote{Kapitel 2.5.6. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}}
|
|
Ähnlich zu \texttt{169.254.0.0/16} \newline
|
|
\newline
|
|
Präfix: \texttt{fe80::/64} \newline
|
|
Beispiel: \texttt{fe80::7ae4:ff:fecf:8a50/64}
|
|
\newline
|
|
\begin{itemize}
|
|
\item Gilt nur innerhalb der Broadcast-Domäne \textbf{eines Interface}
|
|
\begin{itemize}
|
|
\item \texttt{ping -6 fe80::7ae4:ff:fecf:8a50\textbf{\%eth0}}
|
|
\end{itemize}
|
|
\item Darf nicht geroutet werden
|
|
\item Für Tätigkeiten auf dem lokalen Link
|
|
\begin{itemize}
|
|
\item Neighbor Dicovery Protocol
|
|
\item Automatic Address Configuration
|
|
\item Router Advertisment
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\begin{frame}[fragile]{Adressklassen: Unique Local Adress (ULA)\footnote{Definiert in RFC 4193, 2005/11 - Unique Local IPv6 Unicast Addresses}}
|
|
Ähnlich zu privaten IPv4-Adressen wie z.B. \texttt{192.168.0.0/24} \newline
|
|
\newline
|
|
Präfix: \texttt{fc00::/7} \newline
|
|
Beispiel ULA-Präfix: \texttt{fd04:4232:a9fc::/48} \newline
|
|
\newline
|
|
Aufbau der ULA\footnote{Kapitel 3.1. in RFC 4193, 2005/11 - Unique Local IPv6 Unicast Addresses}:
|
|
\begin{itemize}
|
|
\item Präfix (7 Bit)
|
|
\item Local-Flag (1 Bit) - Wert: 1 (0 nicht in Standard definiert, reserviert)
|
|
\item Global ID (40 Bit) - Zufällig gewählter Wert
|
|
\item Subnet ID (16 Bit) - Raum für Subnetze
|
|
\item Interface ID (64 Bit)
|
|
\end{itemize}
|
|
|
|
\begin{itemize}
|
|
\item Für Nutzung in privaten Netzen, nicht global geroutet
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Adressklassen: Globale Unicast Adresse (GUA)\footnote{Kapitel 2.5.4. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}}
|
|
Analog zu global gerouteter IPv4-Adresse \newline
|
|
\newline
|
|
\texttt{2001:db8:2407:8d3:7ae4:ff:fecf:8a50/128}
|
|
\newline
|
|
\begin{itemize}
|
|
\item Wie bereits aus IPv4 bekannt
|
|
\item Global geroutete IPv6-Adresse
|
|
\item Werden von IANA vergeben
|
|
\item $\rightarrow$ \url{https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml}
|
|
\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} |