Dimarts, març 10, 2026
VIRTUALITZACIÓ

Introducció a les xarxes en màquines virtuals i contenidors: NAT, bridge i xarxes internes

Un dels aspectes que més confusió genera en començar a treballar amb màquines virtuals i contenidors és com es connecten a la xarxa. Configurar emmagatzematge o assignar RAM és relativament intuïtiu, però quan arriba el moment de donar accés a internet, comunicar diverses màquines entre si o exposar un servei a l’ exterior, apareixen termes com NAT, bridge o xarxa interna que no sempre s’ expliquen amb claredat.

Tres modes de xarxa bàsics que cal dominar

Gairebé totes les plataformes de virtualització o contenidors ofereixen variacions de tres modes de xarxa fonamentals:

  • NAT (Network Address Translation)
    La màquina virtual o el contenidor comparteixen la connexió de l’amfitrió cap a fora. Des de dins hi ha internet, però des de fora no s’hi pot accedir directament tret que s’obrin ports.
  • Bridge (pont de xarxa)
    La màquina virtual o el contenidor apareixen a la xarxa com si fossin un altre equip físic. Obtenen una IP del mateix rang que l’ amfitrió i poden ser accedits sense regles de reenviament.
  • Xarxa interna o privada. Serveix per connectar diverses màquines virtuals entre si sense sortir a l’exterior. No hi ha accés directe a internet ni a l’amfitrió tret que es configuri com router o gateway.

Comprendre aquestes tres modalitats i saber quan triar cadascuna ajuda i estalvia molts problemes.

NAT: el més senzill per començar

Quan es crea una màquina virtual a VirtualBox o en virt-manager, el mode de xarxa predeterminat sol ser NAT.

  • A VirtualBox: la VM rep una IP en un rang intern (normalment 10.0.2.x) i pot sortir a internet.
  • En KVM/virt-manager: libvirt crea una xarxa virtual anomenada default que actua com a NAT. La VM rep una IP com a 192.168.122.x.
  • A Docker: cada contenidor arrenca en una xarxa bridge que en realitat funciona com a NAT (172.17.x.x). El contenidor té sortida a internet, però no és visible directament des de fora.

Avantatges de NAT

  • Funciona sense configurar res.
  • Permet accés a internet per a actualitzacions o descàrregues.
  • Aïlla les màquines virtuals i evita conflictes d’ IP.

Limitacions

  • No s’hi pot accedir fàcilment des d’un altre dispositiu de la xarxa física.
  • Per exposar un servei (per exemple, un servidor web a la VM) cal redirigir ports.

Exemple a VirtualBox

Si tenim una VM amb NAT i volem que sigui accessible al port 8080 des de l’amfitrió:

VBoxManage modifyvm "LaMevaVM" --natpf1 "http,tcp,,8080,,80"

Això redirigeix el port 8080 del host al port 80 de la VM. Si prefereixes fer-ho des de la interfície gràfica: Configuració → Xarxa → Avançat → Reenviament de ports.

Exemple en KVM/virt-manager

Virt-manager permet configurar regles NAT mitjançant iptables o firewalld, però sol ser més pràctic fer servir port forwarding en libvirt:

<forward mode='nat'>
  <nat>
    <port start='8080' end='8080' protocol='tcp'/>
  </nat>
</forward>

Amb aquesta configuració, les connexions al port 8080 del host es redirigeixen al convidat.

Exemple a Docker

Exposar un contenidor amb NAT és tan simple com:

docker run -d -p 8080:80 nginx

Això redirigeix el port 8080 del host al port 80 del contenidor.

Bridge: quan cal que la màquina estigui “a la xarxa”

El mode bridge connecta la màquina virtual directament a la xarxa física. És com si endollessis un altre cable de xarxa al switch o router de casa teva. La VM o contenidor rep una IP del mateix rang que el teu PC.

Avantatges

  • Accessible des d’ altres equips de la xarxa sense configuracions extra.
  • Ideal per muntar servidors (exemple: un servidor web en una VM al qual accedeixen altres dispositius).
  • Més transparent per a proves de xarxa.

Limitacions

  • Pot requerir permisos administratius o configuració manual.
  • No sempre funciona en xarxes amb restriccions (per exemple, a Wi-Fi d’universitats o hotels que només permeten una MAC per dispositiu).
  • Més fàcil de “trencar” si no es configuren bé les interfícies.

Exemple a VirtualBox

  • Obrir Configuració de la VM → Xarxa.
  • Canviar de “NAT” a “Adaptador pont”.
  • Triar la interfície física del host (per exemple, wlp3s0 per a Wi-Fi o eth0 per a cable).

La VM rebrà una IP del mateix rang que el host. Si el host està en 192.168.1.100, la VM pot obtenir alguna cosa com 192.168.1.101.

Exemple en KVM/virt-manager

En virt-manager, es pot crear un bridge en el sistema amfitrió i associar-lo a la VM:

nmcli connection add type bridge con-name br0 ifname br0
nmcli connection add type ethernet con-name bridge-slave ifname eth0 master br0
nmcli connection up br0

Després, en virt-manager, assignar la interfície de la VM al bridge br0. La VM rebrà IP directament del router.

Exemple a Docker

Docker no fa servir bridge de xarxa físic per defecte, però es pot connectar un contenidor a la xarxa del host:

docker run -d --network host nginx

Això no és exactament un bridge, sinó que el contenidor comparteix la pila de xarxa de l’amfitrió. En molts casos és més pràctic que crear un bridge físic.

Xarxes internes: quan no es necessita sortir

La tercera manera útil és la xarxa interna (de vegades anomenada “xarxa només amfitrió” o “host-only”). Aquí les VMs es poden veure entre elles, però no tenen sortida directa a internet tret que es configuri un gateway.

Casos típics

  • Laboratoris de proves entre diverses màquines (per exemple, un servidor i un client que només han de parlar entre si).
  • Simulació d’ entorns de xarxa aïllats.
  • Exercicis de formació en ciberseguretat.

Exemple a VirtualBox

En la configuració de la VM → Xarxa → seleccionar “Xarxa interna” i donar-li un nom, per exemple labnet. Totes les VMs que facin servir labnet podran comunicar-se.

S’ hi poden afegir interfícies extra:

  • Una interfície NAT per a accés a internet.
  • Una altra interfície interna per a la comunicació entre VMs.

Exemple en KVM/virt-manager

En virt-manager es pot crear una xarxa aïllada a l’ XML de libvirt:

<network>
  <name>isolated</name>
  <bridge name='virbr1' stp='on' delay='0'/>
  <ip address='192.168.50.1' netmask='255.255.255.0'/>
</network>

Les VMs connectades a isolated es veuran entre elles, però no sortiran a internet.

Exemple a Docker

A Docker, n’hi ha prou amb crear una xarxa personalitzada:

docker network create --driver bridge isolated_net
docker run -d --network isolated_net --name db mariadb
docker run -d --network isolated_net --name app wordpress

Aquí db i app es veuen entre si, però no són accessibles des de fora tret que s’exposin ports.

Quan triar cada mode

Una regla pràctica que evita errors:

  • NAT: quan només necessites internet dins de la VM/contenidor i no importa si no és accessible des de fora. Exemple: instal·lar actualitzacions o provar programari.
  • Bridge: quan vols que la VM/contenidor es comporti com un equip més a la teva xarxa. Exemple: un servidor accessible des de qualsevol dispositiu de casa teva.
  • Xarxa interna: quan necessites comunicació entre VMs sense exposar-les a internet. Exemple: un entorn de proves aïllat.

A la pràctica, moltes configuracions combinen dues interfícies: una a NAT per a accés a internet i una altra en xarxa interna per al laboratori.

Problemes habituals i solucions ràpides

“La meva VM amb NAT té internet, però no puc entrar des de fora”

Solució: configurar reenviament de ports. A VirtualBox, regla NAT; en Docker, -p host:container.

“El mode bridge no em dona IP”

En xarxes Wi-Fi amb restriccions, pot que el router només permeti una MAC per dispositiu. En aquest cas, fes servir NAT amb port forwarding.

“Vull que diverses VMs es vegin entre si i també tinguin internet”

Configuració d’interfícies:

  • Una a NAT per a internet.
  • Una altra en xarxa interna per a la comunicació local.

“Docker crea moltes xarxes i no sé quina fer servir”

Si no hi ha necessitats específiques, la xarxa bridge per defecte serveix. Si necessites que diversos contenidors treballin junts de forma aïllada, crear una xarxa amb docker network.

Checklist pràctica

  • Per provar programari sense complicacions → NAT.
  • Per muntar un servidor accessible a la teva LAN → Bridge.
  • Per a laboratoris aïllats o comunicació entre VMs → Xarxa interna.
  • Si no funciona el bridge a Wi-Fi → tornar a NAT amb regles de ports.
  • A Docker, fer servir -p per exposar ports i docker network create per a xarxes internes.
  • A Proxmox o KVM, crear bridges amb nmcli o ip link segons la distro.

Conclusió

Aquest recorregut cobreix el que a la pràctica es necessita per treballar amb xarxes en entorns virtualitzats i amb contenidors. Les eines canvien en la forma, però els tres conceptes bàsics —NAT, bridge i interna— es repeteixen sempre. Una vegada s’entenen, és molt més senzill diagnosticar problemes o dissenyar un laboratori que funcioni com s’espera.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *