Cómo hacer
Todo Sobre nuestros Router parte 2 Los puertos y DHCP
En un ordenador podemos tener corriendo simultáneamente un buen puñado de programas y servicios que hacen uso de nuestra conexión a la red. Y aunque no lo parezca esta, en aparente, marabunta de datos sin control entrando y saliendo de nuestro equipo fluye de una manera totalmente ordenada, como si una autopista de miles de carriles se tratara. Los puertos son estos carriles.
Es posible que hayáis oído, ante problemas de conexión con ciertos programas de descarga o lentitud en la misma, que lo más seguro es que vuestro problema estuviera provocado porque no teníais abiertos los puertos. Seguramente en ese momento os sonaba a marciano, pero los puertos es una de las claves en la comunicación entre máquinas a través de la red.
Técnicamente, un puerto es un número binario de 16 bits, lo que significa que su máximo valor será 65535, que va unido a una dirección IP e indica el camino de entrada y/o salida en nuestras comunicaciones. Esta combinación de IP y puerto, por ejemplo 125.168.23.45:4335, es conocida como socket. Pero, ¿qué indica el puerto exactamente? Pues simplemente es una manera de identificar cada una de las “puertas” que tiene nuestro router, por las que fluye la información en ambos sencillos.
Los puertos son utilizados por numerosos programas para comunicarse con el exterior. Por ejemplo, eMule usa unos puertos para comunicarse con sus servidores y el resto de la red eDonkey, al igual que Bittorrent, Skype e incluso videojuegos online como World of Warcraft. En definitiva, todo software que haga uso de una comunicación con el exterior vía Internet necesita de un número de puerto a su disposición.
A la hora de asignar un número de puerto a un programa (aunque normalmente todos lo tienen definido por defecto), no podemos elegir a la ligera el que queramos, sino que existe cierta regulación al respecto. La organización encargada de ello es la ICANN (Internet Corporation for Assigned Names and Numbers, o Corporación de Internet para la Asignación de Nombres y Números), la cual se encarga también de asignar las direcciones IP a nivel mundial.
Los puertos cuyo número va desde 0 a 1023 son los reservados para los sistemas operativos (Windows, Linux, Mac…) y los protocolos más conocidos. Por poner algunos ejemplos, el puerto 80 es el del protocolo HTTP y lo usan nuestros navegadores, 110 es para el protocolo POP3 del correo electrónico y 21 es para los FTP.
Desde el número 1024 hasta el 49151 encontramos los puertos registrados y están a disposición del usuario y sus aplicaciones. Es decir, si tenéis que elegir un nuevo puerto para algún programa, debéis tomarlo de este rango. Y para terminar, los puertos desde el 49152 al 65535 se denominan puertos dinámicos o privados y también pueden ser utilizarlos, aunque con los protocolos actuales (TCP) han quedado en desuso y no se recomiendan.
A la hora de la verdad, ¿cómo nos afectan los puertos? Normalmente, por motivos de seguridad, todos los routers vienen con sus puertos cerrados, salvo los del primer rango que contempla los protocolos más usados. Es por eso que si usamos un programa que use un puerto de un rango superior, lo más seguro es que nos toque abrir ese puerto y redireccionarlo a la IP privada del equipo que tiene instalado dicho programa.
No puedo explicar el proceso detalladamente ya que cada fabricante otorga a sus routers una interfaz de gestión distinta, pero todos tienen un apartado denominado NAT (Network Address Translation) en el que poder abrirlos y los datos que se solicitan son siempre los mismos. Necesitaremos saber los puertos inicial y final que deseamos abrir (en caso de querer abrir sólo uno pondremos el mismo) y el protocolo que utiliza dicho puerto (TCP o UDP, aunque en caso de duda se puede abrir para los dos)..
Poniendo un ejemplo clásico, si deseamos abrir los puertos de eMule, tendremos que introducir en la configuración de nuestro router los puertos 4662 TCP y 4672 UDP, aunque estos podemos cambiarlos y elegir los que queramos.
Llega el turno de un concepto que, sin ser excesivamente complicado, vamos a tocar un poco en profundidad para saber cómo funciona exactamente, se trata del DHCP. ¿Alguna vez os habéis preguntado por qué (suele) ser tan fácil instalar el router que nos proporciona nuestro ISP? Si no hay problemas, normalmente conectamos nuestro ordenador al router por cable o Wifi y automáticamente podemos ponernos a navegar por la red.
Aquí, sin que nos hayamos dado cuenta, ha entrado el funcionamiento el DHCP y ha realizado la configuración de red de nuestro ordenador por nosotros. DHCP significa Dynamic Host Configuration Protocol (Protocolo de configuración dinámica de host) y es un protocolo que se encarga de darle a nuestro ordenador u otro dispositivo con acceso a la red los parámetros necesarios para conectar. ¿Cuáles son estos parámetros? Ya los conocéis, son la IP, la máscara de subred y la puerta de enlace, además de otros más como las DNS.
El DHCP es un protocolo de tipo cliente/servidor, esto es que necesita de dos partes (dos máquinas por ejemplo) que se comunican entre sí para llegar a un acuerdo, como si de dos personas se trataran. En una red doméstica el lado del servidor está interpretado por nuestro router, que tiene en su interior un servidor DHCP, mientras que el papel de cliente lo realizan cualquier dispositivo que quiera conectarse a la red.
Es vital saber que, en el lado del cliente, la opción para obtener la configuración por DHCP debe estar activada o si no esto no serviría para nada. Esta opción se puede encontrar fácilmente en la configuración de los dispositivos de red de nuestro sistema operativo. A veces, como ocurre en Windows, no se muestra explícitamente como DHCP sino que aparece una frase del tipo “Obtener automáticamente una dirección de red”.
En el servidor ocurre lo mismo, si no está activada la opción de DHCP no haremos nada. Por fortuna, la opción suele estar habilitada desde el proveedor y es por eso que al conectar un router nuevo al ordenador ya podemos navegar tranquilamente. Si no es el caso, sólo haría falta entrar en la configuración del router y activar el servidor con un simple click.
¿Qué opciones que ofrece el DHCP?
Desde el router podemos controlar nuestro servidor DHCP y es muy común encontrar ciertas opciones básicas dentro de dicho servicio para poder controlar mejor nuestra red. Para empezar hay que saber que, cuando el router le otorga una IP a un cliente, este préstamo es temporal y es muy posible que al volver a conectarnos días después el servidor DHCP le de una IP distinta al mismo cliente. En principio esto no afecta para nada, pero en caso de que por ejemplo queramos abrir un puerto, para lo cual necesitamos saber la IP del cliente en concreto en todo momento, esta asignación dinámica de IP se convierta en un engorro.
Es por eso que desde el servidor DHCP podemos configurarlo para que asigne una misma IP a un mismo cliente. Para ello sólo tenemos que informarle la dirección MAC, que para no liaros más sólo diré que es una secuencia alfanumérica que se puede considerar la matrícula del cliente, la cual es única e irrepetible y que se puede encontrar en las propiedades del dispositivo de red. A esta reserva de IP se le llama asignación automática.
Otra opción, interesante por temas de seguridad, es que podemos definir el rango de IPs que nuestro servidor tendrá a su disposición para repartir entre los clientes. Así, por ejemplo, podemos definir un rango de cinco IPs que vayan desde la 192.168.1.10 a la 192.168.1.15, mientras que para asignar IPs que existan fuera de ese rango, habrá que hacerlo de forma manual o automática, asignando una IP a cada dispositivo desde el servidor. Con esto cerramos un poco más las puertas ante posibles accesos a nuestra Wifi.
¿Cómo funciona el DHCP?
Esta es la parte más técnica y profunda que os ofreceré en este post. En realidad no es necesario conocerla pero nunca está de más saber cómo funciona el DHCP. Al ser un protocolo, el mecanismo del DHCP se conforma de una serie de pasos ordenados que realizan una negociación entre el lado del cliente y el servidor. Los pasos, explicados de forma sencilla son los siguientes:
- El cliente lanza un mensaje a través de la dirección IP de broadcast (255.255.255.255) que será captada por el o los servidores DHCP que estén dentro de su misma red. En este mensaje, llamado DHCPDISCOVER, se incluye cierta información que permite identificar al cliente. Se puede considerar esto como una presentación por parte del cliente y una petición de la configuración necesaria.
- El servidor DHCP que capta el mensaje DHCPDISCOVER responde con una serie de mensajes de tipo DHCPOFFER en el que se informan de las direcciones IP disponibles. Es como si el servidor le mostrara un catálogo al cliente para que elija la IP que desea.
- El cliente recibe los DHCPOFFER, elige uno, que contiene una de las IP disponibles, y manda otro mensaje por broadcast llamado DHCPREQUEST, con la elección de IP que ha tomado.
- De nuevo actúa el servidor. Recibe el DHCPREQUEST y crea un mensaje con toda la configuración que necesitará el cliente (IP, máscara de subred, puerta de enlace, etc). Mete toda esta configuración en un mensaje, llamado DHCPPACK y lo envía. En este momento, en el servidor ya está registrada la información del cliente, y la IP ya está reservada hasta que caduque o se libere de otra forma.
- Para terminar, el cliente recibe el mensaje DHCPPACK, saca toda la información proporcionada por el servidor DHCP y se autoconfigura. Así acabaría todo el proceso y los dos dispositivos ya se puede comunicar normalmente.
Todo este proceso es lógicamente imperceptible e instantáneo, como todas las comunicaciones de este tipo entre nuestro router y el resto de nuestros equipos de red. Espero que esta breve explicación sirva para ayudaros a comprender (si no lo hacíais ya) la ordenada complejidad que hay detrás de cualquier sencilla acción que realizamos con nuestro router en casa.
Todo Sobre nuestro Router parte 1 ( dirección IP, máscara de subred, puerta de enlace y IP pública e IP privada )
.