🌍 Què és Vagrant?
Vagrant és una eina que permet automatitzar la creació i gestió de màquines virtuals utilitzant VirtualBox, VMware o altres hipervisors. La seva gran avantatge és que utilitza un fitxer de configuració (Vagrantfile
) per definir tota la infraestructura, fent que sigui fàcil de reproduir en diferents entorns.
🔹 Per què usar Vagrant?
✅ Permet crear entorns de xarxa complexos de manera senzilla.
✅ És fàcil d’automatitzar i replicar en diferents sistemes.
✅ Evita problemes de configuració manual en cada màquina.
⚙ Configuració del Vagrantfile amb un router i diverses màquines
Ara crearem un fitxer Vagrantfile
on tindrem tres màquines:
1️⃣ Router: Configurat per gestionar el tràfic de xarxa i contenir les rutes vistes anteriorment.
2️⃣ Màquina Marc
3️⃣ Màquina Arnau
📝 Fitxer Vagrantfile
Vagrant.configure("2") do |config|
# Definim la màquina que farà de Router
config.vm.define “router” do |router|
router.vm.box = “ubuntu/bionic64” # Sistema operatiu
router.vm.hostname = “router”
# Configuració de xarxes del router
router.vm.network “private_network”, ip: “10.0.2.15”, netmask: “255.255.255.0”
router.vm.network “private_network”, ip: “10.0.6.1”, netmask: “255.255.255.224”
router.vm.network “private_network”, ip: “172.25.224.15”, netmask: “255.255.0.0”
# Script de configuració per definir rutes
router.vm.provision “shell”, inline: <<-SHELL
# Configuració d’enrutament
sudo ip route add 10.0.6.33 via 172.25.214.15 dev enp0s9
sudo ip route add 10.0.6.49 via 172.25.224.15 dev enp0s9
sudo ip route add 172.25.0.0/16 dev enp0s9 proto kernel scope link src 172.25.224.15 metric 102
echo “1” | sudo tee /proc/sys/net/ipv4/ip_forward # Activar forwarding IP
SHELL
end
# Màquina Marc
config.vm.define “marc” do |marc|
marc.vm.box = “ubuntu/bionic64”
marc.vm.hostname = “marc”
marc.vm.network “private_network”, ip: “10.0.6.33”, netmask: “255.255.255.224”
marc.vm.provision “shell”, inline: <<-SHELL
sudo ip route add default via 10.0.6.1 dev enp0s8
SHELL
end
# Màquina Arnau
config.vm.define “arnau” do |arnau|
arnau.vm.box = “ubuntu/bionic64”
arnau.vm.hostname = “arnau”
arnau.vm.network “private_network”, ip: “10.0.6.49”, netmask: “255.255.255.224”
arnau.vm.provision “shell”, inline: <<-SHELL
sudo ip route add default via 10.0.6.1 dev enp0s8
SHELL
end
end
🚀 Explicació del Vagrantfile
1️⃣ Creem tres màquines virtuals:
router
(fa d’encaminador)marc
arnau
2️⃣ El router té tres interfícies de xarxa amb diferents subxarxes.
3️⃣ Afegim rutes al router perquè pugui encaminar el tràfic correctament.
4️⃣ Activem el forwarding IP perquè el router pugui passar paquets entre xarxes.
5️⃣ Les màquines marc
i arnau
configuren la seva passarel·la per utilitzar el router
.
🔄 Verificació de la connectivitat entre màquines
Després d’executar vagrant up
per aixecar les màquines, provarem la connectivitat fent un ping des del router:
ping 10.0.6.33 # Ping a la màquina de Marc
ping 10.0.6.49 # Ping a la màquina d’Arnau
🎯 Conclusió
🔹 Amb Vagrant, podem desplegar i configurar xarxes complexes fàcilment.
🔹 El router dirigeix el trànsit entre subxarxes gràcies a les rutes configurades.
🔹 Les màquines poden comunicar-se entre elles sense problemes.
Ara tenim un entorn virtual funcional per fer proves de xarxa! 🚀🔥