How to see the interfaces set up with virtualbox when using vagrant - vagrant

I've set up a default vagrant setup, and I'd like to be able to find out what i can from the host about the guest.
For virtualbox setups, what happens is there are some pseudo interfaces that you can use to route and firewall the guest outgoing connections. But, when using vagrant, i noticed the availability of a private space eth0 which is NATted through the host interface. Searching using iproute2 and looking through the procfs does not show any interface at all.
A while back I found the vbox driver bypasses all the usual methods to inspect interfaces from the host machine. Is there a way to find out more about the interfaces on the guest from the host, and which chain should i target to firewall traffic from this?

Strangely just to answer: to find the existence of the ip address in procfs, you'll have to check the /proc/net/fib_trie. Unfortunately, anecdotally, this doesn't work on some procfs.

Related

Vagrant issue - able to communicate between private networks

I've run into an issue while using Vagrant.
I have to boxes and I've configured them to be part of different virtualbox internal networks (relevant config below):
Dataplane port
vsrx1.vm.network 'private_network', auto_config: false, nic_type: '82540EM', virtualbox__intnet: **"seg1"**
end
Dataplane port
vsrx3.vm.network 'private_network', auto_config: false, nic_type: '82540EM', virtualbox__intnet: **"seg2"**
end
However, the hosts are able to communicate with one another (they have IPs from the same subnet), although they belong to different private networks.
Does anyone know why?
Thanks,
Cristian
From the vagrant book
NAT Requirement As the First Network Interface
With VirtualBox,
Vagrant requires the first network device attached to the virtual
machine to be a NAT device. The NAT device is used for port
forwarding, which is how Vagrant gets SSH access to the virtual
machine.
Therefore, any host-only or bridged networks will be added as
additional network devices and exposed to the virtual machine as
“eth1,” “eth2,” and so on. “eth0” or “en0” is generally always the NAT
device.
It isn’t currently possible to override this requirement, but it is
important to understand that it is in place.
this first network interface is not set from Vagrantfile, if you ssh into the VM and check the network of the VM, you will see this first network interface used by the host to communicate with the VM (so you can ssh)

How to setup Vagrant DNS servers in MacOS without change the DNS in the network setup

I have a vagrant machine and this vm runs a DNS server to resolve the internal domains of each micro-service instance running in a docker container inside the vagrant. Actually, after run vagrant up, I need to put the vagrant vm IP address in my network configuration to my computer resolve the development domain, so I can access the application, but the problem is that I work remotelly and frequently I need to connect in public hotspots that uses network authentication and if I have the vagrant DNS in my interface's configuration I could not connect to the hotspot without removing the vagrant IP, but I need to put it back after some minutes later to start working.
So, the question is, there is a way to configure an virtual interface or a VPN interface that points to the vagrant but does not block my network as I describe above ?
When I was using linux, I just put the vagrant IP in the resolv.conf and I had no headaches, but as MacOS does not have the resolv.conf like linux, I could not find a easy way to deal with theses problems.

Access xampp from VMWARE to Public IP

Is it possible to access 127.0.0.1:8080 publicly i have a project application that is running on VM, What should I do?
Diagram:
VMachine( where xampp is installed) IP <-> Global(external) IP (167.1.174.21:8080)
I don't have any option left what should i do i'm really new to this. #respect
Yes, this is possible but there are multiple steps to the configuration and the details for each steps differ depending on the hardware/software used. In general though it can be accomplished like this:
VMware config
Configure the VM with a bridged network
Configure the guest OS to either have a dhcp reservation or static ip.
Router config
Add a dhcp reservation for the VM (if using DHCP)
Add a port forwarding rule pointing to the VM's IP address
XAMPP config
Make sure the XAMPP server is listening on all interfaces.
The key point is to make the Virtual Machine to have bridged connection.
You can do it by looking at this one.
After that do a Port Forwarding to the virtual machine like it a real machine on your LAN.
Step 1 : Apart from above solution, in your local network where xampp is installed, make your local ip as static one, like "192.168.1.125" from router settings->Address reservation option.
Once you reserve address
Step 2 : Open your router->port forwarding->set port & ip to forward.
Step 3 : Now you check your public ip, and bingo now you can go to your public ip from vmware or from any other network.
As long as the vm has a configured network and is therefor able to communicate with your LAN (using Bridged networks in the VM configuration is a good way to go) and the internet, it is possible to make it accessible to the external web/internet.
Therefor you would most likely need to define a port-redirect/port forwarding on your router, that all incoming packets on the external IP (167.1.174.21) on port 8080 gets forwarded to the local ip of your vm and the related xampp session.
A possible problem at that point might be changing IP addresses of the VM based on a possible DHCP configuration. Either use a fixed IP on the VM or configure some mac-based rule for fixed IP or increase the lease time of the dhcp-server (your router to unlimited)
That's the theory, but please think twice before you do so. Running a webserver which is available in the wild is not recommended if you are not used to IT security. And even if you decide to do so, using xampp sounds wrong to me ears. xampp is designed for local development & testing purposes, not for productive use.

How to set the IP Address of a Virtualbox guest manually

For sake of automation I need to be able to manually set the IP address of my Virtualbox guest (which is an OS X) to a fixed IP.
Can this be done using VBoxManage? I need to avoid the GUI.
Thanks
in your virtual machine setting, you can find networking adapters. You have some choice :
Network Address Translation (NAT): Used to share the host's IP address
If all you want is to browse the Web, download files and view e-mail inside the guest, then this default mode should be sufficient for you, and you can safely skip the rest of this section.
Bridged networking
This is for more advanced networking needs such as network simulations and running servers in a guest. When enabled, VirtualBox connects to one of your installed network cards and exchanges network packets directly, circumventing your host operating system's network stack.
Host-only networking
This can be used to create a network containing the host and a set of virtual machines, without the need for the host's physical network interface. Instead, a virtual network interface (similar to a loopback interface) is created on the host, providing connectivity among virtual machines and the host.
if you want specific IP for your virtual machine you can set in your guest vm ( ifconfig in linux & ipconfig in windows) and choose NAT in network adapter setting .
https://www.virtualbox.org/manual/ch06.html

Is it possible to make localhost work through a Virtual Machine?

I am using a Macbook running 10.6. I am using VMware Fusion to run an Ubuntu Server minimal virtual machine. Ubuntu Server is running your basic LAMP stack.
I do my development in Mac OS. I have VMware share a directory from Mac OS to the Ubuntu Server. Ubuntu Server uses that directory for apache.
I access my server is Mac OS in firefox using the ip address of my virtual machine. This is a pain because I have to find out what the ip address is of my virtual machine each time I boot it up. I could set a static ip address but this causes problems if I move my Macbook from network to network.
Is there any configuration (NAT or Bridged or something) that would let me access my virtual machine from the Mac OS using localhost or something similar?
Thanks
NAT should be OK. Your VM is on a different subnet that way, you can give it the static IP you like, and it won't interfere with the (dynamic) IP on your real network.
What you are looking for is the host-only networking adapter as opposed to the NAT or bridged adapters. This creates a network interface on the virtual machine that only connects the actual host. It is perfectly safe to set an IP address for this interface that does not change, and there will be no tricky NAT getting in the way. It's a little network that only exists for communication between the real host and the virtual host. It's exact purpose is so you can do development like this. I use the same feature on VirtualBox all the time, but VMWare has it as well.
Now, with a host-only adapter you might be worried that your VM now has no access to the Internet. The answer is simple. Just make two adapters. eth0, eth1. Make one of them a bridged or NAT adapter for Internet access. Make the other one the host-only adapter for your development. Most modern Linux distros will automatically route accordingly. I know for a fact that Ubuntu does, because I do it all the time. Again, this is with VirtualBox. Your mileage may vary with VMWare, but I can't imagine it's that different.
I'm using Virtual Box and typing in the computer local address (for instance 192.168.1.100) instead of localhost did the trick.
Maybe I'm misunderstanding your question but why not just add an entry in your hosts file for the virtual machine? That way you can access it with some arbitrarily assigned name (like testmachine) instead of the IP.
This is the first tutorial I found through google: http://decoding.wordpress.com/2009/04/06/how-to-edit-the-hosts-file-in-mac-os-x-leopard/
This would work best if your VM has a static IP, BTW (either no DHCP or configure the DHCP server to give that MAC the same IP every time). That way you don't have to worry about changing the hosts entry every time the DHCP server gives the VM a different IP.

Resources