\documentclass{beamer}
%\documentclass[ignorenonframetext,handout]{beamer}
%\usepackage{pgfpages}
%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]

\usetheme{JuanLesPins}
\usepackage[french]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{bortzmeyer-utils}

\title{DELEG, un changement radical de la délégation DNS (\insertframenumber/\inserttotalframenumber)}
\author{Stéphane Bortzmeyer\\\texttt{stephane+jdll@bortzmeyer.org}}
\date{JDLL, 24 mai 2025}
\setlength{\parskip}{15pt plus 10pt minus 10pt} 
\setbeamersize{text margin left=0.2cm,text margin right=1.8cm}
\newcommand{\of}{.6}

\begin{document}

\maketitle

\begin{frame}
  \frametitle{Le résumé}
  \begin{overlayarea}{\textwidth}{\of\textheight}
    \begin{itemize}
    \item<2->Un changement profond du mécanisme de délégation,
    \item<3->qui est au cœur du DNS,
    \item<4->qui devra coexister longtemps avec le système actuel,  
    \item<5->un projet proposé à l'IETF,
    \item<6->dont je pense que le succès n'est pas garanti.
    \end{itemize}
  \end{overlayarea}
\end{frame}

\begin{frame}
    \frametitle{Délégation}
      \begin{overlayarea}{\textwidth}{\of\textheight}
  \begin{itemize}
     \item<2->Les noms de domaine sont gérés de manière décentralisée.
     \item<3->Des noms peuvent être \emph{délégués} et on change alors
       d'organisme responsable.
      \item<4->Par exemple \url{eu.org} est délégué
    depuis \url{.org} et délègue à son tour.
     \item<5->Rien dans le nom
    n'indique où est la frontière de délégation : il faut utiliser le
    DNS.
  \end{itemize}
      \end{overlayarea}
\end{frame}

\begin{frame}
  \frametitle{L'arbre des noms de domaine}
  \includegraphics[scale=0.29]{arbre.eps}
\end{frame}

\begin{frame}
  \frametitle{Résolution de noms, ou le protocole DNS en action}
  \includegraphics[scale=0.41]{resolution.eps}
\end{frame}

\begin{frame}[fragile]
  \frametitle{La délégation, vue avec dig}
  \begin{info}
% dig @d.nic.fr www.pik.bzh
…
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1513
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 1
…
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 9a0da49400d664e901000000682b4aa5bb7c2c9710d3759e (good)
…
;; AUTHORITY SECTION:
pik.bzh.		3600	IN	NS	dns103.ovh.net.
pik.bzh.		3600	IN	NS	ns103.ovh.net.

;; Query time: 6 msec
;; SERVER: 2001:678:c::1#53(d.nic.fr) (UDP)
;; WHEN: Mon May 19 17:13:41 CEST 2025
;; MSG SIZE  rcvd: 116    
  \end{info}
\end{frame}

\begin{frame}
  \frametitle{Le système actuel}
  \begin{overlayarea}{\textwidth}{\of\textheight}
    \begin{itemize}
    \item<2->La délégation se fait en mettant dans la zone parente un
      ensemble d'enregistrements NS,
    \item<3->ne faisant pas autorité et n'étant pas signé,
    \item<4->qui doit être synchronisé avec le vrai ensemble NS,
    \item<5->ah, et il y a la colle, aussi.  
    \end{itemize}
  \end{overlayarea}
\end{frame}

\begin{frame}
  \frametitle{Ses limites}
  \begin{overlayarea}{\textwidth}{\of\textheight}
    \begin{itemize}
    \item<2->Dans le système RRR\only<2>{ (\foreign{Registry Registrar
      Registrant)}}, pas de place pour l'hébergeur
      DNS\only<2>{ (\foreign{operator})}.
    \item<3->Exemple, si je suis titulaire et que mon hébergeur me dit
      d'annoncer \url{ns1.operator.example} et
      \url{ns2.operator.example}, et que l'hébergeur ajoute ensuite
      \url{ns3.operator.example}, tous ses clients vont devoir
      prévenir le registre, via le BE\only<3>{ (Bureau d'Enregistrement)}.
     \item<4->Et pour le remplacement des clés DNSSEC ? L'hébergeur ne peut
       pas le faire directement. 
    \end{itemize}
  \end{overlayarea}
\end{frame}

\begin{frame}
  \frametitle{Ses limites, suite}
  \begin{overlayarea}{\textwidth}{\of\textheight}
    \begin{itemize}
    \item<2->La délégation actuelle ne permet d'indiquer que noms et
      adresses IP.
    \item<3->Et le port ?
    \item<4->Et le protocole\only<4>{ (DoT, DoH… Cf. RFC 9539)} ?
    \item<5->Et d'autres trucs marrants ?  
    \end{itemize}
  \end{overlayarea}
\end{frame}

\begin{frame}
  \frametitle{La proposition}
  \begin{overlayarea}{\textwidth}{\of\textheight}
    \begin{itemize}
    \item<2->Comme toujours en informatique, quand on a un problème,
      \emph{on ajoute un niveau d'indirection}.
    \item<3->Le serveur faisant autorité, quand la réponse est sous une
      délégation, renverra un ensemble DELEG.
    \item<4->Comme le DS, il est dans la zone parente, y fait autorité
      et est signé.
    \item<5->Le bit DE : « je sais gérer DELEG ».  
    \end{itemize}
  \end{overlayarea}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Exemple d'une délégation simple}
  (Exemple non définitif)
  \begin{info}
example.com.  86400  IN DELEG  1 ns1.example.com. (
                   ipv4hint=192.0.2.1 ipv6hint=2001:db8::1 proto=dot)
example.com.  86400  IN NS     ns1.example.com.

ns1.example.com.    86400   IN  A  192.0.2.1
ns1.example.com     86400   IN  AAAA    2001:db8::1  
  \end{info}  
\end{frame}

\begin{frame}[fragile]
  \frametitle{Exemple d'une délégation avec indirection}
  \begin{info}
example.com.  86400  IN DELEG 0   config2.example.net.
example.com.  86400  IN NS     ns2.example.net.
\end{info}

  La vraie information sera en \url{config2.example.net} et utilisera
  les SVCB du RFC 9460 :

\begin{info}  
config2.example.net. 3600    IN SVCB 1 . (
                   ipv4hint=192.0.2.54,192.0.2.56
                   ipv6hint=2001:db8:2423::3,2001:db8:2423::4 )

  \end{info}  
\end{frame}

\begin{frame}
  \frametitle{Les autres idées}
  \begin{overlayarea}{\textwidth}{\of\textheight}
    \begin{itemize}
    \item<2->Une proposition alternative utilise un sous-domaine \computer{\_deleg}.
    \end{itemize}
  \end{overlayarea}
\end{frame}

\begin{frame}
  \frametitle{La coexistence}
  \begin{overlayarea}{\textwidth}{\of\textheight}
    \begin{itemize}
    \item<2->Il faut modifier les chaines d'avitaillement, les
      résolveurs, les serveurs faisant autorité, les logiciels de
      déboguage\only<2>{ (DNSviz, Zonemaster)}.
    \item<3->30 à 40 ans devraient suffire pour que l'ancien système
      soit remplacé par DELEG.
    \item<4->En attendant, côté publication, il faudra gérer les deux.
    \item<5->Les vieux résolveurs ignoreront DELEG.  
    \end{itemize}
  \end{overlayarea}
\end{frame}

\begin{frame}
  \frametitle{L'état actuel du projet}
  \begin{overlayarea}{\textwidth}{\of\textheight}
    \begin{itemize}
    \item<2->Un groupe de travail à l'IETF.
    \item<3->Plusieurs \foreign{Internet-Drafts} dont certains adoptés
      par le groupe de travail.
    \item<4->Prochaine étape, Madrid en juillet.  
    \end{itemize}
  \end{overlayarea}
\end{frame}

\begin{frame}
  \frametitle{Déjà des idées d'extensions}
  \begin{overlayarea}{\textwidth}{\of\textheight}
    \begin{itemize}
    \item<2->DELEG pour indiquer les frontières administratives\only<2>{ (en
      remplacement du défunt projet DBOUND)}.
    \item<3->L'idée d'ajouter des informations à la délégation excite
      beaucoup de monde.
    \end{itemize}
  \end{overlayarea}
\end{frame}

\end{document}

