Add ISO/t12-ej1 documents.
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								1/ISO/assignments/t12-ej1-dhcpd/imgs/mac-address.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								1/ISO/assignments/t12-ej1-dhcpd/imgs/mac-address.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 103 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								1/ISO/assignments/t12-ej1-dhcpd/imgs/static-ip.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								1/ISO/assignments/t12-ej1-dhcpd/imgs/static-ip.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 535 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								1/ISO/assignments/t12-ej1-dhcpd/t12-ej1-dhcpd-naortega.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								1/ISO/assignments/t12-ej1-dhcpd/t12-ej1-dhcpd-naortega.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										246
									
								
								1/ISO/assignments/t12-ej1-dhcpd/t12-ej1-dhcpd-naortega.tex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										246
									
								
								1/ISO/assignments/t12-ej1-dhcpd/t12-ej1-dhcpd-naortega.tex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,246 @@
 | 
			
		||||
\documentclass[12pt,a4paper]{article}
 | 
			
		||||
\usepackage[spanish]{babel}
 | 
			
		||||
\usepackage{hyperref}
 | 
			
		||||
\usepackage{graphicx}
 | 
			
		||||
\usepackage{subcaption}
 | 
			
		||||
 | 
			
		||||
\title{Tema XII Ejercicio I: DHCPD}
 | 
			
		||||
\author{Nicolás A. Ortega Froysa}
 | 
			
		||||
 | 
			
		||||
\begin{document}
 | 
			
		||||
\maketitle
 | 
			
		||||
\pagebreak
 | 
			
		||||
\tableofcontents
 | 
			
		||||
\pagebreak
 | 
			
		||||
 | 
			
		||||
\section{Introducción}
 | 
			
		||||
 | 
			
		||||
Cuando estamos creando y configurando redes, un elemento fundamental para la
 | 
			
		||||
comunicación entre equipos es la asignación de direcciones IP, ya que es por
 | 
			
		||||
medio de esto que se pueden identificar los distintos dispositivos conectados a
 | 
			
		||||
la red. Cuando se trata de unos pocos dispositivos, la asignación de direcciones
 | 
			
		||||
IP no es una tarea demasiado difícil, mas cuando tratamos de cientos, o incluso
 | 
			
		||||
miles de dispositivos, esto se puede convertir en una tarea muy ardua y
 | 
			
		||||
compleja. Tiene aún menos sentido tener que pasar tanto tiempo configurando
 | 
			
		||||
estas direcciones cuando la mayoría son de dispositivos clientes, y por lo tanto
 | 
			
		||||
serán siempre los que inicialicen la conexión, y nunca la recibirán. Es por esto
 | 
			
		||||
que se inventó el sistema DHCP.
 | 
			
		||||
 | 
			
		||||
En este sistema, existe un servidor, corriendo un software DHCPD ({\em DHCP
 | 
			
		||||
Daemon}) con una dirección IP fija, que recibe peticiones (generalmente dentro
 | 
			
		||||
de su red local) para adquirir direcciones IP. Este servidor devuelve una
 | 
			
		||||
dirección IP que se asegura que no la está usando ningún otro dispositivo.
 | 
			
		||||
 | 
			
		||||
El objetivo de esta práctica es instalar y configurar un servidor DHCP usando el
 | 
			
		||||
software {\tt dhcpd} para nuestra red local.
 | 
			
		||||
 | 
			
		||||
\section{Configuración de Red}
 | 
			
		||||
 | 
			
		||||
\section{Instalación y Configuración de DHCPD}
 | 
			
		||||
 | 
			
		||||
\subsection{Instalación}
 | 
			
		||||
 | 
			
		||||
Como nuestro servidor está corriendo Debian, hemos de usar el manejador de
 | 
			
		||||
paquetes {\tt apt} para instalar el programa. Para esto, corremos el comando
 | 
			
		||||
siguiente:
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
# apt install isc-dhcp-server
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
Para verificar que se ha instalado correctamente, podemos ver si se ha instalado
 | 
			
		||||
el binario {\tt dhcpd} en nuestro {\tt PATH} usando el comando {\tt which
 | 
			
		||||
dhcpd}. También instalará el servicio de {\em Systemd} con el mismo nombre que
 | 
			
		||||
el paquete ({\tt isc-dhcp-server}) que podemos administrar usando el comando
 | 
			
		||||
{\tt systemctl}. Como por ahora estamos probando nada más, y no queremos que se
 | 
			
		||||
inicialice por sí mismo, vamos a deshabilitar el servicio y pararlo. Luego,
 | 
			
		||||
cuando ya tengamos el servicio completamente configurado y funcione
 | 
			
		||||
correctamente.
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
# systemctl stop isc-dhcp-server
 | 
			
		||||
# systemctl disable isc-dhcp-server
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
\subsection{Configuración}
 | 
			
		||||
 | 
			
		||||
Para la configuración del servicio DHCP, hemos de editar el archivo de
 | 
			
		||||
configuración {\tt /etc/dhcp/dhcpd.conf}. Mas, en nuestro caso vamos a empezar
 | 
			
		||||
desde cero, ya que este archivo viene con muchas opciones ya declaradas por
 | 
			
		||||
defecto. Para esto, simplemente hacemos una copia de seguridad del archivo
 | 
			
		||||
(e.g.\ renombrándolo a {\tt dhcpd.conf.bak}).
 | 
			
		||||
 | 
			
		||||
Creamos ahora un archivo de configuración nuevo (en blanco) y ponemos la
 | 
			
		||||
configuración siguiente:
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
option domain-name-servers 8.8.8.8, 8.8.4.4;
 | 
			
		||||
option routers 172.21.0.100;
 | 
			
		||||
option subnet-mask 255.255.255.0;
 | 
			
		||||
 | 
			
		||||
subnet 192.168.37.0 netmask 255.255.255.0 {
 | 
			
		||||
  range 192.168.37.100 192.168.37.150;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
host DESKTOP-U4F9M9L {
 | 
			
		||||
  hardware ethernet 7C:10:C9:25:95:E1;
 | 
			
		||||
  fixed-address 192.168.37.201;
 | 
			
		||||
}
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
En la primera línea, especificamos la opción {\tt domain-name-servers}, que son
 | 
			
		||||
los servidores de resolución de nombre de dominio (DNS) que queremos asignar a
 | 
			
		||||
los ordenadores de nuestra red. En este caso, 8.8.8.8 y 8.8.4.4 son los
 | 
			
		||||
servidores DNS públicos de Google. Así cuando uno de los ordenadores de nuestra
 | 
			
		||||
red quiere resolver un nombre, se lo pedirá a uno de estos servidores. Esta
 | 
			
		||||
opción es especialmente útil si tenemos un servidor DNS interno a nuestra red
 | 
			
		||||
que queremos usar.
 | 
			
		||||
 | 
			
		||||
La segunda opción se trata de asignar la dirección IP del enrutador (i.e.\ {\em
 | 
			
		||||
router} o {\em gateway}) usando la opción {\tt routers}. Si el dispositivo
 | 
			
		||||
quiere acceder a alguna dirección que no está dentro de su red asignada,
 | 
			
		||||
intentará acceder a ella por medio de esta dirección IP.
 | 
			
		||||
 | 
			
		||||
La tercera opción, {\tt subnet-mask} trata de asignar la máscara de subred
 | 
			
		||||
general, que nosotros que sea el 255.255.255.0 (equivalente a /24). Así los
 | 
			
		||||
dispositivos podrán saber qué direcciones IP están dentro de su red.
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
subnet 192.168.37.0 netmask 255.255.255.0 {
 | 
			
		||||
  range 192.168.37.100 192.168.37.150;
 | 
			
		||||
}
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
En estas tres líneas, tratamos de definir la red, la máscara, y el rango de
 | 
			
		||||
direcciones IP para los dispositivos que tengan IP dinámica. Primero, empezamos
 | 
			
		||||
definiendo la red en sí. Esto se hace definiendo primero la dirección de red,
 | 
			
		||||
que en nuestro caso es 192.168.37.0, y luego la máscara de red, que es de
 | 
			
		||||
255.255.255.0. Después, usando la opción {\tt range}, designamos el rango de
 | 
			
		||||
direcciones IP que usará nuestro servicio DHCP para asignar nuevas direcciones a
 | 
			
		||||
los dispositivos que lo piden. De este modo, todas los dispositivos tendrán una
 | 
			
		||||
dirección IP dentro de este rango.
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
host DESKTOP-U4F9M9L {
 | 
			
		||||
  hardware ethernet 7C:10:C9:25:95:E1;
 | 
			
		||||
  fixed-address 192.168.37.201;
 | 
			
		||||
}
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
Estas cuatro líneas nos ayudan a definir una dirección IP estática a un
 | 
			
		||||
dispositivo concreto. Esto puede ser útil cuando tenemos un servidor dentro de
 | 
			
		||||
la red, que queremos que siempre tenga una misma dirección IP (e.g.\ un servidor
 | 
			
		||||
DNS) pero para poder configurarlo todo desde el mismo sitio, en vez de
 | 
			
		||||
configurarlo en el servidor en sí, lo configuramos desde el sistema DHCP. Por
 | 
			
		||||
ejemplo, si tenemos un servidor DNS en nuestra red con dirección 192.168.37.5 y
 | 
			
		||||
lo queremos cambiar a 192.168.37.202, normalmente habría que entrar en el
 | 
			
		||||
servidor para cambiarle la dirección, y luego entrar en el otro servidor DHCP
 | 
			
		||||
para cambiarle la dirección asignada anteriormente. Pero de este modo,
 | 
			
		||||
conseguimos que en el mismo servidor (y el mismo archivo) configuramos ambas
 | 
			
		||||
cosas.
 | 
			
		||||
 | 
			
		||||
Lo primero que hacemos es definir el {\em hostname} con el comando {\tt host}
 | 
			
		||||
seguido del nombre del dispositivo en la red (en nuestro caso se llama
 | 
			
		||||
DESKTOP-U4F9M9L). Todas las opciones que definimos en este bloque se aplicarán a
 | 
			
		||||
este dispositivo. Pero como también puede darse que dos dispositivos se hayan
 | 
			
		||||
puesto el mismo nombre (aunque lo suyo sería evitar esto) también identificamos
 | 
			
		||||
al dispositivo usando su dirección MAC, que es de hardware, y es único. Esto se
 | 
			
		||||
puede encontrar en la salida del comando {\tt ip address} en los sistemas UNIX
 | 
			
		||||
dentro de la configuración de la interfaz correspondiente (figura
 | 
			
		||||
\ref{fig:mac-address}), o dentro de la configuración de red en Windows. {\bf
 | 
			
		||||
Aviso:} aunque en algunos sistemas (como Windows) la dirección MAC aparece
 | 
			
		||||
usando guiones (i.e.\ <<->>) para separar los dígitos, siempre se ha de usar los
 | 
			
		||||
dos puntos (i.e.\ <<:>>). Lo definimos con la opción {\tt hardware ethernet}.
 | 
			
		||||
 | 
			
		||||
\begin{figure}[!htb]
 | 
			
		||||
	\centering
 | 
			
		||||
	\includegraphics[width=1.0\textwidth]{imgs/mac-address.png}
 | 
			
		||||
	\caption{Dirección MAC en salida de comando {\tt ip address}.}
 | 
			
		||||
	\label{fig:mac-address}
 | 
			
		||||
\end{figure}
 | 
			
		||||
 | 
			
		||||
Finalmente, definimos la dirección IP que queremos asignar, que en nuestro caso
 | 
			
		||||
es el 192.168.37.201. Esto lo hacemos con la opción {\tt fixed-address}.
 | 
			
		||||
 | 
			
		||||
\subsection{Pruebas}
 | 
			
		||||
 | 
			
		||||
Ya con nuestro servicio DHCP configurada, podemos empezar con las pruebas. Para
 | 
			
		||||
esto, primero hemos de empezar nuestro servicio. Como tan sólo estamos haciendo
 | 
			
		||||
pruebas todavía, vamos a usar directamente el comando {\tt dhcpd}. Esto lo
 | 
			
		||||
haremos usando la opción {\tt -cf} para especificar nuestro archivo de
 | 
			
		||||
configuración, y la bandera {\tt -d} para que veamos la salida por pantalla de
 | 
			
		||||
lo que vaya pasando:
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
# dhcpd -cd /etc/dhcp/dhcpd.conf -d
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
Cuando ya esté encendido, podemos comprobar su correcto funcionamiento
 | 
			
		||||
conectando nuestros dispositivos a la red para que pidan una dirección IP por
 | 
			
		||||
medio de DHCP. Para nuestro dispositivo de IP fija, debería de aparecer algo
 | 
			
		||||
parecido a lo siguiente:
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
DHCPREQUEST for 192.168.37.201 from 7c:10:c9:25:95:e1 via enp3s0
 | 
			
		||||
DHCPACK on 192.168.37.201 to 7c:10:c9:25:95:e1 via enp3s0
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
Esto indica que a este dispositivo se le ha dado la dirección IP 192.168.37.201,
 | 
			
		||||
como habíamos designado antes.
 | 
			
		||||
 | 
			
		||||
Luego, para los dispositivos de IP dinámica, la salida se parecerá algo más como
 | 
			
		||||
lo siguiente:
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
DHCPDISCOVER from 7c:10:c9:28:29:b5 via enp3s0
 | 
			
		||||
DHCPOFFER on 192.168.37.101 to 7c:10:c9:28:29:b5 (LAPTOP-NIMQD9EE)
 | 
			
		||||
via enp3s0
 | 
			
		||||
DHCPREQUEST for 192.168.37.101 (192.168.37.2) from 7c:10:c9:28:29:b5
 | 
			
		||||
(LAPTOP-NIMQD9EE) via enp3s0
 | 
			
		||||
DHCPACK on 192.168.37.101 to 7c:10:c9:28:29:b5 (LAPTOP-NIMQD9EE)
 | 
			
		||||
via enp3s0
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
Verificamos que, efectivamente, se han asignado correctamente las direcciones IP
 | 
			
		||||
en nuestros dispositivos. Si es así, entonces ya hemos terminado de configurar
 | 
			
		||||
correctamente nuestro servicio DHCP (figura \ref{fig:static-ip}).
 | 
			
		||||
 | 
			
		||||
\begin{figure}[!htb]
 | 
			
		||||
	\centering
 | 
			
		||||
	\includegraphics[width=0.75\textwidth]{imgs/static-ip.png}
 | 
			
		||||
	\caption{Verificación de asignación de la IP estática 192.168.37.201.}
 | 
			
		||||
	\label{fig:static-ip}
 | 
			
		||||
\end{figure}
 | 
			
		||||
 | 
			
		||||
\subsection{Habilitación e Inicio del Servicio}
 | 
			
		||||
 | 
			
		||||
Cuando ya hayamos visto que todo funciona correctamente, ya podemos volver a
 | 
			
		||||
usar {\em Systemd} para administrar nuestro servicio, habilitándolo e
 | 
			
		||||
iniciándolo. De esta forma, cada vez que se reinicia la máquina inicializará
 | 
			
		||||
este servicio. Como antes, lo hacemos con el comando {\tt systemctl}:
 | 
			
		||||
 | 
			
		||||
\begin{verbatim}
 | 
			
		||||
# systemctl enable isc-dhcp-server
 | 
			
		||||
# systemctl start isc-dhcp-server
 | 
			
		||||
\end{verbatim}
 | 
			
		||||
 | 
			
		||||
\section{Conclusión}
 | 
			
		||||
 | 
			
		||||
El sistema DHCP es una herramienta muy útil, y es importante que todo
 | 
			
		||||
administrador de red sepa cómo configurar un servicio de este tipo, no por nada,
 | 
			
		||||
sino más todavía para facilitarle a él su propio trabajo. Tampoco es una
 | 
			
		||||
configuración muy difícil, si no se quiere hacer nada demasiado complejo, y
 | 
			
		||||
permite centralizar la asignación de direcciones IP.
 | 
			
		||||
 | 
			
		||||
\pagebreak
 | 
			
		||||
 | 
			
		||||
\section{Derechos de Autor y Licencia}
 | 
			
		||||
 | 
			
		||||
\noindent
 | 
			
		||||
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}
 | 
			
		||||
							
								
								
									
										10
									
								
								1/ISO/assignments/t12-ej1-dhcpd/t12-ej1-dhcpd-naortega.toc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								1/ISO/assignments/t12-ej1-dhcpd/t12-ej1-dhcpd-naortega.toc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
\babel@toc {spanish}{}\relax 
 | 
			
		||||
\contentsline {section}{\numberline {1}Introducción}{3}{section.1}%
 | 
			
		||||
\contentsline {section}{\numberline {2}Configuración de Red}{3}{section.2}%
 | 
			
		||||
\contentsline {section}{\numberline {3}Instalación y Configuración de DHCPD}{3}{section.3}%
 | 
			
		||||
\contentsline {subsection}{\numberline {3.1}Instalación}{3}{subsection.3.1}%
 | 
			
		||||
\contentsline {subsection}{\numberline {3.2}Configuración}{4}{subsection.3.2}%
 | 
			
		||||
\contentsline {subsection}{\numberline {3.3}Pruebas}{6}{subsection.3.3}%
 | 
			
		||||
\contentsline {subsection}{\numberline {3.4}Habilitación e Inicio del Servicio}{7}{subsection.3.4}%
 | 
			
		||||
\contentsline {section}{\numberline {4}Conclusión}{7}{section.4}%
 | 
			
		||||
\contentsline {section}{\numberline {5}Derechos de Autor y Licencia}{8}{section.5}%
 | 
			
		||||
		Reference in New Issue
	
	Block a user