2018-01-02 11:57:52 +01:00
\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}
2018-01-02 22:53:36 +01:00
\usepackage { xcolor}
2018-01-02 11:57:52 +01:00
\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
}
2018-01-02 22:53:36 +01:00
% Define colors
\definecolor { hlr} { RGB} { 255,180,180}
\definecolor { hlg} { RGB} { 180,255,180}
\definecolor { hlb} { RGB} { 180,180,255}
2018-01-02 11:57:52 +01:00
\mode <presentation>
2018-01-02 22:53:36 +01:00
\title { IPv6}
\subtitle { Einführung und Sicherheitsaspekte}
\author { Jan Philipp Timme}
2018-01-02 11:57:52 +01:00
\date { \today }
\begin { document}
2018-01-02 22:53:36 +01:00
\tableofcontents [hideallsubsections]
2018-01-03 12:56:05 +01:00
\section { Einstieg in IPv6}
2018-01-02 11:57:52 +01:00
2018-01-02 22:53:36 +01:00
\begin { frame} { Neuigkeiten mit IPv6}
2018-01-02 11:57:52 +01:00
\begin { itemize}
2018-01-02 22:53:36 +01:00
\item 128 Bit Adressraum
\item Neu: Link-lokale Adressen
\item Multicast anstelle von Broadcast
2018-01-03 12:32:57 +01:00
\item ICMPv6 für Betrieb essentiell (Bei IPv4 war ICMP optional)
\item Konfiguration via SLAAC\footnote { Stateless Address Autoconfiguration, RFC 2462} und DHCPv6
2018-01-02 22:53:36 +01:00
\item Router Advertisments
2018-01-03 12:32:57 +01:00
\item Vollwertiges Routing, kein NAT erforderlich!
2018-01-03 10:19:25 +01:00
\item Paketfragmentierung nur noch durch den Absender
2018-01-02 11:57:52 +01:00
\end { itemize}
\end { frame}
2018-01-03 12:56:05 +01:00
\begin { frame} { Notation und Kurzschreibweise\footnote { Alle Beispiele mit RFC 3849, 2004/07 - IPv6 Address Prefix Reserved for Documentation} }
2018-01-02 22:53:36 +01:00
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
2018-01-03 10:19:25 +01:00
$ \Rightarrow $ \texttt { 2001:db8:2407:8d3::1234} \newline
\newline
Ergebnis kürzer, aber dennoch zu lang $ \rightarrow $ DNS!
\end { frame}
2018-01-03 12:56:05 +01:00
\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}
2018-01-03 10:19:25 +01:00
\begin { frame} { Beispiel für Zuweisung von Netzen}
2018-01-03 11:17:47 +01:00
\begin { itemize}
2018-01-03 11:41:10 +01:00
\item ISP bekommt ein \texttt { \colorbox { hlr} { /24} } Präfix zugewiesen
\begin { itemize}
2018-01-03 11:50:06 +01:00
\item Kann über $ 128 - \texttt { \colorbox { hlr } { 24 } } = 104 $ Bit Suffix verfügen
2018-01-03 11:41:10 +01:00
\end { itemize}
\item ISP weist Kunden ein \texttt { \colorbox { hlb} { /56} } Präfix aus seinem \texttt { \colorbox { hlr} { /24} } Präfix zu
2018-01-03 12:56:05 +01:00
\item Kundenrouter weist jedem Subnetz ein \texttt { \colorbox { hlg} { /64} } -Präfix\footnote { Empfohlene Größe laut RFC 6177, 2011/03 - IPv6 Address Assignment to End Sites} zu
2018-01-03 11:17:47 +01:00
\end { itemize}
2018-01-03 11:50:06 +01:00
\texttt { 2001:0d\colorbox { hlr} { b8:2407:08\colorbox { hlb} { d3:\colorbox { hlg} { 0000:0000:0000:1234} } } /\colorbox { hlg} { 64} } \newline
2018-01-03 11:46:29 +01:00
\newline
Anzahl \texttt { \colorbox { hlb} { /56} } Präfixe für Kunden: $ 2 ^ { 104 - 56 } = 2 ^ { 48 } = \colorbox { hlr } { 281 . 474 . 976 . 710 . 656 } $ \newline
Anzahl \texttt { \colorbox { hlg} { /64} } Subnetze für einen Kunden: $ 2 ^ { 8 } = \colorbox { hlb } { 256 } $ \newline
Anzahl Adressen pro Subnetz: $ 2 ^ { 64 } = \colorbox { hlg } { 18 . 446 . 744 . 073 . 709 . 551 . 616 } $ \newline
(Etwa 18 Trilliarden Geräte passen in ein Subnetz)
2018-01-03 11:17:47 +01:00
2018-01-02 11:57:52 +01:00
\end { frame}
2018-01-02 22:53:36 +01:00
\subsection { Adressklassen}
2018-01-02 11:57:52 +01:00
2018-01-02 22:53:36 +01:00
\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
2018-01-02 11:57:52 +01:00
\begin { itemize}
2018-01-02 22:53:36 +01:00
\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
2018-01-02 11:57:52 +01:00
\begin { itemize}
2018-01-02 22:53:36 +01:00
\item \dots sofern Rechner noch keine IPv6-Adresse besitzt
\item \dots diese dürfen dann nicht geroutet werden
2018-01-02 11:57:52 +01:00
\end { itemize}
\end { itemize}
\end { frame}
2018-01-02 22:53:36 +01:00
\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
2018-01-03 12:56:05 +01:00
\texttt { 0000:0000:0000:0000:0000:0000:0000:0001/128} (kurz: \texttt { ::1/128} )
2018-01-02 22:53:36 +01:00
\newline
2018-01-02 11:57:52 +01:00
\begin { itemize}
2018-01-02 22:53:36 +01:00
\item Wie bereits aus IPv4 bekannt
2018-01-02 11:57:52 +01:00
\end { itemize}
\end { frame}
2018-01-03 10:19:25 +01:00
\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
2018-01-03 12:32:57 +01:00
Präfix: \texttt { fe80::/64} \newline
2018-01-03 10:19:25 +01:00
Beispiel: \texttt { fe80::7ae4:ff:fecf:8a50/64}
\newline
\begin { itemize}
2018-01-03 12:32:57 +01:00
\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}
2018-01-03 10:19:25 +01:00
\item Darf nicht geroutet werden
\item Für Tätigkeiten auf dem lokalen Link
\begin { itemize}
2018-01-03 12:32:57 +01:00
\item Neighbor Dicovery Protocol
2018-01-03 10:19:25 +01:00
\item Automatic Address Configuration
2018-01-03 12:32:57 +01:00
\item Router Advertisment
2018-01-03 10:19:25 +01:00
\end { itemize}
\end { itemize}
\end { frame}
2018-01-03 12:56:05 +01:00
\begin { frame} [fragile]{ Adressklassen: Unique Local Adress (ULA)\footnote { Siehe RFC 4291, Kapitel 2.5.4.} }
2018-01-03 12:32:57 +01:00
Ähnlich zu privaten IPv4-Adressen wie z.B. \texttt { 192.168.0.0/24} \newline
2018-01-03 10:19:25 +01:00
\newline
2018-01-03 12:56:05 +01:00
Präfix: \texttt { fc00::/7} \newline
Beispiel ULA-Präfix: \texttt { fd04:4232:a9fc::/48} \newline
2018-01-03 10:19:25 +01:00
\newline
2018-01-03 12:56:05 +01:00
Aufbau der ULA\footnote { Laut RFC 4193, Kapitel 3.1} :
\begin { itemize}
\item Präfix (7 Bit)
\item Local-Flag (1 Bit) - Wert: 1
\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}
2018-01-03 12:32:57 +01:00
2018-01-03 10:19:25 +01:00
\begin { itemize}
2018-01-03 12:56:05 +01:00
\item Für Nutzung in privaten Netzen, nicht global geroutet
2018-01-03 10:19:25 +01:00
\end { itemize}
\end { frame}
2018-01-02 22:53:36 +01:00
\begin { frame} { Adressklassen: Globale Unicast Adresse (GUA)\footnote { Siehe RFC 4291, Kapitel 2.5.4.} }
Analog zu global gerouteter IPv4-Adresse \newline
\newline
2018-01-03 12:56:05 +01:00
\texttt { 2001:db8:2407:8d3::1234/128}
2018-01-02 22:53:36 +01:00
\newline
2018-01-02 11:57:52 +01:00
\begin { itemize}
2018-01-02 22:53:36 +01:00
\item Wie bereits aus IPv4 bekannt
2018-01-03 10:19:25 +01:00
\item Global erreichbare Adresse
2018-01-02 11:57:52 +01:00
\end { itemize}
\end { frame}
2018-01-03 10:19:25 +01:00
\begin { frame} [fragile]{ }
\begin { lstlisting}
jpt@server:~$ ip - 6 addr show eth 0
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}
2018-01-02 22:53:36 +01:00
\section { Hauptteil}
\begin { frame} { TODO}
2018-01-02 11:57:52 +01:00
\begin { itemize}
2018-01-02 22:53:36 +01:00
\item TODO
2018-01-02 11:57:52 +01:00
\end { itemize}
\end { frame}
2018-01-02 22:53:36 +01:00
\section { Schluss}
\begin { frame} { TODO}
2018-01-02 11:57:52 +01:00
\begin { itemize}
2018-01-02 22:53:36 +01:00
\item TODO
2018-01-02 11:57:52 +01:00
\end { itemize}
2018-01-02 22:53:36 +01:00
\end { frame}
\begin { frame} { }
2018-01-02 11:57:52 +01:00
\begin { itemize}
2018-01-02 22:53:36 +01:00
\item
2018-01-02 11:57:52 +01:00
\end { itemize}
2018-01-02 22:53:36 +01:00
\end { frame}
\begin { frame} { }
2018-01-02 11:57:52 +01:00
\begin { itemize}
2018-01-02 22:53:36 +01:00
\item
2018-01-02 11:57:52 +01:00
\end { itemize}
\end { frame}
2018-01-02 22:53:36 +01:00
\begin { frame} { }
\begin { itemize}
\item
\end { itemize}
2018-01-02 11:57:52 +01:00
\end { frame}
% The end.
\end { document}