Networking in VMware Fusion

I am in a long flight from Sydney to Dallas and was looking to kill some time. What can be better than writing a post for my blog :).

I have seen and helped many people struggling with networking in VMware Workstation or VMware Fusion. Common problems are unable to connect (ping/ssh/rdp) to the virtual machine from host or other VMs in the farm.

I am writing this post to configure networks in Virtual Machines such that you have access to it from host machine (where VMware Fusion is installed), from other VMs and to internet as well (if required).

I was a little worried whether my existing Kickstart and Puppet server created on VMware Workstation will funtion well or not after being imported in VMware Fusion or not, but everything worked seamlessly after making the right changes in the configuration file of VMware Fusion. It was a lot easy than I expected.

When someone installs a VM (Linux or Windows), the very first requirement if often to have the ability to SSH or RDP it.

In OS X, you just need to tweak one file and you're done. Before moving forward lets take a backup first. You can use GUI too, but I prefer CLI.

vikas@Vikas-MacBook-Pro:~$ ls -lrth /Library/Preferences/VMware\ Fusion/networking
-rw-r--r--  1 root  wheel   461B 10 Jun 16:18 /Library/Preferences/VMware Fusion/networking
vikas@Vikas-MacBook-Pro:~$ sudo cp -pv /Library/Preferences/VMware\ Fusion/networking /Library/Preferences/VMware\ Fusion/networking-original
/Library/Preferences/VMware Fusion/networking -> /Library/Preferences/VMware Fusion/networking-original

Now, it's time to decide what IP ranges you want for internal network (through which VMs will communicate to each other) and NAT IP network for internet access.

In this example, my internal network is running on and for my NAT network I have chosen VMware Workstation/Fusion routes the traffic through VMnet1 and VMnet8 adapters, these adapters act as gateways (kind of) for the Virtual Machines.

This is my networking file, modify yours as required.

vikas@Vikas-MacBook-Pro:~$ cat /Library/Preferences/VMware\ Fusion/networking
answer VNET1DHCP no
answer VNET1DHCPCFGHASH 58A3410FF0D38B27B7F5462F8C7ZZJJS2C09630E
answer VNET8DHCP yes
answer VNET8DHCPCFGHASH 84AA5E28557048D6CD188B0A40970B27B7D36096
answer VNET8NAT yes

Here are the results, you're all set to edit or add networks of your Virtual Machine.

vikas@Vikas-MacBook-Pro:~$ ifconfig | grep -A 3 vmnet
vmnet1: flags=8863 mtu 1500
    ether 00:50:56:c0:00:01
    inet netmask 0xffffff00 broadcast
vmnet8: flags=8863 mtu 1500
    ether 00:50:56:c0:00:08
    inet netmask 0xffffff00 broadcast

In VMware Fusion, the network card has to be configured as Private to my Mac for networking between VMs and Share with my Mac for internet access.

Let's take an example to make things clearer. I have a Debian 7.4.0 Virtual Machine on which I want to have two different networks.

  • eth0 - 192.168.1.X/24 (for interacting between VMs)
  • eth1 - 192.168.181.X/24 (for internet access to update my apt repositories)

    This is a two step process, you need to add/edit network setting of VM and create routes. These steps should also work for all Debian family - Ubuntu, Mint, etc.

    First Network Adapter (eth0)

    Second Network Adapter (eth1)

    Power on the VM and append below lines to /etc/rc.local

    route del default gw eth0
    route add default gw eth1

    Thats it, you're ready to go. I will catch some sleep now.

    Thanks for reading.

  • comments powered by Disqus