--- /dev/null
+\documentclass[xcolor={dvipsnames,table},graphicx,parskip,handout]{beamer}
+
+\usepackage[ngerman]{babel}
+\usepackage[utf8]{inputenc}
+\usepackage{bytefield}
+
+\usepackage{textpos}
+\usepackage{pgfpages} %für notizen in Slides
+\usepackage{tcolorbox}%runde colorboxen \usepackage{textpos}
+\usepackage{stmaryrd} % \shortrightarrow
+
+\usepackage{hyperref}
+\usepackage{lineno}
+\usepackage[newfloat]{minted}
+\usemintedstyle{rrt}
+
+\usepackage{showkeys}
+
+\uselanguage{German}
+\languagepath{German}
+
+\mode<handout>{%
+ \setbeameroption{show notes}
+ %\setbeamerfont{note page}{size=\large}
+ %\setbeameroption{show notes on second screen=bottom}
+ \setbeamertemplate{note page}{%
+ \vspace{1cm}
+ weitere Informationen:\\
+ \vskip.25em
+ \nointerlineskip
+ {\Huge \insertframetitle}
+ \vskip.25em
+ {\Large\insertframesubtitle}
+ \vspace{1cm}
+ \insertnote}
+}
+
+%\setbeamerfont{note page}{size=\large}
+%\setbeameroption{show notes on second screen=bottom}
+
+\usemintedstyle{friendly}
+\usemintedstyle[sourcelist,linux-config]{autumn}
+
+\usetheme[hideothersubsections,left]{Goettingen}
+
+\definecolor{blau}{RGB}{35, 100, 170}
+\definecolor{hellblau}{RGB}{61, 165, 217}
+\definecolor{gelb}{RGB}{254, 198, 1}
+\definecolor{orange}{RGB}{234, 155, 23}
+\definecolor{dunkelblau}{RGB}{11, 12, 93}
+\definecolor{gruen}{RGB}{137, 252, 0}
+\definecolor{gruendunkel}{RGB}{172, 210, 237}
+\definecolor{titelblau}{RGB}{21, 59, 80}
+\definecolor{blau}{rgb}{0.7, 0.99, 0.99}
+\definecolor{coolblack}{rgb}{0.0, 0.18, 0.39}
+\definecolor{DarkGreen}{rgb}{0.0, 0.6, 0.0}
+\definecolor{ao}{rgb}{0.12, 0.3, 0.17}
+
+\graphicspath{{Bilder/}}
+
+
+\setminted[bash]{
+ breaklines=true,
+ tabsize=2,
+ linenos,
+ numbersep=2pt,
+ autogobble,
+ framesep=0pt
+}
+
+\setminted[linux-config]{
+ breaklines=true,
+ linenos,
+ numbersep=2pt,
+ autogobble,
+ framesep=0pt
+ }
+
+\setminted[powershell]{
+ breaklines=true,
+ bgcolor=coolblack,
+ linenos,
+ numbersep=2pt,
+ autogobble,
+ framesep=0pt,
+ fontsize=\scriptsize,
+ }
+
+%PDF-Infos
+\pdfinfo{
+ /Title
+ /Creator
+ /Author
+}
+
+\setbeamercovered{transparent}
+\useoutertheme{sidebar}
+\useinnertheme{rounded}
+
+%um descripten links auszurichten
+\defbeamertemplate{description item}{align left}{\insertdescriptionitem\hfill}
+\setbeamertemplate{description item}[align left]
+
+\begin{document}
+
+%Beispiel Farb Definition
+\setbeamercolor{block title example}{use=example text,fg=example text.fg,bg=example text.fg!20!bg}
+\setbeamercolor{block body example}{parent=normal text,use=block title example,bg=block title example.bg!50!bg}
+%DefintionsBlock Farbspezification
+\setbeamercolor{block title}{use=structure text,fg=blue,bg=example text.fg!20!bg}
+\setbeamercolor{block body}{parent=normal text,use=block title example,bg=block title example.bg!50!bg}
+
+
+\setbeamertemplate{frametitle}[default][center]
+
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{page number in head/foot}[totalframenumber]
+
+% fußzeilen Definition
+\setbeamertemplate{footline}{\vspace*{-20pt} \leavevmode%
+ \hbox{%
+ \hspace{2cm} \colorbox{white}{\color{black}
+ \insertdate \hspace{1.5cm} Susanne Schütze \hspace{4cm} \insertframenumber \quad von \inserttotalframenumber \hspace{1cm} }}}
+
+\setbeamertemplate{itemize items}[triangle]
+\setbeamertemplate{page number in foot}[totalframenumber]
+
+% % sidebarsetting
+
+\setbeamertemplate{sidebar canvas left}[vertical shading][top=ao,middle=titelblau,bottom=DarkGreen]
+\setbeamercolor{section in sidebar shaded}{fg=yellow}
+\setbeamercolor{author in sidebar}{fg=ao}
+\setbeamercolor{title in sidebar}{fg=white}
+
+% Sidebar Farben normal
+\setbeamercolor{section in sidebar shaded}{fg=blau}
+\setbeamercolor{subsection in sidebar shaded}{fg=Yellow}
+\setbeamercolor{subsubsection in sidebar shaded}{fg=SpringGreen}
+
+%Sidebar Farben aktiviert
+\setbeamercolor*{palette sidebar primary}{fg=YellowOrange}
+\setbeamercolor*{palette sidebar secondary}{fg=YellowOrange}
+
+\setbeamercolor{titlelike}{fg=white, bg=titelblau}
+
+% %itemsetting
+\setbeamercolor{item}{fg=blue}%color of bullet
+\setbeamercolor{subitem}{fg=orange}%color of bullet
+
+%inhaltsverzeichniss
+
+\setbeamercolor{section in toc}{fg=blue}%, bg=black}
+\setbeamercolor{subsection in toc}{fg=DarkGreen}
+\setbeamercolor{subsubsection in toc}{fg=teal}
+\setbeamertemplate{sections/subsections in toc}[triangle]
+
+%\setbeamertemplate{blocks}[rounded]
+\setbeamertemplate{title page}[default][colsep=-4bp,rounded=true]
+
+%Background
+\setbeamercolor{background canvas}{bg=white}
+\setbeamertemplate{background}{%
+ \includegraphics[width=\paperwidth]{Taube01-Kabel-final01.jpg}}
+
+%Titel definition
+\title[IPv6]{IPv6 unter Linux}
+\subtitle{Eine kleine Einführung}
+\author[Schütze]{\textbf{Bücherratten}}
+\institute{\textbf{Chemnitzer Linux Tage 2023}}
+\date{11.03.2023}
+
+%\titlegraphic{\includegraphics[scale=0.3]{Taube01-Kabel-final.jpg}}
+
+%sitebar leer setzten
+\setbeamertemplate{sidebar left}{}
+
+%titlepage ohne sidebar
+\makeatletter
+\begin{frame}[plain]
+ \hspace*{-\beamer@sidebarwidth}%
+ \advance\textwidth by \beamer@sidebarwidth\relax
+ \beamer@sidebarwidth=\z@
+ \begin{minipage}{\textwidth}
+ \maketitle
+ \end{minipage}
+ %\note{Begrüßen!}
+\end{frame}
+\makeatother
+
+\setbeamertemplate{background}
+
+\begin{frame}
+ \frametitle{Disclaimer}
+ \begin{itemize}
+ \item{Dieser Vortrag ist vegan:}
+ \begin{itemize}
+ \item{Verzicht auf Einsatz von Tieren und tierische Erzeugnisse}
+ \item{Tierwohl und die Rechte von Tauben und anderen Flugtieren bleiben gewahrt}
+ \end{itemize}
+ \item{unvollständiger Vortrag}
+ \item{RFCs}
+ \begin{itemize}
+ \item{an RFCs gehalten}
+ \item{Humorvolle RFCs werden durch \textcolor{RedViolet}{Violett} hervorgehoben}
+ \end{itemize}
+ \item{in Beispiel-Befehlen: $<$zuersetzen$>$ entsprechend ersetzen}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}[shrink]
+ \frametitle{Inhalt}
+ \textbf{\tableofcontents[hideothersubsections]}
+ \vspace{0.4cm}
+\end{frame}
+
+%sidebar wiederherstellen
+\setbeamertemplate{sidebar left}[sidebar theme]
+
+\subsection{whoami}
+\begin{frame}
+ \frametitle{whoami}
+ \begin{itemize}
+ \item{Susanne Schütze}
+ \item{Bücherratten}
+ \item{38 Jahre}
+ \item{Pronomen: sie}
+ \item{Berufsbezeichnung: Fachinformatikerin für Systemintegration}
+ \item{Berufliches Themenfeld: Automatisierung mit Ansible}
+ \item{Linuxerin seit Kernel 2.6.24 (2009)}
+ \item{FreeSoftware Aktivistin}
+ \item{Zugehörigkeiten zu: Haecksen, LinuxWorks!, BeLUG, FSFE}
+ \item{LieblingsDistro: ArchLinux, Fedora}
+ \end{itemize}
+\end{frame}
+
+\section{Einführung}
+\subsection[Warum? Vorteile]{Warum IPv6? Die Vorteile}
+\begin{frame}[shrink]
+ \frametitle{Warum IPv6?}
+ \framesubtitle{Vorteile}
+ \begin{itemize}
+ \item{endlich genug IP-Adressen auch für IoT (Internet of Toilets)\\}
+ \tiny{Wen das interessiert: \url{https://media.ccc.de/v/31c3_-_6370_-_en_-_saal_g_-_201412281900_-_internet_of_toilets_-_tbsprs}}\\
+ \normalsize{
+ \item{erlaubt reine End-to-End-Kommunikation}
+ \item{Globale Adressen sind global erreichbar}
+ \item{hierarchische Adressvergabe}
+ \item{erlauben geographischen Bezug}
+ \item{keine umständlichen Adressübersetzungen mehr}
+ \item{Qualitiy of Service, bessere Definition von Dringlichkeit über „Traffic Class“}
+ \item{einfache Autokonfiguration der IP-Adressen}
+ \item{besseres Routing durch Veränderungen im IP-Header}
+ \item{weniger Verschmutzung durch Verzicht auf Brieftauben und andere Flugtiere}}
+ \end{itemize}
+\end{frame}
+
+\subsection{Die Spielwiese}
+\begin{frame}
+ \frametitle{Die Spielwiese}
+ \framesubtitle{Vorstellung von Brieftaube}
+ \begin{itemize}
+ \item{Raspberry Pi Version 4}
+ \item{Wlan-Accesspoint}
+ \begin{itemize}
+ \item{ESSID: Brieftauben-Wlan}
+ \item{! Ohne Passwort!}
+ \end{itemize}
+ \item{ssh-Server}
+ \begin{itemize}
+ \item{User: dove}
+ \item{Passwort: IPoAC}
+ \end{itemize}
+ \item{git-Server}
+ \begin{itemize}
+ \item{\url{git@[fd00:feed:c0ff:ee00:e65f:1ff:fe46:edc8]:/Vortraege-2023/IPv6}}
+ \end{itemize}
+ \item{Doku}
+ \begin{itemize}
+ \item{Tuxteam-Repo: \url{http://git.tuxteam.de/gitweb/?p=susannes-git/Ipv6-Vortrag.git;a=tree}}
+ \item{Bieftauben-Repo: \url{http://[fd00:feed:c0ff:ee00:e65f:1ff:fe46:edc9]/Vortraege-2023/IPv6}}
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\subsection{IPv6 aktivieren unter Linux}
+\begin{frame}[fragile]
+ \frametitle[Aktivierung]{IPv6 aktivieren}
+ \framesubtitle{unter Linux}
+ \begin{itemize}
+ \item{Kernelparameter}
+ \begin{minted}{bash}
+ sysctl -w net.ipv6.conf.all.disable_ipv6=0
+ sysctl -w net.ipv6.conf.<Interface>.disable_ipv6=0
+ sysctl -w net.ipv6.conf.all.accept_ra=1
+ \end{minted}
+ \item{systemd-networkd}
+ \begin{minted}{linux-config}
+ [Network]
+ LinkLocalAddressing=ipv6
+ IPv6AcceptRA=yes
+ \end{minted}
+ \item{Network-Manager}
+ \begin{minted}{bash}
+ nmcli connection modify <ConactionName> ipv6.method "auto"
+ nmcli connection <ConnectionName> up
+ \end{minted}
+ \item{...}
+ \end{itemize}
+\end{frame}
+
+\section[Aussehen]{Aussehen von IPv6}
+
+\subsection[Aufbau]{IPv6-Adressaufbau}
+\begin{frame}
+ \frametitle{IPv6-Adressaufbau}
+ \framesubtitle{Ein Rezept in Hexadezimal}
+ \begin{itemize}
+ \item{\textcolor{RedOrange}{128 Bit (Binär)}}
+ \item{Hexadezimal (0-9 und a-f) - (\textcolor{MidnightBlue}{RFC 5952}: alle Buchstaben kleinschreiben)}
+ \item{8 Blöcke mit je 4 Hexadezimal-Zahlen bilden}
+ \item{Blöcke durch : trennen}
+ \item{\textcolor{olive}{Präfix} und \textcolor{violet}{Interface Identifier} von jeweils 64 Bit bilden}
+ \item{Netzgröße als \textcolor{purple}{CIDR} anhängen}
+ \end{itemize}
+ \vspace{-0.3cm}
+ \begin{examples}
+ IPv6-Adresse:\\
+ \textcolor{olive}{2001:0db8:0000:0000}:\textcolor{violet}{cd71:37fe:e1ab:1ad1}\textcolor{purple}{/64}\\
+ \textcolor{olive}{Präfix}:\textcolor{violet}{Interface Identifier}/\textcolor{purple}{CIDR}
+ \end{examples}
+\end{frame}
+
+\begin{frame}
+ \frametitle{IPv6 Adress-Aufbau}
+ \framesubtitle{Abkürzungen}
+ \textcolor{MidnightBlue}{RFC 5952}
+ \begin{itemize}
+ \item{Führende Nullen im Block weglassen}
+ \vspace{-0.3cm}
+ \begin{examples}
+ \textcolor{BlueViolet}{2001:}\textcolor{yellow}{0}\textcolor{BlueViolet}{db8:}\textcolor{yellow}{000}\textcolor{BlueViolet}{0:}\textcolor{yellow}{000}\textcolor{BlueViolet}{0:}\textcolor{yellow}{000}\textcolor{BlueViolet}{0:}\textcolor{yellow}{000}\textcolor{BlueViolet}{0:}\textcolor{yellow}{000}\textcolor{BlueViolet}{0:}\textcolor{yellow}{000}\textcolor{BlueViolet}{1}\\
+ \textcolor{BlueViolet}{2001:db8:0:0:0:0:0:1}
+ \end{examples}
+ \vspace{-0.3cm}
+ \item{längste Blöcke von Nullen durch :: ersetzen}
+ \vspace{-0.3cm}
+ \begin{examples}
+ \textcolor{BlueViolet}{2001:db8:}\textcolor{yellow}{0:0:0:0:0}\textcolor{BlueViolet}{:1}\\
+ \textcolor{BlueViolet}{2001:db8::1}
+ \end{examples}
+ \vspace{-0.3cm}
+ \item{mehrere Blöcke gleich lang, nur ersten von links mit :: ersetzen}
+ \vspace{-0.2cm}
+ \begin{examples}
+ \textcolor{BlueViolet}{2001:db8:}\textcolor{yellow}{0:0}:\textcolor{BlueViolet}{4ad:}\textcolor{yellow}{0:0}\textcolor{BlueViolet}{:1}\\
+ \textcolor{BlueViolet}{2001:db8::4ad:}\textcolor{yellow}{0:0}\textcolor{BlueViolet}{:1}
+ \end{examples}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Rätsel-Time}
+ \framesubtitle{Was glaubt ihr?}
+ Wie wird Interface Identifier gebildert?
+ \begin{description}
+ \item[A] nur nach EUI-64 Standard
+ \item[B] entweder EUI-64 oder Privacy Extension
+ \item[C] es gibt mehr als 4 Methoden
+ \item[D] es gibt genau 3 nicht näher definierte Methoden
+ \end{description}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Rätsel-Time}
+ \framesubtitle{Was glaubt ihr?}
+ \begin{description}
+ \item[A] \textcolor{red}{nur nach EUI-64 Standard X} EUI-64 ist veraltet
+ \item[B] \textcolor{red}{entweder EUI-64 oder Privacy Extension X} Nicht mehr unter Linux
+ \item[C] \textcolor{green}{es gibt mehr als 4 Methoden \checkmark}
+ \item[D] \textcolor{red}{es gibt genau 3 nicht näher definierte Methoden X} siehe C
+ \end{description}
+\end{frame}
+
+\section{Interface Identifier}
+\subsection{EUI 64}
+
+\begin{frame}[fragile]
+ \frametitle{EUI 64}
+ \framesubtitle{ein Rezept}
+ \label{EUI}
+ \begin{columns}[T]
+ %\vspace{-1cm}
+ \begin{column}{0.5\textwidth}
+ \textcolor{MidnightBlue}{RFC 4291} - 2006
+ \begin{itemize}
+ \item{MAC-Adresse}
+ \only<|beamer:0>{\hyperlink{MAC}{\beamergotobutton{MAC-Adressen}}}
+ \vspace{-0.2cm}
+ \begin{examples}
+ \textcolor{Maroon}{52:54:00} \textcolor{Emerald}{0f:71:c0}
+ \end{examples}
+ \vspace{-0.3cm}
+ \item{ff:fe mittig einfügen}
+ \end{itemize}
+ \begin{example}
+ IPv6-Adresse: \textcolor{olive}{fe80::}\textcolor{Maroon}{5\textcolor{red}{0}54:00}ff:fe\textcolor{Emerald}{0f:71c0}
+ \end{example}
+ \end{column}
+ \pause
+ \begin{column}{0.5\textwidth}
+ Vorteile der EUI-64-Adresse:
+ \begin{itemize}
+ \item{Spezifische Werbung je nach verwendeter Hardware}
+ \item{Tracking über unbegrenzten Zeitraum}
+ \item{jedes Gerät im Internet ist eindeutig identifizierbar}
+ \item{...}
+ \end{itemize}
+ \end{column}
+ \end{columns}
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{EUI 64}
+ \framesubtitle{Konfiguration unter Linux}
+ \begin{itemize}
+ \item{Kernel:}
+ \begin{minted}{bash}
+ sysctl -w net.ipv6.conf.all.use_tempaddr=0
+ sysctl -w net.ipv6.conf.all.addr_gen_mode=0
+ \end{minted}
+ \item{dhcpcd.conf:}
+ \begin{minted}{linux-config}
+ slaac hwaddr
+ \end{minted}
+ \item{Network-Manager:}
+ \begin{minted}{bash}
+ nmcli con modify <ConnectionName> ipv6.addr-gen-mode eui64
+ \end{minted}
+ \item{systemd-networkd:}
+ \begin{minted}{linux-config}
+ [Network]
+ LinkLocalAddressing=ipv6
+ IPv6LinkLocalAddressGenerationMode=eui64
+ \end{minted}
+ \end{itemize}
+\end{frame}
+
+\subsubsection{Privacy Extension}
+\begin{frame}[fragile]
+ \frametitle{Privacy-Extension}
+ \framesubtitle{ein Bug/Feature Rezept}
+ \textcolor{MidnightBlue}{RFC 4941} - 2007
+ \begin{itemize}
+ \item{NTP-(Network Time Protocol) Zeitstempel}
+ \item{MAC-Adresse}
+ \end{itemize}
+ daraus MD5-Hash mit 64Bit Länge
+ \pause
+ \begin{itemize}
+ \item{Die Features:}
+ \begin{itemize}
+ \item{sind temporär}
+ \item{bestehen solange sie genutzt werden}
+ \item{nur für globale Adressen}
+ \end{itemize}
+ \item{Anti-Features:}
+ \begin{itemize}
+ \item{System- und Netzwerkmanagement kann schwieriger sein}
+ \item{Dienste (zB Webseiten) nach außen anbieten}
+ \item{Ende-zu-Ende-Dienste (VoIP, SIP, Messanger) nutzen}
+ \item{\textcolor{red}{Sicherheit von MD5-Summen?}}
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{Privacy-Extension}
+ \framesubtitle{unter Liunx einstellen}
+ \begin{itemize}
+ \item{Kernel:}
+ \begin{minted}{bash}
+ sysctl -w net.ipv6.conf.all.addr_gen_mode=0
+ sysctl -w net.ipv6.conf.eth0.use_tempaddr=2
+ \end{minted}
+ \item{Network-Manager:}
+ \begin{minted}{bash}
+ nmcli con modify <ConnectionName> ipv6.ip6-privacy 2
+ nmcli connection <ConnectionName> up
+ \end{minted}
+ \item{systemd-networkd:}
+ \begin{minted}{linux-config}
+ LinkLocalAddressing=ipv6
+ IPv6PrivacyExtensions=true
+ \end{minted}
+ \end{itemize}
+\end{frame}
+
+\subsection{Semantically Opaque Interface Identifiers}
+\begin{frame}[fragile]
+ \frametitle{Sematisch undurchsichtige Interface Identifier}
+ \framesubtitle{Semantically Opaque Interface Identifiers}
+ \begin{definition}
+ \small{\textbf{Semantically Opaque Interface Identifiers} nach \textcolor{MidnightBlue}{RFC 7217} (2014) werden aus Präfix, Interface-Name, Netzwerk\_ID, Duplicate Address Detection Counter und einem geheimen Schlüssel gebildet.}
+ \end{definition}
+ \small{
+ \begin{itemize}
+ \vspace{-0.3cm}
+ \item{Vorteil:}
+ \begin{itemize}
+ \item{stabiler Interface Identifier für jedes Subnetz}
+ \item{nicht vorhersagbar}
+ \item{nicht an die Hardware gebunden}
+ \item{für Serverdienste geeignet}
+ \end{itemize}
+ \item{Nachteil:}
+ \begin{itemize}
+ \item{Sicherstellung des einzigartigen Interface Identifier schwierig}
+ \item{wie der Secret-Key aussehen soll, ist nicht spezifiziert}
+ \item{evtl. Wartezeit bis zur Generierung}
+ \item{der statische Identifier macht Spoofing leichter}
+ \end{itemize}
+ \end{itemize}}
+\end{frame}
+\begin{frame}[fragile]
+ \frametitle{Sematisch undurchsichtige Interface Identifier}
+ \framesubtitle{Unter Linux einstellen:}
+ \footnotesize{
+ Im Kernel implementiert seit 2015
+ \begin{itemize}
+ \item{Kernel:}
+ \begin{minted}{bash}
+ sysctl -w net.ipv6.conf.all.addr_gen_mode=3
+ sysctl -w net.ipv6.conf.<Interface>.stable_secret=<SecretWert> #Secret festlegen
+ sysctl -w net.ipv6.conf.<Interface>.addr_gen_mode=2 #Secret benutzen
+ \end{minted}
+ \item{Network-Manager:}
+ \begin{minted}{bash}
+ nmcli con modify <ConnectionName> ipv6.ip6-privacy 0
+ nmcli con modify <ConnectionName> ipv6.addr-gen-mode stable-privacy
+ nmcli connection <ConnectionName> up
+ \end{minted}
+ \item{systemd-networkd:}
+ \begin{minted}{linux-config}
+ [Network]
+ LinkLocalAddressing=ipv6
+ IPv6LinkLocalAddressGenerationMode=stable-privacy
+ IPv6StableSecretAddress=<IPv6Adresse>
+ \end{minted}
+ \end{itemize}}
+\end{frame}
+
+\subsection{Temporary Address Extensions}
+\begin{frame}
+ \frametitle{Temporary Address Extensions}
+ \framesubtitle{Der neuste Interface Identifier}
+ \vspace{-0.2cm}
+ \footnotesize{
+ \begin{definition}
+ \vspace{-0.1cm}
+ \textbf{Temporary Address Extensions for Stateless Address Auto\-configuration in IPv6} nach \textcolor{MidnightBlue}{RFC 8981} (2021)\\
+ Temporäre Interface Identifiers werden nach dem gleichen Algorithmus, wie die se\-man\-tisch undurchsichtigen gebildet. Hier wird die Zeit als Epoch hinzugefügt. Die Adressen sollen nach einer bestimmten Zeit verfallen.
+ \end{definition}}
+ \vspace{-0.3cm}
+ \footnotesize{
+ \begin{itemize}
+ \item{Vorteil}
+ \begin{itemize}
+ \item{für End-Anwender gedacht}
+ \item{nicht auf globale Adressen begrenzt}
+ \item{bevorzugte Adress-Lebenszeit: 1 Tag}
+ \item{maximaler Gültigkeitszeitraum: 2 Tage}
+ \item{erlaubte Versuche, gültige Adresse zu generieren: 3}
+ \end{itemize}
+ \item{Nachteil:}
+ \begin{itemize}
+ \item{mehr Schwierigkeiten ein Netzwerk zu administieren}
+ \item{DNS: sehr wichtig, um bestimmte Services zu erreichen}
+ \item{reverse-DNS Auflösungen werden erschwert}
+ \end{itemize}
+ \end{itemize}
+ Noch nicht vollständig implementiert. Ausser in OpenBSD (slaacd)}
+ \vspace{0.3cm}
+\end{frame}
+
+\section[Adressen]{unterschiedliche IPv6-Adress-Bereiche}
+
+\subsection{Unicast}
+\begin{frame}
+ \frametitle{Was ist Unicast?}
+ \begin{definition}
+ Der Kommunikationsfluss zwischen ganz genau 2 spezifischen Teilnehmern.
+ \end{definition}
+ \includegraphics[width=\textwidth]{Unicast.png}
+\end{frame}
+
+\subsubsection{LinkLocalAdressen}
+\begin{frame}
+ \frametitle{Die Link Lokal Unicast Adresse}
+ \framesubtitle{IPv6 LLAs oder LLU}
+ \textcolor{MidnightBlue}{RFC 4291} - 2006
+ \begin{itemize}
+ \item{für in sich geschlossene lokale Netzwerke (zB: das LAN zu Hause)}
+ \item{wird immer erstellt, auch ohne Router}
+ \item{erkennbar am \textcolor{olive}{Präfix: fe80::/10}}
+ \item{eindeutige Interface Adressen}
+ \item{Gültigkeit auf Netzsegment beschränkt}
+ \item{für automatische Adresskonfiguration}
+ \item{wird nicht in andere Netze geroutet}
+ \end{itemize}
+ \begin{tabular}{c|c|c}
+ 10 Bits & 54 Bits & 64 Bits \\\hline
+ Präfix & 0 & Interface Indentifier\\\hline
+ \textcolor{olive}{fe80} & 0 &\textcolor{violet}{fcc1:87ff:fe6a:ead6}\\
+ \end{tabular}\\
+ \end{frame}
+
+\subsubsection{Zonen bei LinkLocalAdress}
+\begin{frame}[fragile]
+ \frametitle{Die Zone}
+ \framesubtitle{LinkLocalAdress?? In welcher Zone?}
+ \textcolor{MidnightBlue}{RFC 4007} - 2005
+ \includegraphics[width=\textwidth]{Zone.png}
+ \vspace{-0.5cm}
+ \begin{itemize}
+ \item{Jede Netzwerkschnittstelle ist eine Zone}
+ \item{\% an die LinkLocalAddress anhängen}
+ \item{unter Linux ist die Zone der Interface Name}
+ \end{itemize}
+ \begin{minted}{bash}
+ ip link
+ \end{minted}
+\end{frame}
+
+\subsubsection{Unique Local Unicast Adresses}
+
+\begin{frame}
+ \frametitle{Was ist Unique Local?}
+ \textcolor{MidnightBlue}{RFC 4193} - 2005\\
+ Struktur der Unique Local Address (ULA):
+ \begin{tabular}{c|c|c|c}
+ 8 Bits & 40 Bits & 16 Bits & 64 Bits \\\hline
+ Präfix & Globale ID &Subnet ID & Interface Indentifier\\\hline
+ \textcolor{olive}{fd0} & 0 & 0 & \textcolor{violet}{fcc1:87ff:fd80:ead6}\\
+ \end{tabular}
+ \begin{itemize}
+ \item{für lokale private Netze}
+ \item{halbwegs global eindeutig}
+ \item{kann in ein anderes Netz geroutet werden}
+ \item{müssen nicht registriert werden}
+ \item{\textcolor{olive}{Präfix fc00::/7} (global) oder \textcolor{olive}{fd00::/8} (local)}
+ \item{aktuell nur \textcolor{olive}{Präfix fd00::/8} vergeben}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Was ist Unique Lokal?}
+ \framesubtitle{Globale ID}
+ \begin{itemize}
+ \item{zufällig generiert}
+ \begin{itemize}
+ \item{Tageszeit}
+ \item{dem EUI-64 Identifier des Systems oder der MAC-Adresse}
+ \item{Tageszeit und Identifier vermischen, um daraus einen Key zu erstellen}
+ \item{SHA-1 Wert von 160bit länge aus dem Key errechnen}
+ \item{die letzten signifikanten 40 Bits als Global ID verwenden}
+ \end{itemize}
+ \item{es gab mehrere Versuche, ULAs zu registrieren (\url{https://ungleich.ch/u/projects/ipv6ula/})}
+ \item{Wird in Dual-Stack nicht bevorzugt benutzt(\textcolor{MidnightBlue}{RFC 6724)}}
+ \item{Nat66 sehr kompliziert...}
+ \item{Diskussion: ob ULAs überhaupt gebraucht werden}
+ \item{Site-local-Address sind bereits abgeschafft (\textcolor{MidnightBlue}{RFC 3879} 2004)}
+ \end{itemize}
+\end{frame}
+
+\subsubsection{Global Unicast Adresse}
+
+\begin{frame}
+ \frametitle{Was sind Globale Unicast Adressen?}
+ \textcolor{MidnightBlue}{RFC 3587} - 2003 Adressformat\\
+ \textcolor{MidnightBlue}{RFC 4291} - 2006\\
+ \begin{tabular}{c|c|c}
+ n Bits & m Bits & 64 Bits \\\hline
+ Präfix & Subnet ID & Interface Indentifier\\\hline
+ \textcolor{olive}{2001} & 1 &\textcolor{violet}{fcc1:87ff:fd80:ead6}\\
+ \end{tabular}\\
+ \begin{itemize}
+ \item{Der Präfix ist nicht genau spezifiziert}
+ \item{wenn die ersten 3 Bits des Präfix 0 sind ist kein Interface Identifier erforderlich}
+ \item{Momentan werden 2000::/3 verteilt:}
+ \item{Adressen werden im Internet geroutet}
+ \item{sind weltweit erreichbar}
+ \end{itemize}
+\end{frame}
+\begin{frame}
+ \frametitle{Was sind Globale Unicast Adressen?}
+ \framesubtitle{Hierarchische Struktur}
+ \center{\includegraphics[width=\textwidth]{Hierachie.png}}
+\end{frame}
+
+\begin{frame}
+ \frametitle{IPv6 - Unicast-Bereiche}
+ \framesubtitle{Struktur}
+ \begin{columns}[T]
+ %\vspace{-1cm}
+ \begin{column}{0.4\textwidth}
+ \begin{itemize}
+ \item{Zone \%}
+ \item{Host ::1/128}
+ \item{Link-Local fe80::/10}
+ \item{Unique Local fc00::/7}
+ \item{Site-Local veraltet}
+ \item{Global 2000::/3}
+ \end{itemize}
+ \end{column}
+ \begin{column}{0.6\textwidth}
+ \includegraphics[scale=0.15]{strukt.png}
+ \end{column}
+ \end{columns}
+\end{frame}
+
+\subsection{Multicast Adressen}
+
+\begin{frame}
+ \frametitle{Rätsel-Time}
+ \framesubtitle{Was glaubt ihr?}
+ Was ist richtig?
+ \begin{description}
+ \item[A] Broadcast ist auch in IPv6 vorhanden
+ \item[B] In IPv6 gibt es nur Unicast, Multicast und Anycast
+ \item[C] Anycast ist genau das gleiche, wie Broadcast
+ \item[D] Broadcast wird in IPv6 nicht verwendet
+ \end{description}
+ Hinweis: Broadcast spricht alle Adressen in einem Netz an.
+\end{frame}
+
+\begin{frame}
+ \frametitle{Rätsel-Time}
+ \framesubtitle{Was glaubt ihr?}
+ \begin{description}
+ \item[A] \textcolor{red}{Broadcast ist auch in IPv6 vorhanden X} Broadcast ist NICHT in IPv6 integriert
+ \item[B] \textcolor{green}{In IPv6 gibt es nur Unicast, Multicast und Anycast \checkmark}
+ \item[C] \textcolor{red}{Anycast ist genau das gleiche, wie Broadcast X} Anycast ist was anderes als Broadcast
+ \item[D] \textcolor{green}{Broadcast wird in IPv6 nicht verwendet \checkmark} eine ähnliche Funktionalität übernimmt Multicast
+ \end{description}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Was sind Multicast Adressen?}
+ \framesubtitle{Aufbau}
+ \label{Multicast}
+ \textcolor{MidnightBlue}{RFC 4291} - 2006\\
+ \textcolor{MidnightBlue}{RFC 7346} - 2014\\
+ \textcolor{MidnightBlue}{RFC 3306} - 2002\\
+ \textcolor{MidnightBlue}{RFC 3307} - 2002
+ \begin{tabular}{c|c|c|c|c|p{1.1cm}|c}
+ 8 Bit&4 Bit&4 Bit&8 Bit&8 Bit&64 Bit&32 Bits \\\hline
+ \textcolor{olive}{Präfix} & \textcolor{Goldenrod}{Flags} & \textcolor{orange}{Scope}& reserved & plen & Network prefix & Group ID\\\hline
+ \textcolor{olive}{ff} & \textcolor{Goldenrod}{0} & \textcolor{orange}{0} & 0 & plen & 0 & GroupID \\\hline
+ \end{tabular}
+ plen=anzahl der Bits im Netzwerk Prefix Feld\\
+ network prefix = Prefix des Subnetzes zu dem die Multicast Adresse gehört\\
+ Group ID = entweder Zufallszahl bei dynamischen Adressen oder fest von der IANA für bestimmte Services vergeben
+ \only<|beamer:0>{\hyperlink{Multicast Scope}{\beamergotobutton{Multicast Group ID}}}
+ \end{frame}
+\begin{frame}
+ \frametitle{Was sind Multicast Adressen?}
+ \framesubtitle{good to know}
+ \includegraphics[width=\textwidth]{Multicast.png}
+ \vspace{-0.5cm}
+ \begin{itemize}
+ \item{sprechen Gruppen von Adressen an}
+ \item{es wird zwischen dauerhaften und dynamischen Adressen unterschieden}
+ \item{ein Gerät kann zu vielen Multicast Gruppen gehören}
+ \item{IANA betreibt Multicast Address Space Registry \tiny{(\url{https://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml}})}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}[shrink]
+ \frametitle{Multicast Adressen}
+ \framesubtitle{Beispiele bekannter Multicast Adressen}
+ \begin{itemize}
+ \item{ff01::1 - All Nodes Interface lokal (loopback)}
+ \item{ff01::2 - All Routers Interface lokal (loopback)}
+ \item{ff02::1 - All Nodes Link lokal (Bsp. Broadcast)}
+ \item{ff02::2 - All Routers Link lokal, adressiert alle Router}
+ \item{ff02::5-6 - All OSPF Routers Link lokal, adressiert alle OSPF Router}
+ \item{ff02::7-8 - All IS-IS Routers Link lokal, adressiert alle IS-IS Router}
+ \item{ff02::9 - All RIP Routers Link lokal, adressiert alle RIP Router}
+ \item{ff05::2 - All Routers Sitelokal, adressiert alle Router einer Site (Pakete dürfen geroutet werden, aber nicht in Internet).}
+ \item{ff05::1:3 - All DHCP-Server in der Site}
+ \end{itemize}
+ \tiny{weitere Multicast-Adressen: \url{https://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml}}
+ \note[item]{bei lokal verlassen die Pakete das Teilnetz nicht}
+\end{frame}
+
+\subsection{Anycast Adressen}
+\begin{frame}
+ \frametitle{Was sind Anycast Adressen}
+ \textcolor{MidnightBlue}{RFC 4291} - 2006\\
+ \vspace{-0.5cm}
+\center{
+ \includegraphics[scale=0.4]{Anicast.png}
+ \begin{tabular}{c|c|c}
+ \textcolor{olive}{n Bits} & \textcolor{violet}{128-n bits}\\\hline
+ \textcolor{olive}{Subnet Präfix} & \textcolor{violet}{Interface Identifier}\\\hline
+ \textcolor{olive}{fd::}&0\\
+ \end{tabular}}
+
+ \begin{itemize}
+ \item{kann auf mehreren Interfaces konfiguriert sein}
+ \item{spricht nur die nächste Adresse an}
+ \item{haben keinen speziellen Adressbereich}
+ \item{sind Unicast-Adressen, mit dem Interface Identifier auf null gesetzt}
+ \item{Nutzen: zB LoadBalancing}
+ \end{itemize}
+\end{frame}
+
+\section{besondere IPv6 Adressen}
+
+\begin{frame}[shrink]
+ \frametitle{weitere IPv6-Adressen}
+ \framesubtitle{besondere IP-Adressen}
+ \begin{description}
+ \item[::/128] nicht spezifizierte, nicht zugewiesene Adresse.
+ \item[::/0] Standard-Route, bzw. es wurde keine Route gefunden.
+ \item[::1/128] loopback-Adresse
+ \item[2001:db8::/32] nicht routbare Adressen für Dokumentationszwecke
+ \item[2001::/32] Teredo-Adressen
+ \item[2002::/16] 6to4
+ \item[3ffe::/16] bone6-Projekt der Telekom, wurde 2006 zurück an IANA gegeben
+ \end{description}
+ weitere besondere IPv6-Adressen \url{https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml}
+\end{frame}
+
+\section{HandsON}
+\subsection{ping}
+\begin{frame}[fragile]
+ \frametitle{Das Test-Netzwerk}
+ \framesubtitle{IP-Adressen checken und pingen}
+ \begin{itemize}
+ \item{Findet den WLAN-AccessPoint mit der ESSID Brieftauben-Wlan}
+ \item{Verbindet euch mit dem WLAN, es gibt kein Passwort}
+ \item{IP-Adresse überprüfen}
+ \mint{bash}{ip -6 address show}
+ \item{pingen}
+ \begin{minted}{bash}
+ ping -6 fe80::e65f:1ff:fe46:edc9%<zone>
+ ping6 fd00:feed:c0ff:ee00:e65f:1ff:fe46:edc9
+ ping -6 ff02::1%<zone> # alle Nodes local
+ ping6 ff02::2%<zone> #alle Router local
+ \end{minted}
+ \item{\textcolor{red}{Vorsicht} man kann Unicast Adressen auch ohne Zone pingen}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Rätsel-Time}
+ \framesubtitle{Was glaubt ihr?}
+ Welche IPv6 Adresse ist gültig?
+ \begin{description}
+ \item[A] fe80:asdf::/20
+ \item[B] ::1/128
+ \item[C] fdb0:0cfe:ed::/64
+ \item[D] 2001:db8::/32
+ \end{description}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Rätsel-Time}
+ \framesubtitle{Was glaubt ihr?}
+ \begin{description}
+ \item[A] \textcolor{red}{fe80:asdf::/20} X fe80::$<$InterfaceIdentifier$>$
+ \item[B] \textcolor{green}{::1/128} \checkmark für loopback
+ \item[C] \textcolor{green}{fdb0:0cfe:ed::/64} \checkmark Unique Local Adress
+ \item[D] \textcolor{orange}{2001:db8::/32} \checkmark nur für „Dokumentationen \textcolor{MidnightBlue}{RFC 3849} - 2004“
+ \end{description}
+\end{frame}
+
+\subsection{ssh}
+
+\begin{frame}[fragile]
+ \frametitle{SSH}
+ \framesubtitle{mit IPv6}
+ \begin{itemize}
+ \item{Wlan SSID: Brieftauben-Wlan !kein Passwort!}
+ \item{ssh}
+ \begin{itemize}
+ \item{ssh User: dove}
+ \item{ssh Passwort: IPoAC}
+ \begin{minted}[breakafter=:]{bash}
+ ssh <user>@fe80::e65f:1ff:fe46:edc9%<zone>
+ ssh <user>@fd00:feed:c0ff:ee00:e65f:1ff:fe46:edc9
+ \end{minted}
+ \item{hier ist die \textcolor{red}{Zone wichtig} bei LLA's}
+ \item{chatten geht mit wall}
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\subsection{curl}
+\begin{frame}[fragile]
+ \frametitle{Webseiten über IPv6}
+ \framesubtitle{mit curl}
+ \begin{itemize}
+ \item{Wlan SSID: Brieftauben-Wlan !kein Passwort!}
+ \begin{minted}[breakafter=:]{bash}
+ curl -I "http://[fe80::e65f:1ff:fe46:edc9%<zone>]"
+ curl -I "http://[fd00:feed:c0ff:ee00:e65f:1ff:fe46:edc9]"
+ \end{minted}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Rätsel-Time}
+ \framesubtitle{Was glaubt ihr?}
+ IPv6 Adressen im Grafischen Browser
+ \begin{description}
+ \item[A] IPv6 Adressen kann man im Webbrowser nicht aufrufen
+ \item[B] Webbrowser können nicht mit IP-Adressen umgehen
+ \item[C] IPv6-Adressen müssen im Webbrowser zwischen [ ] geschrieben werden
+ \item[D] Link-Local-Adressen kann man im Webbrowser nicht aufrufen nur ULAs und GUAs
+ \end{description}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Rätsel-Time}
+ \framesubtitle{Was glaubt ihr?}
+ \begin{description}
+ \item[A] \textcolor{red}{IPv6 Adressen kann man im Webbrowser nicht aufrufen} X
+ \item[B] \textcolor{red}{Webbrowser können nicht mit IP-Adressen umgehen} X
+ \item[C] \textcolor{green}{IPv6-Adressen müssen im Webbrowser zwischen [ ] geschrieben werden} \checkmark
+ \item[D] \textcolor{green}{Link-Local-Adressen kann man im Webbrowser nicht aufrufen nur ULAs und GUAs} \checkmark
+ \end{description}
+\end{frame}
+
+\subsection{Webbrowser}
+\begin{frame}
+ \frametitle{Webbrowser}
+ \framesubtitle{Webseiten mit IPv6}
+ \begin{itemize}
+ \item{Wlan SSID: Brieftauben-Wlan !kein Passwort!}
+ \item{\url{http://[fd00:feed:c0ff:ee00:e65f:1ff:fe46:edc8]}}
+ \item{ladet euch das Git-Projekt IPv6 herunter}
+ \end{itemize}
+\end{frame}
+
+\section[SLAAC]{IPv6 Adressen mittels SLAAC}
+
+\begin{frame}
+ \frametitle{Autokonfiguration(SLAAC)}
+ \framesubtitle{Stateless Address Auto Configuration}
+ \vspace{-0.2cm}
+ \small{
+ \textcolor{MidnightBlue}{RFC 4862} - 2007
+ \vspace{-0.2cm}
+ \begin{definition}
+ \textbf{StateLessAddressAutoConfiguration} Zustandslose Autokonfiguration einer IPv6-Adresse pro Netzwerk Interface, dabei wird die LinkLocal (\textcolor{olive}{fe80::}) und Globale Adresse (\textcolor{olive}{2000::}) gebildet.
+ \end{definition}
+ \vspace{-0.3cm}
+ \begin{itemize}
+ \item{nur bei Multicast fähigen Interfaces}
+ \item{erfordert kein manuelles Eingreifen}
+ \item{Duplicate Address Dectection (DAD)}
+ \item{nutzt lokale Informationen und Router Advertisements}
+ \item{wenn kein Router vorhanden, nur die Link Local Adresse}
+ \item{kann auch mit DHCPv6 benutzt werden, mehr Kontrolle}
+ \item{Router Solications wird auf allen Router Multicast Gruppen ausgeführt}
+ \item{wenn Präfix und Interface Identifier zusammen nicht 128 bit ergeben, wird keine Adresse gebildet}
+ \end{itemize}}
+ \vspace{0.5cm}
+\end{frame}
+
+\subsection{Protokolle im Netzwerk}
+\begin{frame}
+ \frametitle{weitere IPv6 Protokolle}
+ \label{Protokolle}
+ %\framesubtitle{}
+ Informationen im Netzwerk ermitteln mit ICMP - alias ping
+ \begin{definition}
+ \small{
+ NDP=Neighbor Discovery Protocol \only<|beamer:0>{\hyperlink{NDP}{\beamergotobutton{NDP}}}\\
+ \textcolor{MidnightBlue}{RFC 3122 (2001), 4861 (2007), 9131 (2021)}\\
+ Wird verwendet um im selben Netz andere Teilnehmer und dazugehörige Informationen zu ermitteln.}
+ \end{definition}
+ \pause
+ \begin{definition}
+ \small{
+ DAD=Duplicate Address Dectection \only<|beamer:0>{\hyperlink{DAD}{\beamergotobutton{DAD}}}\\
+ \textcolor{MidnightBlue}{RFC 4429 (2006), 4862 (2007), 7527 (2015)}\\
+ Soll Adress Konfikte verhindern, und doppelt vergebene Adressen erkennen. Es besteht die Pflicht es zu verwenden.}
+ \end{definition}
+ \pause
+ \begin{definition}
+ \small{
+ NUD=Neighbor Unreachability Dectection \only<|beamer:0>{\hyperlink{NUD}{\beamergotobutton{NUD}}}\\
+ \textcolor{MidnightBlue}{RFC 4861 (2007), 7048 (2014)}\\
+ ermittelt, ob die Adresse noch erreichbar ist.}
+ \end{definition}
+\end{frame}
+
+\begin{frame}
+ \frametitle{weitere IPv6 Protokolle}
+ \begin{definition}
+ RS=Router-Solicitation \only<|beamer:0>{\hyperlink{RS}{\beamergotobutton{RS}}}\\
+ \textcolor{MidnightBlue}{RFC 4861 (2007)}\\
+ ICMP Multicast-Nachricht mit der ein Router Advertisement angefordert wird.
+ \end{definition}
+ \pause
+ \begin{definition}
+ RA=Router-Advertisement \only<|beamer:0>{\hyperlink{RA}{\beamergotobutton{RA}}}\\
+ \textcolor{MidnightBlue}{RFC 4861 (2007)}\\
+ ICMP Nachricht mit der ein Router sein vorhandensein im Netz bekannt gibt und verschiedene Informationen an die Teilnehmer des Netzes übermittelt. Wird in regelmäßigen Abständen gesendet.
+ \end{definition}
+\end{frame}
+
+
+\begin{frame}[fragile]
+ \frametitle{Das NDP}
+ \framesubtitle{Neighbor Discovery Protocol unter Linux}
+ Informationen aus dem Neighbor Discovery Cache abrufen:
+ \begin{minted}{bash}
+ ip -6 maddress show #multicast Adressen
+ ip -6 neighbour show #aktueller Neighbour Cache im Kernel
+ ip -6 neigh get <ip> dev <interface> #listet Informationen aus dem Cache zu angegeben Adresse auf dem Interface auf
+ ip -6 neigh show unused # listet alle Nachbarn, die gerade nicht benutzt werden auf
+ ip -6 neigh show to <IP> #listet Informationen zu der Adresse
+ ip -6 neigh show dev <Interface> #listet Informationen zu den Adressen im Interface
+ ip -6 route show table all #zeigt die IPv6 Routen an
+ \end{minted}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Rätsel-Time}
+ \framesubtitle{Was glaubt ihr?}
+ Wenn die Duplicate Adress Detection anschlägt, passiert folgendes:
+ \begin{description}
+ \item[A] sollte das Interface deaktiviert werden
+ \item[B] sollte ein Systemfehler geloggt werden
+ \item[C] wurde der Interface Identifier nicht basierend auf der MAC-Adresse gebildet, könnte vielleicht fortgefahren werden
+ \item[D] wird eine neue Adresse generiert
+ \end{description}
+ Hinweis: Nachdem was der RFC vorschreibt
+\end{frame}
+
+\begin{frame}
+ \frametitle{Rätsel-Time}
+ Was glaubt ihr?\\
+ \begin{description}
+ \item[A] \textcolor{green}{sollte das Interface deaktiviert werden} \checkmark
+ \item[B] \textcolor{green}{sollte ein Systemfehler geloggt werden} \checkmark
+ \item[C] \textcolor{green}{wurde der Interface Identifier nicht basierend auf der MAC-Adresse gebildet, könnte vielleicht fortgefahren werden} \checkmark
+ \item[D] \textcolor{red}{wird eine neue Adresse generiert} X
+ \end{description}
+ \note{\vspace{-1.5cm}rfc7527:\\
+ When a genuine duplicate is detected, the node follows the manual intervention specified in Section 5.4.5 of [RFC4862].\\}
+\end{frame}
+
+\begin{frame}[fragile]
+ \frametitle{Duplicate Address Dectection und Neighbor Unreachability Dectection}
+ \framesubtitle{DAD und NUD unter Linux}
+ DAD Konfiguration im Kernel
+ \begin{minted}{bash}
+ sysctl -w net.ipv6.conf.accept_dad=0 #DAD disablen
+ sysctl -w net.ipv6.conf.accept_dad=1 #DAD enablen
+ sysctl -w net.ipv6.conf.accept_dad=2 #DAD disablen wenn Doppelte Adresse gefunden und Interface Identifier auf MAC-Adresse basierend
+ \end{minted}
+ NUD einsehen unter Linux:
+ \begin{minted}{bash}
+ ip -6 neighbour show nud all #status der NUD im Cache
+ ip monitor #zeigt die Statusänderung an
+ \end{minted}
+\end{frame}
+
+
+\section[IPv6 Bedingungen]{zwingende Bedingungen für IPv6}
+\begin{frame}
+ \frametitle{Voraussetzungen für IPv6}
+ \framesubtitle{Zusammenfassung}
+ \textcolor{MidnightBlue}{RFC 8504} - 2019
+ \begin{itemize}
+ \item{Fähigkeit IPv6-Paket zu empfangen und zu senden}
+ \item{zu gewährleisten ist (MUST):}
+ \begin{itemize}
+ \item{Routererkennung}
+ \item{Präfixerkennung}
+ \item{NUD für alle Pfade zwischen Hosts und Nachbar Nodes}
+ \item{RA und RS}
+ \item{Pfad MTU und Größen-Erkennung}
+ \item{ICMPv6 (ping)}
+ \item{Multicast}
+ \item{SLAAC}
+ \item{DAD}
+ \item{DNS Option in RA}
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\section[Transport]{Transportmöglichkeiten für IPv6}
+
+\subsection{IPoAC}
+\begin{frame}
+ \frametitle{Tauben und IPv6}
+ \only<|beamer:0>{alternative Transportmöglichkeit: \hyperlink{IPoSN}{\beamergotobutton{IPoSN}}}
+ \center{\includegraphics[scale=0.4]{Taube03.jpg}}
+\end{frame}
+\begin{frame}
+ \frametitle{Brief-Tauben und IPv6}
+ \framesubtitle{\textcolor{RedViolet}{RFC 6214} 2011 IPoAC}
+ \label{IPoAC}
+ \vspace{-0.2cm}
+ \begin{itemize}
+ \item{Allgemeines}
+ \begin{itemize}
+ \item{sehr instabil Übertragungswege, je nach Wind\-verhältnissen}
+ \item{bekanntes Risiko einer Infektion mit H5N1 Virus, Sicher\-stel\-lung von angemessene Erkennung und Quarantäne Maßnahmen}
+ \end{itemize}
+ \item{IPv6 Bedingungen}
+ \begin{itemize}
+ \item{LinkLocal Adressen können nicht gebildet werden, jegliche Form von Link-Layer (Sicherungsschicht) fehlt}
+ \item{es kann nur das andere Ende des Links adressiert werden}
+ \item{Keine Möglichkeit Unicast Adressen zu einer LinkLocal Adresse zu mappen}
+ \item{Neigbour Discovery ist unmöglich}
+ \item{SLAAC sollte nicht versucht werden zu implementieren, eine stabiler Interface Identifier ist nicht zu bilden}
+ \item{versuche Multicast zu implementieren, führten zu erhöhter Geräuschübertragung, was zu fehlerhaften Prüfsummen führt}
+ \end{itemize}
+ \end{itemize}
+ \vspace{0.4cm}
+ \note[item]{Es gibt Beweise, dass einige Avian Carriers (Raubvögel) andere Avian Carriers gegessen haben und dann den gegessenen Packetinhalt getragen haben.}
+ \note[item]{neue Tunnel für IPv4 in IPv6 und umgekehrt - Aber der Entpackungs-Mechanismus ist noch unklar}
+\end{frame}
+
+\begin{frame}
+ \frametitle{IPv6 mit IPoAC}
+ \framesubtitle{Zusammenfassung}
+ \begin{itemize}
+ \item{Routererkennung \textcolor{red}{X}}
+ \item{Präfixerkennung \textcolor{green}{\checkmark}}
+ \item{NUD für alle Pfade zwischen Hosts und Nachbar Nodes \textcolor{red}{X}}
+ \item{RA und RS \textcolor{red}{X}}
+ \item{Pfad MTU und Größen-Erkennung \textcolor{green}{\checkmark}}
+ \item{ICMPv6 (ping) \textcolor{orange}{\checkmark}}
+ \item{Multicast \textcolor{orange}{\checkmark}}
+ \item{SLAAC \textcolor{red}{X}}
+ \item{DAD \textcolor{red}{X}}
+ \item{DNS Option in RA \textcolor{green}{\checkmark}}
+ \end{itemize}
+\end{frame}
+
+\subsubsection[IPoAC Lösungen]{Mögliche Lösungen für IPoAC mit IPv6}
+\begin{frame}
+ \frametitle{Brief-Tauben und IPv6 Lösungen}
+ \framesubtitle{Vorschläge}
+ \begin{itemize}
+ \item{Using 127-Bit IPv6 \textcolor{MidnightBlue}{Prefixe RFC 6164} - 2011 und \textcolor{RedViolet}{6214} 2011}
+ \begin{itemize}
+ \item{der End-Punkt des Links ist unnummiert oder mit einem /127 prefix und einer statischen Addresse versehen (\textcolor{RedViolet}{RFC 6214})}
+ \item{nur für point-to-point Kommunikation zwischen Routern}
+ \item{führt zu Neigbour Discovery Exhaustion (hin und herschicken von Tauben)}
+ \end{itemize}
+ \item{Neighbor Discovery Optimization for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) \textcolor{MidnightBlue}{RFC 6775} - 2017}
+ \begin{itemize}
+ \item{Interface Identifier wird mit Hilfe von RA gebildet}
+ \item{DAD wird unterstützt (nur wenn SLAAC benutzt wird)}
+ \item{Es werden keine NS Nachrichten unterstützt}
+ \item{bei Adress Initialisierung wird erst RS Nachricht abgewartet bevor die Adresse gebildet wird}
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Brief-Tauben und IPv6 Lösungen}
+ \framesubtitle{Vorschläge}
+ \begin{itemize}
+ \item{Routing for RPL (Routing Protocol for Low-Power and Lossy Networks) Leaves \textcolor{MidnightBlue}{RFC 9010} - 2021 (update von \textcolor{MidnightBlue}{6775})}
+ \begin{itemize}
+ \item{IPv6 Adressen werden als Host-Routen bekannt gegeben}
+ \item{kommuniziert nur mit einem Router}
+ \item{Dort findet eine ND Registratur statt}
+ \item{Ziel ist, das weniger Nachrichten mit dem Host ausgetauscht werden}
+ \item{DAD und ND-Messages werden zwischen dem Router und dem Host ausgetauscht}
+ \end{itemize}
+ \item{Complex Addressing in IPv6 \textcolor{RedViolet}{RFC 8135} - 2017}
+ \begin{itemize}
+ \item{Flying Addresses}
+ benutzten den ICAO Class G Luftraum unterhalb der Wolken und können von unteren Layer Technologien erwartet werden
+ \item{Floating Addresses}
+ werden mit Panzertape am Gerät befestigt und garantieren KEINE Wasserdichte des Gerätes
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Brief-Tauben und IPv6}
+ \framesubtitle{Real-Life Beispiel}
+ \begin{itemize}
+ \item{Scenic Routing for IPv6 \textcolor{RedViolet}{RFC 7511} - 2015}
+ \begin{itemize}
+ \item{zur Unterstützung Grüner IT}
+ \item{Pakete werden so geroutet, dass sie möglichst viel frische Luft bekommen}
+ \item{dafür werden Routen basierend auf IPoAC gewählt}
+ \item{im Scenic Routing Option Layout ist der Option Type für 0x0A (On Air) vorgesehen}
+ \item{benutzt immer den längsten AC-Pfad}
+ \end{itemize}
+ \end{itemize}
+\end{frame}
+
+\subsection[IPoB]{IPv4 over Buritos}
+\begin{frame}[fragile,shrink]
+ \frametitle{IPv4 over Burrito Carriers}
+ \framesubtitle{\textcolor{RedViolet}{RFC Draft 2005} IPoBC}
+ \label{IPoBC}
+ Größe: 20 Byte (160 Bits)
+ \vspace{0.2cm}
+ \vfill
+ \begin{bytefield}{32}
+ \bitheader{0,4,8,12,16,20,24,28,32} \\
+ \bitbox{4}{\color{green}\tiny{offensichtlich}} & \bitbox{4}{\color{red}\small{Zwiebel}} & \bitbox{8}{\color{blue}Jalapenos} & \bitbox{16}{\color{blue}Phyische Länge (mm)}\\
+ \bitbox{16}{\color{red}Nummer auf der Folie} & \bitbox{3}{\color{red}\tiny{Bohnen\\Art}} & \bitbox{13}{\color{red}Anzahl der Bohnen}\\
+ \bitbox{8}{\color{blue}{aAz}} & \bitbox{8}{\color{blue}Guacamole} & \bitbox{16}{\color{red}Rezept}\\
+ \bitbox{32}{\color{green}Salat}\\
+ \bitbox{32}{\color{green}Reis}\\
+ \bitbox{32}{\color{red}Rindfleisch}
+ \end{bytefield}
+ Guten Appetit!\\
+ \small{Legende: aAz $=$ angeforderte Auslieferungszeit}
+ \only<|beamer:0>{\hyperlink{Header}{\beamergotobutton{IPv6-Header}}}
+\end{frame}
+
+\section{ENDE}
+\begin{frame}
+ \frametitle{Ende}
+ \centering
+ \huge{Vielen Dank\\
+ fürs Zuhören!\\
+ }\vspace{1cm}
+ \small{Kontaktmöglichkeiten:\\
+ email: ratten@buecherratten.in-berlin.de\\
+ jabber: buecherratten@jabber.in-berlin.de\\
+ Repro: \url{http://git.tuxteam.de/gitweb/?p=susannes-git/Ipv6-Vortrag.git;a=tree}
+ }
+\end{frame}
+
+%folien fürs Handout
+
+\begin{frame}<1-| beamer:0>
+ \frametitle{MAC-Adressen}
+ \framesubtitle{Die Adresse der Hardware}
+ \label{MAC}
+ \begin{definition}
+ \small{ MAC-Adresse = Media-Access-Control-Adresse nach IEEE 802.3 und IEEE 802.11\\
+ Andere Namen sind Ethernet-ID, Airport-ID, Wi-Fi-Adresse (Apple) oder Physikalische Adresse (Microsoft).}
+ \end{definition}
+ \begin{tabular}{l|l|l}
+ Byte & 1. 2. 3. & 4. 5. 6. \\\hline
+ Bedeutung & Hersteller Kennung & Geräte Kennung \\
+ Beispiel & 52:54:00 & 0f:71:c0 \\
+ \end{tabular}
+ \begin{itemize}
+ \item{sollte eindeutig sein (kann jeder spoofen)}
+ \item{Länge: 48 Bit in 12 stelliger Hexadezimalzahl}
+ \item{Zusammensetzung aus Hersteller- und Geräte-Kennung}
+ \item{gehen voraussichtlich im Jahr 2100 aus (rechnerisch)}
+ \end{itemize}
+ \hyperlink{EUI}{\beamerreturnbutton{Back to EUI 64}}
+\end{frame}
+
+\begin{frame}<1-| beamer:0>
+ \frametitle{Multicast Adressen}
+ \framesubtitle{Scope Überblick}
+ \label{Multicast Scope}
+ \small{
+ Die Scopes haben folgende Bedeutung:\\
+ \begin{tabular}{c|c|p{5cm}}
+ Wert&Scope&Beschreibung\\\hline
+ 0&reserviert&\\\hline
+ 1&Interface-Local&Loopback\\\hline
+ 2&Link Local&nur im lokalen Subnetz\\\hline
+ 3&Realm-Local&für eine bestimmte Netzwerk-Technologie (zBsp Mesh) \\\hline
+ 4&Admin-Local&Geltungsbereich vom Router-Admin definiert\\\hline
+ 5&Site-local& für den Bereich einer lokalen Site\\\hline
+ 8&Organisation-Local& über mehrere Sites aber gleiches logisches Netz\\\hline
+ E&Global&Globaler Multicast\\\hline
+ \end{tabular}
+ Fehlende Scope sind nicht zugewiesen und dürfen zur Definierung von Multicast-Regionen verwendet werden.
+ \hyperlink{Multicast}{\beamerreturnbutton{Back to Multicast}}}
+\end{frame}
+
+\begin{frame}<1-| beamer:0>[fragile,shrink]
+ \frametitle{Das innere der IPv6-Pakete}
+ \framesubtitle{IPv6-Header}
+ \label{Header}
+ \textcolor{MidnightBlue}{RFC 8200} (2017) ursprünglich 1995 \textcolor{MidnightBlue}{RFC 1883} \\
+ Größe: 40 Byte (320Bits)
+ \vspace{0.3cm}
+ \vfill
+ \begin{bytefield}{32}
+ \bitheader{0,4,8,12,16,20,24,28,32} \\
+ \bitbox{4}{\color{DarkGreen}Version} & \bitbox{8}{\color{blue}Traffic Class} & \bitbox{20}{\color{blue}Flow Label}\\
+ \bitbox{16}{\color{blue}Payload Length} & \bitbox{8}{\color{blue}Next Header} & \bitbox{8}{\color{blue}Hop Limit}\\
+ \wordbox{4}{\color{DarkGreen}Quell-IP-Adresse}\\
+ \wordbox{4}{\color{DarkGreen}Ziel-IP-Adresse}\\
+ \end{bytefield}
+ \vspace{0.3cm}
+ legende: Grün auch in ipv4 / Blau verändert in IPv6
+\end{frame}
+
+\begin{frame}<1-| beamer:0>
+ \frametitle{Das innere der IPv6-Pakete}
+ \framesubtitle{Felder des IP-Headers}
+ \scriptsize{
+ \begin{tabular}{p{0.13\textwidth}|l|p{0.76\textwidth}}
+ Feld & Bit & Beschreibung \\\hline
+ Version & 4 & Protokoll Version \\\hline
+ Traffic Class & 8 & Priorität des Pakets beim Routen (Quality of Service / QoS)\\\hline
+ Flow Label & 20 & Weiterer Marker für QoS bei Echtzeitanwendungen und Streaming. Pakete mit gleichem Flow-Wert werden gleich behandelt.\\\hline
+ Payload Length & 16 & Netto-Länge des Datenpakets (= Payload + Header Extensions)\\\hline
+ Next Header & 8 & Identifiziert den Typ des nächsten Kopfdatenbereiches, dieser kann entweder einen Erweiterungs-Kopfdatenbereich oder ein Protokoll höherer Schicht bezeichnen, wie z. B. TCP\\\hline
+ Hop Limit & 8 & Maximale Anzahl von Router-Durchläufen (Hops). Bei jedem Hop wird dieser Zähler um eins dekrementiert. Beim Stand null wird das Paket verworfen. \\\hline
+ Quell-IP-Adresse & 128 & An dieser Stelle steht die IP-Adresse der Station, die das IP-Paket abgeschickt hat.\\\hline
+ Ziel-IP-Adresse & 128 & An dieser Stelle steht die IP-Adresse der Station/Stationen, für die das IP-Paket bestimmt ist.\\\hline
+ \end{tabular}
+ \hyperlink{IPoBC}{\beamerreturnbutton{Back to IPoBC}}}
+\end{frame}
+
+\begin{frame}<1-| beamer:0>[shrink]
+ \frametitle{Das NDP}
+ \framesubtitle{Neighbor Discovery Protocol}
+ \label{NDP}
+ \textcolor{MidnightBlue}{RFC 4861} - 2007\\
+ \textcolor{MidnightBlue}{RFC 9131} - 2021\\
+ \textcolor{MidnightBlue}{RFC 3122} - 2001
+ \begin{definition}
+ Wird verwendet um im selben Netz andere Teilnehmer und dazugehörige Informationen zu ermitteln.
+ \end{definition}
+ \vspace{-0.3cm}
+ \begin{itemize}
+ \item{erlaubt das erkennen von Link Local Adressen}
+ \item{nutzt ICMP (Internet Controll Message Protocol alias ping)}
+ \item{ermittelt:}
+ \begin{itemize}
+ \item{Präfixe (Prefix Discovery)}
+ \item{Router (Router Discovery)}
+ \item{Ermittelt die MTU (maximale Transmission Unit)}
+ \item{Hop Limit und den nächsten Hop}
+ \item{Doppelte Adressen (DAD)}
+ \item{unerreichbare Teilnehmer (NUD)}
+ \item{Umleitungen (Redirects)}
+ \end{itemize}
+ \end{itemize}
+ \hyperlink{Protokolle}{\beamerreturnbutton{Back to weitere Protokolle}}
+ \vspace{0.3cm}
+\end{frame}
+
+%% \subsection[DAD]{Duplicate Address Dectection}
+
+\begin{frame}<1-| beamer:0>[fragile]
+ \frametitle{Duplicate Address Dectection}
+ \framesubtitle{doppelte Addressen aufspüren}
+ \label{DAD}
+ \textcolor{MidnightBlue}{RFC 7527} - 2015\\
+ \textcolor{MidnightBlue}{RFC 4862} - 2007\\
+ \textcolor{MidnightBlue}{RFC 4429} - 2006
+ \begin{definition}
+ Soll Adress Konfikte verhindern, und doppelt vergebene Adressen erkennen.
+ \end{definition}
+ \vspace{-0.3cm}
+ \begin{enumerate}
+ \item{ermittelte Unicast-Adresse}
+ \item{sende Neigbour Solicitation-Nachricht (ICMP)}
+ \item{verwende eine unspezifische Adresse als Quell-Adresse}
+ %\item{die ermittelte Unicast Adresse wird als Solicited Multicast Adresse umgewandelt und als Zieladresse verwendet}
+ \item{die gewünschte ermittelte Unicast Adresse wird im ICMP-Packet als Zieladresse mit eingetragen}
+ \end{enumerate}
+ \begin{itemize}
+ \item{Pflicht DAD bei allen Adressen zu verwenden}
+ \item{DAD kann betriebssystemseitig ausgeschaltet werden}
+ \end{itemize}
+ \hyperlink{Protokolle}{\beamerreturnbutton{Back to weitere Protokolle}}
+\end{frame}
+
+%\subsection[NUD]{Neighbor Unreachability Dectection}
+
+\begin{frame}<1-| beamer:0>[fragile]
+ \frametitle{Neighbor Unreachability Dectection}
+ \framesubtitle{Erreichbarkeit der Umgebung}
+ \label{NUD}
+ \textcolor{MidnightBlue}{RFC 7048} - 2014\\
+ \textcolor{MidnightBlue}{RFC 4861} - 2007
+ \begin{definition}
+ ermittelt, ob die Adresse noch erreichbar ist.
+ \end{definition}
+\begin{itemize}
+\item{wird mittels ping(ICMP) ermittelt}
+\item{wird benutzt für alle Wege zwischen den Teilnehmern}
+\item{wird nur an Teilnehmer mit Unicast Adresse gesendet}
+\end{itemize}
+\hyperlink{Protokolle}{\beamerreturnbutton{Back to weitere Protokolle}}
+\end{frame}
+
+%\subsection[RA/RS]{Router Erkennung mit IPv6}
+
+\begin{frame}<1-| beamer:0>
+ \frametitle{Router Erkennung}
+ \framesubtitle{Router-Solicitation}
+ \label{RS}
+ \textcolor{MidnightBlue}{RFC 4861} - 2007
+ \begin{definition}
+ ICMP Multicast-Nachricht mit der ein Router Advertisement angefordert wird.
+ \end{definition}
+ \begin{itemize}
+ \item{wird nach dem aktivieren des Interfaces versendet}
+ \item{beinhaltet:}
+ \begin{itemize}
+ \item{SourceAdresse: IP-Adresse des sendenen Interfaces}
+ \item{ZielAdresse: all routers multicast Adresse}
+ \end{itemize}
+ \end{itemize}
+ \hyperlink{Protokolle}{\beamerreturnbutton{Back to weitere Protokolle}}
+\end{frame}
+
+\begin{frame}<1-| beamer:0>[shrink]
+ \frametitle{Router Erkennung}
+ \framesubtitle{Router-Advertisement}
+ \label{RA}
+ \textcolor{MidnightBlue}{RFC 4861} - 2007
+ \vspace{-0.2cm}
+ \begin{definition}
+ ICMP Nachricht mit der ein Router sein vorhandensein im Netz bekannt gibt und verschiedene Informationen an die Teilnehmer des Netzes übermittelt.
+ \end{definition}
+ \vspace{-0.3cm}
+ \begin{itemize}
+ \item{wird in regelmäßigen Abständen gesendet}
+ \item{ist oft Antwort auf Router-Solicitation}
+ \item{beinhaltet:}
+ \begin{itemize}
+ \item{SourceAdresse: linklocalAdresse des sendenen Interfaces}
+ \item{ZielAdresse: RouterAdresse oder all-node Multicast Adresse}
+ \item{derzeitiges Hop Limit}
+ \item{DHCP erreichbar (Managed Adress configuration flag)}
+ \item{Router Lifetime: 0 = kein Default Router}
+ \item{MTU}
+ \item{Präfix Informationen}
+ \end{itemize}
+ \end{itemize}
+ \hyperlink{Protokolle}{\beamerreturnbutton{Back to weitere Protokolle}}
+ \vspace{0.3cm}
+\end{frame}
+
+%\subsection{IPoSN}
+\begin{frame}<1-| beamer:0>
+ \frametitle{IPv6 over Social Networks}
+ \framesubtitle{Aufbau}
+ \label{IPoSN}
+ \textcolor{RedViolet}{RFC 5514} - 2009
+ \begin{definition}
+ Um die IPv6-Geräte zu erhöhen, sollen alle Sozialen Netzwerk Plattformen in IPv6 Netzwerke migriert werden. Damit soll erreicht werden die IPv6 Kenntnisse ebenso zu erhöhen, wie die IPv6 Router.
+ \end{definition}
+\vspace{-0.3cm}
+ \begin{itemize}
+ \item{Experimentelles Protokoll}
+ \item{mögliche Netzwerke: Facebook, LinkedIn, etc.}
+ \item{Jeder User des Netzwerk ist ein Router}
+ \item{Jeder befreundete User ist ein point-to-point Link}
+ \item{Da User mehrere Freunde; Partner, Beziehungen möchten, ist mit einem großen gemeshed Netz zu rechenen}
+ \item{Das erzeugt eine gute IPv6 Connectivity}
+ \end{itemize}
+\end{frame}
+
+\begin{frame}<1-| beamer:0>
+ \frametitle{IPv6 over Social Networks}
+ \framesubtitle{Funktition}
+\small{
+ \begin{itemize}
+ \item{Viele Soziale Netzwerk Apps (SNAs) erlauben Plug-Ins}
+ \item{Plug-Ins erzeugen mit Hilfe des Users IPv6 Pakete}
+ \item{Diese werden Sprung für Sprung über meshed SNA/IPv6 übertragen}
+ \item{Die übliche Regel lautet, dass SNA Kontobenutzer über eine Web Aktion die erhaltenen IPv6 Pakete verarbeiten}
+ \item{Dies verursacht mitunter große Verzögerungen zwischen Teilnehmern, daher sind die Routing-Timer anzupassen}
+ \item{Interface Identifier werden aus der einzigartige nummerische User-Indentifikation in SNAs erstellt}
+ \item{es werden nur GUA und LLA generiert}
+ \item{...}
+ \end{itemize}
+ }
+ \hyperlink{IPoAC}{\beamerreturnbutton{Back to IPoAC}}
+\end{frame}
+
+
+\end{document}
+
+% LocalWords: IPv Powershell Identifier