\include{parameters}
\usetheme{Madrid}
\usepackage[french]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{bortzmeyer-utils}
\usepackage{xspace}

\title{Derrière la scène : comment et grâce à qui l'Internet fonctionne t-il ?}
\author{Stéphane Bortzmeyer\\~\texttt{<stephane+toulibre@bortzmeyer.org>}}
\date{26 novembre 2011}

%\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex} 
% \setlength{\parskip}{15pt} 
\setlength{\parskip}{15pt plus 10pt minus 10pt} 

\begin{document}

\maketitle

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}[fragile]
\frametitle{Exposé libre}
 Ce document est distribué sous les termes de la GNU Free
      Documentation License \url{http://www.gnu.org/licenses/licenses.html#FDL}.
 Permission is granted to copy, distribute and/or modify this document
      under the terms of the GNU Free Documentation License, Version 1.2
      or any later version published by the Free Software Foundation;
      with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  
\end{frame}

\begin{frame}
\frametitle{Dequoi ki parle ?}
\begin{enumerate}
\item<1-> Du fonctionnement de l'Internet
\item<2-> Pas juste des protocoles TCP/IP. Je suppose que tout le
      monde ici sait faire un ping, configurer Apache et même utiliser
      dig.
\item<3-> Mais de l'Internet comme objet global et multi-acteurs. Un
      tel réseau de réseaux est radicalement différent d'un réseau
      local !
\end{enumerate}
\end{frame}

\begin{frame}
\frametitle{Que se passe-t-il derrière ma box ?}
\begin{info}
\% traceroute6 www.ietf.org
\end{info}
\begin{enumerate}
\item freebox (\path{2a01:e35:8bd9:8bb0::1})  6.543 ms
\item th2-crs16-1.intf.routers.proxad.net (\path{2a01:e00:2:d::1}) 25.218 ms
\item londres-6k-1-po101.intf.routers.proxad.net (\path{2a01:e00:1:a::2})  34.033 ms
\item 20gigabitethernet1-3.core1.ams1.ipv6.he.net (\path{2001:7f8:1::a500:6939:1})  46.654 ms
\item 10gigabitethernet7-4.core1.nyc4.he.net (\path{2001:470:0:3e::1})  109.349 ms  
\item cr1.n54ny.ip.att.net (\path{::ffff:12.122.81.106})  188.216 ms  
\item cr81.sj2ca.ip.att.net (\path{::ffff:12.122.1.118})  190.344 ms  
\item mail.ietf.org (\path{2001:1890:123a::1:1e})  183.194 ms  
\end{enumerate}
\end{frame}

\begin{frame}
\frametitle{Qu'est-ce qu'on a vu ?}
\begin{itemize}
\item Un FAI (Free/Proxad), deux opérateurs (Hurricane Electric et
      AT\&T),
\item Un câble transatlantique
\item Des codes géographiques (variés)
\item Des adresses IP et des noms de domaine
\item \emph{Une multiplicité d'acteurs} La principale caractéristique
de l'Internet, ce n'est pas d'utiliser TCP/IP ou d'être un réseau à
commutation de paquets. C'est d'être \emph{multi-acteurs}.
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Système autonome}
\begin{block}
{L'Internet est composé de dizaines de milliers de \emph{systèmes
autonomes} ou AS. L'AS est une entité administrative, un acteur de
l'Internet. M. Michu n'a pas d'AS.}
{Un AS a un numéro (comme 42 ou 2486). À l'intérieur d'un AS, il y a
unité de politique de routage. Entre AS, il n'y a rien de commun, et
pas de chef au dessus.}
\end{block}
\end{frame}

\begin{frame}
\frametitle{Qu'est-ce qu'un Tier 1 ?}
\begin{itemize}
\item La plupart des AS n'ont pas d'autres AS derrière (Proxad dans
l'exemple ci-dessus). Ce sont des
feuilles du graphe. Ils achètent du \emph{transit} à des fournisseurs et se connectent
(en général gratuitement) en \emph{peering}.
\item Une minorité d'AS fournissent du transit aux autres. Ce
sont les AS de transit (HE et AT\&T dans l'exemple ci-dessus).
\item Une minorité de la minorité n'achète de transit à personne. Ce
sont les \emph{Tier 1} comme Level 3.
\item Évidemment, en vrai, c'est encore plus compliqué. 
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Qui dirige l'Internet ?}
\begin{block}
{Bon, il y a plein d'acteurs, mais qui les dirige ?}
{Cf. exposé de Mathieu Weill à JRES hier\ldots}
\end{block}

\begin{itemize}
\item<2-> Qui décide de déployer (ou pas) IPv6 ?
\item<3-> Qui décide de déployer (ou pas) davantage de cryptographie ?
\item<4-> Qui décide qu'on pourra voir du porno (ou pas) en .XXX ?
\item<5-> Qui décide de <insérez votre demande personnelle> ?
\end{itemize}

\end{frame}

\begin{frame}
\frametitle{Zoo}
\begin{itemize}
\item<1-> J'ai parlé des opérateurs mais il y a aussi...
\item<2-> Les fournisseurs de matériel et logiciel de routage
(Juniper, Huawei, Cisco)
\item<3-> Les éditeurs de logiciel (BitTorrent, Firefox, Ubuntu)
\item<4-> Les fournisseurs de service (Google, Facebook)
\item<5-> Les États («~L'Internet ne peut pas demeurer sans règles~»)
\item<6-> Les organismes de normalisation (IEEE, IETF)
\item<7-> Les organismes de régulation (ICANN, RIR, demain CSA ?)
\item<8-> Et même vous~!
\end{itemize}

\only<9->{Le plus difficile sur l'Internet, pour l'administrateur réseaux
débutant, c'est de s'y retrouver dans ce zoo. Le Minitel avec la DGT
était plus simple~!}
\end{frame}

\begin{frame}
\frametitle{Pourquoi Comcast et Level 3 s'accusent-ils réciproquement
de « patate chaude » ?}
Les acteurs cités plus haut sont souvent concurrents : ils ne
travaillent pas pour le bien commun.

Par exemple, le routage sur l'Internet s'est toujours fait par la
« patate chaude » : on fait sortir le paquet de son réseau le plus
vite possible. Lors d'une communication symétrique, patate chaude ou
froide donnent le même résultat.

Mais l'Internet d'aujourd'hui est souvent asymétrique : pousseurs de
conneries vidéo d'un côté, globes oculaires passifs de
l'autre. Les deux algorithmes ne sont plus
équivalents. D'où des disputes comme lorsque Comcast demandait à
Netflix/Level 3 d'utiliser la patate froide.

C'est le monde merveilleux de la \emph{neutralité du réseau}.

\end{frame}

\begin{frame}[fragile]
\frametitle{À quoi sert un point d'échange ?}
\begin{info}
% traceroute6 a.dns.gandi.net   
\end{info}
\begin{enumerate}
\item  vl387-te2-6-paris1-rtr-021.noc.renater.fr (\path{2001:660:300c:1002:0:131:0:2200})  2.175 ms  
\item  te0-0-0-3-paris1-rtr-001.noc.renater.fr (\path{2001:660:7903:a:1::1})  4.924 ms  
\item  gandi.sfinx.tm.fr (\path{2001:7f8:4e:2::118})  81.681 ms  
\item  po82-ip6-vd3.core3-d.paris.gandi.net (\path{2001:4b98:82::42})  11.297 ms  
\item  a.dns.gandi.net (\path{2604:3400:a::2})  10.556 ms  
\end{enumerate}
Entre \computer{te0-0-0-3-paris1-rtr-001.noc.renater.fr} et \computer{gandi.sfinx.tm.fr}, on traverse un point d'échange, le Sfinx.
\end{frame}

\begin{frame}
\frametitle{Les points d'échange}
\begin{itemize}
\item <1-> Simplifient l'interconnexion des opérateurs
\item <2-> Permettent de garder en local le trafic local
\end{itemize}
\begin{itemize}
\item <3-> Fondamentalement, c'est juste un commutateur Ethernet, où les FAI et opérateurs viennent se brancher,
\item <4-> Bon, j'exagère, c'est quand même quelque chose à faire soigneusement,
\item <5-> Mais fondamentalement, ce n'est pas difficile à faire, il n'y a pas de raison que ça prenne des années,
\item <6-> Le plus gros en France est désormais le France-IX.
\end{itemize}
\end{frame}

\begin{frame}[fragile]
\frametitle{BGP fait-il mal ?}
\begin{enumerate}
\item<1->J'envoie un paquet depuis ma connexion Free, à une université
au Japon. Comment Free sait à qui la transmettre ? C'est le rôle de
BGP (\foreign{Border Gateway Protocol}).
\item<2->BGP est le protocole standard d'échanges de route sur
l'Internet. Deux AS s'échangent leurs informations par BGP.
\item<3->Chaque pair BGP annonce « Je sais
joindre \path{2001:1890::/32} » « Moi, je sais
joindre \path{2001:503:a83e::/48} ». Ensuite, il le propage à ses
voisins. En quelques minutes, tout l'Internet est au courant. Presque
400 000 routes aujourd'hui.
\item<4->Même si on n'a pas de routeur BGP (il faut un AS, et des
pairs), on peut voir cette activité par les \foreign{looking
glasses}. \url{http://www.traceroute.org/#Looking%20Glass}
\end{enumerate}
\end{frame}

\begin{frame}
\frametitle{Pourquoi un maladroit au Pakistan peut-il bloquer YouTube
sur toute la planète ?} 
\begin{enumerate}
\item<1->Comment on sait que celui qui annonce une route
vers \path{2605:4500::/32} dit la vérité ? \emph{On ne sait pas}.
\item<2->N'importe qui peut le faire. C'est à l'origine de quelques
bavures fameuses. Mais tout est vite corrigé, car les acteurs de
l'Internet ne suivent pas aveuglément des procédures : ils ont un cerveau.
\item<3->Sécuriser, d'accord, mais comment ? L'absence de Centre
n'aide pas.
\item<4->Déploiement en cours de la RPKI, usine à gaz de certification
des adresses IP, et des ROA, annonces BGP dont l'origine (mais pas le
chemin) est authentifiée.
\end{enumerate}
\end{frame}

\begin{frame}
\frametitle{Résilience}
\begin{block}
{L'Internet est-il très fragile ou très robuste~?}
{Les deux. Très fragile localement et très robuste globalement.}
\end{block}
\begin{block}<2->
{La dernière grande panne : il y a trois semaines}
{Le 7 novembre, une annonce BGP plante un grand nombre des routeurs
Juniper. Level 3, Tata et Neo Telecoms sont touchés. Trente minutes de perturbation. Fin du monde ou anecdote~?}
\end{block}
\only<3->{L'important, c'est plutôt ce qu'on fait pour améliorer cette
résilience~: diversité, compétence, vigilance, coopération}

\only<4->{Et puis pensons à ceux qui vont réparer nos fibres optiques dehors
par tous les temps\ldots \url{http://blog.level3.com/2011/08/04/the-10-most-bizarre-and-annoying-causes-of-fiber-cuts/}}
\end{frame}

\begin{frame}
\frametitle{Il n'y a pas que le routage}
L'Internet dépend de bien d'autres choses.

Je ne vais pas parler de toutes ces choses, seulement de celles que je
connais bien.
\end{frame}

\begin{frame}
\frametitle{Les RIR}
Les RIR (\foreign{Regional Internet Registries}) sont les cinq
organisations qui attribuent les adresses IP dans le monde. C'est au
sein des RIR que se décide si vous pouvez avoir un bloc d'adresses PI
(\foreign{Provider Independent}, c'est-à-dire portables), et selon
quels critères. 

\only<2->{Les RIR sont un acteur essentiel de l'Internet, c'est pour cela qu'ils
ne sont jamais mentionnés dans les médias.}

\only<3->{Le RIR de l'Europe (Europe au sens d'Alexandre le Grand,
cela inclut la Turquie, le Liban et l'Iran) est le RIPE-NCC, installé
à Amsterdam.}

\only<4->{Les rencontres des RIR rassemblent des centaines d'acteurs de
la communauté du routage et sont une occasion privilégiée d'échanger. Prochaine
réunion RIPE à Ljubljana en avril 2012.}

\end{frame}

\begin{frame}[fragile]
\frametitle{Exemple de l'information stockée chez les RIR}
\begin{info}
inet6num:       2001:4b98::/32
netname:        FR-GANDI-20050224
descr:          GANDI
country:        FR
...
tech-c:         GNO4-RIPE
status:         ALLOCATED-BY-RIR
mnt-by:         RIPE-NCC-HM-MNT
mnt-lower:      GANDI-NOC

role:           Gandi Network Operations
address:        15 Place de la Nation
address:        75011 Paris
address:        France
phone:          +33 1 70 39 37 55
nic-hdl:        GNO4-RIPE
...
\end{info}
\end{frame}

\begin{frame}
\frametitle{Le DNS}
\begin{itemize}
\item DNS \foreign{Domain Name System}
\item<2-> Une infrastructure devenue indispensable, car elle fournit
de la stabilité aux identificateurs (les adresses IP changent).
\item<3-> Contrairement au graphe de BGP, le DNS est un arbre, avec une
racine, gérée par le gouvernement des États-Unis (qui vient de lancer
un appel d'offres pour son sous-traitant)\ldots
\item<4-> \ldots et tout un écosystème de registres (comme l'AFNIC,
DENIC ou ICM Registry), et de bureaux d'enregistrements (comme Gandi,
OVH ou BookMyName). Sans compter les gérants des serveurs DNS. Le DNS
est fortement décentralisé.
\item<5-> L'OARC \foreign{DNS Operations, Analysis and Research
Center} rassemble les acteurs techniques pour études et échanges d'expériences.
\item<6-> Le transparent suivant se concentre sur les opérateurs techniques.
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Les acteurs du DNS}
\begin{itemize}
\item La racine du DNS est servie par les serveurs de onze
organisations (question piège~: qui les a choisis~?). Chaque
organisation déploie parfois sur des dizaines de sites (grâce à
l'\foreign{anycast}). Un des points les plus solides de l'Internet (il
a survécu à deux grandes attaques, en 2002 et 2007), et les mieux
connus.
\item<2-> Les TLD (domaines de tête comme \computer{.fr}
ou \computer{.org}) sont servis par les serveurs du registre (AFNIC
pour \computer{.fr}, Afilias pour \computer{.org}, etc). Qualité très
variable.
\item<3-> Des tas d'organisations gèrent des serveurs faisant autorité (servent les
données) ou des résolveurs (récupèrent les donnéees). Typiquement, le
résolveur que vous utilisez est fourni par votre FAI ou par votre
organisation (pour les gros réseaux locaux, par exemple d'une
Université).
\end{itemize}
\end{frame}

\begin{frame}[fragile]
\frametitle{Exemple d'un TLD}
\begin{info}
% dig +nssearch tn.
... 2011111844 ... from server rip.psg.com in 581 ms.
... 2011111844 ... from server sunic.sunet.se in 347 ms.
... 2011111844 ... from server ns.ati.tn in 177 ms.
... 2011111844 ... from server ns2.nic.fr in 31 ms.
... 2011111844 ... from server ns2.ati.tn in 89 ms.
\end{info}
\end{frame}

\begin{frame}
\frametitle{Normalisation}

Le bon fonctionnement de l'Internet dépend de \emph{normes} techniques
communes. Typiquement, c'est l'IEEE qui fixe les normes pour les
couches basses, l'IETF pour les couches 3 à 6, et une partie de la 7, d'autres organismes
(W3C, OASIS) pour le reste de la couche 7.

\only<2->{L'IETF produit les fameux RFC, les textes sacrés de
l'Internet. Contrairement à tant d'autres normes techniques, ils sont
très lisibles. Lecture recommandées aux étudiants et ingénieurs.}

\only<3->{Les rencontres de l'IETF rassemblent des centaines d'acteurs de
l'Internet et sont une occasion privilégiée d'échanger. Prochaine
réunion à Paris en mars 2012. Mais le gros du travail se fait en ligne
et ne nécessite pas de venir.}

\only<4->{L'IETF n'est pas la police de l'Internet, elle n'a aucun
pouvoir (autrement, on utiliserait tous IPsec depuis longtemps).}

\end{frame}

\begin{frame}
\frametitle{Conclusion}
L'un des gros avantages de l'Internet est que son fonctionnement est
lui-même ouvert :
\begin{itemize}
\item<1->Grâce à traceroute, on peut connaître la politique de routage
de son opérateur (imaginez si France Telecom avait conçu
l'Internet\ldots).
\item<2->Les RFC sont disponibles facilement et gratuitement (contrairement aux normes ISO ou
AFNOR) et sont très lisibles.
\item<3->Une bonne partie des discussions et des faits sont publics
(lisez les compte-rendus des réunions NANOG, RIPE, OARC\ldots).
\item<4->Bref, n'hésitez pas à aller voir « derrière la \foreign{box} ».
\end{itemize}
\end{frame}

\end{document}

