
Planificación y administración de redes
1 Introducción a los sistemas de comunicación
Desde el principio de los tiempos, el ser humano se ha comunicado con sus congéneres de distintas maneras: comenzó a través de la voz (se cree que hace unos 100.000 años), con algún tipo de protolenguaje, para posteriormente comenzar a utilizar sistemas de comunicaciones permanentes (la escritura).
Por todos es conocido la evolución histórica de distintos sistemas de comunicación, entre los que podemos destacar (referencia):
Pinturas rupestres: Realizadas en cuevas o rocas en las que se pueden observar escenas de caza, distintos animales, grabado de manos, figuras humanas... Algunas de las pinturas encontradas cuentan con más de 50.000 años. Tenemos un ejemplo cercano en las cuevas de Santimamiñe en donde tenemos pinturas datadas entre 14.000 y 9.000 años a. C.
Escritura cuneiforme: Es uno de los primeros sistemas de escritura realizados, y se utilizaban tablillas de arcilla húmeda en las que se grababa mediante un tallo vegetal. Con este sistema se han datado tablas anteriores al 3.200 a.C. y en distintos idiomas.
Escritura jeroglífica y el papiro: En el antiguo Egipto se crea la escritura mediante signos que comienza por escribirse en paredes para posteriormente inventar el papiro (cuya datación más antigua es del 2.500 a.C.) y de esta manera se comienza a tener un sistema de comunicación fácilmente manejable e intercambiable.
Uso de palomas mensajeras: El uso de palomas mensajeras para el envío de comunicaciones data de la época anterior a 1.500 a.C. y se ha estado utilizando hasta este siglo en algunos países durante desastres naturales.
Imprenta: El primer documento impreso data de china del año 868, pero la imprenta moderna la creó en 1440, más o menos, Johannes Gutemberg. Gracias a la imprenta la creación de documentos escritos se realizaba de manera más rápida y esto permitió que la expansión del conocimiento escrito se acelerase.
Telégrafo: A partir de mediados del siglo XVIII y durante el inicio del siglo XIX hubo bastantes avances en las investigaciones del electromagnetismo y de esta manera se comenzó a investigar cómo usarlo para el envío de señales. En 1837 Samuel Morse patenta el telégrafo. En 1858 se une Irlanda y Terranova mediante el primer cable trasatlántico.
Teléfono: Como evolución al telégrafo, que sólo permitía el envío de señales, nace el teléfono de la mano de Antonio Meucci (aunque normalmente se le atribuye el invento a Alexander Graham Bell). En 1860 realizó una demostración pública transmitiendo voz a una considerable distancia.
Tal como podemos ver, ha habido distintos sistemas de comunicación utilizados durante siglos para el envío y recepción de información.
1.1 Comunicación de la información
Tal como hemos visto, los sistemas de comunicación de la información no es algo nuevo, ¿pero qué necesidades tiene un sistema de comunicación?
Emisor: Es el origen y la fuente de la información que se pretende comunicar.
Receptor: Es el destinatario, el que va a recibir la información.
Mensaje: Es la información que queremos transmitir entre el emisor y el recepetor.
Código: Es el conjunto de reglas utilizadas a la hora de representar el mensaje. El emisor y receptor deben utilizar el mismo código para que la comnunicación sea correcta.
Canal: Es el medio físico por el que se va a enviar el mensaje.
Señal: Es el componente físico por el que se envía la información.
Para entender de mejor manera un sistema de comunicación y los componentes que lo forman, vamos a poner dos ejemplos:
Ejemplo 1: Comunicación oral
En este ejemplo vemos que hay dos personas, las cuales se han identificado cada una de ellas como “Emisor” y “Receptor”, y así de esta manera conocemos quién es el origen y quién el destino de la comunicación.
En este caso, el mensaje es “Hola”, haciendo uso del código conocido como “castellano”. La señal que se va a utilizar es la voz, ya que están hablando y el canal por el que se envía el mensaje es el aire.
Es un ejemplo sencillo que utilizamos cada día.
Ejemplo 2: Comunicación escrita por mensajería
AL igual que en el ejemplo anterior, vemos que hay dos personas, las cuales se han identificado cada una de ellas como “Emisor” y “Receptor” pero que en este caso se van a comunicar haciendo uso de un teléfono móvil, tal como hacemos en nuestro día a día a través de una aplicación de mensajería o red social.
Teniendo en cuenta esto, en este ejemplo realmente existen dos sistemas de comunicación que están mezclados y uno está por encima del otro:
Entre personas: Similar al ejemplo anterior, el emisor y el receptor se están comunicando, con el mensaje compuesto por tres emojis que representan estar riendo. El código es el idioma que estén utilizando, el canal sería el programa utilizado y la señal podríamos decir que es el móvil.
Entre dispositivos: En este caso, el emisor y receptor es el móvil de cada usuario. El mensaje es el mismo, pero convertido a un sistema digital (como el binario). El canal en este caso sería el aire y la señal es la utilizada por el móvil, por ejemplo el 5G.
Tal como se puede ver en este caso, una comunicación puede depender a su vez de otro sistema de comunicación.
1.1.1 Esquema de la comunicación
Para simplificar cómo se realiza la comunicación, podemos utilizar el siguiente esquema:
2 Sistemas de numeración
La información que queremos utilizar en un sistema informático debe estar representada de alguna manera que el ordenador pueda entender.
En sistemas orales, o escritos, lo habitual es hacer uso de un idioma concreto mediante un alfabeto conocido. En informática se hace uso de distintos sistemas de numeración para representar tanto números como el resto de información.
2.1 Sistema decimal
El ser humano, desde hace tiempo ha utilizado como sistema para contar el sistema decimal, representado mediante el sistema arábigo. Posiblemente se adoptó este sistema por contar con 10 dedos en las manos.
El sistema numérico decimal está basado en diez símbolos ordenados (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), situados de manera ponderada (cada posición tiene un peso específico), que permiten representar las cantidades deseadas. Debido a que hacemos uso de diez símbolos se dice que utiliza la base 10.
Cuando se combina con otros sistemas de numeración, debemos indicar la base en la forma 19(10 , es decir, poniendo un pequeño “(10” a la derecha del número representado la base 10.
La representación de cualquier combinación del sistema decimal se puede representar en forma de potencia, donde la base es 10 y el exponente es la posición en la que se sitúa el símbolo.
Vamos a tomar como ejemplo el siguiente número: 146. La representación en forma de potencias:
146 = 100 + 40 + 6
146 = 1 × 100 + 4 × 10 + 6 × 1
146 = 1 × 102 + 4 × 101 + 6 × 100
Como se puede comprobar, lo que hemos hecho ha sido coger cada símbolo representado y lo hemos multiplicado por la base (en este caso base 10) y a la base le hemos puesto el exponente de la posición en la que se encuentra. El símbolo de más a la derecha tiene como exponente el cero, y hacia la izquierda el exponente se incrementa en uno para cada posición.
2.2 Sistema binario
En informática el sistema binario es el más importante ya que es el sistema que internamente utilizan los circuitos digitales. En este sistema sólo se hace uso de dos símbolos, el “0” y el “1”, y por tanto su base es 2. Los dos dígitos se denominan bits (contracción de binary digit).
Para representar que estamos haciendo uso del sistema binario debemos indicar la base al lado del número, por ejemplo: 101001(2. Como se puede ver es añadir “(2” en pequeño al final del último símbolo.
2.3 Sistema hexadecimal
Esta vez necesitamos dieciséis símbolos ordenados, así que es un sistema de base 16. Para la representación se hace uso de los símbolos numéricos que conocemos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) y para representar los siguientes, las letras “A”, “B”, “C”, “D”, “E” y “F”, de esta manera formamos los 16 símbolos que necesitamos.
Teniendo en cuenta esto, podemos hacer la representación directa de que A(16 = 10(10 y que E(16 = 14(10
En informática es muy habitual hacer uso del sistema hexadecimal a la hora de trabajar con bytes (que es una “palabra” de 8 bits). Un símbolo hexadecimal se representa como 4 bits, por lo que necesitaríamos 2 símbolos hexadecimales para un byte.
También se usa durante la edición de código en formato de datos, o durante la programación en ensamblador.
Al igual que con los sistemas anteriores, debemos añadir la base cuando estemos utilizando el sistema hexadecimal: F17A(16 , FBE1D(16 , 1FAB27(16
2.4 Sistema octal
En ordenadores antiguos era habitual hacer uso del sistema octal. Hoy día se usa más como sistema intermedio entre binario y hexadecimal.
Esta vez nos basamos en ocho símbolos ordenados (0, 1, 2, 3, 4, 5, 6, 7), que, al combinarlos, permiten representar las cantidades deseadas. Debido a que hacemos uso de ocho símbolos se dice que utiliza la base 8.
Para representar la base, debemos añadir “(8” a la derecha del número que hayamos indicado, como por ejemplo: 770(8 , 175(8
2.5 Conversiones entre los distintos sistemas de numeración
Hasta ahora no nos habíamos encontrado con distintos sistemas de numeración, pero ahora que conocemos cuatro de ellos, tenemos que saber que existe la posibilidad de realizar conversiones entre ellos.
Una vez entendidos los distintos sistemas de numeración nos tiene que quedar claro que aunque la representación de los símbolos sea la misma, el número o cantidad representada no es la misma. Por ejemplo:
1010(10 ≠ 1010(2 ≠ 1010(16 ≠ 1010(8
A continuación se va a explicar cómo realizar conversiones entre los distintos sistemas de numeración que hemos visto, y a modo de resumen está la tabla de conversiones directa.
2.5.1 Conversión de decimal a...
La manera más sencilla para realizar las distintas conversiones partiendo de un número decimal es hacer divisiones sucesivas usando la base a la que queremos realizar la conversión.
... binario
Se trata de dividir sucesivamente el número decimal y los sucesivos cocientes entre dos (la base binaria).
Vamos a utilizar como ejemplo el número decimal 27(10 :
Los restos los cogemos en orden inverso para obtener la siguiente equivalencia: 27(10 = 11011(2
... hexadecimal
Se trata de dividir sucesivamente el número decimal y los sucesivos cocientes entre 16 (la base hexadecimal). Cuando el cociente o resto sea entre 10 y 15, habrá que cambiarlo por la letra correspondiente.
Los restos los cogemos en orden inverso para obtener la siguiente equivalencia: 195(10 = C3(16
... octal
Al igual que los anteriores, hacemos divisiones sucesivas:
Los restos los cogemos en orden inverso para obtener la siguiente equivalencia: 98(10 = 142(8
2.5.2 Conversión de binario a...
... decimal
El sistema de numeración binario es un sistema posicional donde cada dígito binario (bit) tiene un valor basado en su posición relativa al LSB (Least Significant Bit = bit menos significativo, que es el que está más a la derecha y que tiene el menor valor).
Cualquier número binario puede convertirse a su equivalente decimal multiplicando cada bit por la base (2) y usando como exponente la posición (siendo 0 el exponente del bit de más a la derecha). Para ilustrarlo, cojamos como ejemplo el número binario 11011(2:
11011(2
1 × 24 + 1 × 23 + 0 × 22 + 1 × 21 + 1 × 20
16 + 8 + 0 + 2 + 1 = 27(10
Nótese que el procedimiento consiste en determinar los valores (es decir, las potencias de 2) de cada posición de bit que contenga un 1 y luego sumarlos.
Nótese también que el MSB (Most Significant Bit = bit más significativo, el que está más a la izquierda, el que tiene mayor valor) tiene un valor de 24 a pesar de que es el quinto bit. Esto se debe a que el LSB (Least Significant Bit, el bit menos significativo, el que está a la derecha) es el primer bit y tiene un valor de 20.
... octal
Para convertir un número binario a octal se agrupan los dígitos de 3 en 3 empezando desde el lado derecho hacia la izquierda, sustituyendo cada trío de dígitos binarios por su equivalente en octal.
Si en el lado izquierdo quedase algún bit “suelto” (sin formar un grupo de 3), se pueden poner “0” a la izquierda.
Cogemos como ejemplo el número binario 1100101001001(2 para pasarlo a octal, haremos:
001 100 101 001 001(2 = 14511(8
... hexadecimal
Similar al caso anterior, pero en este caso la agrupación que se realiza debe de ser de 4 en 4 bits. Si usamos el mismo ejemplo anterior 1100101001001(2 :
0001 1001 0100 1001(2 = 1949(16
2.5.3 Conversión de hexadecimal a...
... binario
Para pasar de hexadecimal a binario convertiremos cada símbolo hexadecimal a 4 bits.
F17A(16 = 1111 0001 0111 1010(2
1A4F(16 = 0001 1010 0100 111(2
... decimal
Al igual que hemos hecho con las conversiones previas a decimal, se podría realizar haciendo potencias de 16, pero se entiende que es más complicado de realizar.
Por lo tanto, la manera más sencilla es pasar primero a binario como acabamos de ver y posteriormente convertir ese binario a decimal como hemos visto previamente.
... octal
Pasar primero a binario y después a octal.
2.5.4 Conversión de octal a...
... binario
Cada dígito en octal se convierte en su representación en 3 bits:
167(8 = 001 110 111(2
253(8 = 010 101 011(2
Los ceros de la izquierda se podrían quitar, ya que no alteran el valor.
... decimal
Se puede realizar de dos maneras. La primera es hacer uso de potencias de 8 (similar al paso de pasar de binario a decimal, pero cambiando la base):
157(8 = 1 × 82 + 5 × 81 + 7 × 80=
1 × 64 + 5 × 8 + 7 × 1=
64 + 40 + 7 = 111(10
157(8 = 111(10
Con números grandes puede ser un poco complicado calcular las potencias de 8, por lo que la alternativa es pasarlo primero a binario como hemos visto, y después pasarlo de binario a decimal.
... hexadecimal
La manera más sencilla es realizar la conversión primero a binario tal como hemos visto, y posteriormente pasar el número binario a hexadecimal como se ha visto previamente.
2.6 Comprobar conversiones
Podemos hacer uso de la calculadora del sistema Windows para comprobar si estamos realizando de manera correcta las conversiones. El problema es que por defecto sólo hace uso del sistema decimal. Para poder utilizar los sistemas de numeración que hemos aprendido, es necesario utilizar la versión “Programador”.
Una vez está en modo “Programador”, nos debemos fijar qué sistema de numeración está elegido. Al escribir cualquier número, en el resto de opciones veremos las conversiones automáticamente.
3 Redes de comunicación
En el ámbito informático una red de comunicaciones es representada como una red de ordenadores para poder compartir información, recursos u ofrecer servicio (ya sea al usuario o a otros ordenadores).
Las redes de ordenadores son un conjunto de equipos hardware que están conectados entre sí, mediante cables o de manera inalámbrica, y que a través de un software especializado envían y reciben impulsos eléctricos (u ondas electromagnética) para el transporte de datos.
3.1 Breve historia de las redes
A continuación una breve cronología mostrando los hitos más importantes dentro de las redes de comunicaciones, en lo que a ordenadores se refiere (Referencia).
- ~1950
-
En la década de los 50 se desarrollan los circuitos integrados. Esto hará que en el futuro los ordenadores cada vez se vayan haciendo más pequeños.
Las redes de ordenadores comienzan a aparecer en las bases militares americanas, en principio para sistemas de radares.
- ~1960
-
Se realiza una conexión entre dos mainframes en EEUU para el sistema de reservas aéreas comerciales.
El MIT utiliza un ordenador para enrutar y mantener conexiones telefónicas.
En 1966, aparece un paper (artículo científico) describiendo las WAN.
En 1969 ARPANET (red de ordenadores creadas por el Departamento de Defensa de Estados Unidos) cuenta con 4 nodos (a 50kbit/s de velocidad).
- ~1970
-
En 1972 se hace la primera demostración pública de ARPANET.
A comienzos de la década (1973) se crea Ethernet en la compañía Xerox Parc.
A finales de la década Xerox intenta hacer que Ethernet se convierta en un estándar de conexión para terminar con las competencias (token ring, …).
- ~1980
-
Los ordenadores personales empiezan a generalizarse.
Aparece el protocolo para enviar y recibir e-mails (SMTP).
El protocolo TCP/IP se convierte en el utilizado por ARPANET (1983) y es declarado como su estándar para las comunicaciones.
Aparece el servicio DNS.
Se crea el modelo de referencia OSI.
Aparece el primer gusano por la red (Morris worm, 1988). Se estima que infectó al 10% de los ordenadores conectados a la red.
Se crea el protocolo BGP.
El protocolo Ethernet evoluciona y permite conexiones a 10Mbit/s.
- ~1990
-
Tim Berners-Lee desarrolla el código para WWW y crea el primer servidor web (1991).
Se puede decir que aquí es cuando nace la Internet que conocemos actualmente.
En 1995 Ethernet permite conexiones a 100Mbit/s
Se establece un control para los nombres de dominio (posteriormente lo asumirá ICANN).
Aparece Amazon, ebay, Craiglist, IMDB, hotmail, google, yahoo, ...
Aparece el protocolo IPv6 (1998).
Aparece el protocolo wifi 802.11b.
- ~2000
-
Crisis de las “.com”.
Internet se generaliza.
Empiezan a permitirse más TLDs, que no corresponden sólo a países.
Ethernet permite conexiones a 1Gbit/s
- ~2010
-
Ethernet permite conexiones a 400Gbit/s (2018).
Starlink comienza a desplegar su constelación de satélites para dar cobertura en todo el planeta.
3.2 Tipos de redes
A la hora de diferenciar las redes de ordenadores podemos diferenciarlas por distintos conceptos:
Por el medio de transmisión utilizado.
Por la dirección de los datos.
Por el alcance.
Por el grado de acceso.
Por la topología.
...
3.2.1 Por el medio de transmisión utilizado
Más adelante veremos distintos sistemas de transmisión, pero para ir diferenciando podemos crear dos grandes grupos teniendo en cuenta el medio utilizado:
Guiados: Es decir, a través de cables que se encargarn de realizar la transmisión de la señal desde un punto de origen al punto de destino.
No guiados: Se hace uso de algún sistema inalámbrico (mediante antenas) para realizar la transmisión de los datos.
3.2.2 Por la dirección de los datos
Si tenemos en cuenta la dirección de los datos en la transmisión, podemos diferenciarlos como:
Simplex: la comunicación sólo se realiza en un único sentido, por lo que sólo es necesario un único canal de transmisión.
Half-duplex: se permite la comunicación en ambos sentidos, pero no de manera simultánea, por lo que emisor y receptor se reparten el tiempo de emisión. Por ejemplo, el walkie-talkie.
Duplex: O también conocido como full-duplex, permite la comunicación en ambas direcciones y de manera simultánea. Por ejemplo, el teléfono. Para ello es necesario tener una de estas dos opciones:
Dos canales Half-duplex: uno para cada dirección de la comunicación.
Un único canal por el que se envía la comunicación, pero para ello es necesario algún sistema de multiplexación (como puede ser usar frecuencias separadas).
3.2.3 Por alcance
Teniendo en cuenta el alcance al que llegan las redes, podríamos realizar la siguiente distinción:
3.2.3.1 Red de área personal (PAN)
Del inglés Personal Area Network, es aquella en la que interactúan distintos dispositivos de muy corto alcance, limitado al área de una persona.
El ejemplo más habitual hoy día sería la comunicación mediante tecnología inalámbrica por Bluetooth en la comunicación entre ordenador, móvil y dispositivos como un smartwatch.
3.2.3.2 Red de área local (LAN)
Del inglés Local Area Network, es una red que puede abarcar un cierto área de tamaño como una casa, una oficina, un colegio, una universidad...
El ejemplo de una oficina sería una red en la que existen distintos ordenadores, que pueden comunicarse entre sí o compartir información con un servidor ya sea a través de una red cableada o también inalámbrica.
3.2.3.3 Red de área metropolitana (MAN)
Del inglés Metropolitan Area Network, y como su nombre indica, el área es mayor y suele abarcar una ciudad para ofrecer los servicios necesarios en la misma.
En este caso también puede ser de manera cableada (normalmente haciendo uso de tecnología más rápida como es la fibra óptica) y también de manera inalámbrica.
Dentro de los servicios que pertenecerían a una MAN podemos poner como ejemplos:
Despliegue de zonas WIFI gratuito en la ciudad.
Comunicación entre sistemas de información (paradas de autobuses, marquesinas, ...).
Sistemas de video-vigilancia municipal.
Algunos de estos servicios que están en una MAN pueden ser públicos (como el WIFI) o de acceso restringido (sistemas de seguridad).
3.2.3.4 Red de área amplia (WAN)
Del inglés Wide Area Network, es una red que abarca grandes extensiones geográficas y normalmente construidas por grandes empresas o proveedores de internet (ISP, Internet Service Provider).
3.2.4 Por el grado de acceso
Teniendo en cuenta quién puede acceder a la red, podríamos definir dos tipos de redes:
Red privada: es una red que sólo ciertas personas pueden acceder y que no normalmente no es accesible desde otras redes. El ejemplo más sencillo es la red que tenemos en casa.
Red pública: es una red a la que puede acceder cualquier persona y que interconecta otras redes sin importar su situación geográfica. Internet es una red pública.
4 Direccionamiento IPv4
La dirección IP es el identificador (que debe ser único) de un dispositivo dentro de una red. Los dispositivos pertenecientes a la misma red podrán comunicarse entre sí mediante dicha dirección IP. Todas las características que conforman esta IP están explicados en el protocolo IP (Internet Protocol).
Debido a que en el origen de la creación del protocolo IPv4 no se pensaba que llegase a haber tantos dispositivos conectados a internet, el límite que se puso para el número de posibles direcciones está llegando a su fin. Es por ello que ya existe un nuevo protocolo, IPv6 desde hace tiempo, que sustituirá a IPv4 en un futuro, pero para ello debe de realizarse una transición que no termina de finalizar, aunque ya es posible hacer uso de ello.
El direccionamiento IP proporciona un mecanismo para la asignación de identificadores a cada dispositivo conectado a una red. Antes de dar información más técnica, exponemos los principales conceptos:
Una dirección IP es un conjunto de bits (que formarán 4 números decimales), que sirve para identificar de forma única a un dispositivo dentro de la red.
La asignación de dicha IP se puede realizar de dos maneras:
Estática: El administrador del dispositivo deberá configurar la dirección de manera manual teniendo en cuenta los parámetros necesarios que se ajusten a la red a la que se quiere conectar.
Dinámica: Una vez el dispositivo se conecte de manera física a la red (por cable, o en caso de ser de manera inalámbrica, realizando la conexión al SSID e introduciendo la contraseña) habrá un servicio (DHCP) que le otorgará una IP.
El protocolo IPv4 permite la existencia de dos tipos de direcciones:
Direcciones públicas: Son las utilizadas en Internet. Cualquier dispositivo que se conecte de manera directa a Internet debe tener un direccionamiento público. Existe la organización ICANN que se encarga de repartir estos direccionamientos entre los proveedores de internet.
Direcciones privadas: Son direcciones asignadas a dispositivos que se encuentran dentro de una red que no tiene visibilidad desde Internet. Los dispositivos que tienen este tipo de direccionamiento privado no pueden acceder a internet a través de su IP, por lo que debe de haber un dispositivo que le oculte su IP privada y se la “cambie” por una IP del rango público (el router realizando NAT, lo veremos más adelante).
4.1 Formato de una dirección IPv4
Como ya se ha comentado, una IP es un conjunto de bits, concretamente 32, que normalmente son representados en 4 grupos de 8 bits pasados a decimal, que es lo que normalmente estamos acostumbrados a ver:
Dirección IP en formato de 32 bits:
11000000101010000000000101100100
IP en formato de bits, separados en grupos de 8 bits:
11000000 10101000 00000001 01100100
Dirección IP en formato decimal:
192 . 168 . 1 . 100
Al tener 32 bits, se realizan 4 grupos de 8 bits, por lo que obtendremos 28 posibles combinaciones en cada grupo. Por lo que nos lleva a poder representar cualquier número desde 0 (00000000
) hasta 255 (11111111
) en cada bloque.
4.2 Máscara de red
Una dirección IP no sólo contiene la dirección única de un dispositivo, sino que también contiene la red a la que pertenece dicho dispositivo. Esto nos lleva a ver que una IP pertenece a una jerarquía, ya que pertenece a una red “superior”. A simple vista no podemos saber a qué red pertenece una IP, pero el formato es el siguiente:
Dependiendo del número de bits que sea “n”, el número “m” variará a la par hasta que ambos sumen los 32 bits que debe de tener una dirección IP. Aquí es donde entra en juego la máscara de red.
La máscara de red es un número binario de 32 bits que nos permitirá conocer qué número es “n” y “m” en una dirección IP, para así obtener el prefijo de la red y conocer cuántos dispositivos puede llegar a existir en la red.
Al igual que la IP, una máscara de red son 32 bits que contendrán a la izquierda “n” unos y a la derecha “m” ceros.
En la máscara de red a la izquierda irán los “1” y a la derecha los “0”. ¡NUNCA SE MEZCLAN!
Por ejemplo:
IP decimal:
192.168.1.100
IP binario:
11000000101010000000000101100100
Máscara de red:
11111111111111110000000000000000
Si contamos el número de unos que tenemos en el lado izquierdo de la máscara de red veremos que tenemos 16, por lo que los primeros 16 bits de la IP serán los que nos digan a qué red pertenece esa IP. En este caso, y para favorecer el visionado, realizamos una separación de los bits:
IP binario:
11000000 10101000 00000001 01100100
Máscara de red:
11111111 11111111 00000000 00000000
Con esto obtenemos:
Prefijo de la red:
192.168
Identificador del dispositivo:
1.100
Si observamos, la máscara de red, al ser 32 bits, también se puede escribir en formato decimal, aplicando al igual que antes, la creación de 4 grupos de 8 bits. En el ejemplo anterior la máscara sería: 255.255.0.0
.
Existe un tercer método para escribir la máscara de red: “/n”, donde “n” es un número indicando el número de unos (y por tanto, los bits que identifican el prefijo de la red) que tiene la máscara de red. En nuestro caso, la máscara también se puede escribir como /16, ya que es el número de unos que tiene nuestra máscara.
4.3 Nombre de la red, broadcast y dispositivos
De una máscara y una IP podemos obtener más información. Para conocer el número de posibles IPs que puede llegar a haber en esa red tendremos que realizar el cálculo de 2m, donde “m” es el número de ceros que tiene la máscara.
En nuestro ejemplo es 216 = 65536 posibles IPs. De estas IPs existen dos IPs especiales:
Nombre de la red: El nombre de la red sirve para identificar y diferenciar las distintas redes que pueden llegar a existir.
Es muy importante nombrarlas de manera correcta ya que nos dará la información necesaria para conocer el prefijo de la red y el número posible de dispositivos que puede haber.
Para crear el nombre de la red lo haremos usando el prefijo de la red y el resto de bits ponerlos a 0. En nuestro ejemplo:
11000000 10101000 00000000 00000000 = 192.168.0.0
Al nombre de la red siempre se le debe añadir la máscara, por lo que quedaría:
192.168.0.0 /16
Si no se pone la máscara de red, podría ser una IP suelta de cualquier red.
Broadcast: Sirve para poder mandar un mensaje a todos los dispositivos de la red. Para formar esta dirección usamos el prefijo de la red y el resto de bits ponerlos a 1, por lo que en nuestro ejemplo quedaría:
11000000 10101000 11111111 11111111 = 192.168.255.255
Teniendo esto en cuenta, al total de posibles IPs de una red tendremos que restarle 2 para darnos el número total de dispositivos que podremos tener en una red:
Para saber el número de posibles IPs de una red:
2m − 2
siendo “m” el número de 0
de la máscara
En nuestro ejemplo vemos que “m” es 16 (porque en la máscara tenemos 16 ceros), y sabemos que tenemos 2 IPs especiales (el nombre de la red y el broadcast) que tendremos que restar para tener el número total de dispositivos (tablets, ordenadores, móviles conectados) que podrá llegar a tener esa red: 216 − 2 = 65534 posibles dispositivos. El rango de estos dispositivos será desde la IP 192.168.1.1
hasta 192.168.255.254
.
4.4 Bloques de IPs reservadas
Dentro de todas las posibles IPs y redes que podemos llegar a crear, existen unos bloque que están reservados por unas razones u otras:
Redes públicas: son todas las IPs que no entran en los siguientes bloques, y por tanto, son las utilizadas públicamente en Internet.
Redes privadas: Son redes que sólo pueden existir en el ámbito privado y no se podrá configurar de cara internet.
Reservado: Existen varios bloques que están reservados por diversas razones, de los cuales veremos los ejemplos más característicos.
Es importante conocer los bloques reservados para no cometer errores a la hora de crear redes. El listado completo se puede encontrar en la Wikipedia.
4.4.1 Bloque reservado: 127.0.0.0 /8
La primera dirección de este bloque, 127.0.0.1, es el utilizado como bucle local (o loobpack). Este conjunto de IPs hacen referencia al propio equipo en el que nos encontramos y se suelen utilizar para hacer pruebas locales.
4.4.2 Redes privadas
Una red privada es una red de computadoras que usa el espacio de direcciones IP especificadas más adelante. A los equipos o terminales se les puede asignar direcciones de este espacio cuando deban comunicarse con otros terminales dentro de la red interna/privada.
Los nombre de las redes privadas son:
10.0.0.0 /8
172.16.0.0 /12
192.168.0.0 /16
Estas redes privadas no son siempre utilizadas con su máxima máscara posible, ya que en la mayoría de los casos se estarían desperdiciando IPs.
El utilizar en nuestra red privada un rango que no sea uno de estos tres signfica que estamos yendo en contra de las reglas establecidas por la ICANN.
4.4.3 Reservado para despliegues Carrier Grade NAT
En abril de 2012, el IANA asignó el rango 100.64.0.0/10 para uso en escenarios de Carrier Grade NAT en el RFC 6598.
Este bloque de direcciones no debe ser usado en redes privadas o en la Internet pública: ha sido pensado para operaciones de uso interno en redes de teleoperadores. El tamaño del bloque de direcciones (aproximadamente 4 millones de direcciones, 222) ha sido seleccionado para ser suficientemente grande para acomodar todos los dispositivos de acceso de un solo operador en un punto de presencia en una red de área metropolitana como la de Tokio (Fuente: Wikipedia).
4.4.4 Bloque reservado para el futuro
Existe el bloque completo 240.0.0.0 /8
cuyas IPs están reservadas para pruebas y para el futuro. Es conocido como la “clase E”.
4.4.5 Otros bloques
Como ya se ha comentado, en la Wikipedia se pueden encontrar todos los bloques reservados que no son públicos y la razón por las que han sido reservados.
4.5 Clases de IP
Durante el inicio de la expansión de internet y la creación de redes se crearon clases que nos indican el número de subredes que deberían existir, la máscara y más información que se puede encontrar en la Wikipedia. Hoy en día se considera obsoleta.
Este sistema fue el utilizado desde 1981 hasta 1993. ¡Hoy en día está obsoleto!.
Clase A: se asigna el primer octeto para identificar la red, reservando los tres últimos octetos (24 bits) para que sean asignados a los hosts, de modo que la cantidad máxima de hosts es 224 − 2 . El bit más significativo (el de más a la izquierda) empieza por 0. Sería desde
0.0.0.0
hasta127.255.255.255
.Clase B: se asignan los dos primeros octetos para identificar la red, reservando los dos octetos finales (16 bits) para que sean asignados a los hosts. Los primeros bits más significativos son 10. Sería desde
128.0.0.0
hasta191.255.255.255
.Clase C: se asignan los tres primeros octetos para identificar la red, reservando el octeto final (8 bits) para que sea asignado a los hosts, de modo que la cantidad máxima de hosts por cada red es 28 − 2 . Los primeros bits más significativos son 110. Sería desde
192.0.0.0
hasta223.255.255.255
.Clase D: serían las IPs que empiezan por 1110. Desde
224.0.0.0
hasta239.255.255.255
.Clase E: serían las IPs que empiezan por 1111. Desde
240.0.0.0
hasta255.255.255.255
.
4.6 Configurar IPv4
Una vez sabemos cómo funciona IPv4, es el momento de aplicarlo en el sistema operativo en el que nos encontremos.
4.6.1 IPv4 en Windows
Por defecto, la configuración de red en Windows solicita una dirección IP de manera automática cuando el cable está conectado en el interfaz de red.
Para conocer la configuración actual de la red podemos utilizar el comando ipconfig desde el terminal de windows. Si le pasamos el parámetro “/all” ( ipconfig /all ), el resultado del comando nos dará más información, como es la configuración del DNS, la dirección física (MAC), ...
Si queremos realizar la modificación de la red, podremos hacer uso del icono de red que está al lado de la hora. Para ver toda la configuración, podemos ir al “Panel de Control → Redes e Internet → Configuración de Red e Internet”. Elegimos “Protocolo de Internet versión 4”, le damos a “Propiedades” y podremos realizar la configuración siguiente:
En la imagen se puede ver la configuración realizada:
Dirección IP: La dirección IP que queremos que tenga el equipo.
Máscara de subred: La máscara de red a la que pertenece la IP que hemos configurado.
Puerta de enlace predeterminada: Para que el equipo tenga conexión con otras redes, debemos indicar qué IP tiene el gatway.
Aparte, podemos realizar la configuración del servidor DNS primario y secundario.
5 Arquitectura en capas
Un sistema de comunicación se pueden diferenciar en distintos niveles en los que cada uno realiza una función independiente, pero que a su vez interactúan con los niveles limítrofes.
Este ejemplo es un modelo simplificado de comunicación, y dentro de una arquitectura de red de ordenadores pueden existir más capas en las que pueden existir distintas funciones extra que no aparecen en este esquema.
5.1 Origen
Al comienzo de las redes de ordenadores cada empresa creaba su propio sistema de comunicación creando su propio hardware y software, lo que hacía imposible la interconexión entre equipamiento de distintas empresas.
Estos sistemas de comunicación constan de unas reglas que los nodos deben conocer para poder comunicarse entre sí, y a ese conjunto de reglas se les denomina protocolo de comunicación.
Para que eso hoy en día no suceda ya que las redes están definidas en varios estándares, como veremos más adelante.
Un estándar es un conjunto de normas que pueden abarcar distintos niveles (tanto software como hardware) que ha sido aceptado, o creado, por la gran mayoría de las empresas del sector para poder realizar la interconexión e intercomunicación entre sí.
5.2 Ventajas de la división en capas
La división en capas nos permite:
Dividir el proceso de comunicación en procesos más pequeños.
Aislar las funciones de cada capa. De esta manera, en caso de realizar modificaciones en la misma, no afecta al resto de capas.
Ocultar la implementación al resto de capas. Siguiendo con el punto anterior, una capa utilizará los servicios de su capa inferior sin saber cómo realiza sus funciones.
Cada capa puede constar de distintos estándares, facilitando la interconexión de distintas tecnologías
Una arquitectura de red en capas se implementa por medio de distintos protocolos, formando una familia de protocolos para facilitar la comunicación de distintos sistemas y equipos en la red.
Una arquitectura en capas nos permite que cada capa actúe de manera independiente y que incluya sus propios protocolos. Cada capa dispone de una serie de servicios que ofrece a su capa limítrofe superior.
Desde el comienzo de las redes de ordenadores han existido distintas familias de protocolos, y se puede considerar que hubo una guerra de protocolos durante las décadas de 1970 a 1990. Empresas, organizaciones y países se posicionaban sobre cuál sería el mejor protocolo de comunicaciones y el que saldría ganador para el uso a nivel internacional.
Por destacar algunos protocolos que ya no se usan:
5.3 Modelo de referencia OSI
El modelo de interconexión de sistemas abiertos, conocido como “modelo OSI” (Open Systems Interconnection en inglés) es un modelo de referencia (teórico) que busca estandarizar las funciones de comunicación para un sistema informático siendo agnóstico a la tecnología utilizada para realizar la implementación y a los protocolos utilizados en cada capa.
El diseño comenzó en 1977 tratando de terminar con la guerra de protocolos comentada previamente, y la Organización Internacional de Estandarización (International Organization for Standardization, o ISO en inglés) terminó por definir el estándar ISO-7498 en 1984.
5.3.1 Capas en el modelo OSI
El modelo OSI está compuesto por siete capas numeradas del 1 al 7 siendo la 1 la más baja y haciendo referencia a la parte física de la red.
Dentro de cada una de las capas a las unidades de datos se les llama de manera distinta, por lo que es conveniente referirse de manera correcta a ellas. Más adelante también aprenderemos que existen distintos componentes hardware que actúan en algunas de las capas.
Capa | Nombre de la unidad de datos | Función |
---|---|---|
7ª - Aplicación | Datos | APIs de alto nivel, como compartir recursos y acceso remoto a archivos. |
6ª - Presentación | Datos | Traducción de datos entre un servicio de red y una aplicación, que incluye la codificación de caracteres, la compresión de datos y el cifrado y descifrado de datos. |
5ª - Sesión | Datos | Manejo de sesiones de comunicación, por ejemplo el continuo intercambio de información en forma de múltiples transmisiones hacia ambos lados entre dos nodos. |
4ª - Transporte | Segmento, Datagrama | Transmisión de segmentos de datos confiable entre puntos de red, incluyendo la segmentación, el acknowledgement y la multiplexación. Aquí actúan los protocolos TCP y UDP, junto con los puertos. |
3ª - Red | Paquete | Estructura y manejo de una red multinodo. Incluye el direccionamiento, el ruteo y el control de tráfico. Aquí actúan los routers. |
2ª - Enlace de datos | Trama | Transmisión de datos confiable entre dos nodos conectados mediante una capa física. Aquí actúan los switches. |
1ª - Física | Bit, Baudios | Transmisión y recepción de flujos de bits sin procesar por un medio físico. |
5.4 Pila de protocolos TCP/IP
Durante el surgimiento de las redes de comunicaciones entre ordenadores cada fabricante creaba su propio estándar, lo que hacía que la comunicación entre ellos no fuese posible. En 1974 Vint Cerf and Bob Kahn describen un protocolo para compartir recursos usando envío de paquetes a través de una red de comunicación. Es el comienzo del protocolo TCP.
En 1984 fue el protocolo elegido por parte del Departamento de Defensa de Estados Unidos, y poco tiempo después se convirtió en el estándar de facto de la comunicación de red que posteriormente dio lugar a Internet.
Tal como se puede ver, la pila de protocolos TCP/IP es funcional, al contrario que ocurre con el modelo OSI que sólo es teórico.
La pila TCP/IP cuenta con cuatro capas:
Capa | Protocolos conocidos | Función |
---|---|---|
4ª - Aplicación | HTTP, FTP, POP, SMTP, … | Es la capa más cercana al usuario, utilizada por las aplicaciones a la hora de enviar datos. |
3ª - Transporte | TCP, UDP | Estructura y manejo de una red multinodo. Incluye el direccionamiento, el ruteo y el control de tráfico. |
2ª - Internet | IPv4, IPv6 | Transmisión de datos confiable entre dos nodos conectados mediante una capa física. |
1ª - Acceso al medio | Ethernet, IEEE 802, 802.11 (wifi) | Es una mezcla de las capas 1 y 2 del modelo OSI. |
5.4.1 Protocolo TCP
El objetivo del protocolo TCP es crear conexiones dentro de una red de datos compuesta por redes de ordenadores para intercambiar datos. La ventaja es que el protocolo busca garantizar que los datos son entregados a su destino sin errores y en el mismo orden en el que se transmitieron.
Por otro lado, también proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de puerto.
Hoy día TCP es el protocolo más utilizado dentro de las aplicaciones que hacen uso de comunicación en red. Por ejemplo, los protocolos HTTP, SMTP, SSH, FTP... hacen uso de TCP como protocolo de transporte (capa 4 del modelo OSI).
5.4.1.1 Establecer comunicación
A la hora de establecer una comunicación usando el protocolo TCP lo habitual es que en el lado del servidor (el receptor de la comunicación) exista un servicio que esté “escuchando” en un puerto previamente levantado (por ejemplo, un servidor web que escucha en el puerto 80 y 443).
El cliente comenzará la comunicación enviando un paquete SYN a la IP del servidor y al puerto con el que se quiere comunicar, a lo que si todo ha ido bien, el servidor responderá con la respuesta SYN/ACK.
Finalmente, el cliente debería responderle al servidor con un ACK, completando así la negociación en tres pasos (SYN, SYN/ACK y ACK) y la fase de establecimiento de conexión.
De esta manera, comenzará la transferencia de datos, a lo que se le añade una serie de mecanismos que determinan la fiabilidad y robustez del protocolo. Entre ellos están incluidos:
Uso del número de secuencia para ordenar los segmentos TCP recibidos y detectar paquetes duplicados.
Checksums para detectar errores.
Indicación por parte del receptor que ha recibido los paquetes para detectar pérdidas.
Temporizadores para detectar retrasos o necesidad de reenvío de información.
5.4.1.2 Cierre de la comunicación
La fase de finalización de la conexión utiliza una negociación en cuatro pasos (four-way handshake), terminando la conexión desde cada lado independientemente.
Cuando uno de los dos extremos de la conexión desea parar su “mitad” de conexión transmite un segmento con el flag FIN en 1, que el otro interlocutor asentirá con un ACK. Por tanto, una desconexión típica requiere un par de segmentos FIN y ACK desde cada lado de la conexión.
Una conexión puede estar “medio abierta” en el caso de que uno de los lados la finalice pero el otro no. El lado que ha dado por finalizada la conexión no puede enviar más datos pero la otra parte si podrá.
5.4.1.3 Puertos TCP
TCP usa el concepto de número de puerto para identificar a las aplicaciones emisoras y receptoras. Cada lado de la conexión TCP tiene asociado un número de puerto (de 16 bits sin signo, con lo que existen 65536 puertos posibles) asignado por la aplicación emisora o receptora.
Los puertos bien conocidos son asignados por la Internet Assigned Numbers Authority (IANA), van del 0 al 1023 y son usados normalmente por el sistema o por procesos con privilegios. Algunos ejemplos son: FTP (21), SSH (22), Telnet (23), SMTP (25) y HTTP (80).
Los puertos registrados son normalmente empleados por las aplicaciones de usuario de forma temporal cuando conectan con los servidores, pero también pueden representar servicios que hayan sido registrados por un tercero (rango de puertos registrados: 1024 al 49151).
Los puertos dinámicos/privados también pueden ser usados por las aplicaciones de usuario, pero este caso es menos común. Los puertos dinámicos/privados no tienen significado fuera de la conexión TCP en la que fueron usados (rango de puertos dinámicos/privados: 49152 al 65535).
6 Interconexión de redes
Hoy en día no suele ser habitual tener redes completamente aisladas, ya que la comunicación sólo se podría realizar entre los nodos y los dispositivos de la misma.
En el momento en el que una red quiera comunicarse con otra vamos a necesitar de un dispositivo que realice de intermediación para el intercambio de paquetes, y ese dispositivo es el router.
6.1 Router profesional
Los routers profesionales difieren de los routers caseros en que cada interfaz que tienen van a formar parte de una red distinta, y que deberemos de configurar nosotros los servicios que nos interesen ya que no suelen venir pre-configurados.
En Packet Tracer podemos encontrar distintos modelos de routers, pero los que más vamos a utilizar son unos que no existen en la vida real, los denominados “PT-Empty”. Al igual que con los switches, estos routers no cuentan con ninguna interfaz asociada en el momento en el que lo situamos en nuestra simulación, y nos permite añadir hasta diez interfaces que queramos.
Los routers son los dispositivos en capa 3 que se encargan de enrutar tráfico entre distintas redes. Hay que tener claro que puede encaminar tráfico a redes a las que pertenece, o a redes a las que sabría llegar (a través de rutas).
A continuación se van diferenciar distintos apartados básicos en la configuración de los routers.
6.1.1 Setup
Al igual que sucede con los switches, los routers cuentan con un comando setup con el que poder realizar una primera configuración. Las preguntas que nos realizará son las mismas que las de los switches. En este caso, las IPs se configuran en los interfaces físicos que tiene el router.
6.1.2 Comandos básicos
En los routers Cisco que vamos a utilizar, los comandos de consola son similares a los que hemos visto con los switches.
Ver la configuración
Router# show running-config
Siempre que realicemos cualquier tipo de modificación, debemos guardar la configuración para que esta se mantenga en el próximo arranque.
Guardar la configuración
Router# copy running-config startup-config
La configuración de la IP que queremos que tenga nuestro router irá asociado a un interfaz que esté en contacto con la red. Es importante que no confundamos con lo que sucede en los switches, que en ellos la IP va asociada a la VLAN.
Configurar un interfaz con una IP
Router# configure terminal
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip address 192.168.1.1 255.255.255.0
Los interfaces físicos, en los routers por defecto están deshabilitados, por lo que da igual que haya un cable conectado a él. Para que exista enlace se tiene que habilitar:
Habilitar interfaz
Router# configure terminal
Router(config)# interface GigabitEthernet0/0
Router(config-if)# no shutdown
6.1.3 Router Casero
En la simulación de los Home-Router que tiene Packet Tracer, el interfaz es el real que tenían los míticos Linksys WRT54G, siendo la configuración del DHCP la siguiente:
6.1.4 Servidores
En los servidores de Packet Tracer podemos realizar la configuración de un servidor DHCP en el siguiente interfaz:
6.1.5 Router profesional
Aunque algunos routers Cisco profesionales cuentan con un interfaz web de configuración, es recomendable conocer los comandos para realizar la configuración a través del CLI.
Vamos a suponer que el router que tenemos que configurar cuenta con dos interfaces cuyas IPs son 192.168.1.1 /24 y 172.16.0.1 /22.
Configurar DHCP para la primera red
Router(config)# ip dhcp excluded-address 192.168.1.1
Router(config)# ip dhcp pool lan
Router(dhcp-config)# network 192.168.1.0 255.255.255.0
Router(dhcp-config)# default-router 192.168.1.1
Router(dhcp-config)# dns-server 8.8.8.8
Configurar DHCP para la segunda red
Router(config)# ip dhcp excluded-address 172.16.0.1
Router(config)# ip dhcp pool alumnos
Router(dhcp-config)# network 172.16.0.0 255.255.252.0
Router(dhcp-config)# default-router 172.16.0.1
Router(dhcp-config)# dns-server 8.8.8.8
6.2 Encaminamiento de tráfico a otras redes
Tal como hemos dicho, un router se encarga de encaminar el tráfico entre redes, ya sean redes a las que esté directamente conectado o no. En caso de que sea un paquete a una red ajena, existen distintas maneras de tratarlo:
- Reenviar el tráfico a la puerta de enlace predeterminada.
- Consultar la tabla de enrutamiento (o tabla de rutas).
La tabla de enrutamiento se almacena en los routers y nos indicará cómo llegar a nodos u otras redes a las que no tenemos acceso de manera directa. La tabla de enrutamiento se puede genera haciendo uso de:
- Rutas estáticas: deben ser introducidas a mano.
- Rutas dinámicas: mediante un protocolo de enrutamiento dinámico.
6.2.1 Rutas estáticas
Las rutas estáticas sirven para obligar a los paquetes, cuyo destino coincide con la ruta, a ir a través de la puerta de enlace especificada, en lugar de ir por la puerta de enlace predeterminada. Lógicamente, para que esto suceda, la puerta de enlace tiene que ser alcanzable por el router, por lo que tenemos que tener acceso a través de la misma red.
La ruta estática se configura para conseguir conectividad con un dispositivo que no esté directamente conectado al equipo que tenga las rutas. Las rutas estáticas permiten la construcción manual de la tabla de enrutamiento.
Teniendo en cuenta el dibujo, para que un equipo de la red 1 pueda comunicarse con un equipo de la red 2 el tráfico debe ser enrutado por el router R1. En este caso, el router R1 no tiene conexión directa con la red 2, pero tiene una ruta estática que para poder llegar a la red 2 le puede redirigir el tráfico al router R2 a través de la IP2 (que está en la misma red que la IP1).
Para que la conectividad funcione, es necesario configurar la ruta en ambas direcciones. Es decir, para que la comunicación vuelva, el router R2 también tendrá que tener a su vez una ruta estática para llegar a la Red1 yendo a través del router R1.
6.2.1.1 Rutas estáticas con distancia administrativa
En algunas arquitecturas de red, puede existir la posibilidad de llegar a una misma red a través de dos rutas. En estos casos, debemos priorizar una de las rutas, quedando la otra como secundaria y que sólo será utilizada en caso de que la primera ruta falle.
Tomemos como ejemplo la siguiente arquitectura:
Para que la red 1 se pueda comunicar con la red 2 el router R1 puede ir por dos caminos distintos. En este caso, las rutas estáticas a crear serían:
- Ruta principal: priorizamos el tráfico por R2, a través de la IP3.
- Ruta menos prioritaria: en caso de falla la anterior ruta, el router R1 enviará el tráfico por router R3 llegando a él por la IP4.
En este caso, a las rutas menos prioritarias se les añade una “distancia administrativa” (a veces también llamado “peso”). Esta distancia es un número entero que indicará la prioridad (cuanto mayor el número, menor la prioridad).
6.2.1.2 Ejemplos
La creación de rutas estáticas se realiza con ip route RED MÁSCARA SALTO siendo:
- ip config: el comando que indica que vamos a crear una ruta.
- RED: la red a la que queremos llegar.
- MÁSCARA: Máscara de la red a la que queremos llegar
- SALTO: IP del dispositivo a través del cual queremos llegar a la red indicada anteriormente. Este dispositivo tiene que estar en nuestra misma red y tenemos que poder llegar a él.
Por lo tanto, un ejemplo real podría ser:
Crear ruta estática para una red
Router(config)# ip route 172.20.10.0 255.255.252.0 10.0.0.2
También podemos realizar rutas estáticas sólo para una IP, siendo la máscara /32 en decimal:
Crear ruta estática para un equipo
Router(config)# ip route 172.20.10.25 255.255.255.255 10.0.0.3
Cuando hay rutas distintas para una IP y una red, se prioriza de lo más específico a lo más genérico. Por lo tanto, se prioriza la ruta de una IP, aunque se indique que para toda la red haya que ir por otro salto.
6.2.1.2.1 Crear ruta estática con “distancia administrativa”
A la hora de crear una ruta estática con “distancia administrativa”, se realiza de la misma forma que acabamos de ver, pero añadiendo al final la distancia administrativa de la ruta, siendo un número entero. Este “peso” es utilizado cuando en la tabla de rutas existen dos rutas para llegar al mismo destino por caminos diferentes, por lo que se priorizará la ruta con el número más pequeño (o que no tenga número).
Crear ruta estática y ruta con distancia administrativa
Router(config)# ip route 172.20.10.0 255.255.252.0 10.0.0.2
Router(config)# ip route 172.20.10.0 255.255.252.0 192.168.1.1 10
Como se puede ver, para llegar al mismo destino (172.20.10.0 /22) podemos elegir dos saltos por los que llegar: 10.0.0.2 y 192.168.1.1. La ruta que tenga menor distancia administrativa será la predeterminada, y por tanto los paquetes se irán por ella.
6.2.2 Enrutamiento dinámico
El enrutamiento dinámico permite a los encaminadores ajustar, en tiempo real, los caminos utilizados para transmitir paquetes IP. Cada protocolo posee sus propios métodos para definir rutas (camino más corto, utilizar rutas publicadas por pares, etc.).
6.2.2.1 BGP (Border Gateway Protocol)
El protocolo BGP (en castellano protocolo de “Puerta de Enlace de Frontera”) es un protocolo mediante el cual se intercambia información de encaminamiento entre sistemas autónomos.
Un Sistema Autónomo (o AS, de Autonomous System) es un grupo de redes IP controladas por una misma compañía (normalmente un proveedor de internet ISP, o una gran compañía) que son gestionadas de manera independiente y realiza su propia gestión del tráfico. Los sistemas autónomos cuentan con un número (ASN) de 16 o 32 bits que debe ser respetado, ya que al igual que las IPs, existen ASN públicos y privados. En la wikipedia aparece una lista de estos rangos.
El intercambio de esos rangos de IPs se realiza en los denominados “router frontera” o “router externos”, que son los que están comunicados con otros routers de otros AS. Estos routers son los encargados de anunciar las propias redes del AS a sus “vecinos” (neighbors en inglés), que a su vez propagarán esa información a sus propios vecinos ...
Si un AS decide anunciar una nueva red, automáticamente sus vecinos son actualizados, que a su vez propagan la actualización. Si un router recibe su propia actualización, la rechaza.
Es importante que un router no anuncie redes IP que no le pertenecen.
En la wikipedia aparecen distintos incidentes por errores en la propagación de rutas. Cuando un router propaga una red (ya sea suya o de otro AS) añade su ASN, y de esta manera se conoce para llegar a una ruta por cuántos AS se pasan (pero no por cuántos routers internos).
Hoy en día Internet funciona con el protocolo BGP y actualmente el protocolo anuncia más de 900.000 rutas (fuente):
6.2.2.2 Ejemplos
En los routers debemos crear la configuración para que se convierta en un “Autonomous System” (AS, Sistema Autónomo).
Crear sistema autónomo
Router(config)# router bgp 100
Una vez dentro del sistema autónomo, habrá que indicar qué red se quiere propagar a los “vecinos”:
Anunciar red a propagar
Router(config-router)# network 192.168.1.0 mask 255.255.255.0
Para poder propagar la red, debemos indicar a qué vecinos se los vamos a propagar:
Vecinos a los que propagar la red
Router(config-router)# neighbor 10.10.2.1 remote-as 200
Para conocer el estado de las rutas BGP podemos realizar:
Comprobar estado de BGP
Router#show ip bgp
BGP table version is 6, local router ID is 192.168.1.1
Status codes: s suppressed, d damped, h history, * valid, > best,
i - internal, r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0/24 0.0.0.0 0 0 32768 i
*> 192.168.2.0/24 10.10.2.1 0 0 0 200 i
6.2.3 Tabla de rutas completa
Los routers Cisco tienen una opción que nos muestra todas las rutas a las que el router puede acceder:
Comprobar estado de BGP
Router# show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
8.0.0.0/25 is subnetted, 1 subnets
C 8.8.8.0 is directly connected, GigabitEthernet1/0
10.0.0.0/30 is subnetted, 1 subnets
C 10.10.0.0 is directly connected, GigabitEthernet2/0
83.0.0.0/27 is subnetted, 1 subnets
C 83.85.67.0 is directly connected, GigabitEthernet0/0
95.0.0.0/26 is subnetted, 1 subnets
B 95.94.32.0 [20/0] via 10.10.0.2, 00:00:00
212.140.23.0/28 is subnetted, 1 subnets
S 212.140.23.16 [1/0] via 83.85.67.4
Tal como aparece justo después del comando, hay unos códigos que nos indican si los rangos son:
- Red que podemos llegar mediante el protocolo BGP.
- Red a la que estamos directamente conectados a través de un interfaz físico.
- Red a la que podemos llegar siendo una ruta estática.
7 Redes virtuales
Es habitual querer diferenciar distintas redes dentro de una arquitectura de red (para diferenciar departamentos en una empresa, separar servidores de equipos de trabajo, limitar el acceso entre redes, ...) pero eso supone la compra de distintos equipamientos físicos (distintos switches, puntos de acceso ...) que incrementa el coste de nuestra infraestructura.
Para evitar este incremento de precio, podemos hacer uso de las VLAN en nuestros dispositivos de red, ya sea en switches o en routers, que los soporten.
7.1 VLAN
Una VLAN, acrónimo de virtual LAN (red de área local virtual), es un método para crear redes lógicas independientes dentro de una misma red física. Varias VLAN pueden coexistir en un único switch físico o en una única red física, y el tráfico estará separado entre distintas VLANs a nivel lógico.
Un equipo de una VLAN no se podrá comunicar con otro equipo de otra VLAN distinta salvo que haya un router que esté conectado en ambas VLANs y que encamine el tráfico de una a la otra. Lo mismo que si fuesen dos redes físicas, como hemos visto hasta ahora.
Las VLANs se diferencian a través de una cabecera extra la cual se añade dentro del encabezado original de la trama (capa 2). Esa cabecera consta de dos partes de 16 bits, siendo los últimos 12 los que correspondan al valor que identificará a la VLAN, y estará comprendido entre 1 y 4095, ya que el 0 está reservado. Esa cabecera indicará que el tráfico está etiquetado o “tagged”.
Las VLANs se diferencian a través de una cabecera extra la cual se añade dentro del encabezado original de la trama (capa 2).
A continuación se puede ver cómo se muestra tráfico etiquetado mediante las cabeceras del protocolo 802.1Q:
TPID: 16 bits en el que el valor “0x8100” indica que es una trama etiquetada del protocolo 802.1Q.
TCI: 16 bits (formando 4 caracteres en hexadecimal):
PCP: 3 bits que permiten priorizar el tráfico.
DEI: 1 bit, en conjunto con PCP, que permite saber si esta trama se puede descartar en caso de congestión.
VID: VLAN IDentificator, 12 bits (212 = 4096). En este caso los últimos 3 caracteres hexadecimales “00A” que indica que es la VLAN 10.
Hay que tener en cuenta que aunque existe el límite de 4096 VLANs, algunos switches tienen una limitación de un número menor de VLANs activas. Es decir, puedes crear VLANs con el dígito que quieras (hasta 4095), pero quizá sólo te dejan crear 16 VLANs. Ejemplo de la limitación del número de VLANs que puede haber activas en switches “Cisco de la serie 200 Cisco Small Business”:
VLAN | Compatibilidad con hasta 256 VLAN simultáneas (de 4096 ID de VLAN). 16 VLAN compatibles en SG200-08 y SG200-08P. VLAN basadas en puertos y en etiquetas 802.1Q |
VLAN de voz | El tráfico de voz se asigna automáticamente a una VLAN específica de voz y se trata con los niveles apropiados de QoS |
Como se puede apreciar, en este modelo de Switch, el límite es de 256 VLAN activas (aunque se puede elegir el ID de la VLAN de las 4096 posibles), y de “sólo” 16 VLANs en el modelo de 8 bocas ethernet de esa serie.
7.1.1 Diferencia de arquitecturas con y sin VLANs
Para que quede más claro lo explicado hasta ahora, vamos a analizar una misma infraestructura de red separada a nivel físico y separada a nivel lógico mediante VLANs.
7.1.1.1 Arquitectura sin VLAN
En una arquitectura de red sin VLANs tendríamos que tener tantos switches como sean necesarios para realizar una separación física de las redes. Estos switches estarán conectados a un router que será el encargado de encaminar el tráfico entre las redes. La separación física de redes es más cara ya que se necesita más hardware y es posible que los switches estén infrautilizados.
Se puede observar una arquitectura en la que un router actúa de intermediación en una red en la que existen 4 redes separadas físicamente mediante distintos switches. Si en una red existen pocos dispositivos, el switch de esa red estará infrautilizado. Si por el contrario necesitamos ampliar alguna de las redes, deberemos añadirle un switch en cascada en la red correspondiente, pero aún así ese nuevo switch podría estar infrautilizado.
7.1.1.2 Arquitectura con VLANs
En una arquitectura con VLANs, tendremos un router que estará conectado a un switch mediante un enlace trunk, y en este switch se configurará cada interfaz en modo access teniendo en cuenta el dispositivo que se vaya a conectar a dicha interfaz. En caso de necesitar ampliar las redes, se hará uso de las interfaces no utilizadas, y en caso de no haber más, el switch se podría expandir añadiendo uno nuevo y creando un stack entre ellos.
7.2 VLANs en Switches
En los switches se pueden realizar distintas configuraciones teniendo en cuenta las VLANs que vayamos a utilizar y la arquitectura de red que tengamos:
- VLAN por defecto en el switch: Es la VLAN en la que trabajará el switch. Por defecto suele ser la VLAN 1. El tráfico por defecto va en esa VLAN y para ir por cualquier otra VLAN el tráfico deberá estar “tagged” (etiquetado).
Puerto en modo “trunk”: Normalmente utilizado para comunicación entre distintos switches y/o routers. A este enlace “trunk” (o troncal, o tronco) se le asigna una VLAN por defecto y las VLANs “tagged” permitidas que pasarán por él. Los switches sabrán a qué VLAN pertenece cada trama observando la etiqueta VLAN de la capa 2.
El tráfico que entra en esta boca, si no está etiquetado estará en la VLAN por defecto. Si está etiquetado en una VLAN permitida se permitirá el tráfico.
El tráfico que sale de esta boca saldrá de la misma manera con la que llegó a él (sin etiquetar o etiquetado con la VLAN que sea). El equipo que reciba esta trama tendrá que lidiar con el tráfico recibido (ya sea etiquetado o no).
Puerto en modo “access”: La boca del switch se define en modo “access” (o “acceso”) y se le asigna una única VLAN a la misma.
Este tipo de configuraciones suele ser utilizada para conectar equipos en los que no podemos etiquetar VLANs en origen (impresoras por ejemplo), o nos resulte tedioso la configuración de la misma, pero queremos asegurar que su tráfico viaje por una VLAN.
El tráfico que entra en esta boca, a partir de ese momento se le añadirá la cabecera de la VLAN a la trama convirtiéndose en tráfico “tagged”.
Si el tráfico sale de una boca en modo “access” se quitará la cabecera VLAN, por lo que al equipo remoto le llegará el tráfico sin estar “tagged”.
Teniendo en cuenta lo explicado previamente, se puede observar en el siguiente dibujo en el que aparecen varios switches, configurados con distintas bocas en modo access y otras en modo trunk. Como se puede ver, las bocas que comunican los distintos dispositivos (switches con switches y switch con router) están configuradas en modo TRUNK, y en ellas se permiten varias VLANs.
Las interfaces que sólo tienen un color, están configuradas en modo access con una VLAN. Los interfaces en blanco no están configurados (ya que usan la VLAN por defecto, en este caso la VLAN 1). Para que el router pueda enrutar las distintas redes, le tendrán que llegar a través de un enlace configurado en modo trunk.
7.2.1 Crear VLAN
Para crear una VLAN primero deberemos identificar el identificador, y luego suele ser recomendable darle un nombre identificativo.
Crear VLAN
Switch(config)# vlan 10
Switch(config-vlan)# name Profesores
7.2.2 Añadir IP en una VLAN
En caso de necesitarlo, se podrá añadir una IP a cada nueva vlan que se haya creado, tal como se hace con la VLAN 1, pero eligiendo la VLAN correspondiente.
Añadir IP a la VLAN
switch(config)# interface vlan10
switch(config-if)# ip address 10.10.0.254 255.255.255.0
switch(config-if)# no shutdown
7.2.3 Listar tabla de VLAN
El siguiente comando nos muestra la base de datos interna de VLANs que tiene el switch, indicando el estado y un pequeño resumen de en qué bocas está activa. Hay que tener en cuenta que no nos indica en qué modo está configurada dicha VLAN en cada interfaz, por lo que deberemos comprobarlo mirando detalladamente la configuración completa.
Listar la tabla de VLAN
Switch# show vlan
VLAN Name Status Ports
---- ------------------ --------- --------
1 default active Gig1/1
10 profesores active Gig0/1
20 alumnos active
...
También hay que tener en cuenta que aunque un interfaz esté configurado con una VLAN, si no aparece en la base de datos, es como si no existiese.
7.2.4 Configurar interfaz con VLAN en acceso
Para configurar un interfaz en modo access tendremos que elegir primero el interfaz y después elegir el modo a configurar y para qué VLAN. Es importante haber creado primero la VLAN.
Configurar interfaz en modo trunk
Switch(config)# interface GigabitEthernet 0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
7.2.5 Configurar interfaz con VLAN en trunk
Para configurar un interfaz en modo trunk tendremos que elegir primero el interfaz y después elegir el método de configuración:
Configurar interfaz en modo trunk
Switch (config)# interface GigabitEthernet 1/1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan ???
Donde “???” pueden ser varias opciones:
- add: add VLANs to the current list
- all: all VLANs
- except: all VLANs except the following
- none: no VLANs
- remove: remove VLANs from the current list
Podemos poner la VLAN por defecto en una boca en modo trunk con:
Poner vlan por defecto en un trunk
Switch(config-if)# switchport trunk native vlan 10
7.2.6 VLANs en Routers
En los routers, las VLANs van asociadas a una interfaz física. Al añadir una VLAN, se crea una interfaz “virtual”, y dentro se le indica que va a ser de tipo “encapsulation dot1Q” y la VLAN que va a usar. Después, se le configura la IP como si fuera una interfaz normal. Como ejemplo para la VLAN 20:
Crear VLAN 20 en Router y configurar una IP
Router(config)# interface GigabitEthernet0/0.20
Router(config-if)# encapsulation dot1Q 20
Router(config-if)# ip address 192.168.20.1 255.255.255.0
7.2.7 VLANs en servidores/ordenadores
El tráfico que “sale” de un servidor/ordenador, por defecto, no está etiquetado con ninguna VLAN. En caso de que queramos que el tráfico saliente salga con una VLAN etiquetada, tendremos que configurar el interfaz de red para que funcione con dicha VLAN.
7.3 Protocolo VTP
VTP, o VLAN Trunk Protocol, es un protocolo que nos permite configurar y administrar VLANs en equipos Cisco de manera centralizada. De esta manera conseguimos simplificar la tarea cuando tenemos una red en la que disponemos de muchas VLANs
El protocolo funciona en modo servidor-cliente, por lo tanto debemos configurar un switch en modo servidor, que será en el que realizaremos la administración de las VLANs, que posteriormente serán propagadas por los switches que son clientes VTP y que pertenecen al mismo dominio.
La conexión entre switches debe estar en modo trunk para que el protocolo funcione de manera correcta.
7.3.1 Configurar switch como VTP Server
Es tan fácil como elegir el modo servidor del protocolo VTP, indicar un dominio de propagación y una contraseña para el mismo.
Crear configuración como VTP Server
Switch(config)# vtp mode server
Switch(config)# vtp domain instituto
Switch(config)# vtp password 1234
7.3.2 Configurar switch como VTP Client
Similar al caso anterior, pero esta vez eligiendo que queremos que el switch sea cliente:
Crear configuración como VTP Client
Switch(config)# vtp mode client
Switch(config)# vtp domain instituto
Switch(config)# vtp password 1234
7.3.3 Ver estado de VTP
Para comprobar el estado del servicio VTP, tanto en un switch que sea server o client:
Ver configuración de estado de VTP
Switch# show vtp status
VTP Version : 2
Configuration Revision : 2
Maximum VLANs supported locally : 255
Number of existing VLANs : 7
VTP Operating Mode : Server
VTP Domain Name : instituto
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0x68 0x70 0x3B 0xF0 0x14 0xC8 0xF7 0xE9
Configuration last modified by 0.0.0.0 at 3-1-93 00:11:38
Local updater ID is 0.0.0.0 (no valid interface found)
Y nos ofrece un resumen del estado del mismo.
8 Alta Disponibilidad en sistemas de red
La Alta Disponibilidad en una arquitectura de red es vital si queremos asegurar el acceso a otras redes o servicios. Para ello podemos hacer uso de distintas tecnologías que nos ayudarán a conseguirlo.
8.1 Agregación de enlaces: Etherchannel / LACP
La agregación de enlaces consiste en combinar (agregar) varias conexiones en paralelo para aumentar el throughput (la tasa de transferencia) que conseguiría una única conexión. Un grupo de agregación de enlaces (LAG, de Link Aggregation Group) combina una serie de puertos físicos de manera que se consigue una única ruta con más ancho de banda que un único enlace.
A lo largo de los años ha habido distintos estándares para la creación de agregación de enlaces. El último es el conocido como LACP (Link Aggregation Control Protocol), que provee un método para controlar la unión de varios puertos físicos formando un único canal lógico. LACP permite negociar automáticamente la unión entre dispositivos mediante el envío de paquetes LACP al otro dispositivo. LACP permite el modo:
activo: Habilita LACP de manera incondicional. Esto puede hacer que si en las bocas que están habilitadas en modo LACP se conecta algo que no está configurado para ello, no funcione de manera correcta
pasivo: Habilita LACP sólamente cuando se detecta un dispositivo configurado con LACP
Como ya se ha comentado, la finalidad es la de unir distintas conexiones para aumentar la tasa de transferencia, y esto no sólo se puede realizar entre switches, si no que también se puede realizar entre un switch y un servidor.
A continuación podemos ver cómo sería un sistema LACP entre dos switches.
Y aquí podemos ver cómo sería una agregación de enlaces entre un switch y un servidor (ya que en un servidor también podemos realizar la agregación de enlaces).
8.1.1 Configurar Etherchannel en Switches
Antes de realizar ninguna configuración, debemos pensar qué interfaces queremos combinar en una agregación formada por el protocolo LACP.
Para realizar la configuración, deberemos entrar en cada interfaz y añadirlo a un channel-group (siendo el identificador entre el número 1 y el 6) y activar el protocolo a usar:
Añadir interfaces a un LAG
Switch(config-if)# channel-group 1 mode active
Switch(config-if)# channel-protocol lacp
Cuando se crea un grupo de agregación de enlaces se crea un nuevo interfaz llamado “Port-Channel” (abreviado como “Po”). Es decir, si hacemos la agregación de enlaces con las bocas “0/1” y “1/1” del switch para generar un “channel-group 1”, el switch generará una boca nueva llamada “Port-Channel 1”, la cual podrá ser configurada para hacer lo que necesitemos. En Packet Tracer se pueden tener hasta 6 port-channels:
Configurar Port-Channel 1 en modo trunk
switch(config)# interface Port-Channel 1
switch(config-if)# switchport mode trunk
Para poder ver el estado del etherchannel/agregación de enlaces:
Ver el estado de los etherchannels
Switch# show etherchannel summary
Flags: D - down P - in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator
u - unsuitable for bundling
w - waiting to be aggregated
d - default port
Number of channel-groups in use: 2
Number of aggregators: 2
Group Port-channel Protocol Ports
------+-------------+-----------+--------------------
1 Po1(SU) LACP Gig0/1(P) Gig1/1(P)
2 Po2(SU) LACP Gig2/1(P) Gig3/1(P)
En este ejemplo, el switch tiene dos agregaciones de enlaces creadas, dos port-channels:
Po1: Tiene configurados los interfaces: Gig 0/1 y Gig 1/1.
Po2: Tiene configurados los interfaces: Gig 2/1 y Gig 3/1.
Cada interfaz de cada agregación de enlaces tiene que aparecer con un “(P)”. Eso significa que pertenece al port-channel y está correcto.
8.2 Stack de switches
De manera resumida, es la configuración aplicada a varios switches para que actúen como uno sólo. Esto se realiza mediante la interconexión de los switches (formando un anillo) a través de unos puertos especiales o unas conexiones habilitadas para ello.

Tras la realización del “stackado” de switches las ventajas que obtendremos son muy significativas:
Podremos configurar todas las bocas del conjunto de todos los switches que lo forman desde un único punto central (ya sea mediante el CLI o mediante la web de gestión).
Tendremos redundancia en las comunicaciones.
Permite escalar el tamaño de las comunicaciones y podríamos añadir más switches en un momento dado (algunas marcas permiten 12 switches en un mismo stack).
Hay que tener en cuenta que no todos los switches permiten realizar un stack de switches, por lo que tendríamos que asegurarnos que si vamos a necesitar esta funcionalidad, a la hora de comprar los switches lo soporten.
8.2.1 Integración de Stack y LACP
Si realizamos la combinación de configuraciones de Stack de switches junto con LACP con servidores, nos aseguraremos de tener una Alta Disponibilidad real en lo que se refiere a comunicaciones.
Veamos el siguiente dibujo:
Podemos observar cómo tenemos un stack de 3 switches, que como ya hemos visto previamente actúan como si se tratara de uno sólo. Por otro lado tenemos el servidor, que cuenta con 3 tarjetas ethernet que han sido configuradas a nivel de sistema operativo en modo LACP, y cada una de ellas se ha conectado a un switch distinto del stack.
Con esta configuración, nos estamos asegurando que si un switch se estropea, la conectividad seguirá existiendo entre el servidor y el stack a través de los dos enlaces restantes.
Es muy importante que nuestra infraestructura de red sea pensada para tener el menor número puntos de fallos posibles, y haciendo uso de stacks de switches y conexiones LACP podremos reducir esos puntos de fallo.
9 Seguridad en red
Tal como hemos visto hasta ahora, una red es una infraestructura compleja utilizada por dispositivos que nos permiten intercambiar información entre equipos y/o usuarios. Para asegurar que el acceso a esa información sólo se realiza desde los dispositivos autorizados, debemos realizar configuraciones de seguridad.
Normalmente, para limitar el acceso a los equipos se hace uso de cortafuegos (también conocidos como Firewalls). Estos sistemas cortafuego se pueden implementar de las siguientes maneras:
Cortafuegos de red: Normalmente es un dispositivo hardware (que puede ser el mismo router) que actúa como filtrador de paquetes entre las distintas redes que tiene configurado.
De esta manera, podemos limitar el acceso teniendo en cuenta el origen, destino, puerto y/o protocolo de comunicación utilizado en la comunicación.
Algunos ejemplos:
Routers caseros: tienen un sistema de cortafuegos básico.
Routers hardware Cisco.
pfSense: una distribución basada en FreeBSD que actúa como firewall.
Cortafuegos en el equipo: Para evitar las conexiones de equipos de la misma red, es habitual que los servidores/equipos cuenten con un firewall configurado mediante software (ya sea a través de “Windows Firewall” o reglas nftables/iptables en GNU/Linux).
Cortafuego de aplicación: Este tipo de cortafuegos es capaz de entender el protocolo de aplicación y de esta manera filtrar teniendo en cuenta el contenido del paquete.
A la hora de limitar el tráfico, un firewall puede actuar de dos maneras:
Denegar por defecto: Es la manera más habitual de trabajar de los Firewall. Por defecto, todo el tráfico es denegado, y hay que permitir el tráfico que nos interese.
Aceptar por defecto: No tan habitual, ya que todo el tráfico es aceptado por defecto y debemos denegar el tráfico que no nos interese que exista.
9.1 ACL
Las ACL (Access Control Lists en inglés, o Listas de Control de Acceso) sirven para permitir o denegar el tráfico al pasar por el router y son configuradas teniendo en cuenta las redes a las que pertenece.
Existen dos tipos de ACL:
Estándar: son ACLs limitadas. Sólo se permite aceptar o denegar de origen. El ID debe ser de 1 a 99.
Extendidas: son ACLs con más opciones. Deben tener el ID de 100 a 199 y permiten aceptar/denegar:
protocolo
origen
destino
puerto
...
Al crear una ACL en los routers de Packet Tracer, y crear una regla en ella, automáticamente entrará en funcionamiento el método “denegar por defecto” al final de las reglas.
Al crear una ACL extendida por defecto se crea una regla implícita que deniega todo el tráfico. Se añade al final de nuestras reglas.
Es muy importante entender esto, ya que todo el tráfico que no esté aceptado, será denegado por defecto, aunque nosotros no hayamos creado una regla para ello, ya que se crea por defecto y no aparece reflejado en la ACL.
Al usar ACLs debemos usar la SIMULACIÓN si vemos que el tráfico no se acepta/deniega tal como esperamos.
9.1.1 ACLs en entrada o salida
Las ACLs se crean en los interfaces en los que queremos realizar reglas para permitir y/o denegar tráfico. Antes de permitir o denegar tráfico entre redes, hay que entender que las ACLs se pueden crear teniendo en cuenta el sentido del tráfico en relación con el router. Por lo tanto, las ACLs se pueden crear del tipo:
IN: el tráfico se analiza con la ACL al intentar entrar en el router por el interfaz indicado.
OUT: el tráfico se analiza con la ACL al intentar salir del router por el interfaz indicado.
Podemos imaginar que la ACL es un policía y dependiendo de cómo se haya creado la ACL el policía se situará cortando el tráfico en un sentido o en otro.
Teniendo esto en cuenta, para realizar el mismo propósito se pueden utilizar distintas reglas IN o reglas OUT dependiendo de cómo se haga la configuración.
Por ejemplo: Tenemos 2 LANs y queremos que desde la LAN 1 se pueda hacer ping a la LAN 2, pero que desde la LAN 2 no se pueda hacer ping a la LAN 1. Para realizar este filtrado de tráfico, se puede realizar de dos formas distintas.
9.1.1.0.1 Forma 1: Regla OUT
La regla OUT se creará en el interfaz Gig0/0 y analizará el tráfico cuando vuelva de la LAN 2 e intente salir del router hacia la LAN 1.
Se permitirá el tráfico que vuelve, pero sólo el tráfico de tipo “echo-reply”. Cualquier otro tráfico es denegado por defecto
9.1.1.0.2 Forma 2: Regla IN
La regla IN se creará en el interfaz Gig 1/0 y analizará el tráfico cuando entre al router desde la LAN 2.
Se permitirá el tráfico entrante “echo-reply” y cualquier otro tipo de tráfico será bloqueado por defecto.
9.1.2 Configurar y administrar ACLs
A la hora de crear una ACL tenemos que tener en cuenta dos cosas:
El interfaz en el que queremos crear la ACL.
El sentido en el que se realizará el filtrado.
Crear una ACL en modo IN
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip access-group 100 in
Hemos indicado que se en el interfaz 0/0 existe una ACL con identificador 100 que filtrará el tráfico. A continuación debemos crear las reglas de las que constará ese grupo. Al crear una regla, se indican distintas opciones.
Crear una regla en la ACL 100
Router(config)# access-list ID TIPO_FILTRADO TIPO_TRÁFICO ORIGEN DESTINO MISC
Donde las opciones son:
ID: sería el identificador de la regla, que tiene que coincidir con lo puesto en el interfaz correspondiente
TIPO_FILTRADO: Suele ser:
permit: permitimos el tráfico
deny: se bloqueará el tráfico
TIPO_TRÁFICO: Existen varias opciones del tipo de tráfico que podemos filtrar:
icmp: Internet Control Message Protocol
ip: cualquier tipo de tráfico
tcp: Transmission Control Protocol
udp: User Datagram Protocol
ORIGEN: cuál es el origen del tráfico que se quiere coincidir con la ACL. Aquí puede haber varias opciones:
IP + WILDCARD: habrá que indicar el rango de IP y el wildcard que se necesite. Esto servirá para indicar un rango de red.
any: sirve para indicar cualquier IP.
host + IP: sirve para habilitar un único host con su IP.
DESTINO: cuál es el origen del tráfico que se quiere coincidir con la ACL. Al igual que con el ORIGEN, existen varias opciones
MISC: dependiendo del tipo de tráfico seleccionado, es posible añadir más opciones al final de la ACL.
Teniendo todo esto en cuenta, un ejemplo de regla para una ACL sería:
Crear una regla en la ACL 100
Router(config)# access-list 100 permit icmp 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255 echo-reply
9.1.2.1 Orden de las reglas en las ACL
Cada ACL puede tener varias reglas y es muy importante el orden. Es decir, si la ACL con ID 100 tiene varias reglas, se aplicarán en el orden de creación. Por lo tanto, primero se deben de aplicar las reglas más concretas, las que son más específicas, y después las más generales.
Por ejemplo: Queremos permitir todo el tráfico entre 192.168.1.0 → 192.168.20.0 pero queremos evitar el tráfico de 192.168.1.5 → 192.168.20.0. Entonces, el orden tendrá que ser:
denegar tráfico 192.168.1.5 → 192.168.20.0 /24 (porque es muy específico)
aceptar tráfico 192.168.1.0 /24 → 192.168.20.0 /24
denegar el resto de tráfico ¡¡REGLA POR DEFECTO, SE CREA SOLA!!
9.1.2.2 Otros ejemplos
Si queremos hacer uso de DHCP en nuestra red, veremos que en el momento en el que aplicamos ACLs entre redes dejará de funcionar. Por lo tanto tendremos que aceptar el tráfico UDP de los puertos que usa DHCP.
Si queremos ver las ACL que están creadas, debemos hacer:
Ver las ACLs y sus reglas
Router# show access-lists
Ejercicios
10 Sistemas de numeración: tabla de conversión
La siguiente tabla sirve a modo de resumen de los sistemas de numeración.
Esta tabla no hay que aprenderla de memoria. Hay que entender los sistemas de numeración y de esta manera se puede crear.
Decimal | Binario | Octal | Hexadecimal |
---|---|---|---|
0(10 | 0(2 | 0(8 | 0(16 |
1(10 | 1(2 | 1(8 | 1(16 |
2(10 | 10(2 | 2(8 | 2(16 |
3(10 | 11(2 | 3(8 | 3(16 |
4(10 | 100(2 | 4(8 | 4(16 |
5(10 | 101(2 | 5(8 | 5(16 |
6(10 | 110(2 | 6(8 | 6(16 |
7(10 | 111(2 | 7(8 | 7(16 |
8(10 | 1000(2 | 10(8 | 8(16 |
9(10 | 1001(2 | 11(8 | 9(16 |
10(10 | 1010(2 | 12(8 | A(16 |
11(10 | 1011(2 | 13(8 | B(16 |
12(10 | 1100(2 | 14(8 | C(16 |
13(10 | 1101(2 | 15(8 | D(16 |
14(10 | 1110(2 | 16(8 | E(16 |
15(10 | 1111(2 | 17(8 | F(16 |
16(10 | 10000(2 | 20(8 | 10(16 |
17(10 | 10001(2 | 21(8 | 11(16 |
… | … | … | … |
29(10 | 11101(2 | 35(8 | 1D(16 |
30(10 | 11110(2 | 36(8 | 1E(16 |
31(10 | 11111(2 | 37(8 | 1F(16 |
32(10 | 100000(2 | 40(8 | 20(16 |
11 Conversiones
11.1 De decimal ...
... a binario
30 = | 145 = | 278 = | 329 = |
512 = | 776 = | 1024 = | 1376 = |
... a octal
31 = | 88 = | 127 = | 234 = |
524 = | 876 = | 1098 = | 2475 = |
... a hexadecimal
29 = | 340 = | 530 = | 940 = |
1212 = | 1512 = | 2120 = | 3201 = |
11.2 De binario ...
... a decimal
111001 = | 11001010 = | 110101101 = | 1010101101 = |
10101010101110 = | 10101111101 = | 111100010110 = | 111000100110110 = |
... a octal
111001 = | 11001010 = | 110101101 = | 1010101101 = |
10101010101110 = | 10101111101 = | 111100010110 = | 111000100110110 = |
... a hexadecimal
111001 = | 11001010 = | 110101101 = | 1010101101 = |
10101010101110 = | 10101111101 = | 111100010110 = | 111000100110110 = |
11.3 De octal ...
... a decimal
54 = | 77 = | 134 = | 267 = |
345 = | 376 = | 412 = | 564 = |
... a binario
54 = | 242 = | 356 = | 654 = |
1235 = | 3457 = | 7652 = | 21315 = |
... a hexadecimal
36 = | 175 = | 657 = | 1456 = |
3245 = | 7541 = | 71727 = | 754315 = |
11.4 De hexadecimal ...
... a decimal
1F = | 23B = | 86F = | AA1 = |
FF3 = | 2F1C = | 4AD7 = | 5CABD = |
... a binario
1D = | 72A = | F5C = | 157A = |
9FAF = | 18ABFD = | 2A3D5F = | F6A7DE1 = |
... a octal
3E = | 7F = | 1AD = | FAD = |
4D1C = | 7A9D = | A2B7C = | 741FA3 = |
11.5 Mezcladas
Ten en cuenta la base de origen y la base de destino.
175(10 = (16 | 475(8 = (2 | 9A3(16 = (10 |
175(8 = (2 | 754(8 = (16 | 101110111(2 = (8 |
274(10 = (2 | 4751(8 = (16 | 5742(16 = (8 |
1789(10 = (2 | 1175(8 = (16 | 3AB1(16 = (2 |
101000111100(2 = (10 | 101010(8 = (2 | 1011101(16 = (10 |
101000111100(2 = (8 | 74513(8 = (2 | 78954(16 = (2 |
10100011011001100(2 = (8 | 724123(8 = (2 | 7AB1FE4(16 = (2 |
Configuración básica de pfSense como firewall de red
12 Introducción
En este documento se va a explicar cómo realizar la instalación y configuración de un servidor que hará las funciones de cortafuegos basado en la distribución pfSense.
Para completar la simulación, se usará un equipo que va a pertenecer a la LAN de la infraestructura, y lo usaremos para poder ver cómo se bloquea el tráfico y para realizar pruebas en la configuración del pfSense recién instalado.
12.1 Antes de empezar
La idea de este documento es crear una pequeña infraestructura de red haciendo uso de un firewall (o cortafuegos) basado en pfSense. Con ello vamos a ver cómo funciona el sistema de creación de reglas de filtrado de tráfico para un equipo que estará dentro de la red LAN detrás de dicho firewall.
El esquema de infraestructura real quedaría de la siguiente manera, dependiendo de cómo realicemos la instalación y las posibilidades que tengamos con nuestro proveedor de internet:
1ª opción: el pfSense actúa como conexión directa a internet. Para ello estará conectado a un router neutro, cable-modem, ONT o lo habremos configurado como nuestro ISP nos indique. Por lo tanto pfSense tendrá IP pública a internet y actuará como firewall directo.
2ª opción: haciendo doble NAT, detrás del router de nuestro proveedor de Internet. Para que todo funcione de manera correcta, en el router del proveedor deberemos hacer una redirección de puertos para que todas las conexiones vayan a la IP del servidor pfSense.
12.2 Requisitos
Esta simulación se puede realizar de dos maneras:
haciendo uso de hardware dedicado.
usando máquinas virtuales.
La manera más sencilla es realizarlo haciendo uso de máquinas virtuales con un virtualizador como es Virtualbox, por lo que se explicará esta modalidad.
13 PfSense
PfSense es una distribución de FreeBSD (no confundir con GNU/Linux, ya que FreeBSD es Unix) que está adaptada para que actúe como un sistema de firewall, enrutador, control de tráfico, servidor DNS, DHCP, VPN, proxy y muchos servicios más.
Tal como veremos a continuación, la instalación es sencilla y la configuración de los servicios se realiza a través de un interfaz web desde el que se puede controlar las reglas de filtrado que se pueden crear, las configuraciones que se van a realizar, …
Hoy en día, la empresa que está detrás de pfSense, Netgate, vende unos sistemas appliance (hardware específico para realizar las funciones de firewall, con la distribución preinstalada), pero lo habitual suele ser que la instalación se realice sobre un sistema hardware de servidor o virtualizado.
A nivel de características técnicas lo único que se pide es un procesador basado en la arquitectura x86_64 (Intel o AMD) de 600MHz, 512 MB de RAM y 4GB de disco duro. Lógicamente, este es el hardware mínimo recomendado, y dependiendo de la cantidad de tráfico que tenga nuestra infraestructura deberemos tener un hardware adecuado para el mismo. En la documentación oficial hacen referencia al hardware que podamos necesitar dependiendo del tráfico que vayamos a tener.
Dado que se va a optar por realizar la instalación en una máquina virtual, se va a necesitar un sistema de virtualización (Virtualbox) y el CD de instalación. La instalación será idéntica si se realiza en hardware físico, o en otro sistema de virtualización.
13.1 Detalles de la máquina virtual
No se va a detallar cómo crear una máquina virtual, pero si las características técnicas que debe tener cuando se crea en Virtualbox.
Dado que pfSense está basado en un sistema Unix FreeBSD, la máquina tiene que crearse indicando el tipo “BSD” y la versión “FreeBSD” de 64 bits, tal como aparece en la imagen.
Por otro lado, a la máquina virtual se le van a añadir dos interfaces de red:
El primer adaptador de red será de tipo “Adaptador puente”, ya que en el sistema haremos que sea la interfaz que actuará como “WAN”.
El segundo adaptador de red se creará de tipo “Red interna” y le pondremos el nombre de “LAN”, que hará esas funciones en nuestra infraestructura.
Dadas las explicaciones previas, una vez creada la máquina virtual nuestra infraestructura virtual quedaría de la siguiente manera:
Visto este dibujo, la máquina virtual que actuará como PC dentro de la LAN le tendremos que modificar el adaptador virtual para que sea de tipo “Red interna” y escribiremos “LAN”, por lo que ambas máquinas estarán conectadas mediante un “switch virtual”.
El resto de parámetros de la máquina virtual, como se trata de una para pruebas, será:
8 GB de disco duro
1GB de memoria RAM
13.1.1 Máquina virtual en la LAN
Tal como se ha visto en el dibujo anterior, vamos a usar una máquina virtual dentro de la LAN virtual de pfSense.
Para ello necesitamos configurar el interfaz de la máquina virtual en modo “Red interna” y seleccionaremos la “LAN” creada previamente.
Queda por parte del lector el crear esta máquina virtual, pero se recomienda realizar la instalación de una distribución GNU/Linux en ella.
13.2 Instalación
Tras poner el CD de instalación en la máquina virtual y arrancar veremos un pequeño menú como muestra la siguiente captura de pantalla:
El menú contará con un sistema de cuenta atrás y si no se selecciona nada entrará en la primera opción por defecto. Se podrá ver cómo el sistema arranca y detecta el hardware y al finalizar nos mostrará un menú con las opciones:
Install: Instalar pfSense
Rescue Shell: Lanza una terminal para poder recuperar una instalación que esté dando problemas
Recover config.xml: recupera el fichero de configuración config.xml de una instalación previa.
Tras seleccionar la opción de instalar, nos aparecerá un menú para seleccionar la distribución del teclado y a continuación el tipo de partición que queremos utilizar:
Auto (ZFS): Sistema de particionado con el sistema de ficheros ZFS. Es el sistema por defecto, aunque ZFS puede consumir más RAM.
Auto (UFS) BIOS: si nuestro sistema usa BIOS.
Auto (UFS) UEFI: si nuestro sistema usa UEFI.
Manual: Nos permite particionar de manera manual, para expertos.
Shell: Abre una consola y podremos realizar el particionado a mano.
Al seleccionar la opción “Auto (ZFS)”, el sistema nos permitirá crear un particionado en modo:
stripe: sin redundancia, usando el disco duro instalado.
mirror: haciendo uso del sistema RAID1
raid10: hacer uso de un sistema RAID1+0
raidz1: redundancia con un disco de paridad
raidz2: redundancia con dos disco de paridad
raidz3: redundancia con tres disco de paridad
Tras terminar, nos preguntará si queremos abrir una terminal en el sistema recién instalado. Le diremos que no y que reinicie el sistema. Nos tendremos que asegurar de quitar la ISO de la máquina virtual para que arranque desde el disco duro en lugar del CD.
14 Configuración básica
En este apartado se va a detallar cómo realizar una configuración básica de pfSense para que actúe como firewall dentro de la red simulada que hemos creado.
14.1 Primer arranque
Tras realizar la instalación y reiniciar, en el primer arranque desde el disco duro aparecerá un pequeño asistente que comprobará el hardware, detectará los interfaces de red que tenemos y nos realizará una serie de preguntas:
Si es necesario configurar VLANs.
De los interfaces existentes, cuál es el WAN.
De los interfaces existentes, cuál es el LAN.
Dependiendo del direccionamiento de red en el que nos encontremos, es posible que haya que configurar la LAN virtual de nuestra infraestructura de red virtualizada.
14.1.1 A tener en cuenta en redes 192.168.1.0 /24
Dado que pfSense por defecto hace uso de una red LAN 192.168.1.0/24, en caso de que nuestra LAN física contenga ese direccionamiento, el interfaz LAN de pfSense no será configurado. Tendremos un menú como el siguiente:
Tal como se puede ver en la imagen, el asistente ha cogido IP por DHCP para el interfaz WAN, pero el interfaz LAN no se ha configurado ya que la WAN ya tiene el direccionamiento 192.168.1.0/24.
14.1.2 Configurar LAN virtual
En las situaciones mencionadas en el paso anterior, o en casos de que queramos modificar la red LAN, podremos cambiarla desde el menú seleccionando la opción 2.
Tal como se puede ver en la imagen anterior, al elegir la opción 2 el asistente nos pregunta por el interfaz que queremos configurar. Durante el proceso nos realiza las siguientes preguntas:
Interfaces disponibles: En nuestro caso, la LAN.
Dirección IPv4: La dirección IPv4 para el interfaz seleccionado.
Máscara de red: Máscara del direccionamiento para la IP anterior.
Dirección IPv6: En caso de querer configurar el interfaz en IPv6
Activar servidor DHCP: En el caso configurar la LAN, es interesante configurar el servidor DHCP.
IP inicial del rango: Dentro de la LAN, la primera IP que se asignará por DHCP.
IP final del rango: Dentro de la LAN, la última IP que se asignará por DHCP.
Al terminar el asistente, nos aparecerá de nuevo el menú que pasaremos a explicar a continuación.
14.2 Menú de configuración desde consola
Tal como se ha comentado, el menú cuenta con distintas opciones de administración.
Como se puede ver en la imagen previa, aparecen 16 posibles opciones a elegir, entre las que destacaremos:
Assign interfaces: Para poder reconfigurar a qué red pertenecen los interfaces que tiene nuestro firewall (si es WAN, LAN, … ).
Set interfaces IP address: Para poder modificar la IP de los interfaces que tiene nuestro firewall.
Reset webConfigurator password: Cambiar la contraseña de acceso.
Reset to factory defaults: Restaurar el servidor a los valores de “fábrica”, es decir, resetea todas las configuraciones propias realizadas.
Reboot: Reinicia el servidor.
Halt: Apaga el servidor.
Ping host: Realiza un ping al equipo indicado.
Shell: Nos abre una consola en el sistema para poder realizar modificaciones mediante comandos.
pfTop: Nos muestra un listado de las conexiones establecidas en tiempo real.
Enable Secure Shell (sshd): Habilita el servidor SSH para poder realizar conexiones. Por defecto, sólo podremos conectarnos desde la LAN.
Restart PHP-FPM: Reinicia el servicio del interfaz web.
14.3 Interfaz web de configuración
El acceso a la interfaz web de configuración por defecto sólo está disponible desde la red LAN, por lo que accederemos desde la máquina virtual dentro de la LAN abriendo un navegador y apuntando a la IP por defecto de la LAN “https://192.168.1.1” (o la que hayamos puesto si hemos configurado la LAN). Tendremos que aceptar el certificado de seguridad (ya que es auto-firmado) y nos aparecerá la web de login.
Los credenciales por defecto son:
username: admin
password: pfsense
El usuario “admin” de la web tendrá la misma contraseña que el usuario root por consola.
Dada la importancia de los cortafuegos, la contraseña que usemos debe ser segura y sólo los administradores del servidor la deben conocer.
Cuando nos logueamos por primera vez nos aparecerá la primera página del asistente de configuración de pfsense, que nos guiará a través de nueve pasos donde podremos hacer una configuración básica de pfSense. Los pasos serán los siguientes:
Bienvenida al asistente: página de inicio.
Soporte de Netgate: detrás de pfSense hay una empresa, Netgate, que ofrece sus servicios de soporte de pago para pfSense.
Información general: configuración básica del servidor:
hostname: nombre del servidor.
domain: nombre del dominio al que pertenece el servidor.
DNS Server: servidores DNS externos al que mandar las peticiones.
Servidor de tiempo: configurar la zona horaria y el servidor NTP.
Configurar interfaz WAN: Dependiendo de cómo sea la infraestructura real, podremos configurar el interfaz WAN con IP pública estática, por DHCP, por PPPoE, … Por defecto está en DHCP. Si estamos tras doble NAT, habría que desactivar la opción “RFC1918 Networks”.
Configurar interfaz LAN: La IP de pfSense en el direccionamiento LAN. Por defecto es 192.168.1.1 con una máscara “/24”.
Cambio de contraseña del admin: Para poner una contraseña más segura.
Recargar la configuración: Si se ha realizado algún cambio, recargará la configuración.
15 Reglas de filtrado
PfSense es un servidor que actúa como firewall (entre otras de sus posibles funciones) y por tanto permite la creación de reglas de filtrado de tráfico para todos los interfaces que tiene configurados.
Las reglas se ejecutan cuando el tráfico entra al interfaz y son evaluadas en base a “primer acierto”.
Las acciones principales de las reglas pueden ser:
Pass: Permite el tráfico al destino.
Reject: Rechaza el paquete y avisa al emisor.
Block: Rechaza el paquete de manera silenciosa.
Si el tráfico no coincide con alguna regla que sea explícitamente pass el tráfico será denegado.
Por defecto pfSense deniega todo el tráfico entrante a sus interfaces.
Aunque las opciones “block” y “reject” rechazan el paquete, la diferencia puede suponer una gran diferencia, ya que “reject” responde con TCP RST (o "port unreacheable") y eso puede permitir la posibilidad de recibir un ataque de denegación de servicio (DoS).
¡Nunca se debería usar “reject” en el interfaz WAN!
En redes privadas es útil hacer uso de “reject”, porque avisa a los programas que intentan realizar conexiones que la conexión está bloqueada, y por tanto la respuesta es más rápida ya que no se esperan timeouts.
15.1 Ciclo de vida de una conexión
A continuación se explica cómo actúa pfSense al recibir un paquete de una nueva conexión:
El paquete, como parte de una nueva conexión, llega a un interfaz.
Se comprueban las reglas de filtrado en orden descendiente contra el paquete.
Cuando existe coincidencia, se ejecuta la acción de la regla de filtrado.
Se para las comprobaciones de las reglas.
Si no ha existido una coincidencia tras comprobar todas las reglas, el paquete es bloqueado por defecto.
15.2 Reglas creadas por defecto
Tras la instalación de PfSense podemos ir a “Firewall → Rules” y ahí aparecen los interfaces que están configurados actualmente y en los que se pueden crear reglas de filtrado. Los interfaces que existirán en nuestra infraestructura serán:
Floating: No es una interfaz al uso. Es para crear reglas de filtrado especiales que se pueden saltar el orden y/o aplicar a todos los interfaces. Es mejor no utilizarlo salvo que sepamos qué estamos haciendo y hayamos leído detenidamente la documentación sobre ello.
WAN: Bloquea todos los paquetes.
LAN: Existen varias reglas creadas por defecto que permiten tráfico:
Permite el acceso a la IP de la LAN del pfsense al puerto 80 y 443 para poder administrarlo vía web. Esta regla está especialmente creada para que no se pueda eliminar desde este apartado, ya que el borrarla podría suponer no poder configurar pfSense vía web.
Permite cualquier tráfico de tipo IPv4
Permite cualquier tráfico de tipo IPv6
Las últimas dos reglas explicadas previamente permiten que el tráfico pueda salir de la LAN hacia internet y así se permita navegar por internet. Si se crease una nueva red LAN (para una red wifi, DMZ, …) estas reglas no estarían creadas, por lo que desde esa nueva LAN no se podría acceder a ninguna otra red, por lo que habría que crear reglas que permitieran el tráfico.
15.3 Crear regla de denegación
Tal como se ha comentado, por defecto desde la LAN se permite acceder a cualquier red, por lo que podemos hacer ping a cualquier equipo de Internet. Como ejemplo se va a crear una regla que impedirá el acceso a un servidor de Internet. Esta regla servirá de ejemplo para poder realizar cualquier otra regla que sea necesaria.
La regla se va a crear en el interfaz LAN, ya que queremos limitar el tráfico cuyo origen es esa red. Para crear la regla existen dos botones de creación:
Añadir la regla al principio de la lista: como su propio nombre indica, creará la regla al principio de la lista en la que aparecen todas las reglas que ya están creadas.
Añadir la regla al final de la lista: en este caso creará la lista al final de todas las reglas.
No importa dónde se cree la nueva regla, ya que se podrá modificar después su posición. Al crear la regla, tendremos que tener en cuenta los siguientes apartados:
Action: Qué queremos hacer con la regla: pass, block o reject.
Disabled: Para deshabilitar la regla. Suele ser buena idea deshabilitar temporalmente las reglas que no se necesiten en lugar de borrarlas, por si nos hemos confundido y hay que recuperarlas.
Interface: El interfaz sobre la que se va a crear la regla.
Familia de dirección: Si queremos aplicar la regla sobre IPv4, IPv6 o ambas.
Protocolo: Protocolo de la conexión: TCP, UDP, ICMP, Any…
Source: Origen de la conexión. Si es “Any” será desde cualquier equipo de la red elegida. Podremos elegir un único equipo u otras opciones.
Destination: El destino de la conexión. Si es “Any” será a cualquier equipo. Podremos elegir un equipo u otras opciones.
Extra options: Opciones extra y avanzadas para la regla (limitar número de conexiones, modificar el gateway de salida, … ).
Description: Suele ser recomendable añadir una descripción a las reglas para identificar el servicio o el servidor sobre el que se aplica.
Para el ejemplo se va a bloquear todo el tráfico desde la LAN, al servidor 1.1.1.1 (servidor DNS de la empresa Cloudflare). La regla quedaría:
Una vez creada la regla aparecerá un botón para aplicar los cambios, por lo que hasta que no sea pulsado ese botón, las nuevas reglas que se hayan creado no tendrán efecto y por tanto no entrarán en funcionamiento.
15.4 Orden de las reglas
Tal como se ha identificado en el ciclo de vida de las conexiones, el orden de las reglas es muy importante, ya que en el momento en el que el tráfico entra sobre el interfaz se comprobará si coincide con las reglas en orden descendente.
Por lo tanto, si existe una regla muy general que permite el tráfico y después una muy específica de bloqueo, es bastante probable que la regla específica de bloqueo no llegue a entrar en funcionamiento, ya que el tráfico coincidirá con la regla general que permite dicho tráfico.
Teniendo en cuenta la regla creada en el apartado anterior, vamos a analizar cuál es el comportamiento dependiendo del orden en el que se sitúa:
Al final del todo:
Teniendo en cuenta las reglas creadas sobre el interfaz LAN en este orden, la regla de bloqueo al servidor 1.1.1.1 no entrará nunca en funcionamiento. El tráfico cuyo origen sea la LAN coincidirá siempre con la regla que le permite ir a cualquier parte, por lo que al coincidir con esa regla no se analizará ninguna más.
Al comienzo de las reglas:
En este caso la regla más específica de denegación se ha puesto al principio, por lo que si el tráfico coincide con esta hará lo que indica la regla, bloquear el tráfico al servidor 1.1.1.1. Si no coincide, se seguirán analizando el resto de reglas, y en este caso se permitirá el resto de tráfico.
Es de vital importancia tener en cuenta el orden de las reglas, analizarlo con cuidado y realizar las pruebas oportunas para confirmar que lo que se pretende hacer es lo que termina sucediendo.
¡El orden de las reglas de filtrado es muy importante en cualquier Firewall!
16 Crear una nueva red
Teniendo en cuenta lo visto hasta ahora, nuestra infraestructura cuenta con una única red LAN detrás del firewall y, aparte, el acceso a WAN. En este apartado se va a explicar cómo crear una nueva red para una sección DMZ (zona desmilitarizada) en la que se instalarán servidores. Normalmente lo habitual suele ser que el acceso desde y hasta la DMZ cumpla con las siguientes restricciones:
LAN → DMZ: permitido/limitado, para el acceso a servicios como carpetas compartidas, páginas web, … Se permitirá sólo a los servicios que se ofrecen.
DMZ → LAN: bloqueado. El acceso desde la DMZ a la LAN suele estar bloqueado ya que los servidores no deberían poder acceder a los equipos de los usuarios.
DMZ → Internet: limitado. Dependerá de los servicios que estén instalados en los servidores. Para el acceso total a internet (para actualizaciones de software, por ejemplo) se suele permitir el acceso a través de un proxy que realizará el bloqueo y sólo permitirá las webs correspondientes.
Internet → DMZ: limitado. Dependerá de los servicios que estén instalados en los servidores. Sólo se permitirá el acceso a los puertos de los servicios necesarios.
16.1 Modificando la infraestructura creada
Dado que se va a crear una red nueva, deberemos realizar cambios en la máquina virtual de nuestro servidor pfSense. La nueva infraestructura será la siguiente:
Tal como se puede apreciar al compararlo con la infraestructura anterior, se ha creado una nueva red interna, por lo que al pfSense se le tendrá que activar una nueva interfaz de tipo “Red interna” y le daremos el nombre de DMZ.
Virtualbox no nos permite realizar esta modificación “en caliente”, por lo que habrá que apagar la máquina virtual de pfSense. Algunos sistemas profesionales de virtualización sí que permiten hacer algunas modificaciones hardware en las máquinas virtuales sin tener que apagarlas, y dependiendo del sistema operativo, se dará cuenta de dichos cambios y por lo tanto no será necesario realizar un apagado.
Tenemos que crear otra máquina virtual que actuará a modo de servidor en la red DMZ, por lo que en su configuración la configuraremos también como “Red interna” en DMZ.
16.2 Modificación de la configuración en pfSense
Tal como se ha visto, tras la instalación de pfSense aparece un pequeño asistente de configuración que nos lleva a través de unos pasos que nos permitirá realizar la configuración de una infraestructura basada en una red con parte WAN y LAN.
En caso de tener más interfaces de red durante la instalación, o a posteriori como sucede ahora, no se configurarán y por tanto queda en nuestra mano realizar dicha configuración.
16.2.1 Añadir y configurar interfaz
Dado que pfSense cuenta con un nuevo interfaz, por defecto aparece deshabilitado y sin configurar. Debemos activarlo, darle el direccionamiento que veamos adecuado y lo habitual también suele ser darle un nombre representativo de la red que va a servir.
Todas estas modificaciones se realizan desde el interfaz web, a través de “Interfaces → Assignments”:
Tal como se puede ver, aparece la nueva interfaz junto a un botón “Add” que indica que lo podemos añadir a la configuración. Una vez pulsado el botón se le asigna el nombre “OPT1” como nombre por defecto, pero la idea es cambiarlo. Para ello se hace click en el interfaz, y se entra en su configuración.
Entre las modificaciones que vamos a realizar están:
Enable: hay que habilitar el interfaz, ya que aunque esté configurado, si no está habilitado no entrará en funcionamiento.
Description: El nombre que le daremos al interfaz, en este caso “DMZ”.
IPv4 Configuration Type: Tipo de IPv4 que se le va a asignar. Crearemos un direccionamiento estático, por ejemplo: 172.16.0.1 /25 . La configuración de la red se hace en la misma página, un poco más abajo.
Una vez realizados los cambios, habrá que aplicar los cambios.
16.2.2 Configurar DHCP Server
Aunque no suele ser habitual configurar el DHCP Server en la red DMZ, se va a explicar cómo realizar la configuración ya que en otro tipo de redes (para el WIFI, departamento de marketing, … ) es útil.
Para realizar la configuración se hace en “Services → DHCP Server”, donde aparecerán las interfaces sobre las que podemos gestionar dicho servicio, actualmente en LAN y DMZ.
La configuración que se tendrá en cuenta a la hora de modificar el DHCP en el interfaz será:
Enable: Habilitar servicio
Range: Si queremos limitar el DHCP para que sólo de IPs a una parte de la red
Other Options: Los servidores DHCP no sólo se encargan de dar IPs, por lo que hay muchas opciones extra que se pueden modificar
16.2.2.1 Mapear IPs de DHCP a estática
Existe la posibilidad de dar a los equipos siempre la misma IP cuando hacen una petición DHCP. Los servidores DHCP suelen crear una pequeña base de datos con las IPs que han otorgado y durante cuánto tiempo las tienen reservadas para esos equipos.
Es posible realizar mapeos de IPs a equipos que sean permanentes, por lo que los equipos que pidan DHCP, si tienen dicho mapeo creado, siempre se les asignará la misma IP y esa IP estará reservada sólo para ese equipo.
Suele ser habitual el realizar estos mapeos para tener controlados los equipos y conocer sus IPs sin tener que ir a ellos a configurarlos de manera estática, ya que todo se queda centralizado en el servidor DHCP.
Para realizar estos mapeos hay que ir a “Status → DHCP Leases” donde podremos ver todas las IPs que se han otorgado:
16.2.3 Modificación de reglas de filtrado
Tras realizar los pasos previos, si se enciende la máquina virtual que actuará de servidor en la DMZ, se podrá comprobar que cogerá IP por DHCP en el direccionamiento que se haya configurado en el paso anterior. El problema es que si se intenta realizar algún intento de comunicación con el exterior de la red veremos que no será posible ya que actualmente no existe ninguna regla que lo permita en pfSense. Lo podemos comprobar yendo a “Firewall → Rules” y mirando el apartado “DMZ”
¡pfSense deniega cualquier tipo de tráfico por defecto en los interfaces!
Teniendo en cuenta las reglas que normalmente suele tener una red DMZ, que se han comentado al principio de este capítulo, habría que realizar las configuraciones oportunas para permitir el tráfico tal como sea necesario.
Teniendo en cuenta las reglas que se necesitan crear, y dado que pfSense aplica las reglas “al entrar al interfaz”, habrá que entender dónde crear cada regla y tener cuidado con el orden con el que se aplican. Como pruebas, se ha aplicado las siguientes reglas:
¿Es realmente necesaria la primera regla?
Anexos
17 Instalar Ubuntu 22.04 LTS
En este anexo realizaremos la instalación de la distribución Ubuntu 22.04 LTS en su versión para servidores. En este anexo no se va a explicar cómo realizar la creación de una máquina virtual donde se aloja el sistema operativo, ya que existen distintos tipos de virtualizadores.
No se realizará una guía “paso a paso”, sino que se centrará en las partes más importantes de la instalación y en las que más dudas puedan surgir.
17.1 Descargar Ubuntu 22.04
La ISO la obtendremos de la web oficial y seleccionaremos la versión 22.04 LTS de Ubuntu Server. Esta ISO contendrá el sistema base de Ubuntu y nos guiará para realizar la instalación del sistema operativo.
Una vez descargada la ISO tendremos que cargarla en el sistema de virtualización elegido y arrancar la máquina virtual.
17.2 Instalar Ubuntu 22.04
Tras arrancar la máquina virtual nos aparecerá un menú para seleccionar el idioma durante la instalación y le daremos a “Instalar Ubuntu Server”.
A partir de aquí comenzará el instalador y los pasos que nos aparecerán serán los siguientes (algunos de estos pasos puede que no estén 100% traducidos al castellano):
Elegir el idioma del sistema
Actualización del instalador:
Si la máquina virtual se puede conectar a internet, comprobará si existe una actualización del propio instalador de Ubuntu.
Podemos darle a “Continuar sin actualizar”
Configuración del idioma del teclado
Configuración de la red
Configuración del proxy de red
Configuración del “mirror” o servidor espejo desde donde descargarse los paquetes de software para las actualizaciones posteriores.
Selección del disco duro donde realizar la instalación
Elegir el particionado de disco.
Configuración del perfil. Introduciremos el nombre de usuario, el nombre del servidor y la contraseña del usuario que vamos a crear.
Configuración de SSH Server. Aceptaremos que se instale el servidor SSH durante la instalación. En caso de no seleccionar esta opción, posteriormente podremos realizar la instalación.
“Featured Server Snaps”. En esta pantalla nos permite instalar software muy popular en servidores.
Una vez le demos a continuar, comenzará la instalación en el disco duro. Debido a que durante la instalación tenemos conexión a internet, el propio instalador se descarga las últimas versiones de los paquetes de software desde los repositorios oficiales.
Al terminar la instalación, tendremos que reiniciar la máquina virtual.
17.3 Post-instalación
Tras realizar el reinicio de la máquina virtual nos encontraremos con que el sistema arranca en el sistema recién instalado, y que tendremos que loguearnos introduciendo el usuario y la contraseña utilizadas en la instalación.
17.3.1 Actualización del sistema
Por si acaso, realizaremos la actualización del índice del repositorio, actualizaremos el sistema y en caso necesario realizaremos un nuevo reinicio:
Actualizar Ubuntu
root@ubuntu:~# apt update
...
root@ubuntu:~# apt upgrade
...
Con estos comandos nos aseguramos que el sistema está actualizado a los últimos paquetes que están en el repositorio.
17.3.2 Poner IP estática
Debido a la configuración de red de nuestro servidor, la IP está puesta en modo dinámica, esto quiere decir que nuestro equipo ha cogido la IP por configuración de DHCP de nuestra red. Debido a que un servidor debe de tener IP estática, tenemos que realizar la modificación adecuada para ponerle la IP estática que mejor nos convenga. Para ello editaremos el fichero de configuración situado en la siguiente ruta: /etc/netplan/00-installer-config.yaml
Lo modificaremos para que sea parecido a (siempre teniendo en cuenta la IP y gateway de nuestra red):
Configurando IP estática en Ubuntu
network:
ethernets:
enp0s3:
dhcp4: false
addresses: [192.168.1.199/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8,1.1.1.1]
version: 2
El fichero de configuración que hemos modificado es de tipo YAML, que es un formato de texto que suele ser utilizado en programación o en ficheros de configuración. Este tipo de ficheros tiene en cuenta los espacios para el uso de la identación, y no suele permitir el uso de tabuladores.
Para aplicar los cambios realizados en el fichero de configuración deberemos ejecutar el siguiente comando que aplicará los cambios:
Aplicar configuración de IP
root@ubuntu:~# netplan apply
18 Virtualbox y adaptadores de red
18.1 Introducción
Virtualbox es una herramienta de virtualización para crear máquinas virtuales de manera sencilla. Es multiplataforma por lo que se puede utilizar en Windows, MacOS y Linux y aparte, es Software Libre.
Este documento no va a entrar en detalle en cómo se crean las máquinas virtuales, sino que va a explicar los distintos modos y adaptadores de red que puede tener una máquina virtual en este sistema de virtualización.
18.2 Adaptadores de red
Virtualbox permite que cada máquina virtual cuente con hasta cuatro adaptadores de red, lo que comúnmente se llaman interfaces o NIC (network interface controller).
Al crear las máquinas virtuales sólo tienen un único adaptador activo y suele estar configurado en modo NAT, pero tal como se ve a continuación, en el desplegable se puede ver que existen otras opciones:
En la documentación oficial aparece la explicación de los distintos modos, y es buena práctica leer y entender la documentación del software que utilizamos. También hay que entender que cada tipo de adaptador contará con una serie de ventajas y una serie de limitaciones que aparecen reflejadas en la documentación. Estos modos son comunes a otros sistemas de virtualización (VmWare, Proxmox, …), pero el nombre o el modo de uso puede variar así como las posibles limitaciones que puedan existir.
A continuación se va a dar una pequeña introducción a cada tipo de adaptador.
18.2.1 Adaptador puente
Es el tipo de adaptador que se usará si queremos que las máquinas virtuales aparezcan en la red física como si fueran un equipo más. Para poder entenderlo de mejor manera, podríamos pensar que este tipo de adaptador lo que hace es crear un “switch virtual” entre las máquinas virtuales y el interfaz físico, por lo que es como si fueran un equipo más en la red física.
Si el equipo físico anfitrión cuenta con más de un NIC (por ejemplo, en un portátil el NIC por cable y el NIC wifi) tendremos que elegir en la máquina virtual sobre qué NIC queremos hacer el puente. En la siguiente imagen en el desplegable sólo se puede seleccionar un interfaz porque el equipo sólo cuenta con un NIC físico.
Es el método utilizado cuando virtualizamos servidores, ya que podrán dar sus servicios a toda la red.

18.2.2 NAT
Cada máquina virtual contará con su propio “router virtual” que hará NAT, y por eso todas las máquinas virtuales que usen este modo suelen tener la misma IP, pero no pertenecen a la misma red. Por defecto no se puede realizar conexión desde la red física al equipo virtualizado.

18.2.3 Red interna
Este tipo de adaptador lo que hace es “crear” un “switch virtual” que unirá las distintas máquinas virtuales que estén conectadas al nombre de esa red interna.
En el siguiente ejemplo la VM1 tiene 2 NICs, cada una con una red interna distinta. La VM2 tiene un NIC conectado a una de las redes internas creadas previamente y VM3 está conectada a la otra red interna.
Virtualbox no se encarga de dar IPs en estas redes, por lo que deberemos configurar cada interfaz de la máquina virtual con el direccionamiento que nos interese.
Este método se utiliza si queremos comunicar máquinas virtuales entre sí y que estén aisladas, ya que no podrán conectarse con el exterior, ni siquiera con el propio equipo físico.

18.2.4 Red NAT
Podría definirse como una mezcla de NAT y red interna. Las máquinas virtuales podrán pertenecer a una única red, se podrán comunicar entre ellas, estarán detrás de un NAT de la red física y se podrán comunicar con el exterior.
Para poder usar ese modo hay que crear la “red NAT” en Virtualbox yendo a “Archivo → Preferencias → Red” y ahí se creará las redes NAT que queramos con el direccionamiento interno que nos interese.
A la hora de crear la máquina virtual y elegir la opción “Red NAT” se podrá elegir entre las redes creadas en el paso anterior.

18.2.5 Adaptador sólo-anfitrión
Este tipo de adaptador es similar al de “red interna” pero con la posibilidad de comunicarse con el equipo físico anfitrión. En el equipo físico se crea un interfaz virtual y a través de él se podrá comunicar con las máquinas virtuales.
El direccionamiento que existe entre las VMs y el host se define en Virtualbox, dentro de “Archivo → Administrador de red de anfitrión”. Las máquinas virtuales podrán coger IP de ese direccionamiento por DHCP.
Mismo uso que “red interna” pero añadiendo la opción de comunicarnos con el host anfitrión.

18.3 Resumen de los adaptadores
A continuación se expone una tabla que resume los distintos tipos de adaptadores que existen y la conectividad posible entre las máquinas virtuales que usan esos adaptadores y el host anfitrión (fuente).
En la documentación se explica cómo realizar la redirección de puertos.