diff options
| author | Juan Marín Noguera <juan.marinn@um.es> | 2020-03-06 11:48:39 +0100 |
|---|---|---|
| committer | Juan Marín Noguera <juan.marinn@um.es> | 2020-03-06 11:48:39 +0100 |
| commit | d88240e64c5af1054e514f7e7f77000fc30a0a20 (patch) | |
| tree | ba60b63d7806fae3b91ed4906648f4a62fc2e7d1 | |
| parent | 18f53908167a6709b95e37ccec15f2fce06de035 (diff) | |
dns
| -rw-r--r-- | defs.tex | 86 | ||||
| -rw-r--r-- | st/n.lyx | 17 | ||||
| -rw-r--r-- | st/n4.lyx | 616 |
3 files changed, 715 insertions, 4 deletions
@@ -1,8 +1,86 @@ -% Exercises (old format) +% Documentation: +% \exerc{n} -- Begin exercise number "n". +% \rexerc{n} -- Begin recommended exercise number "n". +% \answer -- Answer to the exercise (currently just disable indentation). +% Usually this would be like: \(r)exerc{(n)} (question) \par\answer (answer). +% +% \soffsets -- Place before a table to avoid horizontal margins on cells. +% \eoffsets -- Place after. +% \offset{a}{b} -- An offset indication. +% Usually, there's one row for the offset indication, with 3% of page width per +% bit. Then 32 bits per row. This is usually used for illustrating a binary +% format. +% +% \mixbox{...} -- A box for MIX 5-byte (plus sign) registers. +% \mixsmbox{...} -- A box for MIX 2-byte (plus sign) registers. +% \byte{n} -- Byte with contents "n". +% \twobytes{n} -- Two bytes. +% \threebytes{n} -- Three bytes. +% \fourbytes{n} -- Four bytes. +% \fivebytes{n} -- Five bytes. +% \sixbytes{n} -- Six bytes. +% The last six commands should only be used inside \mixbox or \mixsmbox. These +% two commands should have the appropiate number of bytes including sign (six or +% three, respectively). +% Note: For tables, don't use \mixbox or \mixsmbox. Instead, put the table +% between \soffsets and \eoffsets, add ~ when some separation is needed and +% make sure the cells containing the bytes (one cell per box) has borders. \font\manual=manfnt -\def\ejercicio#1#2{\medbreak\noindent\llap{\manual\char'170\rm\kern.15em}{\bf\small EJERCICIO #1}\\#2\par\nobreak\noindent} -\def\exercise{\ejercicio} -\def\cuestion#1#2{\vspace{.35in}\medbreak\noindent\llap{\manual\char'170\rm\kern.15em}{\bf\small CUESTI\'ON #1}\\#2\par\nobreak\noindent} +\outer\def\exerc#1{\medbreak\paragraph{ #1.}} +\outer\def\rexerc#1{\medbreak\paragraph{\noindent\llap{\manual\char'170\rm\kern.15em} #1.}} +\outer\def\answer{\par\vskip3pt\nobreak\noindent} + +% Deprecated +%\outer\def\exercise#1{\medbreak\noindent\llap{\manual\char'170\rm\kern.15em}{\bf\small EJERCICIO #1}\par\nobreak\noindent} +%\def\onpart#1#2{\setcounter{part}{#1}\part{#2}} +%\def\onchapter#1#2{\setcounter{chapter}{#1}\chapter{#2}} +%\def\onsection#1#2{\setcounter{section}{#1}\section{#2}} +%\def\onsubsection#1#2{\setcounter{subsection}{#1}\section{#2}} + +%% MACROS FOR MIX BOXES (mostly from taocpmac.tex) +\def\ticky#1{\leavevmode\hbox{\chardef\_=`\_\tt#1}} +\def\Hedge#1{\vbox{\dimen0=#1 em \advance\dimen0 .4 pt \hrule width \dimen0}} \def\Hed#1{\vbox{\dimen0=1.4em\relax \dimen0=#1\dimen0\relax \advance\dimen0 .4pt\relax \hrule width \dimen0}} +\def\hedge{\Hedge{8.4}} +\def\smhedge{\Hedge{4.2}} + +\def\vedge{\vrule height 1.05em depth .55em} % 16pt +\def\tick{\vrule height 0.2em} +\def\Byte#1#2{\hbox to #1em{\hfill\ticky{#2}\hfill\hskip.4 pt }\hskip-.4pt \vrule} +\def\byte{\Byte{1.4}} + +\newcount\nbytes +\newdimen\byteswidth +\newdimen\clearance +\clearance=4.175pt +\def\cb{\hskip-\clearance plus 1 fill } %center bytes +% #1=number of bytes, #2=total width, #3=height to tick, #4=depth to tick, +% #5=contents +\def\multibytes#1#2#3#4#5{\nbytes=1 \byteswidth=#2em + \hbox to \byteswidth{\hfill{\tt#5}\hskip\clearance \hskip.4pt}\hskip-\byteswidth + \divide\byteswidth #1 + \loop\ifnum\nbytes<#1 \advance\nbytes by1 + \hskip\byteswidth + \hskip-.4pt\vrule height -#4 em \hskip -.4pt \vrule depth -#3 em \repeat + \hskip\byteswidth \hskip-.4pt \vrule} + +\def\twobytes{\multibytes2{2.8}{.85}{.35}} +\def\threebytes{\multibytes3{4.2}{.85}{.35}} +\def\fourbytes{\multibytes4{5.6}{.85}{.35}} +\def\fivebytes{\multibytes5{7.0}{.85}{.35}} +\def\sixbytes{\multibytes6{9.0}{.95}{.45}} + +\def\opensign#1{\lower 5.5pt\vbox to 16pt{\hbox to 14pt{\hfil\tick}\vfill +\hbox to 14pt{\hfil\ticky{#1}\hfil}\vfill\hbox to 14pt{\hfil\tick}}} +\def\textindentindent#1{\noindent\hbox to 40pt{\hss#1\ }\!} + +\def\punct#1{\ifinner \,#1 \else\rlap{\enspace#1}\fi} % punctuation after box + +\def\mixbox#1{\,\hbox{\lower 5.5pt\vbox{\hedge\vskip-1.2pt\hbox{\vedge#1}\vskip-5.5pt\hedge}}\,} +\def\mixsmbox#1{\,\hbox{\lower 5.5pt\vbox{\smhedge\vskip-1.2pt\hbox{\vedge#1}\vskip-5.5pt\smhedge}}\,} + +\def\soffsets{\begin{center}\setlength\tabcolsep{0pt}} +\def\offset#1#2{\small\ #1\hfill{}#2\ } +\def\eoffsets{\end{center}} % Notices \def\sremember#1{\begin{center}\begin{tabular}{|p{0.9\textwidth}|}\multicolumn{1}{p{0.9\textwidth}}{{\kern-.3em\small {[}#1{]}}}\tabularnewline\hline\kern-1ex} @@ -5,6 +5,9 @@ \save_transient_properties true \origin unavailable \textclass book +\begin_preamble +\input{../defs} +\end_preamble \use_default_options true \maintain_unincluded_children false \language spanish @@ -191,5 +194,19 @@ filename "n3.lyx" \end_layout +\begin_layout Chapter +DNS +\end_layout + +\begin_layout Standard +\begin_inset CommandInset include +LatexCommand input +filename "n4.lyx" + +\end_inset + + +\end_layout + \end_body \end_document diff --git a/st/n4.lyx b/st/n4.lyx new file mode 100644 index 0000000..87fa4b4 --- /dev/null +++ b/st/n4.lyx @@ -0,0 +1,616 @@ +#LyX 2.3 created this file. For more info see http://www.lyx.org/ +\lyxformat 544 +\begin_document +\begin_header +\save_transient_properties true +\origin unavailable +\textclass book +\use_default_options true +\maintain_unincluded_children false +\language spanish +\language_package default +\inputencoding auto +\fontencoding global +\font_roman "default" "default" +\font_sans "default" "default" +\font_typewriter "default" "default" +\font_math "auto" "auto" +\font_default_family default +\use_non_tex_fonts false +\font_sc false +\font_osf false +\font_sf_scale 100 100 +\font_tt_scale 100 100 +\use_microtype false +\use_dash_ligatures true +\graphics default +\default_output_format default +\output_sync 0 +\bibtex_command default +\index_command default +\paperfontsize default +\spacing single +\use_hyperref false +\papersize default +\use_geometry false +\use_package amsmath 1 +\use_package amssymb 1 +\use_package cancel 1 +\use_package esint 1 +\use_package mathdots 1 +\use_package mathtools 1 +\use_package mhchem 1 +\use_package stackrel 1 +\use_package stmaryrd 1 +\use_package undertilde 1 +\cite_engine basic +\cite_engine_type default +\biblio_style plain +\use_bibtopic false +\use_indices false +\paperorientation portrait +\suppress_date false +\justification true +\use_refstyle 1 +\use_minted 0 +\index Index +\shortcut idx +\color #008000 +\end_index +\secnumdepth 3 +\tocdepth 3 +\paragraph_separation indent +\paragraph_indentation default +\is_math_indent 0 +\math_numbering_side default +\quotes_style french +\dynamic_quotes 0 +\papercolumns 1 +\papersides 1 +\paperpagestyle default +\tracking_changes false +\output_changes false +\html_math_output 0 +\html_css_as_file 0 +\html_be_strict false +\end_header + +\begin_body + +\begin_layout Standard + +\series bold +\emph on +Domain Name System +\series default +\emph default + es una base de datos distribuida en una jerarquía de servidores de nombres + ( +\series bold +\emph on +name servers +\series default +\emph default +) para traducir entre nombres de dominio y direcciones IP, que permite la + creación de alias o nombres de dominio alternativos y la distribución de + carga dando al mismo nombre varias direcciones IP, de las que se elige + una u otra en orden circular. + Las entradas o +\series bold +\emph on +resource records +\series default +\emph default + ( +\series bold +RR +\series default +) tienen forma (nombre, valor, tipo, TTL), donde TTL son los segundos hasta + que expire la entrada y algunos tipos son: +\end_layout + +\begin_layout Description + +\family typewriter +A +\family default + El nombre es el de un dominio y el valor es la IPv4. +\end_layout + +\begin_layout Description + +\family typewriter +CNAME +\family default + El nombre es un alias para el valor, ambos nombres de dominio. +\end_layout + +\begin_layout Description + +\family typewriter +NS +\family default + El nombres es el de un dominio y el valor es la IP del servidor DNS responsable. +\end_layout + +\begin_layout Description + +\family typewriter +MX +\family default + El valor es el servidor de correo asociado con el nombre, ambos nombres + de dominio. +\end_layout + +\begin_layout Standard +Los nombres de dominio tienen forma jerárquica, ... +\family typewriter +. +\emph on +nivel2 +\emph default +. +\emph on +nivel1 +\emph default +. +\family default +, y un servidor DNS responsable de un dominio se encarga de la dirección + de sus +\series bold +subdominios +\series default +, dominios que tienen al dominio principal como sufijo, precedido de un + punto, con un nivel mayor. + Tipos de servidores DNS: +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Root name servers +\series default +\emph default +: 13 direcciones IP en el mundo que mantienen el nivel de jerarquía más + alto (nivel 1). +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Top-level domain +\series default +\emph default + ( +\series bold +TLD +\series default +): Responsables de los dominios de primer nivel: +\family typewriter +com +\family default +, +\family typewriter +org +\family default +, +\family typewriter +net +\family default +, +\family typewriter +edu +\family default +, +\family typewriter +aero +\family default +, +\family typewriter +jobs +\family default +, +\family typewriter +museums +\family default +, etc., incluyendo los de los países, como +\family typewriter +uk +\family default +, +\family typewriter +fr +\family default +, +\family typewriter +ca +\family default +, +\family typewriter +jp +\family default +, etc. + Network Solutions mantiene servidores para el TLD +\family typewriter +com +\family default + y Educause para el TLD +\family typewriter +edu +\family default +. +\end_layout + +\begin_layout Itemize + +\series bold +\emph on +Authoritative +\series default +\emph default +: Servidor DNS de una organización, con información de mapeo entre nombre + e IP para los hosts de la organización. + Los mantiene la organización o un proveedor de servicio. +\end_layout + +\begin_layout Itemize + +\series bold +Servidores locales +\series default +: No son necesariamente responsables de ningún dominio, sino que son servidores + más cercanos al usuario a los que este consulta y que actúan como +\emph on +proxy +\emph default +, pudiendo responder desde una caché o reenviar la consulta a otro servidor + local o a la jerarquía. + Llamamos +\series bold +\emph on +default name server +\series default +\emph default + al servidor local al que pregunta un cierto usuario. +\end_layout + +\begin_layout Standard +Una consulta es +\series bold +iterativa +\series default + si, cuando el servidor contactado no conoce un mapeo, responde con el nombre + del servidor al que contactar para obtenerlo, y es +\series bold +recursiva +\series default + si es este el que contacta. + La recursiva mejora la caché del servidor intermedio, pero sobrecarga los + niveles altos de la jerarquía. +\end_layout + +\begin_layout Standard +Cuando un servidor de nombre aprende un mapeo, lo guarda en una caché ( +\series bold +\emph on +caching +\series default +\emph default +) hasta que expira el TTL. + Los TLD se cachean en servidores locales, por lo que los servidores raíz + no se consultan frecuentemente. + El RFC 2136 propone mecanismos de actualización y modificación. +\end_layout + +\begin_layout Standard +Los mensajes se envían sobre UDP con el siguiente formato: +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +soffsets +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset Tabular +<lyxtabular version="3" rows="8" columns="2"> +<features tabularvalignment="middle"> +<column alignment="center" valignment="top" width="48col%"> +<column alignment="center" valignment="top" width="48col%"> +<row> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +offset0{15} +\end_layout + +\end_inset + + +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +offset{16}{31} +\end_layout + +\end_inset + + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +ID +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Opciones +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Número de preguntas +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Número de respuestas +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Número de respuestas autoritativas +\end_layout + +\end_inset +</cell> +<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Número de respuestas adicionales +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +Preguntas +\end_layout + +\end_inset +</cell> +<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +RRs de respuestas +\end_layout + +\end_inset +</cell> +<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +RRs con los servidores autoritativos +\end_layout + +\end_inset +</cell> +<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +</row> +<row> +<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout +RRs con información adicional +\end_layout + +\end_inset +</cell> +<cell multicolumn="2" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +\begin_inset Text + +\begin_layout Plain Layout + +\end_layout + +\end_inset +</cell> +</row> +</lyxtabular> + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset ERT +status open + +\begin_layout Plain Layout + + +\backslash +eoffsets +\end_layout + +\end_inset + + +\end_layout + +\begin_layout Standard +El ID es el mismo en la petición que en la respuesta. + Las opciones indican si se trata de una petición ( +\emph on +query +\emph default +) o respuesta ( +\emph on +reply +\emph default +), si se desea recursividad, si esta está disponible, etc. +\end_layout + +\begin_layout Standard +Para registrar un nombre en un dominio, a través de un +\series bold +\emph on +DNS registrar +\series default +\emph default +, se guardan en este un registro NS con el nombre de dominio +\emph on +authoritative +\emph default + y un registro A para dicho servidor, y en el servidor +\emph on +authoritative +\emph default + se incluyen los registros A para el dominio y subdominios, MX, etc. +\end_layout + +\begin_layout Standard +Para un dominio un servidor DNS puede ser +\series bold +primario +\series default + o +\series bold +maestro +\series default + si almacena la información sobre la zona o +\series bold +secundario +\series default + o +\series bold +esclavo +\series default + si obtiene información de esta copiándola del primario. +\end_layout + +\begin_layout Standard +DNS podría ser vulnerable a ataques de solicitud de servicio distribuidos + (DDoS). + Esto no se ha conseguido para los servidores raíz, pues estos implementan + filtrado de tráfico y, además, los servidores locales rara vez contactan + con estos porque tienen las IPs de los TLDs en caché; sin embargo, esto + es potencialmente más peligroso si el objetivo son los TLDs. + DNS se puede explotar para DDoS enviando solicitudes con una dirección + IP fuente que se pretende atacar, aunque se requiere algún mecanismo de + amplificación de las respuestas. + También es vulnerable a ataques +\emph on +man-in-the-middle +\emph default + (MITM); en concreto, el +\series bold +\emph on +DNS poisoning +\series default +\emph default + consiste en enviar respuestas DNS con información falsa a los servidores + locales para que la cacheen. +\end_layout + +\end_body +\end_document |
