# 4.2.- SDN Simple. Una red SNAT de MV y contenedores

1º. Empezar a crear redes SDN con un **Bridge-Networks-Simple** y le conectaremos dos contenedores, permitiéndoles comunicarse entre sí y al mismo tiempo usar DHCP para no configurar IP estáticas. La salida hacia el exterior se realizará mediante Source NAT.

En primer lugar, hay que asegurarse de que su archivo /etc/network/interfaces contenga la línea

```yaml
source /etc/network/interfaces.d/*
```

También instalamos todo lo necesario para DHCP IPAM:

```bash
apt install dnsmasq
systemctl disable --now dnsmasq
```

2º. **Las redes SDN se configuran a nivel del "Centro de datos"** para que en el caso de tener un cluster de nodos Proxmox, todos los nodos compartan la mismas redes y por tanto, puedan realizarse correctamente las comunicaciones, replicas, migraciones de las MV y contenedores entre los nodos Proxmox que conformen el cluster.

### Crear la Zona

A continuación, navegaremos a la pestaña Zonas, hacer clic en "Agregar" y luego seleccionar "Simple".

[![Crear una Zona SDN del tipo "Simple"](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/pJiimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/pJiimage.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Crear una Zona SDN del tipo "Simple"*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div>**Una Zona en SDN de Proxmox es un conjunto de VNets (redes virtuales) que posteriormente podremos enrutar si queremos.** Podemos hacer el símil entre Zona y una red privada (LAN o MAN). Mientras que una VNet sería como un dominio de broadcast, podemos ver a las **VNet como switch** con un puente hacia la raíz de su Zona. Por tanto, podremos elegir si queremos que MV o contenedores en una VNet puedan o no comunicarse con otras MV y contenedores de otra VNet de su misma Zona.

Asegúrese de darle a su red un nombre descriptivo (ID) y asegúrese de habilitar DHCP automático expandiendo las opciones avanzadas:

[![Crear/Editar una Zona nueva del tipo Simple llamada "Red00001"](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/dNiimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/dNiimage.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3-1"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Crear/Editar una Zona nueva del tipo Simple llamada "Red00001"*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div>Cada vez que hagamos un cambio en una SDN tendremos que reiniciar los cambios para que estos surjan efecto, también podemos dejar el reinicio del servicio para el final de la configuración y hacerlo una sola vez. Para hacer el reinicio del servicio de red tendremos que ir a SDN --&gt; "Aplicar":

[![Aplicar cambios en la configuración de las SDN](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/rEuimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/rEuimage.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3-2"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Aplicar cambios en la configuración de las SDN*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div>Y ya podremos ver el nuevo recurso de Zona en el nodo de Proxmox:

[![Nueva Zona SDN creada ](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/ikTimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/ikTimage.png)

<sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Nueva Zona SDN creada*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup>

3º. Después de eso necesitamos crear una nueva VNet, que es básicamente un switch virtual con puente hacia la raíz de su Zona:

[![Creación de una VNet llamada "Vbrg0001", dentro de la Zona "Red00001" ](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/sDSimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/sDSimage.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3-4"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Creación de una VNet llamada "Vbrg0001", dentro de la Zona "Red00001"*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div>4º. Como queremos usar DHCP y no configurar manualmente las interfaces de red en nuestros contenedores y/o MV, agregamos una "subred", que también contiene información sobre los rangos de DHCP que queremos ofrecer a los clientes. En realidad, aunque en Proxmox nos permita realizar tantas subredes como queramos dentro de una misma VNet, este componente (versión de Proxmox VE 8.2 en el momento de realizar este manual) solo nos sirve para configurar el direccionamiento del servidor DHCP de la propia SDN, porque no podemos conectar directamente una subred a una interfaz de red de una MV o de un contenedor, sino que eso se hace a nivel de VNet (en nuestro ejemplo "Vbrg0001").

[![Creación de la subred 10.100.1.0/24 ](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/jOzimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/jOzimage.png)

<sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Creación de la subred 10.100.1.0/24*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup>

<p class="callout danger">¡ATENCIÓN! La dirección de la puerta de enlace es una dirección que nosotros elegiremos entre las posibles direcciones IP de la subred que estamos creando. Proxmox creará un servicio Source NAT en esa IP, hacia la VNet, que a su vez hará de puente con la raíz de su Zona y de hay otro puente hacia la interfaz de red del nodo Proxmox con salida a su WAN. **Es necesario que el servicio SNAT esté habilitado** (chequeado en la subred).  
  
</p>

Debemos ahora asignar el rango de IP que serán concedidas por DHCP dentro la subred:

[![Rango de DHCP dentro de la subred 10.100.1.0/24](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/Yp8image.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/Yp8image.png)

<div class="iDevice emphasis0" id="bkmrk-imagen-de-elaboraci%C3%B3-6" ondblclick="submitLink('edit',122, 0);"><div class="block iDevice_content align-center"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Rango de DHCP dentro de la subred 10.100.1.0/24*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div></div>Como puedes ver, la configuración inicial es sencilla. Todo lo que acabamos de crear tiene el estado "nuevo", lo que significa que aún no se ha aplicado. Para aplicar cambios, necesitamos recargar la red, lo que podemos hacer con el botón "Aplicar" en la página principal de descripción general de SDN.

Si estamos utilizando permisos para los usuarios y/o grupos de Proxmox, no se nos debe olvidar conceder permisos para poder utilizar la Zona, con todos sus VNet (switch virtuales), o solo a una VNet en particular:

[![Conceder permisos a una Zona para que pueda ser utilizada por un usuario en particular](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/mRWimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/mRWimage.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3-7"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Conceder permisos a una Zona para que pueda ser utilizada por un usuario en particular*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div><p class="callout warning">En estas versiones nuevas de Proxmox puede surgir un error después de crear o editar una SDN. Si te surge el `"ERROR 400: poolid: property is not defined in schema and the schema does not allow additional properties"`, se soluciona recargando el navegador web con **F5** del GUI de Proxmox:</p>

[![Error 400 poolid](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/CVpimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/CVpimage.png)

<sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Error 400 poolid*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup>

<p class="callout info">  
Si queremos crear una red aislada de MV y/o contenedores, solo tenemos que **deshabilitar SNAT de la subred** y no configurar la puerta de enlace virtual.  
  
  
</p>

Si por el contrario, queremos tener una MV o contenedor proporcionando un servicio a la WAN, tendremos que abrir los puertos necesarios utilizando reglas del cortafuegos de Proxmox (ver capítulo 4 cortafuegos).

5\. Comprobaremos el funcionamiento de la VNet utilizando una MV:

[![MV 101 con RasberryPI](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/PjZimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/PjZimage.png)

<sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*MV 101 con RasberryPI*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup>

Editaremos su interfaz de red para conectarla al switch virtual de la VNet "Vbrg0001":

[![Editar la interfaz de red de la MV](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/v2Fimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/v2Fimage.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3-10"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Editar la interfaz de red de la MV*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div><div class="block iDevice_content" id="bkmrk--12"></div>Y comprobaremos la asignación de la configuración de red por DHCP y comprobaremos la conexión a los DNS de Google:

[![Comprobar la IP y ping a 8.8.8.8](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/lsEimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/lsEimage.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3-11"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Comprobar la IP y ping a 8.8.8.8*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div>6º. Finalmente podemos observar el mapa de asignación de IP del servicio de DHCP de Proxmox:

[![Consulta de la IP asignadas por DHCP IPAM ](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/scaled-1680-/6bEimage.png)](https://doc-proxmox.datosporlasnubes.com/uploads/images/gallery/2024-05/6bEimage.png)

<div class="block iDevice_content align-center" id="bkmrk-imagen-de-elaboraci%C3%B3-12"><sup><span class="author">Imagen de elaboración propia</span>. <span class="title">*Consulta de la IP asignadas por DHCP IPAM*</span> <span class="license"><span class="sep">(</span>[CC BY-NC-SA](http://creativecommons.org/licenses/?lang=es "Creative Commons BY-NC-SA")<span class="sep">)</span></span></sup></div><div class="iDevice emphasis0" id="bkmrk--15" ondblclick="submitLink('edit',122, 0);"><div class="block iDevice_content" id="bkmrk--16"></div></div><article class="iDevice_wrapper ParasabermasfpdIdevice em_iDevice em_iDevice_parasabermasfpd" id="bkmrk-para-saber-m%C3%A1s-consu"><div class="iDevice emphasis_parasabermasfpd" ondblclick="submitLink('edit', 123, 0);"><header class="iDevice_header"># Para saber más

<span style="color: rgb(0, 0, 0);">Consulta la</span> [documentación oficial de Proxmox](https://pve.proxmox.com/wiki/Setup_Simple_Zone_With_SNAT_and_DHCP)

</header><div class="iDevice_inner"><div class="iDevice_content_wrapper"><div class="block iDevice_content">  
</div></div></div></div><div class="iDevice emphasis_parasabermasfpd" ondblclick="submitLink('edit', 123, 0);"><div class="iDevice_inner"><div class="iDevice_content_wrapper"><div class="block iDevice_content" id="bkmrk--18"></div></div></div></div></article>