\documentclass[12pt,a4paper]{article}
\usepackage[spanish]{babel}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{tikz}
\usetikzlibrary{shapes,positioning,calc}

\title{Tema V Ejercicio II: DNS}
\author{Nicolás A. Ortega Froysa}

\begin{document}
\maketitle
\pagebreak
\tableofcontents
\pagebreak
\section{Hoja De Control Del Documento}
\begin{table}[h!]
	\centering
	\caption{Documento/Archivo}
	\label{tab:document}
	\begin{tabular}{|l|c|l|c|}
		\hline
		{\bf Fecha Última Modificación} & \the\day/\the\month/\the\year &
		{\bf Versión/Revisión} & v01r01 \\ \hline
		{\bf Fecha Creación} & \the\day/\the\month/\the\year & \hfill & \hfill \\ \hline
		{\bf Fecha Finalización} & \the\day/\the\month/\the\year & \hfill &
		\hfill \\ \hline
	\end{tabular}
\end{table}

\begin{table}[h!]
	\centering
	\caption{Registro De Cambios}
	\label{tab:registro-cambios}
	\begin{tabular}{|c|c|c|}
		\hline
		{\bf Versión/Revisión} & {\bf Página(s)} & {\bf Descripción} \\
		\hline
		v01r01 & Todas & Creación y elaboración del documento. \\ \hline
	\end{tabular}
\end{table}

\begin{table}[h!]
	\centering
	\caption{Autores Del Documento}
	\label{tab:autores}
	\begin{tabular}{|c|c|}
		\hline
		{\bf Apellidos, Nombre} & {\bf Curso} \\ \hline
		Ortega Froysa, Nicolás Andrés & 1 \\ \hline
	\end{tabular}
\end{table}

\begin{table}[h!]
	\centering
	\begin{tabular}{|p{4cm}|p{4cm}|p{4cm}|}
		\hline
		{\bf Preparado} & {\bf Revisado} & {\bf Aprobado} \\ \hline
		Ortega Froysa, Nicolás Andrés & \hfill & \hfill \\ \hline
	\end{tabular}
\end{table}

\pagebreak

\section{Jerarquía del Espacio de Nombres}

\begin{table}[h!]
	\centering
	\begin{tabular}{|c|c|c|}
		\hline
		{\bf Nombre Dominio} & {\bf Protocolo} & {\bf Dirección IP} \\ \hline
		tftp1.docsis.finantial.com. & TFTP & 172.26.1.10 \\ \hline
		dns\_doc.docsis.finantial.com. & DNS & 172.26.1.11 \\ \hline
		pppserver.docsis2.finantial.com. & SSH & 172.26.3.7 \\ \hline
		dns\_doc2.finantial.com. & DNS & 172.26.3.8 \\ \hline
		ftp\_arch.ojm.com. & FTP & 172.32.10.2 \\ \hline
		dns1.ojm.com. & DNS & 172.32.10.3 \\ \hline
		www.ojm.com. & HTTP & 172.32.12.4 \\ \hline
		coco.labcom.org. & STREAMING & 10.0.12.3 \\ \hline
		dns\_cocolab.labcom.org. & DNS & 10.0.12.4 \\ \hline
		www.cv-cep.ceuandalucia.es. & HTTP & 192.168.12.100 \\ \hline
		wjade.cv-cep.ceuandalucia.es. & HTTP & 192.168.12.53 \\ \hline
		dns\_info.cv-cep.ceuandalucia.es. & DNS & 192.168.12.40 \\ \hline
		mailservery.europa.es. & MAIL & 10.0.10.100 \\ \hline
		dns\_eur.europa.es. & DNS & 10.0.10.120 \\ \hline
	\end{tabular}
	\caption{Espacio de nombres.}
\end{table}

\noindent
{\bf a. Representar mediante un gráfico el espacio de nombres utilizado.}

Figura \ref{fig:tree}.

\begin{figure}[h!]
	\centering
	\begin{tikzpicture}[sibling distance=5em,
		level distance=7em,
		rotate=90,
		every node/.style={draw,align=center},
		root/.style={fill=green!20},
		tld/.style={fill=blue!20},
		branch/.style={shape=ellipse},
		leaf/.style={shape=rectangle,fill=yellow!20},
		level 1/.append style={sibling distance=8em},
		level 2/.append style={sibling distance=6em},
		level 3/.append style={sibling distance=3em}]
		\node[branch,root] {•}
			child { node[branch,tld] {com}
				child { node[branch] {finantial}
					child { node[branch] {docsis}
						child { node[leaf] {tftp1} }
					}
					child { node[branch] {docsis2}
						child { node[leaf] {pppserver} }
					}
				}
				child { node[branch] {ojm}
					child { node[leaf] {ftp\_arch} }
					child { node[leaf] {www} }
				}
			}
			child { node[branch,tld] {org}
				child { node[branch] {labcom}
					child { node[leaf] {coco} }
				}
			}
			child { node[branch,tld] {es}
				child[sibling distance=3em] { node[branch] {ceuandalucia}
					child { node[branch] {cv-cep}
						child { node[leaf] {wjade} }
						child { node[leaf] {www} }
					}
				}
				child[sibling distance=3em] { node[branch] {europa}
					child { node[leaf] {mailservery} }
				}
			};
	\end{tikzpicture}
	\caption{Árbol del espacio de nombres.}
	\label{fig:tree}
\end{figure}

\pagebreak

\hfill

\noindent
{\bf b. Identifique cada una de las zonas DNS bajo .com, incluyendo éste.
Indicar el nombre y la dirección IP de los servidores de cada una de las zonas.
En el caso de que se traten de servidores DNS indique su tipo. Si no conoce el
nombre o IP de algún servidor utilice ``{\tt server\_xxxx}'' e ``{\tt
IP\_server\_xxxx}'', donde xxxx representa el nombre de la zona.}

Figura \ref{fig:zones-com} y tabla \ref{tbl:zones-com}.

\begin{figure}[h!]
	\centering
	\begin{tikzpicture}[sibling distance=5em,
		every node/.style={draw,align=center},
		root/.style={fill=green!20},
		tld/.style={fill=blue!20},
		branch/.style={shape=ellipse},
		leaf/.style={shape=rectangle,fill=yellow!20},
		label/.style={draw=none,fill=none}]
		\matrix[row sep=1em,column sep=0.5em] {
			\node[label] {Zona I}; &
			\node[label] {Zona II}; &
			\node[label] {Zona III}; \\
			\node[tld,branch] {com}
				child { node[branch] {finantial} }
				child { node[branch] {ojm} }; &
			\node[branch] {finantial}
				child { node[branch] {docsis} }
				child { node[branch] {docsis2} }; &
			\node[branch] {ojm}
				child { node[leaf] {ftp\_arch} }
				child { node[leaf] {www} }; \\
			\node[label] {Zona IV}; &
			\node[label] {Zona V}; \\
			\node[branch] {docsis}
				child { node[leaf] {tftp1} }; &
			\node[branch] {docsis2}
				child { node[leaf] {pppserver} }; \\
		};
	\end{tikzpicture}
	\caption{Mapa de zonas DNS de {\tt .com}.}
	\label{fig:zones-com}
\end{figure}

\begin{table}
	\centering
	\begin{tabular}{|c|c|c|}
		\hline
		{\bf Zona} & {\bf Servidor} & {\bf Dirección IP} \\ \hline
		Zona I & server\_com & IP\_server\_com \\ \hline
		Zona II & dns\_doc2 & 172.26.3.8 \\ \hline
		Zona III & dns1 & 172.32.10.3 \\ \hline
		Zona IV & dns\_doc & 172.26.1.11 \\ \hline
		Zona V & server\_docsis2 & IP\_server\_docsis2 \\ \hline
	\end{tabular}
	\caption{Tabla de zonas DNS de {\tt .com}.}
	\label{tbl:zones-com}
\end{table}

\hfill

\noindent
{\bf c. ¿Quién resolverá la petición DNS sobre el servidor {\tt coco.labcom.org}
¿Qué información contendrá la base de datos DNS de {\tt org}?}

La petición DNS se resolverá con el orden DNS raíz $\to$ DNS org $\to$
dns\_cocolab.labcom.org. La base de datos DNS de {\tt org} contendrá la
dirección del servidor dns\_cocolab.labcom.org.

\pagebreak

\noindent
{\bf d. Se quiere añadir un nuevo dominio denominado arquitectura.europa.es.
sobre el que se insertará un servidor DNS llamado dns\_ar.arquitectura.europa.es
con IP 10.0.200.12, y otro de correo electrónico llamado
correoar.arquitectura.europa.es con IP 10.0.201.11. Indique dónde y si puede los
registros RR hay que añadir.}

Habría que añadir los siguientes registros:
\begin{itemize}
	\item En dns\_eur.europa.es: {\tt dns\_ar.arquitectura.europa.es DNS
		10.0.200.12}
	\item En dns\_ar.arquitectura.europa.es: {\tt
		correoar.arquitectura.europa.es MX 10.0.201.11}
\end{itemize}

\pagebreak

\noindent
{\bf e. La estación haile.docsis.finantial.com quiere solicitar un recurso al
servidor www.cv-cep.ceuandalucia.es para lo que realiza una consulta DNS.
Represente cómo se realizaría dicha consulta en el caso de que fuese iterativa.
¿Qué información se almacenaría en la caché DNS del servidor local? ¿Y en la
caché del servidor DNS del otro extremo?}

\begin{figure}[h!]
	\centering
	\begin{tikzpicture}[
		every node/.style={align=center,fill=white!20},
		comp/.style={shape=rectangle,draw}]
		\node[comp] (root) {Raíz (•)};
		\node[comp,below=3em of root] (es) {es};
		\node[comp,below=3em of es] (ceuandalucia) {ceuandalucia};
		\node[comp,below=3em of ceuandalucia] (cv-cep) {cv-cep};
		\node[comp,left=20em of {$(root)!0.5!(cv-cep)$}] (lclDNS) {dns\_doc};
		\node[comp,below=3em of lclDNS] (PC) {haile};
		\draw[-stealth] (PC) to[out=110, in=250] node {1} (lclDNS);
		\draw[-stealth] (lclDNS) to[out=40, in=170] node {2} (root);
		\draw[stealth-] (lclDNS) to[out=25, in=185] node {3} (root);
		\draw[-stealth] (lclDNS) to[out=20, in=175] node {4} (es);
		\draw[stealth-] (lclDNS) to[out=5, in=185] node {5} (es);
		\draw[-stealth] (lclDNS) to[out=0, in=170] node {6} (ceuandalucia);
		\draw[stealth-] (lclDNS) to[out=-10, in=180] node {7} (ceuandalucia);
		\draw[-stealth] (lclDNS) to[out=-20, in=170] node {8} (cv-cep);
		\draw[stealth-] (lclDNS) to[out=-30, in=180] node {9} (cv-cep);
		\draw[stealth-] (PC) to[out=70, in=300] node {10} (lclDNS);
	\end{tikzpicture}
	\caption{Consulta iterativa para www.cv-cep.ceuandalucia.es.}
	\label{fig:iterative-query}
\end{figure}

En el servidor DNS local (i.e.\ dns\_doc.docsis.finantial.com) se guardarán las
direcciones de los IP de los DNS de es, ceuandalucia, y cv-cep. No guadará de
nuevo a la raíz, ya que la tiene (a no ser así, no podría hacer la petición).
Los servidores DNS locales del otro lado no guardarán nada.

\pagebreak

\section{Derechos de Autor y Licencia}
Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa <nicolas@ortegas.org>
\\
Este documento se distribuye bajo los términos y condiciones de la licencia
Creative Commons Attribution No Derivatives 4.0 International.

\end{document}
