Comunicación entre máquinas en un entorno multi-máquina
Comunicación entre máquinas en un entorno multi-máquina

En este post aprenderás a realizar la comunicación entre máquinas en un entorno multi-máquina, donde configuraremos los host y realzaremos un test con ping
📡 Comunicación entre máquinas en Vagrant
Cuando tienes varias máquinas en un Vagrantfile
, pueden comunicarse entre ellas si cumplen estas condiciones:

- Están en la misma red privada (
private_network
) o red pública (public_network
). - Tienen IPs asignadas y pueden resolverse entre ellas.
Esto simula una red real, como si fueran dos PCs conectadas a un switch.
🛠️Crear un proyecto
Procedemos a crear un proyecto en vagrant como lo explico en primeros pasos con vagrant, creamos un directorio llamado proyecto-vagrant
y ejecutamos:
vagrant init
Esto creara en el directorio el archivo proyecto-vagrant
vagrantfile el cual vamos a agregar el box "ubuntu/bionic64" de momento, nos deberá quedar de la siguiente forma:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
end
Iniciamos vagrant
vagrant up
Vemos que ha creado la maquina virtual en virtualbox y vemos que por defecto a dejado las siguientes caracteristicas en esta máquina virtual.
🧱 Ejemplo práctico
Procedemos a editar el vagrantfile creado, para mas información revisar el post Configuración de múltiples máquinas en un solo Vagrantfile
Vagrant.configure("2") do |config|
config.vm.define "web" do |web|
web.vm.box = "hashicorp/bionic64"
web.vm.hostname = "webserver"
web.vm.network "private_network", ip: "192.168.56.10"
end
config.vm.define "db" do |db|
db.vm.box = "hashicorp/bionic64"
db.vm.hostname = "dbserver"
db.vm.network "private_network", ip: "192.168.56.11"
end
end
✅ Aquí:
- La máquina web tiene IP
192.168.56.10
- La máquina db tiene IP
192.168.56.11
- Ambas están en la misma red privada.
🔥 ¿Cómo se comunican?
Levantas las máquinas:
vagrant up
Te conectas a una máquina (por ejemplo web
):
vagrant ssh web
Desde dentro de web
, puedes hacer ping o conectarte a db
:
ping 192.168.56.11
Si el dbserver tiene servicios corriendo (como MySQL o PostgreSQL), la webserver puede conectarse usando esa IP.
🎯 Mejorar la comunicación usando nombres (hostnames)
Además de IPs, puedes configurarlo para que resuelvan nombres de host.
En Linux, puedes editar el archivo /etc/hosts
automáticamente o manualmente.
Vagrant no edita /etc/hosts
por defecto, pero puedes usar el plugin vagrant-hostmanager
para facilitarlo.
Por ejemplo, instalarlo:
vagrant plugin install vagrant-hostmanager
Y luego agregar en el Vagrantfile
:
config.hostmanager.enabled = true
config.hostmanager.manage_host = true
config.hostmanager.include_offline = true
Así, desde web
podrías hacer:
ping dbserver
¡Y resolvería automáticamente!
🧠 ¿Qué puedes montar en un entorno multi-máquina?
- Servidor Web (Apache, Nginx)
- Base de Datos (MySQL, PostgreSQL)
- Servidor de Aplicaciones
- Balanceador de Carga
- Ambiente de Microservicios
Cada máquina cumple un rol y se comunican como si estuvieras montando una infraestructura real.
⚡ Resumen de pasos
Paso | Acción |
---|---|
1 | Definir IPs privadas en el Vagrantfile |
2 | Levantar las máquinas (vagrant up ) |
3 | Conectarse entre ellas por IP o nombre (usando ping , curl , bases de datos, etc.) |
4 | (Opcional) Usar plugins como vagrant-hostmanager para facilitar la resolución de nombres |