Add ISO/t12-ej1 documents.
This commit is contained in:
parent
7c948ebb6f
commit
bff9d41f95
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}%
|
Loading…
Reference in New Issue
Block a user