NAT CON POWERSHELL

Introducción:

                Antes de explicar que es NAT (Network Address Translation) vamos a hacer una pequeña introducción de porque se creó la NAT.

                En el mundo todos los dispositivos que se conectan a Internet tienen asignado una dirección IPv4 y actualmente hay más de 11000 millones de ellos y va en aumento y aquí surgió el problema ya que IPv4 solamente tiene disponible 4.294.967.296 direcciones.

                Se plantearon dos posibles soluciones; el nuevo protocolo de IPv6 que permite Sextillones de direcciones únicas, pero mientras se implementaba dicha solución y para aumentar la seguridad de las redes privadas, se creó el protocolo NAT.

                En que consiste NAT, es un proceso por el cual nuestro Router se encarga de traducir direcciones IPv4 Privadas en direcciones IPv4 Publicas. NAT puede trabajar de dos formas en modo NAT (una única IP privada se traduce a una única IP Publica) y modo PAT (múltiples direcciones IP privadas a una única IP publica).

  Como podemos ver en el esquema NAT se encarga de apuntar en una “Tabla” las direcciones IPv4 privadas con el puerto de uso y transformarlas en una IP Publica para poder tener comunicaciones bidireccionales con el exterior.

Ventajas:

  • Oculta las direcciones IPs locales al resto de los usuarios con IPs públicas.
  • Permite mantener la coherencia de la estructura de direccionamiento interno, aunque cambiemos de ISP.

Desventajas:

  • Empeora la respuesta de la red, al tener que realizarse traducciones de IPs, esto afecta principalmente a VozIP.
  • No todos los protocolos soportan NAT.
  • Al modificarse los encabezados de los paquetes, hay protocolos de tunneling que no funcionan adecuadamente.

NAT con PowerShell

                Hemos montado un escenario con máquinas virtuales como describo a continuación:

  • 2 Windows Server 2016 como clientes
  • 1 Windows Server 2016 que funcionará como Router (al tener instalado RRAS).
  • 1 Windows Server 2016 que funcionará como Servidor Web en “internet”.

Cuando tenemos nuestro escenario montado y configurado como Routing nuestro Windows Server 2016, debemos ejecutar el siguiente comando en PowerShell para crear nuestra NAT.

New-NetNat -Name PRUEBA -InternalIPInterfaceAddressPrefix 192.168.10.0/24

                Debemos señalar que al crear nuestra NAT desde PowerShell no veremos reflejado en el menú el Rol de Routing dicha NAT

Y que solo podemos tener una única NAT.

                Si deseamos saber si tenemos alguna activa usaremos este comando.

                Get-NetNat

                Para eliminarla completamente usaremos este parámetro, nos pedirá confirmación y podremos borrarla.

                Remove-NetNat -Name PRUEBA

Pequeña “Píldora”:

                Imaginar que tenemos montado un servidor Web en Usuario1, dentro de nuestra red podríamos decirle a nuestros usuarios que usaran la dirección web http://192.168.10.10:80 para acceder a la página web.

                Pero si un usuario de internet deseará acceder a esa dirección Web que tendríamos que hacer:

  • Al tener ya definido nuestra NAT solamente tenemos que añadir rutas y para ello usaremos PowerShell. Primero debemos saber si tenemos alguna activa.
Get-NetNatStaticMapping
  • Ahora Crearemos nuestra Regla.
Add-NetNatStaticMapping -NatName “PRUEBA” -Protocol TCP -ExternalIPAddress 0.0.0.0 -InternalIPAddress 192.168.10.10 -ExternalPort 80 -InternalPort 80
  • Si necesitamos borrar dicha regla, lo primero es conocer su ID con el primero comando y luego pasar a borrarla.
Get-NetNatStaticMapping -NatName PRUEBA | Where {$_.StaticMappingID -eq 1} | remove-NetNatStaticMapping

Autor/a: Sergio Núñez Sanz

Fecha de creación: 28/01/2020

Curso: Microsoft MCSA Windows Server 2016 + Azure + AWS

Centro: Tajamar

Año académico: 2019-2020

Linkedin

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.