presentation-ipv6.tex 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  1. %\documentclass[12pt,xcolor=x11names,compress,a4paper]{beamer}
  2. \documentclass[15pt,xcolor=x11names]{beamer}
  3. \usepackage[utf8]{inputenc}
  4. \usepackage[french]{babel}
  5. %\usepackage{ucs}
  6. \usepackage[T1]{fontenc}
  7. %\usepackage{amsmath}
  8. %\usepackage{amsfonts}
  9. %\usepackage{amssymb}
  10. %\usepackage{mathtools}
  11. %\usepackage{mathrsfs}
  12. \usepackage{verbatim}
  13. %\usepackage{color}
  14. \usepackage{graphicx}
  15. \usepackage{tikz}
  16. %\usetikzlibrary{decorations.fractals}
  17. \usetikzlibrary{snakes,arrows,shapes}
  18. %% Beamer Layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  19. \useoutertheme[subsection=false,shadow]{miniframes}
  20. %\useoutertheme{infolines}
  21. \useinnertheme{default}
  22. %\usefonttheme{serif}
  23. %\usepackage{palatino}
  24. %\usepackage{inconsolata}
  25. \setbeamerfont{title like}{shape=\scshape}
  26. \setbeamerfont{frametitle}{shape=\scshape}
  27. \setbeamercolor*{lower separation line head}{bg=DeepSkyBlue4}
  28. \setbeamercolor*{normal text}{fg=black,bg=white}
  29. \setbeamercolor*{alerted text}{fg=red}
  30. \setbeamercolor*{example text}{fg=black}
  31. \setbeamercolor*{structure}{fg=black}
  32. %
  33. \setbeamercolor*{palette tertiary}{fg=black,bg=black!10}
  34. \setbeamercolor*{palette quaternary}{fg=black,bg=black!10}
  35. %
  36. \definecolor{my-light-blue}{HTML}{D3DCEC}
  37. \definecolor{my-dark-blue}{HTML}{093A7A}
  38. \definecolor{my-dark-blue2}{HTML}{00688B}
  39. \definecolor{my-light-red}{HTML}{FFBABA}
  40. \definecolor{my-dark-red}{HTML}{D51111}
  41. \definecolor{my-light-green}{HTML}{7BEF71}
  42. \definecolor{my-dark-green}{HTML}{00D000}
  43. \definecolor{my-light-grey}{HTML}{E6E6E6}
  44. %
  45. \setbeamertemplate{blocks}[rounded]
  46. \setbeamercolor{block body}{bg=my-light-blue}
  47. \setbeamercolor{block title}{bg=my-dark-blue2,fg=white}
  48. \setbeamercolor{block body alerted}{bg=my-light-red}
  49. \setbeamercolor{block title alerted}{bg=my-dark-red,fg=white}
  50. \setbeamercolor{block body example}{bg=my-light-green}
  51. \setbeamercolor{block title example}{bg=my-dark-green,fg=white}
  52. \setbeamertemplate{navigation symbols}{}
  53. % From /usr/share/texmf-dist/tex/latex/beamer/themes/outer/beamerouterthemeinfolines.sty
  54. \setbeamertemplate{footline}{
  55. \begin{beamercolorbox}[wd=\paperwidth,ht=2.25ex,dp=1ex,right]{parent=palette primary}
  56. \scriptsize{
  57. \vspace*{0.1cm}\insertframenumber/\inserttotalframenumber\hspace*{0.1cm}
  58. }
  59. \end{beamercolorbox}
  60. }
  61. %\renewcommand{\(}{\begin{columns}}
  62. %\renewcommand{\)}{\end{columns}}
  63. %\newcommand{\lcol}{\begin{column}[l]{0.5\textwidth}}
  64. %\newcommand{\rcol}{\begin{column}[r]{0.5\textwidth}}
  65. %\renewcommand{\>}{\end{column}}
  66. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  67. \newcommand{\sep}{$\; \triangleright \ $}
  68. \title[IPv6]{Introduction à IPv6}
  69. \author[B. Jonglez]{Baptiste Jonglez}
  70. \institute{JDLL 2015}
  71. \date[29/03/2015]{29 mars 2015}
  72. \begin{document}
  73. \begin{frame}
  74. \maketitle
  75. \end{frame}
  76. % Plan : rester abordable.
  77. % - carte d'Internet, comment tout ça tient debout, qu'est qu'IP
  78. % - 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
  79. % - nouveaux besoins : nombreux appareils, connectivité de bout en bout pour P2P/VOIP/etc (ou pas ?), multihoming
  80. % - différences fondamentales : taille de l'espace, auto-configuration
  81. % - format des adresses IPv6
  82. % - c'est compliqué ? Il y a le DNS !
  83. % - 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é)
  84. % - mythes : IPv6 n'est pas sécurisé (pas de NAT), IPv6 ne sert à rien parce que personne ne l'a déployé, etc
  85. % - références : Lothaire Yarding, blog bortzmeyer, RIPE, présentation Ju
  86. % → peut-être trop ambitieux, se limiter à des choses plus pratiques ?
  87. \section*{Introduction}
  88. \begin{frame}
  89. \frametitle{Une carte d'Internet}
  90. %\begin{figure}[h]
  91. % \centering
  92. % \includegraphics[scale=0.6]{figures/Ipv4-exhaust.eps}
  93. % \caption{}
  94. %\end{figure}
  95. \end{frame}
  96. \begin{frame}
  97. \frametitle{Internet Protocol}
  98. \begin{alertblock}{Un protocole commun}
  99. \textbf{Internet Protocol} (IP) est le protocole commun à toutes les machines d'Internet
  100. \end{alertblock}
  101. \begin{block}{Service fourni}
  102. \begin{itemize}
  103. \item Adressage (qui je suis)
  104. \item Routage (où je suis et comment me joindre)
  105. \item \ldots{} et c'est à peu près tout
  106. \end{itemize}
  107. \end{block}
  108. \end{frame}
  109. \begin{frame}
  110. \frametitle{Place dans le modèle TCP/IP}
  111. \begin{figure}[h]
  112. \centering
  113. \includegraphics[scale=0.3]{figures/couches.eps}
  114. \end{figure}
  115. \end{frame}
  116. \section{Remplacer IPv4}
  117. \begin{frame}
  118. \begin{figure}[h]
  119. \centering
  120. \includegraphics[scale=0.6]{figures/Ipv4-exhaust.eps}
  121. \caption{Espace libre dans le pool d'adresses IPv4. Crédit : CC-BY-SA Mro (Wikimédia) }
  122. \end{figure}
  123. \end{frame}
  124. \begin{frame}
  125. \frametitle{Remplacer IPv4, pourquoi ?}
  126. \begin{block}{IPv4 n'est plus adapté}
  127. \begin{itemize}
  128. \item 32 bits : \textbf{4 milliards d'adresses} (moins en
  129. pratique)
  130. \item Complexité, donc coût
  131. \item Nouveaux besoins (mobilité, auto-configuration, multi-homing)
  132. \end{itemize}
  133. \end{block}
  134. Réflexion sur un successeur à IPv4 dès 1993 : \textbf{IPng}
  135. \end{frame}
  136. \begin{frame}
  137. \frametitle{Traduction d'adresses (NAT) en IPv4 (1/5)}
  138. \begin{figure}[h]
  139. \centering
  140. \includegraphics[scale=0.28]{figures/nat1.eps}
  141. \caption{L1, L2, L3 sont des adresses locales. Le routeur qui fait du NAT possède également une adresse publique A.}
  142. \end{figure}
  143. \end{frame}
  144. \begin{frame}
  145. \frametitle{Traduction d'adresses (NAT) en IPv4 (2/5)}
  146. \begin{figure}[h]
  147. \centering
  148. \includegraphics[scale=0.28]{figures/nat2.eps}
  149. \caption{Une machine du réseau local envoie un paquet vers un serveur B.}
  150. \end{figure}
  151. \end{frame}
  152. \begin{frame}
  153. \frametitle{Traduction d'adresses (NAT) en IPv4 (3/5)}
  154. \begin{figure}[h]
  155. \centering
  156. \includegraphics[scale=0.28]{figures/nat3.eps}
  157. \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.}
  158. \end{figure}
  159. \end{frame}
  160. \begin{frame}
  161. \frametitle{Traduction d'adresses (NAT) en IPv4 (4/5)}
  162. \begin{figure}[h]
  163. \centering
  164. \includegraphics[scale=0.28]{figures/nat4.eps}
  165. \caption{Le serveur répond à A, puisque de son point de vue, A est l'expéditeur.}
  166. \end{figure}
  167. \end{frame}
  168. \begin{frame}
  169. \frametitle{Traduction d'adresses (NAT) en IPv4 (5/5)}
  170. \begin{figure}[h]
  171. \centering
  172. \includegraphics[scale=0.28]{figures/nat5.eps}
  173. \caption{Le NAT se sert de l'information qu'il avait retenu pour renvoyer le paquet à la bonne machine locale.}
  174. \end{figure}
  175. \end{frame}
  176. \begin{frame}
  177. \frametitle{NAT considered harmful}
  178. \begin{alertblock}{Problème fondamental}
  179. Imaginez avoir le même numéro de téléphone que votre voisin\ldots{}
  180. Sur qui tombe-t-on si on appelle le numéro ?
  181. \end{alertblock}
  182. \vspace{1cm}
  183. D'autant plus grave au niveau du FAI : \textbf{Carrier-grade NAT} (CGNAT)
  184. \end{frame}
  185. \begin{frame}
  186. \frametitle{Plus précisément}
  187. \begin{block}{Coûts associés à IPv4}
  188. \begin{itemize}
  189. \item NAT : ressources matérielles, identification des utilisateurs (log)
  190. \item \textbf{Perte de la transparence de bout en bout :} conception et
  191. développement de contournements spécifiques aux applications : FTP, SIP,
  192. etc (violation de couche)
  193. \item \textbf{Ossification :} coût de la rétro-compatibilité dans la
  194. conception de nouveaux protocoles (e.g. Multipath TCP, HIP)
  195. \end{itemize}
  196. \end{block}
  197. \end{frame}
  198. \section{IPv6}
  199. \begin{frame}
  200. \frametitle{IPv6 : un gros changement ?}
  201. \begin{block}{En fait, c'est presque pareil !}
  202. \begin{itemize}
  203. \item Adresses : \textbf{128 bits au lieu de 32 bits}
  204. \item Auto-configuration
  205. \end{itemize}
  206. \end{block}
  207. \vspace{1cm}
  208. Certaines fonctionnalités abandonnées en cours de route\ldots{} (sécurité,
  209. source routing)
  210. \end{frame}
  211. \begin{frame}
  212. \frametitle{Conséquences}
  213. \begin{block}{C'est tout de même un gros changement !}
  214. \begin{itemize}
  215. \item Plus de NAT : \textbf{on évite tous les coûts associés !}
  216. \begin{itemize}
  217. \item capacité matérielle des routeurs
  218. \item temps de conception + développement pour chaque application (ALG)
  219. \item possibilité de déployer de nouveaux protocoles
  220. \end{itemize}
  221. \item Restoration du \textbf{principe de bout en bout}
  222. \item Premier pas indispensable pour l'Internet des objets\ldots{}
  223. \end{itemize}
  224. \end{block}
  225. \begin{alertblock}{\ldots{} assez gros pour prendre du temps}<2>
  226. \begin{itemize}
  227. \item Nécessite de changer \textbf{tous} les routeurs d'Internet
  228. \item Mise à jour des applications
  229. \item Formation des administrateurs réseaux et systèmes
  230. \end{itemize}
  231. \end{alertblock}
  232. \end{frame}
  233. \begin{frame}[fragile]
  234. \frametitle{Format des adresses et adressage}
  235. % RFC 4291
  236. \begin{block}{Adresses}
  237. \begin{itemize}
  238. \item Adresses sur 128 bits
  239. \item Notation hexa par bloc de 16 bits \sep \verb+2001:db8:cafe:deca:0:0:0:1+
  240. \item Compression de zéros \sep \verb+2001:db8:cafe:deca::1+
  241. \end{itemize}
  242. \end{block}
  243. \begin{block}{Sous-réseaux}<2->
  244. \begin{itemize}
  245. \item Deux parties :
  246. \begin{itemize}
  247. \item \textbf{préfixe} ou \textbf{identifiant de sous-réseau}
  248. (subnet ID) : partie gauche de l'adresse
  249. \item \textbf{identifiant de machine} (host ID) : partie droite
  250. \end{itemize}
  251. \item notation CIDR :
  252. \begin{itemize}
  253. \item \verb+2001:db8:cafe:deca:a9e:1ff:fe6b:25c9/64+
  254. \item subnet correspondant \sep \verb+2001:db8:cafe:deca::+
  255. \end{itemize}
  256. \end{itemize}
  257. \end{block}
  258. \end{frame}
  259. \begin{frame}[fragile]
  260. \frametitle{Exemples d'adresses et de préfixes}
  261. \begin{block}{Préfixes}<1->
  262. \begin{itemize}
  263. \item Préfixe de documentation \sep \verb+2001:db8::/32+
  264. \item Préfixe link-local \sep \verb+fe80::/10+
  265. \item Préfixe multicast \sep \verb+ff02::/10+
  266. \item Exemple de préfixe \og end-user\fg{} \sep \verb+2001:db8:fada:ba00:/56+
  267. \end{itemize}
  268. \end{block}
  269. \begin{block}{Adresses}<2->
  270. \begin{itemize}
  271. \item Unicast \sep \verb+2001:db8:cafe:deca:a9e:1ff:fe6b:25c9/64+
  272. \item Link-local \sep \verb+fe80::a9e:1ff:fe6b:25c9/64+
  273. \item Notation IPv4 \sep \verb+2001:db8::cafe:192.168.0.1+ égal
  274. à \verb+2001:db8::cafe:c0a8:1+
  275. \item Localhost \sep \verb+::1+
  276. \item Tout les bits à 0 \sep \verb+::+
  277. \end{itemize}
  278. \end{block}
  279. \end{frame}
  280. \begin{frame}[fragile]
  281. \frametitle{C'est compliqué à retenir\ldots{}}
  282. \begin{alertblock}{Ça semble compliqué !}
  283. Heureusement, il y a le DNS !
  284. \end{alertblock}
  285. \begin{block}{DNS}<2>
  286. \begin{itemize}
  287. \item Même mécanisme qu'en IPv4 : nom $\rightarrow$ adresse(s)
  288. \item Cohabitation IPv4/IPv6
  289. \begin{itemize}
  290. \item bortzmeyer.org \verb+2605:4500:2:245b::42+
  291. \item bortzmeyer.org \verb+204.62.14.153+
  292. \end{itemize}
  293. \end{itemize}
  294. \end{block}
  295. \end{frame}
  296. \section{En pratique}
  297. \begin{frame}
  298. \frametitle{Qu'est ce que ça change en pratique ?}
  299. \begin{exampleblock}{Changement pour l'utilisateur lambda}
  300. \begin{itemize}
  301. \item Changement peu visible (pour l'instant\ldots{} multi-homing à venir !)
  302. \item Certaines applications (P2P, VoIP, jeux en réseau) fonctionnent mieux en théorie
  303. \end{itemize}
  304. \end{exampleblock}
  305. \begin{block}{Changement pour le geek}<2->
  306. \begin{itemize}
  307. \item Hébergement d'un nombre illimité de machines/services
  308. \item Plus besoin de \og{}louer\fg{} des IP supplémentaires à un prix délirant
  309. \end{itemize}
  310. \end{block}
  311. \begin{block}{Changement pour un FAI/hébergeur}<3->
  312. \begin{itemize}
  313. \item Réduction des coûts liés au NAT
  314. \item Réduction du coût pour obtenir des adresses
  315. \end{itemize}
  316. \end{block}
  317. \end{frame}
  318. \section{Conclusion}
  319. \begin{frame}
  320. \frametitle{Quelques mythes sur IPv6}
  321. \begin{block}{IPv6 est moins sécurisé qu'IPv4}
  322. \uncover<2->{\alert{FAUX !}}
  323. \uncover<3->{
  324. \begin{itemize}
  325. \item Le NAT n'apporte aucune sécurité !
  326. \item Les attaques viennent souvent de l'intérieur des réseaux\ldots{}
  327. \item Firewall possible avec IPv6 (mis par défaut chez SFR, Free, etc)
  328. \end{itemize}
  329. }
  330. \end{block}
  331. \begin{block}{Personne n'utilise IPv6 en pratique}<4->
  332. \uncover<5->{\alert{FAUX !}}
  333. \uncover<6->{
  334. \begin{itemize}
  335. \item Hébergeurs : Google, Facebook, OVH, Online\ldots{}
  336. \item FAI : Illyse, (F)FDN, K-Net, Free, SFR, OVH, Comcast, Swiss Telecom\ldots{}
  337. \item Applications et OS compatibles depuis des années
  338. \end{itemize}
  339. }
  340. \end{block}
  341. \end{frame}
  342. \begin{frame}
  343. \frametitle{Conclusion}
  344. \begin{block}{Points importants}
  345. \begin{itemize}
  346. \item Espace plus grand, plus besoin de NAT, réduction des coûts
  347. \item Auto-configuration : ça juste marche !
  348. \item Cohabitation avec IPv4 grâce au DNS
  349. \item Applications prêtes depuis 15 ans
  350. \end{itemize}
  351. \end{block}
  352. \begin{exampleblock}{Alors, qu'est ce qu'on attend ?}<2->
  353. Rien ! Cochez vite la case \og{}IPv6\fg{} dans la box de votre FAI :-)
  354. (ou changez de FAI\ldots{})
  355. \end{exampleblock}
  356. \end{frame}
  357. \begin{frame}
  358. \frametitle{Manipulons\ldots{}}
  359. Manip !
  360. \end{frame}
  361. \end{document}