%% LyX 1.1 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[landscape,german,dvips]{slides}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\usepackage{graphics}
\IfFileExists{url.sty}{\usepackage{url}}
                      {\newcommand{\url}{\texttt}}

\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
 \newcounter{slidetype}
 \setcounter{slidetype}{0}
 \newif\ifLyXsNoCenter
 \LyXsNoCenterfalse
 \newcommand{\noslidecentering}{
    \LyXsNoCentertrue%
 }
 \newcommand{\slidecentering}{
    \LyXsNoCenterfalse%
 }
 \newcommand{\lyxendslide}[1]{
    \ifLyXsNoCenter%
         \vfill%
    \fi%
    \ifcase \value{slidetype}%
         \or % no action for 0
         \end{slide} \or%
         \end{overlay} \or%
         \end{note}%
    \fi%
    \setcounter{slidetype}{0}
\visible
 }
 \AtEndDocument{\lyxendslide{.}}
 \newcommand{\lyxnewslide}[1]{
    \lyxendslide{.}
    \setcounter{slidetype}{1}
    \begin{slide}
 }

\makeatother
\begin{document}
\vspace{20pt}

{\centering IPv6 Labor\par}

\vspace{20pt}

{\centering \textbf{\large IPv6 Gateways}\\
\textbf{\large (TRT)}\large \par}

\vspace{20pt}

{\centering Stephan Uhlmann <su@su2.info>\\
02.10.2002\par}

\vfill

{\tiny Copyright (c) 2002 Stephan Uhlmann}{\tiny \par}

{\tiny Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version
1.1 or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts and no Back-Cover
Texts. A copy of the license can be obtained from \url{http://www.gnu.org/licenses/fdl.html}.}{\tiny \par}


\lyxnewslide{Motivation}

Motivation

\begin{itemize}
\item verbinden reine IPv6 Netze mit IPv4 Netzen
\item wenn nicht alle Hosts (Server) Dual-Stack fähig sind oder sein sollen
(da IPv4 + IPv6 Adressen benötigt werden)
\item bester Ansatzpunkt: Router
\end{itemize}

\lyxnewslide{Modelle (1)}

Modelle

\begin{itemize}
\item SOCKS64\\
- erweitertes SOCKS
\item ALGs (Application Layer Gateways)\\
- Proxies auf Dual-Stacks
\item SIIT (Stateless IP/ICMP Translation Algorithm, RFC 2765)\\
- allg. Methode zum Übersetzen von IPv4 und IPv6 Paketen
\end{itemize}

\lyxnewslide{Modelle (2)}

Modelle

\begin{itemize}
\item NAT-PT (Network Address Translation / Protocol Translation, RFC 2766)
\\
- NAT: temp. IPv4 Adresse für IPv4 Traffic, PT == SIIT\\
- Linux-Implementation: nat-pt (Electronics and Telecommunications
Research Institute, Korea)
\item TRT (Transport Relay Translator, RFC 3142)\\
- DNS: IPv4 -> spezielle IPv6 Adresse (dummy Prefix), TRT fängt diese
ab und setzt sie in IPv4 um\\
- Implementation: faith/faithd (BSD), pTRTd (portabel)
\end{itemize}

\lyxnewslide{TRT (1)}

TRT

\begin{itemize}
\item RFC 3142
\item ähnlich NAT-PT, aber: Transport Layer
\item kein Header rewriting sondern {}``hartes'' Relaying,\\
TRT kappt Verbindung und baut eine zweite zum Zielsystem auf
\item benötigt DNS-Proxy
\end{itemize}

\lyxnewslide{TRT (2)}

\vspace{0.3cm}
{\centering \includegraphics{img1.eps} \par}
\vspace{0.3cm}


\lyxnewslide{TRT (3)}

TRT

\begin{itemize}
\item Vorteile

\begin{itemize}
\item einfach zu implementieren und zu verstehen
\item keine Modifikationen an den Hosts notwendig
\item Path MTU discovery / Fragmentation unkomplizierter\\
(IPv4 und IPv6 Teile können getrennt betrachtet werden)
\item ALGs können im TRT implementiert werden
\end{itemize}
\end{itemize}

\lyxnewslide{TRT (4)}

TRT

\begin{itemize}
\item Nachteile:

\begin{itemize}
\item Informationsverlust bei IPv6<->IPv4 (wie bei SIIT)
\item wie NAT-PT: benötigt auch ALGs für NAT-unfreundliche Protokolle (FTP,
DNS), IPSec nicht möglich
\item nur IPv6 -> IPv4
\item nur bidirektionale Verbindungen, kein unidirektionaler (Multicast)
\item TRT ist {}``stateful'' -> alle Pakete einer Verbinding müssen also
über den gleichen TRT gehen (Single Point of Failure)
\end{itemize}
\end{itemize}

\lyxnewslide{pTRTd}

pTRTd

\begin{itemize}
\item relayt IPv4 -> fec0:0:0:ffff::/64 (default)
\item portable Implementation (eigener IPv6 Stack)
\item benötigt TUN/TAP device\\
\texttt{mknod /dev/net/tun c 10 200}\\
\texttt{modprobe tun}
\end{itemize}

\lyxnewslide{totd}

totd

\begin{itemize}
\item DNS-Proxy, leitet Anfragen an Forwarder weiter
\item Aufgabe: Umwandlung IPv4 Adressen in {}``Fake'' IPv6 Adressen
\item Bsp.: \texttt{dig @::1 -p 5005 www.google.com aaaa}~\\
\texttt{;; ANSWER SECTION:}~\\
\texttt{www.google.com. 122 IN AAAA fec0::ffff:0:0:d8ef:2365}~\\

\end{itemize}

\lyxnewslide{Praxis (1)}

Praxis

\begin{itemize}
\item totd funktioniert gut
\item pTRTd ist Alpha, scheint aber in der Grundfunktionalität zu gehen
\item Problem:\\
\texttt{{[}root@bender stephan{]}\# ping6 fec0::ffff:0:0:d8ef:2365}~\\
\texttt{connect: Cannot assign requested address}
\item connect() Systemaufruf liefert \texttt{EADDRNOTAVAIL}
\item Gelöst durch Verwendung einer {}``global scope'' Adresse
\end{itemize}

\lyxnewslide{Praxis (2)}

\texttt{\# ./totd -c totd.conf}~\\
\texttt{\# ./ptrtd -p 2001:7a0:101:888::}~\\
\texttt{\# ping6 2001:7a0:101:888::1} (zurückgepingt von ptrtd)\texttt{}~\\
\texttt{\# dig @::1 -p 5005 lisa.cs.uni-potsdam.de aaaa}~\\
\texttt{}~\\
\texttt{; ANSWER SECTION:}~\\
\texttt{lisa.cs.uni-potsdam.de. 172800 IN AAAA 2001:7a0:101:888::8d59:30de}~\\
\texttt{}~\\
\texttt{\# ssh -6 -l uhlmann 2001:7a0:101:888::8d59:30de}~\\
\texttt{uhlmann@lisa:\textasciitilde{} >}


\lyxnewslide{Links}

Links

\begin{itemize}
\item RFC 3142 (TRT): \url{http://www.ietf.org/rfc/rfc3142.txt}
\item pTRTd: \url{http://www.litech.org/ptrtd/}
\item totd: \url{http://www.vermicelli.pasta.cs.uit.no/ipv6/software.html}
\item Modellvergleich IPv6->IPv4 Gateways: \url{http://web.mit.edu/peilei/www/nats2.htm}\end{itemize}

\end{document}
