diff --git a/1/GBD/t6-ex-nortega.sql b/1/GBD/t6-ex-nortega.sql new file mode 100644 index 0000000..ec4779c --- /dev/null +++ b/1/GBD/t6-ex-nortega.sql @@ -0,0 +1,105 @@ +SET SERVEROUTPUT ON; + +-- ej1 + +/* Declara una variable departamento que tenga como tipo de dato una fila + * completa de la tabla dept. + * + * Después, mediante un cursor implícito, guarda en esa variable departamento la + * fila de la tabla dept cuyo campo loc vale CHICAGO. Para terminar, utiliza un + * bucle FOR que recorra todas las letras del nombre (dname) de la fila guardada + * en la variable departamento y vaya mostrando en cada iteración, cada letra + * de dname. + */ + +DECLARE +    departamento dept%ROWTYPE; +BEGIN +    SELECT * INTO departamento FROM dept WHERE loc='CHICAGO'; +    FOR i IN 1..LENGTH(departamento.dname) +    LOOP +        dbms_output.put_line(SUBSTR(departamento.dname,i,1)); +    END LOOP; +END; +/ + +-- ej2 + +/* + * Crea un tipo de dato registro con los campos id (tipo de dato igual a deptno de + * la tabla dept) y nombre (tipo de dato igual a dname de la tabla dept) y declara + * una variable departamento del tipo de ese registro. Ahora usa un cursor + * implícito para guardar en esa variable departamento el deptno y el dname de la + * fila de la tabla dept cuyo deptno vale 10. Para terminar, muestra por pantalla + * el id y el nombre de la variable departamento obtenido. + */ + +DECLARE +    TYPE DEPT_DATA IS RECORD( +        id dept.deptno%type, +        nombre dept.dname%type); +    departamento DEPT_DATA; +BEGIN +    SELECT deptno, dname INTO departamento +        FROM dept WHERE deptno=10; +    dbms_output.put_line(departamento.id || ' ' || +        departamento.nombre); +END; +/ + +-- ej3 + +/* + * Se necesita un registro para los empleados y otro para las localidades. + * + * El registro de empleados debe tener los siguientes campos: id (tipo de dato + * igual que el campo empno de la tabla emp), nombre (tipo de dato igual que el + * campo ename de la tabla emp), sueldo (tipo de dato igual que el campo sal de la + * tabla emp), localidad (tipo de dato igual que el registro de localidades). + * + * El registro de localidades debe tener los siguientes campos: ref (varchar + * tamaño 3 con valor MAI), localidad varchar tamaño 50 con valor MAIRENA, + * provincia (varchar tamaño 50 con valor SEVILLA) y cp (int tamaño 5 con valor + * 41927). + * + * Se quiere declarar una variable del tipo registro empleado y un cursor + * explícito que se traiga los campos empno, ename y sal de la tabla emp. + * + * Recorre todas las filas del cursor declarado con un bucle LOOP, guardando los + * datos extraídos en la variable del tipo registro empleado. + * + * En cada iteración del bucle LOOP muestra por pantalla id, nombre, sueldo, ref + * de localidad, localidad de localidad, provincia de localidad y cp de + * localidad. + */ + +DECLARE +    TYPE LOC_DATA IS RECORD( +        ref VARCHAR(3) := 'MAI', +        localidad VARCHAR(50) := 'MAIRENA', +        provincia VARCHAR(50) := 'SEVILLA', +        cp INT(5) := 41927); +    TYPE EMP_DATA IS RECORD( +        id emp.empno%type, +        nombre emp.ename%type, +        sueldo emp.sal%type, +        loc LOC_DATA); +    empl EMP_DATA; +    CURSOR empls IS SELECT empno, ename, sal FROM emp; +BEGIN +    OPEN empls; +    LOOP +        FETCH empls INTO empl.id, empl.nombre, empl.sueldo; +        EXIT WHEN empls%notfound; +        dbms_output.put_line('-----'); +        dbms_output.put_line('Empleado número ' || empl.id); +        dbms_output.put_line('Nombre: ' || empl.nombre); +        dbms_output.put_line('Sueldo: ' || empl.sueldo); +        dbms_output.put_line('Referencia de localidad: ' || empl.loc.ref); +        dbms_output.put_line('Nombre de localidad: ' || empl.loc.localidad); +        dbms_output.put_line('Provincia de localidad: ' || empl.loc.provincia); +        dbms_output.put_line('Código postal de localidad: ' || empl.loc.cp); +    END LOOP; +    CLOSE empls; +END; +/ diff --git a/1/ISO/assignments/t11-ej1/t11-ej1-naortega.pdf b/1/ISO/assignments/t11-ej1/t11-ej1-naortega.pdf new file mode 100644 index 0000000..b1fb564 Binary files /dev/null and b/1/ISO/assignments/t11-ej1/t11-ej1-naortega.pdf differ diff --git a/1/ISO/assignments/t11-ej1/t11-ej1-naortega.tex b/1/ISO/assignments/t11-ej1/t11-ej1-naortega.tex new file mode 100644 index 0000000..355daf2 --- /dev/null +++ b/1/ISO/assignments/t11-ej1/t11-ej1-naortega.tex @@ -0,0 +1,399 @@ +\documentclass[12pt,a4paper]{article} +\usepackage[spanish]{babel} +\usepackage{hyperref} +\usepackage{graphicx} +\usepackage{subcaption} + +\title{Tema XI Ejercicio I: Instalación De Un S.O. De Servidor} +\author{Nicolás A. Ortega Froysa} + +\begin{document} +\maketitle +\pagebreak +\tableofcontents +\pagebreak + +\section{Introducción} + +El objetivo de esta práctica es la instalación de un sistema operativo para el +propósito de ser usado como servidor (i.e.\ sin entorno gráfico), que +preferiblemente venga ya instalado con el servicio SSH que no servirá para +interactuar con la máquina de manera remota. + +Este tipo de sistema nos es útil para aquellos casos donde la máquina no tiene +necesidad de mostrar ningún entorno gráfico, ya que su usuario no lo usa de +forma local, sino a través de unos servicios de red que se proveen (e.g.\ +servidor web). En estos casos no es necesario ni que el ordenador esté conectado +a una pantalla para cumplir su función. + +\section{Requisitos} + +\begin{figure}[!htb] + \centering + \includegraphics[width=0.75\linewidth]{imgs/00-download.png} + \caption{Download.} + \label{fig:download} +\end{figure} + +Hay muchas distribuciones GNU/Linux que se pueden usar como S.O. para un +servidor. En el caso de esta práctica, se documentará la instalación de Debian +11 (Bullseye). Para ello, se descarga la ISO de su página web, \url{debian.org}, +que nos descargará la versión estable más reciente (actualmente Bullseye) de la +ISO de instalación por red que se denominan {\tt netinst} (figura +\ref{fig:download}). + +Cuando ya esté completa la descarga, se tiene que instalar la ISO en un +dispositivo de instalación (e.g.\ CD, {\em pendrive}, tarjeta SD). En GNU/Linux +esto se puede hacer con el comando siguiente, cambiando {\tt \} +con el nombre del archivo de dispositivo donde queremos instalar la ISO: + +\begin{verbatim} +$ dd if=debian-11.3.0-amd64-netinst.iso \ + of= bs=1M status=progress +\end{verbatim} + +Una vez instalada la ISO en el dispositivo, iniciamos la máquina que nos servirá +de servidor y la arrancamos desde el dispositivo insertado. + +\section{Configuración} + +\begin{figure}[!htb] + \centering + \includegraphics[width=0.75\linewidth]{imgs/01-install-menu.png} + \caption{Install menu.} + \label{fig:install-menu} +\end{figure} + +Una vez iniciada la máquina, nos abrirá un menú para seleccionar qué tipo de +instalación (o mejor dicho: instalador) queremos usar (figura +\ref{fig:install-menu}). Como un servidor no tiene por qué tener tarjeta +gráfica, usamos la instalación normal (no gráfica). + +\subsection{Navegación Y Selección} + +Como no tenemos acceso a un ratón para el proceso de esta instalación, tendremos +que usar el teclado para todo. Generalmente es bastante intuitivo usarse. Se +navega entre las distintas opciones con las flechas del teclado, y se selecciona +con el espacio o {\em Enter}. Luego, para salir de la selección principal y +entrar en la selección de {\em Continuar} o {\em Atrás}, se usa la tecla {\em +Tab}. + +\subsection{Localización} + +\begin{figure}[!htb] + \centering + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/02-language-select.png} + \caption{Language select.} + \label{fig:language-select} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/03-location-select.png} + \caption{Location select.} + \label{fig:location-select} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/04-encoding-select.png} + \caption{Locale select.} + \label{fig:encoding-select} + \end{subfigure} + \caption{Locale configuration.} +\end{figure} + +Lo primero que se nos pedirá es configurar la localización de nuestra máquina +(e.g.\ lengua, teclado, etc.). En primer lugar, definimos la lengua que queremos +usar para nuestro servidor (figura \ref{fig:language-select}). Usaremos el +inglés ya que tiene más soporte es confunde mucho cuando en la informática se +mezcla el inglés y el español. Notamos que aunque la lengua usada por el +servidor sea, por ejemplo, inglés, no quiere decir que no pueda proveer +servicios en otra, como el español. Sólo se trata de que en cuanto a la +administración del servidor en sí todos los mensajes nos van a salir en inglés. + +En segundo lugar definimos la localización física de la máquina. En nuestro +caso: {\em Spain} (España). Como hemos puesto el inglés como lengua de nuestro +servidor, nos mostrará el principio sólo aquellos países donde se habla el +inglés como primera lengua. Como no queremos ninguno de éstos seleccionamos {\em +others} $\rightarrow$ {\em Europe} $\rightarrow$ {\em Spain} (figura +\ref{fig:location-select}). + +Finalmente, definimos el {\em locale}. Como las lenguas no sólo dependen de +idioma, sino también de dialecto, y los caractéres que se necesitan pueden ser +diferentes dependiendo de esto, definimos el locale por el dialecto específico +que queremos usar. Como lo más cómodo (para mí) es el inglés estadounidense, +especificamos {\tt en\_US.UTF-8} (figura \ref{fig:encoding-select}). + +\subsection{Red} + +\begin{figure}[!htb] + \centering + \begin{subfigure}[tb]{0.45\textwidth} + \includegraphics[width=0.95\linewidth]{imgs/06-set-hostname.png} + \caption{Set hostname.} + \label{fig:set-hostname} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \includegraphics[width=0.95\linewidth]{imgs/07-set-domain-name.png} + \caption{Set domain name.} + \label{fig:set-domain-name} + \end{subfigure} + \caption{Network configuration.} +\end{figure} + +A continuación nos pedirá configurar la red. Lo primero es definir el {\em +hostname}, que sería el nombre de red que tiene la máquina (figura +\ref{fig:set-hostname}). Esto es útil para la red interna para reconocer y +encontrar ordenadores por un nombre en vez de su dirección IP. También nos +permite distinguir entre máquinas dentro de la red en cuanto a archivos de {\em +logs}, correo electrónico, y demás. + +En el caso de un servidor, es especialmente importante definir el {\em domain +name} (figura \ref{fig:set-domain-name}). Si es un servidor con acceso a la red +externa, esto debe de tener el nombre que usaremos en la red externa (e.g.\ {\tt +mi-servidor.es}). Como en nuestro caso estamos creando un servidor de pruebas de +uso interno, usaremos el dominio {\tt home-server.local}. + +\subsection{Usuarios} + +\begin{figure}[!htb] + \centering + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/08-set-root-password.png} + \caption{Set root password.} + \label{fig:set-root-password} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/09-set-user-full-name.png} + \caption{Set user full name.} + \label{fig:set-user-full-name} + \end{subfigure} + \caption{User configuration.} +\end{figure} + +A continuación configuramos los usuarios de nuestro sistema. En primer lugar, +configuramos la contraseña del usuario {\em Root} (figura +\ref{fig:set-root-password}), que es el usuario administrador del sistema. Este +usuario conviene que tenga una contraseña muy segura, ya que tiene todos los +permisos. Nos pedirá también verificar la contraseña, introduciendo ésta de +nuevo. + +Después nos pide crear un usuario normal (figura \ref{fig:set-user-full-name}). +Para esto, primero nos pide el nombre completo, que se usa simplemente por +motivos estéticos y burocráticos. Posteriormente nos pedirá el nombre de +usuario, que es lo que usaremos para entrar en nuestro usuario en la máquina. +Para este nombre, hemos de evitar espacios (e.g.\ {\tt nicolas}). Finalmente +definimos la contraseña para este usuario. + +\pagebreak + +\subsection{Zona Horaria} + +\begin{figure}[!htb] + \centering + \includegraphics[width=0.75\linewidth]{imgs/10-set-timezone.png} + \caption{Set timezone.} + \label{fig:set-timezone} +\end{figure} + +Para tener la hora correcta, y poder sincronizar la hora con servidores +exteriores, es necesario definir nuestra zona horaria. Como ya habíamos +seleccionado el país antes como España, ahora nos mostrará tan sólo las zonas +horarias disponibles para nuestro país (figura \ref{fig:set-timezone}). + +\subsection{Particionado Del Disco} + +\begin{figure}[!htb] + \centering + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/11-disk-setup-menu.png} + \caption{Disk setup menu.} + \label{fig:disk-setup-menu} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/12-select-partition-scheme.png} + \caption{Select partition scheme.} + \label{fig:select-partition-scheme} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/13-partitioning-overview.png} + \caption{Partitioning overview.} + \label{fig:partitioning-overview} + \end{subfigure} + \caption{Disk partitioning.} +\end{figure} + +Para poder instalar debidamente el sistema operativo, hemos de particionar el +formatear el disco. Del formateo se encargará directamente el instalador, que +usará por defecto el formato EXT4. + +La primera pantalla nos mostrará varias opciones para el particionado del disco +(figura \ref{fig:disk-setup-menu}). Como queremos usar el disco entero, y no +tenemos otros sistemas instalados, seleccionamos la primera opción: <>. + +Para el particionado del disco, podemos dividir el sistema de archivos de +nuestro sistema en varias particiones. Lo más usual es que el directorio {\tt +/home/} tenga su propia partición, para poder separar los datos de usuario y los +archivos de sistema. En nuestro caso, no nos interesa, ya que como servidor los +usuarios no tendrán ficheros propios (por lo general). Seleccionamos la primera +opción: <> (figura +\ref{fig:select-partition-scheme}). + +Finalizado esto, nos mostrará por pantalla un resumen de los cambios que se van +a realizar, y nos pedirá la confirmación (figura +\ref{fig:partitioning-overview}). Como esta acción es permanente y podemos +perder información que pueda haber en el disco anteriormente, la opción por +defecto es {\em no} hacer los cambios, luego entonces es necesario cambiar a +decir que sí. + +\subsection{Instalación De Software} + +\begin{figure}[!htb] + \centering + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/15-scan-for-extra-installation-media.png} + \caption{Scan for extra installation media.} + \label{fig:scan-for-extra-installation-media} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/16-mirror-selection.png} + \caption{Mirror selection.} + \label{fig:mirror-selection} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/17-package-usage-survey.png} + \caption{Package usage survey.} + \label{fig:package-usage-survey} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/18-extra-packages.png} + \caption{Extra packages.} + \label{fig:extra-packages} + \end{subfigure} + \caption{Repository and package configuration/installation.} +\end{figure} + +Para la instalación de {\em software} adicional, lo primero que nos va a +preguntar es por si queremos instalar algo de un dispositivo adicional (figura +\ref{fig:scan-for-extra-installation-media}). Se hace de los dispositivos ya que +es posible que la máquina no tenga acceso a {\em internet} por falta de los {\em +drivers} necesarios para los interfaces de red -- esto suele pasar con tarjetas +de Wi-Fi. Como en nuestro caso no nos hace falta, elegimos <>. + +A continuación pide que seleccionemos el espejo que se va a usar para descargar +paquetes software (figura \ref{fig:mirror-selection}). Son espejos porque todos +contienen los mismos paquetes (y las mismas versiones de cada paquete). Lo que +diferencia uno de otro es su localización. Se podrá descargar paquetes a mayor +velocidad de los servidores más cercanos físicamente que de los servidores más +lejanos. Como en nuestro caso estamos en España, elegimos cualquier espejo de +España. + +También nos preguntará acerca de si queremos participar en el llamado <> o <> (figura \ref{fig:package-usage-survey}). +Se trata de que tu máquina enviará estadísticas anónimas a los servidores de +Debian que contendrán los paquetes que usas en tu máquina con el propósito de +saber qué paquetes son más populares y precisan de más atención de los +administradores. + +Finalmente nos da algunas opciones de programas que instalar de forma adicional +(figura \ref{fig:extra-packages}). Las primeras opciones son de entornos +gráficos, que no nos sirven ya que vamos a montar un servidor. Sí que interesa +la instalación de un servidor web y servidor SSH. Lo primero nos permitirá +montar un sitio web en nuestra máquina, y lo segundo nos sirve para acceder a la +máquina de manera remota. + +\subsection{GRUB} + +\begin{figure}[!htb] + \centering + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/19-grub-installation.png} + \caption{GRUB installation.} + \label{fig:grub-installation} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/20-select-disk-for-grub-installation.png} + \caption{Select disk for GRUB installation.} + \label{fig:select-disk-for-grub-installation} + \end{subfigure} + \caption{GRUB configuration.} +\end{figure} + +El último paso de la instalación es de instalar y configurar GRUB, que nos sirve +para elegir el sistema que queremos inicializar, o la versión de kernel que +queremos usar. Como este es el único sistema que vamos a tener instalado, +instalamos GRUB (figura \ref{fig:grub-installation}). Es necesario especificar +el disco en el que queremos instalarlo (figura +\ref{fig:select-disk-for-grub-installation}), que como nuestra máquina tan sólo +tiene un disco, lo instalamos en aquel. + +\subsection{Finalización} + +\begin{figure}[!htb] + \centering + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/21-installation-complete.png} + \caption{Installation complete.} + \label{fig:installation-complete} + \end{subfigure} + \hfill + \begin{subfigure}[tb]{0.45\textwidth} + \centering + \includegraphics[width=0.95\linewidth]{imgs/22-first-boot.png} + \caption{First boot.} + \label{fig:first-boot} + \end{subfigure} + \caption{Install completion.} +\end{figure} + +Una vez que todo esté instalado y configurado nos pedirá reiniciar la máquina y +quitar el dispositivo de instalación (figura \ref{fig:installation-complete}). +En cuanto reiniciamos, mostrará por pantalla un {\em login} donde podemos meter +el usuario (igualmente podemos meter {\tt root}). Cuando nos pide la contraseña, +aunque no aparezca visiblemente ningún carácter en la pantalla, sí está grabando +las teclas para comparar (figura \ref{fig:first-boot}). + +\section{Conclusión} + +Es muchísimo más útil e intuitivo usar Debian para servidores que Windows Server +2008. Para empezar, no hay entorno gráfico, lo cual ahorramos recursos que +serían necesarios para servir a los clientes. El instalador de {\tt curses} +(i.e.\ el instalador no-gráfico) es también más bonito y me da nostalgia de mi +juventud. + +\pagebreak + +\section{Derechos de Autor y Licencia} + +\noindent +Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa + \\ +\\ +Este documento se distribuye bajo los términos y condiciones de la licencia +Creative Commons Attribution No Derivatives 4.0 International. + +\end{document} diff --git a/1/ISO/assignments/t11-ej1/t11-ej1-naortega.toc b/1/ISO/assignments/t11-ej1/t11-ej1-naortega.toc new file mode 100644 index 0000000..31496d5 --- /dev/null +++ b/1/ISO/assignments/t11-ej1/t11-ej1-naortega.toc @@ -0,0 +1,15 @@ +\babel@toc {spanish}{}\relax +\contentsline {section}{\numberline {1}Introducción}{3}{section.1}% +\contentsline {section}{\numberline {2}Requisitos}{3}{section.2}% +\contentsline {section}{\numberline {3}Configuración}{4}{section.3}% +\contentsline {subsection}{\numberline {3.1}Navegación Y Selección}{4}{subsection.3.1}% +\contentsline {subsection}{\numberline {3.2}Localización}{5}{subsection.3.2}% +\contentsline {subsection}{\numberline {3.3}Red}{6}{subsection.3.3}% +\contentsline {subsection}{\numberline {3.4}Usuarios}{7}{subsection.3.4}% +\contentsline {subsection}{\numberline {3.5}Zona Horaria}{8}{subsection.3.5}% +\contentsline {subsection}{\numberline {3.6}Particionado Del Disco}{8}{subsection.3.6}% +\contentsline {subsection}{\numberline {3.7}Instalación De Software}{10}{subsection.3.7}% +\contentsline {subsection}{\numberline {3.8}GRUB}{11}{subsection.3.8}% +\contentsline {subsection}{\numberline {3.9}Finalización}{12}{subsection.3.9}% +\contentsline {section}{\numberline {4}Conclusión}{12}{section.4}% +\contentsline {section}{\numberline {5}Derechos de Autor y Licencia}{13}{section.5}% diff --git a/1/ISO/examenes/tema11-naortega/ej1.sh b/1/ISO/examenes/tema11-naortega/ej1.sh new file mode 100755 index 0000000..a67cad6 --- /dev/null +++ b/1/ISO/examenes/tema11-naortega/ej1.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +if [ $# -lt 3 ] +then + echo "Son necesarias al menos 3 argumentos numéricos." + exit 1 +fi + +# a +echo "Se han introducido $# argumentos." + +# b +SUM=0 + +for i in ${@:1:3} +do + SUM=$[$SUM+$i] +done + +AVG=$(echo "scale=3; $SUM / 3" | bc) +echo $AVG + +# c +echo $@ + +# d +echo $[$2 ** $3] diff --git a/1/ISO/examenes/tema11-naortega/ej2.sh b/1/ISO/examenes/tema11-naortega/ej2.sh new file mode 100755 index 0000000..a592c1d --- /dev/null +++ b/1/ISO/examenes/tema11-naortega/ej2.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# crear estructura: +mkdir -p /home/usuario/prueba/dir1/dir11 +mkdir -p /home/usuario/prueba/dir2/dir41 +mkdir -p /home/usuario/prueba/dir3/dir31 +mkdir -p /home/usuario/prueba/dir4 + +# número de usuarios conectados +who | wc -l + +# cuándo arrancó +uptime --pretty diff --git a/1/ISO/examenes/tema11-naortega/ej3.txt b/1/ISO/examenes/tema11-naortega/ej3.txt new file mode 100644 index 0000000..9c297a4 --- /dev/null +++ b/1/ISO/examenes/tema11-naortega/ej3.txt @@ -0,0 +1,9 @@ +3.a) +Quiere decir Ctrl + +3.b) +i. Esc y después ':' +ii. Asumiendo que estamos en modo normal: ':wq' + +NOTA: si hay algo entre comillas simples, es porque se interpreta lo que hay +dentro porque son comandos. diff --git a/1/ISO/examenes/tema11-naortega/ej4.sh b/1/ISO/examenes/tema11-naortega/ej4.sh new file mode 100755 index 0000000..50d9385 --- /dev/null +++ b/1/ISO/examenes/tema11-naortega/ej4.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +function palindromo { + WORD=$1 + REV=$(echo "$WORD" | rev) + if [ $WORD = $REV ] + then + echo "Es capicúa." + else + echo "No es capicúa." + fi +} + +NUMERO=$1 + +if [ $NUMERO -lt 1000 ] || [ ${#NUMERO} -ne 5 ] +then + echo "Se necesita un número mayor que 1000 y con 5 cifras" + exit 1 +fi + +HALF=$(echo "scale=3; $NUMERO / 2" | bc) +echo $HALF + +palindromo $NUMERO diff --git a/1/ISO/examenes/tema11-naortega/ej6.sh b/1/ISO/examenes/tema11-naortega/ej6.sh new file mode 100755 index 0000000..647bed3 --- /dev/null +++ b/1/ISO/examenes/tema11-naortega/ej6.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +function impar { + LIM=$1 + seq 1 2 $LIM +} + +if [ ${#1} -ne 3 ] +then + echo "Se requiere un número de 3 cifras." + exit 1 +fi + +impar $1 diff --git a/1/LMSGI/PromedioNotas/A00001_3NotasPromedio.html b/1/LMSGI/PromedioNotas/A00001_3NotasPromedio.html new file mode 100644 index 0000000..4cf0352 --- /dev/null +++ b/1/LMSGI/PromedioNotas/A00001_3NotasPromedio.html @@ -0,0 +1,37 @@ + + + + + +

Notas

+ + + + + + \ No newline at end of file diff --git a/1/LMSGI/PromedioNotas/A00098_Recoger3ValoresForm.html b/1/LMSGI/PromedioNotas/A00098_Recoger3ValoresForm.html new file mode 100644 index 0000000..9eb2d2b --- /dev/null +++ b/1/LMSGI/PromedioNotas/A00098_Recoger3ValoresForm.html @@ -0,0 +1,53 @@ + + + + +Ejemplo de código JavaScript en el propio documento + + + + + +
+ + + + + + +
+ + + + + + + + + \ No newline at end of file diff --git a/1/LMSGI/PromedioNotas/promedio-notas.html b/1/LMSGI/PromedioNotas/promedio-notas.html new file mode 100644 index 0000000..a2feed2 --- /dev/null +++ b/1/LMSGI/PromedioNotas/promedio-notas.html @@ -0,0 +1,29 @@ + + + + + Promedio de Notas + + + +

Calculadora Promedio Notas

+
+
+
+
+
+
+
+ +
+
+ + diff --git a/1/LMSGI/T8-XQUERY-futbol/futbol.xqy b/1/LMSGI/T8-XQUERY-futbol/futbol.xqy new file mode 100644 index 0000000..6996dbe --- /dev/null +++ b/1/LMSGI/T8-XQUERY-futbol/futbol.xqy @@ -0,0 +1,29 @@ + + + + + + +{ +for $event in doc("futbol1.xml")/marcador/competicion[id="1"]/grupos/grupo[id="1"]/eventos/evento +return + + + + + + +} + +
Temporada: +{ +doc("futbol1.xml")/marcador/competicion[id="1"]/temporada +} +- +Jornada: +{ +doc("futbol1.xml")/marcador/competicion[id="1"]/jornada/id +} +
{ string($event/id) }{ string($event/equipolocal) } - { string($event/equipovisitante) }{ string($event/resultadolocal) }{ string($event/resultadovisitante) }
+ + diff --git a/1/LMSGI/T8-XQUERY-futbol/futbol1.xml b/1/LMSGI/T8-XQUERY-futbol/futbol1.xml index 2ee5454..aeee253 100644 --- a/1/LMSGI/T8-XQUERY-futbol/futbol1.xml +++ b/1/LMSGI/T8-XQUERY-futbol/futbol1.xml @@ -1,386 +1,407 @@ - + -LFP 1 DIVISION - - -2021_22 - - - - -02/04/2022 14:00 -Finalizado -Getafe -Mallorca -1 -0 -1 -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/1450.png -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/181.png - - -https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/get_mal/alineaciones.html - -2https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/get_mal/directo.xml - -02/04/2022 16:15 -Finalizado -Levante -Villarreal -2 -0 -1 -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/855.png -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/449.png - - -https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/lev_vil/alineaciones.html - --1https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/lev_vil/directo.xml - -02/04/2022 18:30 -Finalizado -Celta -R. Madrid -1 -2 -1 -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/176.png -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/186.png - - -https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/cel_rma/alineaciones.html - -2https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/cel_rma/directo.xml - -02/04/2022 21:00 -Finalizado -Atlético -Alavés -4 -1 -1 -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/175.png -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/173.png - - -https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/atm_ala/alineaciones.html - -2https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/atm_ala/directo.xml - -03/04/2022 14:00 -Finalizado -Athletic -Elche -2 -1 -1 -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/174.png -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/954.png - - -https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/ath_elc/alineaciones.html - -2https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/ath_elc/directo.xml - -03/04/2022 16:15 -Finalizado -Betis -Osasuna -4 -1 -1 -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/185.png -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/450.png - - -https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/bet_osa/alineaciones.html - -2https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/bet_osa/directo.xml - -03/04/2022 18:30 -Finalizado -Granada -Rayo -2 -2 -1 -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/5683.png -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/184.png - - -https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/gda_ray/alineaciones.html - -2https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/gda_ray/directo.xml - -03/04/2022 18:30 -Finalizado -Valencia -Cádiz -0 -0 -1 -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/191.png -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/1737.png - - -https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/val_cad/alineaciones.html - --1https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/val_cad/directo.xml - -03/04/2022 21:00 -Finalizado -Barcelona -Sevilla -1 -0 -1 -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/178.png -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/179.png - - -https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/bar_sev/alineaciones.html - -2https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/bar_sev/directo.xml - -04/04/2022 21:00 -Finalizado -R. Sociedad -Espanyol -1 -0 -1 -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/188.png -https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/177.png - - -https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/rso_esp/alineaciones.html - --1https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/rso_esp/directo.xml - - - -R. Madrid -1 -69 -30 -21 -3 -6 -61 -26 - - -Barcelona* -2 -57 -29 -16 -4 -9 -57 -29 - - -Atlético -3 -57 -30 -17 -7 -6 -57 -37 - - -Sevilla -4 -57 -30 -15 -3 -12 -40 -20 - - -Betis -5 -53 -30 -16 -9 -5 -54 -36 - - -R. Sociedad -6 -51 -30 -14 -7 -9 -30 -29 - - -Villarreal -7 -45 -30 -12 -9 -9 -48 -29 - - -Athletic -8 -44 -30 -11 -8 -11 -35 -29 - - -Valencia -9 -41 -30 -10 -9 -11 -42 -43 - - -Osasuna -10 -38 -30 -10 -12 -8 -30 -40 - - -Celta -11 -36 -30 -9 -12 -9 -34 -34 - - -Espanyol -12 -36 -30 -9 -12 -9 -35 -42 - - -Rayo* -13 -33 -29 -9 -14 -6 -31 -36 - - -Getafe -14 -32 -30 -7 -12 -11 -28 -33 - - -Elche* -15 -31 -29 -8 -14 -7 -31 -42 - - -Granada* -16 -28 -29 -6 -13 -10 -33 -48 - - -Cádiz -17 -28 -30 -5 -12 -13 -25 -41 - - -Mallorca -18 -26 -30 -6 -16 -8 -26 -50 - - -Levante -19 -22 -30 -4 -16 -10 -33 -58 - - -Alavés -20 -22 -30 -5 -18 -7 -24 -52 - - - - - + + LFP 1 DIVISION + + + 2021_22 + + + + + 02/04/2022 14:00 + Finalizado + Getafe + Mallorca + 1 + 0 + 1 + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/1450.png + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/181.png + + + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/get_mal/alineaciones.html + + 2 + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/get_mal/directo.xml + + + 02/04/2022 16:15 + Finalizado + Levante + Villarreal + 2 + 0 + 1 + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/855.png + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/449.png + + + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/lev_vil/alineaciones.html + + -1 + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/lev_vil/directo.xml + + + 02/04/2022 18:30 + Finalizado + Celta + R. Madrid + 1 + 2 + 1 + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/176.png + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/186.png + + + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/cel_rma/alineaciones.html + + 2 + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/cel_rma/directo.xml + + + 02/04/2022 21:00 + Finalizado + Atlético + Alavés + 4 + 1 + 1 + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/175.png + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/173.png + + + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/atm_ala/alineaciones.html + + 2 + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/atm_ala/directo.xml + + + 03/04/2022 14:00 + Finalizado + Athletic + Elche + 2 + 1 + 1 + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/174.png + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/954.png + + + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/ath_elc/alineaciones.html + + 2 + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/ath_elc/directo.xml + + + 03/04/2022 16:15 + Finalizado + Betis + Osasuna + 4 + 1 + 1 + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/185.png + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/450.png + + + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/bet_osa/alineaciones.html + + 2 + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/bet_osa/directo.xml + + + 03/04/2022 18:30 + Finalizado + Granada + Rayo + 2 + 2 + 1 + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/5683.png + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/184.png + + + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/gda_ray/alineaciones.html + + 2 + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/gda_ray/directo.xml + + + 03/04/2022 18:30 + Finalizado + Valencia + Cádiz + 0 + 0 + 1 + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/191.png + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/1737.png + + + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/val_cad/alineaciones.html + + -1 + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/val_cad/directo.xml + + + 03/04/2022 21:00 + Finalizado + Barcelona + Sevilla + 1 + 0 + 1 + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/178.png + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/179.png + + + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/bar_sev/alineaciones.html + + 2 + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/bar_sev/directo.xml + + + 04/04/2022 21:00 + Finalizado + R. Sociedad + Espanyol + 1 + 0 + 1 + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/188.png + https://e00-marca.uecdn.es/assets/datos-deportivos/escudos/opta/png/ios/28px/2x/177.png + + + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/rso_esp/alineaciones.html + + -1 + https://www.marca.com/eventos/marcador/futbol/2021_22/la-liga/jornada_30/rso_esp/directo.xml + + + + + R. Madrid + 1 + 69 + 30 + 21 + 3 + 6 + 61 + 26 + + + Barcelona* + 2 + 57 + 29 + 16 + 4 + 9 + 57 + 29 + + + Atlético + 3 + 57 + 30 + 17 + 7 + 6 + 57 + 37 + + + Sevilla + 4 + 57 + 30 + 15 + 3 + 12 + 40 + 20 + + + Betis + 5 + 53 + 30 + 16 + 9 + 5 + 54 + 36 + + + R. Sociedad + 6 + 51 + 30 + 14 + 7 + 9 + 30 + 29 + + + Villarreal + 7 + 45 + 30 + 12 + 9 + 9 + 48 + 29 + + + Athletic + 8 + 44 + 30 + 11 + 8 + 11 + 35 + 29 + + + Valencia + 9 + 41 + 30 + 10 + 9 + 11 + 42 + 43 + + + Osasuna + 10 + 38 + 30 + 10 + 12 + 8 + 30 + 40 + + + Celta + 11 + 36 + 30 + 9 + 12 + 9 + 34 + 34 + + + Espanyol + 12 + 36 + 30 + 9 + 12 + 9 + 35 + 42 + + + Rayo* + 13 + 33 + 29 + 9 + 14 + 6 + 31 + 36 + + + Getafe + 14 + 32 + 30 + 7 + 12 + 11 + 28 + 33 + + + Elche* + 15 + 31 + 29 + 8 + 14 + 7 + 31 + 42 + + + Granada* + 16 + 28 + 29 + 6 + 13 + 10 + 33 + 48 + + + Cádiz + 17 + 28 + 30 + 5 + 12 + 13 + 25 + 41 + + + Mallorca + 18 + 26 + 30 + 6 + 16 + 8 + 26 + 50 + + + Levante + 19 + 22 + 30 + 4 + 16 + 10 + 33 + 58 + + + Alavés + 20 + 22 + 30 + 5 + 18 + 7 + 24 + 52 + + + + + diff --git a/1/PAR/assignments/t8-ej6-naortega/mapa.PNG b/1/PAR/assignments/t8-ej6-naortega/mapa.PNG new file mode 100644 index 0000000..3244b9a Binary files /dev/null and b/1/PAR/assignments/t8-ej6-naortega/mapa.PNG differ diff --git a/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.pdf b/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.pdf new file mode 100644 index 0000000..91dda64 Binary files /dev/null and b/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.pdf differ diff --git a/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.pkt b/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.pkt new file mode 100644 index 0000000..79e8eef Binary files /dev/null and b/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.pkt differ diff --git a/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.tex b/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.tex new file mode 100644 index 0000000..f24fefa --- /dev/null +++ b/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.tex @@ -0,0 +1,206 @@ +\documentclass[12pt,a4paper]{article} +\usepackage[spanish]{babel} +\usepackage{hyperref} +\usepackage{graphicx} +\usepackage{subcaption} + +\title{Tema VIII Ejercicio VI} +\author{Nicolás A. Ortega Froysa} + +\begin{document} +\maketitle +\pagebreak +\tableofcontents +\pagebreak + +\section{Resumen Ejecutivo} + +\begin{figure}[!htb] + \centering + \includegraphics[width=0.75\linewidth]{./mapa.PNG} + \caption{Mapa de red.} + \label{fig:mapa} +\end{figure} + +El propósito de este documento es proveer los pasos necesarios para configurar +una red con asignación de direcciones dinámica, y redes virtuales internas, de +tal manera que se pueden expandir los terminales conectados a la red. + +\section{Configuración} + +\subsection{Switches} + +Antes que nada se ha de configurar la seguridad del {\em switch} del +administrador con la contraseña {\tt 1234}, y con el MOTD <>. + +\begin{verbatim} +enable secret 1234 +username admin password 0 1234 +banner motd *Buenos dias, Jefe!* +\end{verbatim} + +\subsubsection{VLANs} + +En los {\em switches} será necesario crear las VLAN de nuestra red. En nuestro +caso nos hacen falta tres: + +\begin{itemize} + \item VLAN 10: ADMIN + \item VLAN 20: COM + \item VLAN 30: INF +\end{itemize} + +\noindent +Para este propósito hemos de correr los siguientes comandos en ambos switches +desde la consola de configuración: + +\begin{verbatim} +vlan 10 +name ADMIN +vlan 20 +name COM +vlan 30 +name INF +\end{verbatim} + +\noindent +Con las VLAN creadas, ya podemos asignar VLANs a nuestros dispositivos, y +también consiguiendo una conexión de {\em trunk} entre los {\em switches}. + +\begin{verbatim} +# Switch0 +int range fa0/1-3 +switchport mode access +switchport access vlan 10 +int range fa0/4-5 +switchport mode access +switchport access vlan 20 +int fa0/6 +switchport mode access +switchport access vlan 30 +int range fa0/22-23 +switchport mode trunk + +# Switch1 +int range fa0/1,3 +switchport mode access +switchport access vlan 20 +int fa0/2 +switchport mode access +switchport access vlan 30 +int range fa0/22-23 +switchport mode trunk +\end{verbatim} + +\noindent +Con esto configurado, ya todos los terminales y el servidor estarán conectados a +sus VLAN correspondientes, y no podrán comunicarse a los otros que no sean de su +VLAN. + +\subsubsection{DHCP} + +Para poder asignar de forma dinámica las direcciones de los terminales de +nuestra red, creamos varios {\em pools} DHCP en el Switch0; uno para cada VLAN. +Para ello, primer asignamos una dirección IP al {\em switch} en cada VLAN para +que así puedan comunicar los terminales con el servidor DHCP (siendo el mismo +{\em switch}): + +\begin{verbatim} +int vlan 10 +ip address 192.168.10.5 +int vlan 20 +ip address 192.168.20.5 +int vlan 30 +ip address 192.168.30.5 +\end{verbatim} + +\noindent +En segundo lugar creamos los {\em pools} de DHCP: + +\begin{verbatim} +ip dhcp pool ADMIN +network 192.168.10.0 255.255.255.0 +default-router 192.168.10.1 +ip dhcp pool COM +network 192.168.20.0 255.255.255.0 +default-router 192.168.20.1 +ip dhcp pool INF +network 192.168.30.0 255.255.255.0 +default-router 192.168.30.1 +\end{verbatim} + +Una vez que esté todo esto configurado, ya se puede usar la asignación de +direcciones dinámica, aunque todavía no podrá conectarse al {\em router}. Para +esto hemos de configurar la interfaz que nos conecta al {\em router} como +un enlace troncal ({\em trunk}) y luego configurar el {\em router} en sí: + +\begin{verbatim} +int fa0/24 +switchport mode trunk +\end{verbatim} + +\subsection{Router} + +El {\em router} nos servirá para acceder a internet. Para ello, hemos de +configurarlo con nuestra red interna. El primer paso es configurar las redes +virtuales: + +\begin{verbatim} +vlan 10 name ADMIN +vlan 20 name COM +vlan 30 name INF +\end{verbatim} + +Una vez creadas en nuestro {\em router}, hemos de asignarlas a unas interfaces. +Ahora, como el mismo {\em router} se encarga de proveer servicio a todas las +redes virtuales, pero nos conectamos por tan sólo una interfaz red, tendremos +que crear sub-interfaces por las cuales el mismo {\em router} puede tener varias +direcciones IP (una para cada red virtual, y una más para la red nativa): + +\begin{verbatim} +# no usar fa0/0 directamente +int fa0/0 +no ip address +# crear sub-interfaz nativa +int fa0/0.1 +encapsulation dot1Q 1 native +ip address 192.168.0.1 255.255.255.0 +# sub-interfaces de VLAN +int fa0/0.10 +encapsulation dot1Q 10 +ip address 192.168.10.1 255.255.255.0 +switchport mode access vlan 10 +int fa0/0.20 +encapsulation dot1Q 20 +ip address 192.168.20.1 255.255.255.0 +switchport mode access vlan 20 +int fa0/0.30 +encapsulation dot1Q 30 +ip address 192.168.30.1 255.255.255.0 +switchport mode access vlan 30 +\end{verbatim} + +\subsection{Direcciones Estáticas} + +Como el servidor tiene que tener una dirección IP estática, asignamos a él la +dirección IP {\tt 192.168.20.2}, ya que tenemos reservados las primeras cinco +direcciones de cada red virtual, y la primera se usará para el {\em router}. + +\section{Conclusión} + +Al final de este proceso, se tendrá una red interna de empresa en correcto +funcionamiento, como se puede ver en la simulación de {\em CISCO PacketTracer}. + +\pagebreak + +\section{Derechos de Autor y Licencia} + +\noindent +Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa + \\ +\\ +Este documento se distribuye bajo los términos y condiciones de la licencia +Creative Commons Attribution No Derivatives 4.0 International. + +\end{document} diff --git a/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.toc b/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.toc new file mode 100644 index 0000000..f124f09 --- /dev/null +++ b/1/PAR/assignments/t8-ej6-naortega/t8-ej6-naortega.toc @@ -0,0 +1,10 @@ +\babel@toc {spanish}{}\relax +\contentsline {section}{\numberline {1}Resumen Ejecutivo}{3}{section.1}% +\contentsline {section}{\numberline {2}Configuración}{3}{section.2}% +\contentsline {subsection}{\numberline {2.1}Switches}{3}{subsection.2.1}% +\contentsline {subsubsection}{\numberline {2.1.1}VLANs}{3}{subsubsection.2.1.1}% +\contentsline {subsubsection}{\numberline {2.1.2}DHCP}{5}{subsubsection.2.1.2}% +\contentsline {subsection}{\numberline {2.2}Router}{5}{subsection.2.2}% +\contentsline {subsection}{\numberline {2.3}Direcciones Estáticas}{6}{subsection.2.3}% +\contentsline {section}{\numberline {3}Conclusión}{6}{section.3}% +\contentsline {section}{\numberline {4}Derechos de Autor y Licencia}{7}{section.4}% diff --git a/1/PAR/assignments/t8-ej7/imgs/00-mapa-de-la-red.png b/1/PAR/assignments/t8-ej7/imgs/00-mapa-de-la-red.png new file mode 100644 index 0000000..b00e578 Binary files /dev/null and b/1/PAR/assignments/t8-ej7/imgs/00-mapa-de-la-red.png differ diff --git a/1/PAR/assignments/t8-ej7/imgs/01-configuración-DHCP.png b/1/PAR/assignments/t8-ej7/imgs/01-configuración-DHCP.png new file mode 100644 index 0000000..9614a96 Binary files /dev/null and b/1/PAR/assignments/t8-ej7/imgs/01-configuración-DHCP.png differ diff --git a/1/PAR/assignments/t8-ej7/imgs/02-configuración-DNS.png b/1/PAR/assignments/t8-ej7/imgs/02-configuración-DNS.png new file mode 100644 index 0000000..ce69b93 Binary files /dev/null and b/1/PAR/assignments/t8-ej7/imgs/02-configuración-DNS.png differ diff --git a/1/PAR/assignments/t8-ej7/imgs/03-prueba-conexión-HTTP.png b/1/PAR/assignments/t8-ej7/imgs/03-prueba-conexión-HTTP.png new file mode 100644 index 0000000..92ec1e6 Binary files /dev/null and b/1/PAR/assignments/t8-ej7/imgs/03-prueba-conexión-HTTP.png differ diff --git a/1/PAR/assignments/t8-ej7/t8-ej7-naortega.pdf b/1/PAR/assignments/t8-ej7/t8-ej7-naortega.pdf new file mode 100644 index 0000000..31fd26f Binary files /dev/null and b/1/PAR/assignments/t8-ej7/t8-ej7-naortega.pdf differ diff --git a/1/PAR/assignments/t8-ej7/t8-ej7-naortega.tex b/1/PAR/assignments/t8-ej7/t8-ej7-naortega.tex new file mode 100644 index 0000000..8db1655 --- /dev/null +++ b/1/PAR/assignments/t8-ej7/t8-ej7-naortega.tex @@ -0,0 +1,225 @@ +\documentclass[12pt,a4paper]{article} +\usepackage[spanish]{babel} +\usepackage{hyperref} +\usepackage{graphicx} +\usepackage{subcaption} + +\title{Tema VIII Ejercicio VII} +\author{Nicolás A. Ortega Froysa} + +\begin{document} +\maketitle +\pagebreak +\tableofcontents +\pagebreak + +\section{Resumen Ejecutivo} + +\begin{figure}[!htb] + \centering + \includegraphics[width=0.75\linewidth]{imgs/00-mapa-de-la-red.png} + \caption{Mapa de la red.} + \label{fig:mapa-de-la-red} +\end{figure} + +El objetivo de esta práctica es crear una red dinámica en la que hay tres +servidores (DNS, DHCP, y HTTP), y cuatro redes (virtuales) distintas que tienen +al menos cinco terminales. Para montar esta red, se hará uso de cinco {\em +switches} y un {\em router}, de tal modo que quede como se puede ver en la +figura \ref{fig:mapa-de-la-red}. + +\section{Configuración} + +\subsection{Switches} + +En todos los {\em switches} hemos de configurar algunas cosas básicas, como +sería las VLAN, la contraseña de entrada ({\tt ASIR1}) y el MOTD. Para esto, en +cada {\em switch} corremos los siguientes comandos: + +\begin{verbatim} +enable +conf t +enable secret ASIR1 +banner motd "Estas accediendo al switch, enhorabuena!" +vlan 10 +name INF +vlan 20 +name ASIR +vlan 30 +name DAW +vlan 40 +name DAM +\end{verbatim} + +En aquellos {\em switches} que estén más cerca de los terminales y servidores +(i.e.\ S-INF, S-ASIR, S-DAW, y S-DAM) tenemos que configurar sus interfaces. +Asumimos que la interfaz FastEthernet0/1 siempre queda reservada para conectarse +al {\em switch} central (i.e.\ S-CENTRAL), y las demás las podemos usar para +terminales y servidores. Para esto corremos los comandos siguientes, +intercambiando {\tt \textless{}n\textgreater{}} por la VLAN que corresponde a la +red virtual asignada a este {\em switch}: + +\begin{verbatim} +int fa0/1 +switchport mode trunk +int range fa0/2-24 +switchport mode access +switchport access vlan +\end{verbatim} + +Luego, en el {\em switch} central (S-CENTRAL) configuramos tal que todas las +interfaces que estamos usando (i.e. FastEthernet0/1-5) sean de tipo troncal: + +\begin{verbatim} +int range fa0/1-5 +switchport mode trunk +\end{verbatim} + +\subsection{Servidores} + +Todos los servidores de nuestra red se encuentran dentro de la VLAN 10 (con +nombre <>). Físicamente se encuentran conectados al {\em switch} S-INF. + +\subsubsection{Servidor DHCP} + +\begin{figure}[!htb] + \centering + \includegraphics[width=0.75\linewidth]{imgs/01-configuración-DHCP.png} + \caption{Configuración DHCP.} + \label{fig:configuracion-dhcp} +\end{figure} + +El servidor DHCP lo configuramos manualmente con las direcciones IP siguientes: + +\begin{itemize} + \item IP: 192.168.1.2 + \item Máscara: 255.255.255.0 + \item Gateway: 192.168.1.1 + \item DNS: 192.168.1.3 +\end{itemize} + +\noindent +Luego configuramos cuatro {\em pools} de DHCP distintas para cada VLAN tal como +aparecen en la figura \ref{fig:configuracion-dhcp}. Empezamos a partir de la +dirección 192.168.x.10 de cada red para reservar las primeras direcciones por si +quisiéramos añadir más servidores que proveen servicios en cada red. Antes de +continuar nos aseguramos de que el servicio esté encendido. + +\subsubsection{Servidor DNS} + +\begin{figure}[!htb] + \centering + \includegraphics[width=0.75\linewidth]{imgs/02-configuración-DNS.png} + \caption{Configuración DNS.} + \label{fig:configuracion-dns} +\end{figure} + +El servidor DNS lo configuramos manualmente con las direcciones IP siguientes: + +\begin{itemize} + \item IP: 192.168.1.3 + \item Máscara: 255.255.255.0 + \item Gateway: 192.168.1.1 + \item DNS: 192.168.1.3 +\end{itemize} + +Es aquí en este servidor donde tenemos que configurar el nombre de dominio de +nuestro servidor HTTP. Para esto añadimos una entrada apuntando el nombre de +dominio <> a la dirección IP 192.168.1.4. Nos aseguramos +de que el servicio está encendido, de tal modo que el debería parecerse a la +figura \ref{fig:configuracion-dns}. + +\subsubsection{Servidor HTTP} + +El servidor HTTP lo configuramos manualmente con las direcciones IP siguientes: + +\begin{itemize} + \item IP: 192.168.1.4 + \item Máscara: 255.255.255.0 + \item Gateway: 192.168.1.1 + \item DNS: 192.168.1.3 +\end{itemize} + +Para este servidor tan sólo hemos de entrar en la configuración de HTTP y +asegurarnos de que esté encendido, y (opcionalmente) modificar el archivo {\tt +index.html} para que aparezca algún resultado más reconocible. + +\subsection{Router} + +Para la configuración del {\em router} tenemos que configurar primero las VLAN, +que se puede hacer con los comandos siguientes: + +\begin{verbatim} +enable +vlan database +vlan 10 name INF +vlan 20 name ASIR +vlan 30 name DAW +vlan 40 name DAM +\end{verbatim} + +A continuación configuramos la interfaz FastEthernet0/0 para que se divida en +varias sub-interfaces: una nativa (0/0.1), y una por cada VLAN de nuestra red. +También hemos de asignar un {\em helper address} que servirá para redireccionar +todas las peticiones de DHCP a nuestro servidor DHCP que se encuentra en la red +VLAN 10. + +\begin{verbatim} +int fa0/0 +no ip address +int fa0/0.1 +encapsulation dot1Q 1 native +ip address 192.168.0.1 +int fa0/0.10 +encapsulation dot1Q 10 +ip address 192.168.1.1 +int fa0/0.20 +encapsulation dot1Q 10 +ip address 192.168.2.1 +int fa0/0.20 +encapsulation dot1Q 20 +ip address 192.168.2.1 +int fa0/0.30 +encapsulation dot1Q 30 +ip address 192.168.3.1 +int fa0/0.40 +encapsulation dot1Q 40 +ip address 192.168.4.1 +\end{verbatim} + +\subsection{Terminales} + +Con todo esto configurado, la configuración de los terminales es bien fácil. Tan +sólo hemos de entrar en la configuración de IP de cada terminal y cambiarlo de +modo estático al uso de DHCP. Entonces debería recibir la configuración dada por +el servidor DHCP al ordenador con una dirección IP nueva que corresponde a su +VLAN. + +\section{Prueba} + +\begin{figure}[!htb] + \centering + \includegraphics[width=0.75\linewidth]{imgs/03-prueba-conexión-HTTP.png} + \caption{Prueba conexión HTTP.} + \label{fig:prueba-conexion-http} +\end{figure} + +Una vez que tengamos todo configurado, podemos verificar si nuestra red funciona +accediendo mediante navegador web desde un terminal en cualquier VLAN que no sea +la 10 (de INF) a nuestro servidor HTTP con el nombre de dominio que hemos +asignado anteriormente. Si todo funciona correctamente, ha de aparecer la página +{\tt index.html} que hemos modificado anteriormente (figura +\ref{fig:prueba-conexion-http}). + +\pagebreak + +\section{Derechos de Autor y Licencia} + +\noindent +Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa + \\ +\\ +Este documento se distribuye bajo los términos y condiciones de la licencia +Creative Commons Attribution No Derivatives 4.0 International. + +\end{document} diff --git a/1/PAR/assignments/t8-ej7/t8-ej7-naortega.toc b/1/PAR/assignments/t8-ej7/t8-ej7-naortega.toc new file mode 100644 index 0000000..a82a6df --- /dev/null +++ b/1/PAR/assignments/t8-ej7/t8-ej7-naortega.toc @@ -0,0 +1,12 @@ +\babel@toc {spanish}{}\relax +\contentsline {section}{\numberline {1}Resumen Ejecutivo}{3}{section.1}% +\contentsline {section}{\numberline {2}Configuración}{3}{section.2}% +\contentsline {subsection}{\numberline {2.1}Switches}{3}{subsection.2.1}% +\contentsline {subsection}{\numberline {2.2}Servidores}{4}{subsection.2.2}% +\contentsline {subsubsection}{\numberline {2.2.1}Servidor DHCP}{4}{subsubsection.2.2.1}% +\contentsline {subsubsection}{\numberline {2.2.2}Servidor DNS}{5}{subsubsection.2.2.2}% +\contentsline {subsubsection}{\numberline {2.2.3}Servidor HTTP}{6}{subsubsection.2.2.3}% +\contentsline {subsection}{\numberline {2.3}Router}{7}{subsection.2.3}% +\contentsline {subsection}{\numberline {2.4}Terminales}{7}{subsection.2.4}% +\contentsline {section}{\numberline {3}Prueba}{8}{section.3}% +\contentsline {section}{\numberline {4}Derechos de Autor y Licencia}{9}{section.4}% diff --git a/1/PAR/assignments/t8-ej7/t8-ej7.pkt b/1/PAR/assignments/t8-ej7/t8-ej7.pkt new file mode 100644 index 0000000..6381887 Binary files /dev/null and b/1/PAR/assignments/t8-ej7/t8-ej7.pkt differ diff --git a/1/PAR/notes/pt-docs.md b/1/PAR/notes/pt-docs.md index e146e50..2d87d7e 100644 --- a/1/PAR/notes/pt-docs.md +++ b/1/PAR/notes/pt-docs.md @@ -15,6 +15,12 @@ enable secret username privilege 1 password 0 ``` +### MOTD + +``` +banner motd "" +``` + ## Sub-Interfaces ``` @@ -73,3 +79,15 @@ default-router dns-server ip dhcp excluded-address ``` + +### Asignar Dirección Servidor DHCP + +Hay veces que queremos asignar desde un __router__ o un __switch__ el servidor +DHCP con un cierto IP que está dentro de otra red. Para esto hacemos uso del +__helper address__. Simplemente entramos en la (sub-)interfaz a la que queremos +asignar este servidor, y añadimos el __helper__ como de forma siguiente: + +``` +int [.] +ip helper-address +```