%\documentclass[12pt,xcolor=x11names,compress,a4paper]{beamer} \documentclass[15pt,xcolor=x11names]{beamer} \usepackage[utf8]{inputenc} \usepackage[french]{babel} %\usepackage{ucs} \usepackage[T1]{fontenc} %\usepackage{amsmath} %\usepackage{amsfonts} %\usepackage{amssymb} %\usepackage{mathtools} %\usepackage{mathrsfs} \usepackage{verbatim} %\usepackage{color} \usepackage{graphicx} \usepackage{tikz} %\usetikzlibrary{decorations.fractals} \usetikzlibrary{snakes,arrows,shapes} %% Beamer Layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \useoutertheme[subsection=false,shadow]{miniframes} %\useoutertheme{infolines} \useinnertheme{default} %\usefonttheme{serif} %\usepackage{palatino} %\usepackage{inconsolata} \setbeamerfont{title like}{shape=\scshape} \setbeamerfont{frametitle}{shape=\scshape} \setbeamercolor*{lower separation line head}{bg=DeepSkyBlue4} \setbeamercolor*{normal text}{fg=black,bg=white} \setbeamercolor*{alerted text}{fg=red} \setbeamercolor*{example text}{fg=black} \setbeamercolor*{structure}{fg=black} % \setbeamercolor*{palette tertiary}{fg=black,bg=black!10} \setbeamercolor*{palette quaternary}{fg=black,bg=black!10} % \definecolor{my-light-blue}{HTML}{D3DCEC} \definecolor{my-dark-blue}{HTML}{093A7A} \definecolor{my-dark-blue2}{HTML}{00688B} \definecolor{my-light-red}{HTML}{FFBABA} \definecolor{my-dark-red}{HTML}{D51111} \definecolor{my-light-green}{HTML}{7BEF71} \definecolor{my-dark-green}{HTML}{00D000} \definecolor{my-light-grey}{HTML}{E6E6E6} % \setbeamertemplate{blocks}[rounded] \setbeamercolor{block body}{bg=my-light-blue} \setbeamercolor{block title}{bg=my-dark-blue2,fg=white} \setbeamercolor{block body alerted}{bg=my-light-red} \setbeamercolor{block title alerted}{bg=my-dark-red,fg=white} \setbeamercolor{block body example}{bg=my-light-green} \setbeamercolor{block title example}{bg=my-dark-green,fg=white} \setbeamertemplate{navigation symbols}{} % From /usr/share/texmf-dist/tex/latex/beamer/themes/outer/beamerouterthemeinfolines.sty \setbeamertemplate{footline}{ \begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex,right]{parent=palette primary} \scriptsize{ \vspace*{0.1cm}\insertframenumber/\inserttotalframenumber\hspace*{0.1cm} } \end{beamercolorbox} } %\renewcommand{\(}{\begin{columns}} %\renewcommand{\)}{\end{columns}} %\newcommand{\lcol}{\begin{column}[l]{0.5\textwidth}} %\newcommand{\rcol}{\begin{column}[r]{0.5\textwidth}} %\renewcommand{\>}{\end{column}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\sep}{$\; \triangleright \ $} \title[IPv6]{Introduction à IPv6} \author[B. Jonglez]{Baptiste Jonglez} \institute{JDLL 2015} \date[29/03/2015]{29 mars 2015} \begin{document} \begin{frame} \maketitle \end{frame} % Plan : rester abordable. % - carte d'Internet, comment tout ça tient debout, qu'est qu'IP % - problèmes liés à IPv4 : exhaustion, complexité & coût qui s'ensuivent (NAT, CGNAT). Expliquer le NAT (avec des figures plus jolies). Problème du NAT, expliqué simplement : plusieurs personnes ont le même numéro de téléphone ! Plus précisément, pose problème pour certains protocoles (SIP/VoIP), coût énorme en conception et développement, coût du matériel pour les CGNAT + logs % - nouveaux besoins : nombreux appareils, connectivité de bout en bout pour P2P/VOIP/etc (ou pas ?), multihoming % - différences fondamentales : taille de l'espace, auto-configuration % - format des adresses IPv6 % - c'est compliqué ? Il y a le DNS ! % - en pratique, qu'est ce que ça change ? → du point de vue utilisateur, pas grand chose ! C'est juste une évolution nécessaire (et douloureuse). Dual stack (forme de compatibilité) % - mythes : IPv6 n'est pas sécurisé (pas de NAT), IPv6 ne sert à rien parce que personne ne l'a déployé, etc % - références : Lothaire Yarding, blog bortzmeyer, RIPE, présentation Ju % → peut-être trop ambitieux, se limiter à des choses plus pratiques ? \section*{Introduction} \begin{frame} %\frametitle{Une carte d'Internet} \begin{figure}[h] \centering \includegraphics[scale=0.2]{figures/Internet_map_1024.jpg} \end{figure} \end{frame} \begin{frame} \frametitle{Internet Protocol} \begin{alertblock}{Un protocole commun} \textbf{Internet Protocol} (IP) est le protocole commun à toutes les machines d'Internet \end{alertblock} \begin{block}{Service fourni} \begin{itemize} \item Adressage (qui je suis) \item Routage (où je suis et comment me joindre) \item \ldots{} et c'est à peu près tout \end{itemize} \end{block} \end{frame} \begin{frame} \frametitle{Place dans le modèle TCP/IP} \begin{figure}[h] \centering \includegraphics[scale=0.3]{figures/couches.eps} \end{figure} \end{frame} \section{Remplacer IPv4} \begin{frame} \begin{figure}[h] \centering \includegraphics[scale=0.6]{figures/Ipv4-exhaust.eps} \caption{Espace libre dans le pool d'adresses IPv4. Crédit : CC-BY-SA Mro (Wikimédia) } \end{figure} \end{frame} \begin{frame} \frametitle{Remplacer IPv4, pourquoi ?} \begin{block}{IPv4 n'est plus adapté} \begin{itemize} \item 32 bits : \textbf{4 milliards d'adresses} (moins en pratique) \item Complexité, donc coût \item Nouveaux besoins (mobilité, auto-configuration, multi-homing) \end{itemize} \end{block} Réflexion sur un successeur à IPv4 dès 1993 : \textbf{IPng} \end{frame} \begin{frame} \frametitle{Traduction d'adresses (NAT) en IPv4 (1/5)} \begin{figure}[h] \centering \includegraphics[scale=0.28]{figures/nat1.eps} \caption{L1, L2, L3 sont des adresses locales. Le routeur qui fait du NAT possède également une adresse publique A.} \end{figure} \end{frame} \begin{frame} \frametitle{Traduction d'adresses (NAT) en IPv4 (2/5)} \begin{figure}[h] \centering \includegraphics[scale=0.28]{figures/nat2.eps} \caption{Une machine du réseau local envoie un paquet vers un serveur B.} \end{figure} \end{frame} \begin{frame} \frametitle{Traduction d'adresses (NAT) en IPv4 (3/5)} \begin{figure}[h] \centering \includegraphics[scale=0.28]{figures/nat3.eps} \caption{Le NAT retient qu'il a vu passer un paquet de L2 vers B, et change l'adresse source du paquet pour faire croire que ça vient de lui.} \end{figure} \end{frame} \begin{frame} \frametitle{Traduction d'adresses (NAT) en IPv4 (4/5)} \begin{figure}[h] \centering \includegraphics[scale=0.28]{figures/nat4.eps} \caption{Le serveur répond à A, puisque de son point de vue, A est l'expéditeur.} \end{figure} \end{frame} \begin{frame} \frametitle{Traduction d'adresses (NAT) en IPv4 (5/5)} \begin{figure}[h] \centering \includegraphics[scale=0.28]{figures/nat5.eps} \caption{Le NAT se sert de l'information qu'il avait retenu pour renvoyer le paquet à la bonne machine locale.} \end{figure} \end{frame} \begin{frame} \frametitle{NAT considered harmful} \begin{alertblock}{Problème fondamental} Imaginez avoir le même numéro de téléphone que votre voisin\ldots{} Sur qui tombe-t-on si on appelle le numéro ? \end{alertblock} \vspace{1cm} D'autant plus grave au niveau du FAI : \textbf{Carrier-grade NAT} (CGNAT) \end{frame} \begin{frame} \frametitle{Plus précisément} \begin{block}{Coûts associés à IPv4} \begin{itemize} \item NAT : ressources matérielles, identification des utilisateurs (log) \item \textbf{Perte de la transparence de bout en bout :} conception et développement de contournements spécifiques aux applications : FTP, SIP, etc (violation de couche) \item \textbf{Ossification :} coût de la rétro-compatibilité dans la conception de nouveaux protocoles (e.g. Multipath TCP, HIP) \end{itemize} \end{block} \end{frame} \section{IPv6} \begin{frame} \frametitle{IPv6 : un gros changement ?} \begin{block}{En fait, c'est presque pareil !} \begin{itemize} \item Adresses : \textbf{128 bits au lieu de 32 bits} \item Auto-configuration \end{itemize} \end{block} \vspace{1cm} Certaines fonctionnalités abandonnées en cours de route\ldots{} (sécurité, source routing) \end{frame} \begin{frame} \frametitle{Conséquences} \begin{block}{C'est tout de même un gros changement !} \begin{itemize} \item Plus de NAT : \textbf{on évite tous les coûts associés !} \begin{itemize} \item capacité matérielle des routeurs \item temps de conception + développement pour chaque application (ALG) \item possibilité de déployer de nouveaux protocoles \end{itemize} \item Restoration du \textbf{principe de bout en bout} \item Premier pas indispensable pour l'Internet des objets\ldots{} \end{itemize} \end{block} \begin{alertblock}{\ldots{} assez gros pour prendre du temps}<2> \begin{itemize} \item Nécessite de changer \textbf{tous} les routeurs d'Internet \item Mise à jour des applications \item Formation des administrateurs réseaux et systèmes \end{itemize} \end{alertblock} \end{frame} \begin{frame}[fragile] \frametitle{Format des adresses et adressage} % RFC 4291 \begin{block}{Adresses} \begin{itemize} \item Adresses sur 128 bits \item Notation hexa par bloc de 16 bits \sep \verb+2001:db8:cafe:deca:0:0:0:1+ \item Compression de zéros \sep \verb+2001:db8:cafe:deca::1+ \end{itemize} \end{block} \begin{block}{Sous-réseaux}<2-> \begin{itemize} \item Deux parties : \begin{itemize} \item \textbf{préfixe} ou \textbf{identifiant de sous-réseau} (subnet ID) : partie gauche de l'adresse \item \textbf{identifiant de machine} (host ID) : partie droite \end{itemize} \item notation CIDR : \begin{itemize} \item \verb+2001:db8:cafe:deca:a9e:1ff:fe6b:25c9/64+ \item subnet correspondant \sep \verb+2001:db8:cafe:deca::+ \end{itemize} \end{itemize} \end{block} \end{frame} \begin{frame}[fragile] \frametitle{Exemples d'adresses et de préfixes} \begin{block}{Préfixes}<1-> \begin{itemize} \item Préfixe de documentation \sep \verb+2001:db8::/32+ \item Préfixe link-local \sep \verb+fe80::/10+ \item Préfixe multicast \sep \verb+ff02::/10+ \item Exemple de préfixe \og end-user\fg{} \sep \verb+2001:db8:fada:ba00:/56+ \end{itemize} \end{block} \begin{block}{Adresses}<2-> \begin{itemize} \item Unicast \sep \verb+2001:db8:cafe:deca:a9e:1ff:fe6b:25c9/64+ \item Link-local \sep \verb+fe80::a9e:1ff:fe6b:25c9/64+ \item Notation IPv4 \sep \verb+2001:db8::cafe:192.168.0.1+ égal à \verb+2001:db8::cafe:c0a8:1+ \item Localhost \sep \verb+::1+ \item Tout les bits à 0 \sep \verb+::+ \end{itemize} \end{block} \end{frame} \begin{frame}[fragile] \frametitle{C'est compliqué à retenir\ldots{}} \begin{alertblock}{Ça semble compliqué !} Heureusement, il y a le DNS ! \end{alertblock} \begin{block}{DNS}<2> \begin{itemize} \item Même mécanisme qu'en IPv4 : nom $\rightarrow$ adresse(s) \item Cohabitation IPv4/IPv6 \begin{itemize} \item bortzmeyer.org \verb+2605:4500:2:245b::42+ \item bortzmeyer.org \verb+204.62.14.153+ \end{itemize} \end{itemize} \end{block} \end{frame} \section{En pratique} \begin{frame} \frametitle{Qu'est ce que ça change en pratique ?} \begin{exampleblock}{Changement pour l'utilisateur lambda} \begin{itemize} \item Changement peu visible (pour l'instant\ldots{} multi-homing à venir !) \item Certaines applications (P2P, VoIP, jeux en réseau) fonctionnent mieux en théorie \end{itemize} \end{exampleblock} \begin{block}{Changement pour le geek}<2-> \begin{itemize} \item Hébergement d'un nombre illimité de machines/services \item Plus besoin de \og{}louer\fg{} des IP supplémentaires à un prix délirant \end{itemize} \end{block} \begin{block}{Changement pour un FAI/hébergeur}<3-> \begin{itemize} \item Réduction des coûts liés au NAT \item Réduction du coût pour obtenir des adresses \end{itemize} \end{block} \end{frame} \section{Conclusion} \begin{frame} \frametitle{Quelques mythes sur IPv6} \begin{block}{IPv6 est moins sécurisé qu'IPv4} \uncover<2->{\alert{FAUX !}} \uncover<3->{ \begin{itemize} \item Le NAT n'apporte aucune sécurité ! \item Les attaques viennent souvent de l'intérieur des réseaux\ldots{} \item Firewall possible avec IPv6 (mis par défaut chez SFR, Free, etc) \end{itemize} } \end{block} \begin{block}{Personne n'utilise IPv6 en pratique}<4-> \uncover<5->{\alert{FAUX !}} \uncover<6->{ \begin{itemize} \item Hébergeurs : Google, Facebook, OVH, Online\ldots{} \item FAI : Illyse, (F)FDN, K-Net, Free, SFR, OVH, Comcast, Swiss Telecom\ldots{} \item Applications et OS compatibles depuis des années \end{itemize} } \end{block} \end{frame} \begin{frame} \frametitle{Conclusion} \begin{block}{Points importants} \begin{itemize} \item Espace plus grand, plus besoin de NAT, réduction des coûts \item Auto-configuration : ça juste marche ! \item Cohabitation avec IPv4 grâce au DNS \item Applications prêtes depuis 15 ans \end{itemize} \end{block} \begin{exampleblock}{Alors, qu'est ce qu'on attend ?}<2-> Rien ! Cochez vite la case \og{}IPv6\fg{} dans la box de votre FAI :-) (ou changez de FAI\ldots{}) \end{exampleblock} \end{frame} \begin{frame} \frametitle{Manipulons\ldots{}} Manip ! \end{frame} \end{document}