Acceso remoto, DDNS, DMZ y CG-NAT. Curso de redes desde 0| Cap 7 | 2020

Acceso remoto y apertura de puertos

Seguimos con el curso de redes. Hoy vamos a ver una parte muy importante que es el acceso remoto desde una red exterior, las implicaciones que tiene el CG-NAT, en qué consiste el DMZ y el DDNS.

Acceso remoto, DMZ y CG-NAT.

Muchos de los correos y de mensajes que recibo a diario tienen que ver con problemas a la hora de acceder a un equipo desde el exterior de la red. En la mayoría de los casos es porque no se tienen claros los conceptos de puerto y socket o el papel que juega un CG-NAT (Carrier Grade NAT) en una conexión.

Acceso remoto

Para acceder a un equipo necesitamos saber su socket, es decir, su IP pública y su puerto. El acceso en remoto a nuestra red es aparentemente sencillo porque sabemos el puerto del servicio al que queremos acceder y además tiene nuestra propia IP. Pues no es tan trivial, porque la IP pública cambia con el tiempo y además el router deberá saber a qué equipo le corresponde ese puerto para hacerle llegar el paquete .

Vamos a explicar esto paso a paso más detenidamente.

Qué es el DDNS

Aunque antes de salir de casa o de la oficina apuntemos la IP pública que tiene nuestro router no nos vale de nada porque la IP cambia con el tiempo. Podría ocurrir que justo cuando queramos acceder en remoto la IP haya cambiado y no podamos localizar nuestra red.

Para solucionar este problema utilizamos un servicio llamado DDNS (Dynamic DNS o servicio dinámico de nombres de dominio). Un DDNS funciona de una manera muy parecida a un DNS pero sin necesidad de pagar un dominio registrado. En un DNS hay un listado con la equivalencia entre un dominio y su IP pública y en un DDNS hacemos algo parecido.

En primer lugar deberemos registrarnos en algún sitio que ofrezca un servicio DDNS. Hay muchas empresas que ofrecen este tipo de servicio tanto de manera gratuita como de pago. Incluso muchos fabricantes de hardware como routers, NAS o cámaras IP que ofrecen este servicio de manera gratuita al comprar sus dispositivos. Alguno de los DDNS más famosos son dyndns.org y noip.com

El procedimientos muy sencillo. Nos registramos en una de estas empresas con un nombre cualquiera para identificar nuestra red. Configuramos ese nombre en el router o en el equipo que queramos. De esta manera el router irá conectándose periódicamente al servidor DDNS e irá actualizando nuestra IP pública.

primer paso ddns

Ahora en la aplicación que vayamos a utilizar para conectarnos mediante acceso remoto, en vez de poner la IP pública ponemos la del servidor DDNS. Cada vez que la app quiera conectarse primero irá al servidor DDNS para que le diga cual es la IP pública. Como puedes ver funciona de manera similar a un DNS tradicional.

segundo paso ddns

Una vez que la aplicación ya conoce la IP de destino puede crear el socket de destino y proceder a la conexión. Si la IP cambiase no habría ningún problema porque siempre tendremos actualizada la IP en el servidor DDNS elegido.

tercer paso ddns

Es importante que el equipo encargado de actualizar la IP sea el router o un dispositivo que esté siempre encendido. De todos modos en el vídeo tienes una explicación más extensa y con animaciones que ayudan a entenderlo.

Vídeo sobre acceso remoto

Vídeo para entender bien en qué consiste el acceso remoto desde fuera de una red y poder configurar los servicios necesarios como un DDNS. También te voy a explicar en qué consiste el DMZ y los problemas de acceso que origina el CG-NAT. El DMZ, como explico en el vídeo, es muy inseguro y sólo debes activarlo si realmente sabes lo que estás haciendo.

Qué es abrir un puerto en el router

Una vez solucionado el tema de la IP pública vamos a centrarnos en el del puerto de destino. Cuando al router le llega un paquete necesita saber a qué dispositivo de la red interna (LAN) debe enviárselo. Ten en cuenta que todos los paquetes le llegan con la misma IP (la IP pública de destino la red) porque todos los equipos de la red comparten la misma IP de salida. Luego a través del NAT se traduce la IP pública en privada como ya te expliqué hace unos días.

Al router debemos indicarle que cuando le llegue un paquete para un puerto se lo envíe a un equipo en concreto y no a otro. Eso es lo que llamamos abrir un puerto, darle al router una lista con la correspondencia entre los puertos e IPs privadas. Dicho de otra manera, debemos indicarle al router en qué equipos (IP privada) están instaladas las aplicaciones ( puertos asignados o bien conocidos) a los que debe enviar la información que le llega del exterior en forma de paquetes.

abrir puertos en el router

Una vez que al router le llega un paquete es tan sencillo como mirar en dicha tabla a dónde debe reenviarlo.

Qué es DMZ

Para abrir un puerto como es lógico deberemos conocer qué puertos en concreto utiliza una aplicación o servicio. No todo el mundo lo sabe porque cada juego que instalamos en un PC o en una videoconsola tiene unos puertos asignados. Aunque podemos buscar dicha información en Google o en configuración del juego, muchos optan por activar el DMZ para la IP (privada)  del PC o de la Playstation. Es lo que suelen recomendar en los tutoriales de gaming por gente que busca la solución fácil o que no sabe de lo que habla.

Pero, ¿qué es el famoso DMZ? DMZ quiere decir zona desmilitarizada y básicamente consiste en que al router cada vez que le llega un paquete  y no sabe para qué equipo es, se lo envía al dispositivo que le hemos indicado en el DMZ. En resumen es abrir todos los puertos de ese dispositivo, abrir los 65535 del PC o de la Xbox, Playstation,... Sólo podemos elegir un dispositivo para el DMZ, no podemos poner varios.

DMZ

El problema de activar el DMZ es que abrimos los puertos que necesitamos, pero también todos los que no no son necesarios, por lo que acabamos de dejar totalmente expuesto nuestro dispositivo a cualquier ataque exterior. Es un fallo muy grave de seguridad que a la larga puede ocasiónanos muchos problemas.

Mi consejo es que si necesitas configurar un acceso remoto desactives el DMZ y abras los puertos que necesites. Sé que es un engorro, pero como siemprehe dicho, la seguridad está reñida con la comodidad.

Qué es CG-NAT

Como ya te he explicado las direcciones IPv4 se han agotado y los proveedores de internet disponen de un número limitado para sus clientes. Para solucionar este problema muchas han optado por implantar un sistema llamado CG-NAT (Carrier Grade NAT).

¿En qué consiste el CG-NAT? Dicho de una manera rápida y sencilla en que el router que controla el acceso a tu red no lo tiene tú sino tu proveedor de internet. Tu ISP utiliza la misma IP pública para varios abonados y por lo tanto el control de los puertos lo tienen ellos y no tú. Por eso no puedes acceder desde el exterior porque no puedes abrir los puertos del router.

con CG-NAT

Para navegar por internet, leer el correo, ver Netflix, acceder a us redes sociales, etc,... no vas a tener ningún problema, pero si quieres montar un servidor accesible desde el exterior no vas a poder.

sin CG-NAT

Muchas operadoras ofrecen un acceso muy económico pero ocultan la trampa de que utilizan CGNAT. Nadie da duros a 4 pesetas. Algunos ISP con CGNAT por un precio al mes te sacan de él y te dan una IP privada para ti solo. Por desgracia otros no te dan esa opción y pude ser un trastorno muy importante cuando por motivos laborales de otra índole necesitas imperiosamente un acceso remoto a tu red.

Esto de compartir la IP pública con otros usuarios además de no poder abrir los puertos del router tiene otras implicaciones negativas importantes. Si alguien que comparte CG-NAT contigo hace algo reprochable en internet, de rebote te puede afectar porque de cara al exterior sois la misma IP pública, para internet sois la misma persona. Lo que hagan los demás te puede ocasionar trastornos graves. Es como si tú tuvieras la reputación de tu edificio y si tienes un vecino revoltoso te penalizara.