VMware Communities
MrNane
Contributor
Contributor

Mavericks, Thunderbolt Bridge and VMWare-Fusion 6

Hi.

When I connect my Macbook Pro 2013 to my iMac 2011 with a thunderbolt cable, networking works fine between the two Macs. Normally, Mavericks uses a "Thunderbolt Bridge" device, where both thunderbolt ports are bundled into. Unfortunately, VM-Ware Fusion doesn't recognize this Mavericks bridge device as network adapter. As soon as I use the single thunderbolt network devices, Fusion can see them, but I loose the bridging ability and have to set up a dedicated network for the thunderbolt connection, very unconvenient 🙂

Any suggestions where to tweak vmx files or similar to get Fusion to recognize the bridge device?

Thanks in advance.

0 Kudos
9 Replies
nancyz
VMware Employee
VMware Employee

Hi MrNane,

Welcome to the community. Thanks for reporting this. Currently, VM could only bridged to ethernet interface or wi-fi. I will forward this question to our dev and see if he could do something.

0 Kudos
nancyz
VMware Employee
VMware Employee

Hi MrNane,

You could try NAT networking if you want your VM to use thunderbolt cable on your Mac.

On your Mac, open System Preferences -> Network. Click the gear in the lower left, then select "Set Service Order...", drag Thunderbolt Bridge to the top. Then set up your VM to NAT, you could use the thunderbolt bridge now.Smiley Happy

MrNane
Contributor
Contributor

Hi nancyz,

thank you, this seems to work for now, even though all NAT configurations in the network adapter selection are shown disabled/inactive (non coloured ball at the left), and I didn't try this yet because of this.

Now, I can't really find the port forwarding options in VM-Ware Fusion Pro, where are they hidden, can you please tell me or point me to the manual? 🙂

Will there be an update for bridged connection over the thunderbolt bridge shortly?

Thanks again.

Update: When my VM (Windows 8.1 64-bit) is running, the little ball left of my NAT vmnet2 (custom) is coloured in red. Networking is still available, though...

0 Kudos
ColoradoMarmot
Champion
Champion

VMWare doesn't virtualize Thunderbolt devices yet...and they don't comment on upcoming features.  But it's a good item to put in a request for 🙂

0 Kudos
MrNane
Contributor
Contributor

Hi.

Sure, but I only need the fast network connection between my two Macs at the moment, no need for me to have native access to the thunderbolt devices out of any VM 🙂

Concerning the networking I found a solution for my needs right now, maybe anybody will find this configuration helpful, so I will describe it here (use at your own risk, please)

1.) Unassign the Thunderbolt networking ports from the Thunderbolt bridge device (clear the checkmarks)

2.) Add one of the Thunderbolt *ports* as a network device in OSX to the list of network devices, has to be the connected one, of course 🙂

3.) Do the same on the other Mac Computer

4.) Assign manual IP adresses to the Thunderbolt port devices on each Mac, make sure the IP-Network fits, no gateway, no dhcp

5.) Give some name to the IP addresses in your /etc/hosts preferrably on each side

6.) My configuration now is Thunderbolt-Port-2 on Macbook 192.168.225.2, Thunderbolt-Port-2 on iMac 192.168.225.1, named macpro and imac in /etc/hosts for example

7.) I can now connect via SMB by using "connect to server" in the Finder and get an really fast SMB connection (up to 5.3GBit according to iperf)

8.) The VMs can see and bridge to the Thunderbolt-Port network devices, have to try that but could use shared folders if this doesn't work

The problem with VM-Ware Fusion seems to be the bridging to OSX bridge devices, not the thunderbolt network per se.

I hope this helps somebody out for now, until VM-Ware will eventually support bridging to Bridge-Devices in OSX, will you? 😉

Have a nice Christmas and a happy new year 2014 🙂

0 Kudos
nancyz
VMware Employee
VMware Employee

MrNane wrote:

Hi nancyz,

thank you, this seems to work for now, even though all NAT configurations in the network adapter selection are shown disabled/inactive (non coloured ball at the left), and I didn't try this yet because of this.

But my NAT VMs worked well. Could you please upload a screenshot of your Network Preferences of your Mac and VM settings? Thanks.

Now, I can't really find the port forwarding options in VM-Ware Fusion Pro, where are they hidden, can you please tell me or point me to the manual? 🙂

Will there be an update for bridged connection over the thunderbolt bridge shortly?

Thanks again.

Hi MrNane,

You could conf port forwarding by editing nat.conf  in /Library/Preferences/VMware Fusion/vmnetX, in your case, its vmnet2 folder.

MaZePallas
Contributor
Contributor

So I just ran into this.  VMware Fusion 6.02 combined with Mac OS X Mavericks 10.9.2.

My existing networking configuration was a bridge of the wired ethernet and both thunderbolts.

I didn't want to lose this and wanted my virtual machines to join this bridge.

Here's the solution I came up with.

btw. I upgraded to fusion 6 professional to get the 'enhanced network configuration ui', but I think it's not actually necessary.

First let me link to two posts where I found most of my information:

http://binarynature.blogspot.com/2013/09/integrate-vmware-fusion-with-gns3-on-your-mac.html

http://thornelabs.net/2013/10/18/manually-add-and-remove-vmware-fusion-virtual-adapters.html

Now, on to what I did.

We configure the VM like so (using a text editor while fusion isn't running):

Fedora.vmwarevm/Fedora 64-bit.vmx:

...

ethernet0.address = "00:50:56:XX:XX:XX"

ethernet0.addressType = "static"

ethernet0.connectionType = "custom"

ethernet0.linkStatePropagation.enable = "FALSE"

ethernet0.pciSlotNumber = "33"

ethernet0.present = "TRUE"

ethernet0.virtualDev = "e1000"

ethernet0.vnet = "vmnet2"

ethernet0.wakeOnPcktRcv = "FALSE"

Not sure how much of the above is required, but probably the "custom" and "vmnet2" are the key points.

We configure vmnet2 like so:

sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cfgcli vnetcfgadd VNET_2_DHCP no

sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cfgcli vnetcfgadd VNET_2_HOSTONLY_SUBNET 192.0.2.0

sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cfgcli vnetcfgadd VNET_2_HOSTONLY_NETMASK 255.255.255.0

sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cfgcli vnetcfgadd VNET_2_NAT no

sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cfgcli vnetcfgadd VNET_2_VIRTUAL_ADAPTER yes

I think the 'nat no' might be not needed.  the host only lines are needed for this to work, even though the precise values don't matter, since we'll manually delete them later on.

We apply the following patch:

--- /Applications/VMware Fusion.app/Contents/Library/services.sh_

+++ /Applications/VMware Fusion.app/Contents/Library/services.sh

@@ -661,6 +661,10 @@

    if retString=`"$LIBDIR/vmnet-cli" --start`; then

       echo "Started network services"

+      ifconfig vmnet2 down

+      ifconfig vmnet2 inet delete

+      ifconfig bridge0 addm vmnet2

+      ifconfig vmnet2 up

    else

       logger -s -t "VMware Fusion 1398658" \

          "Error: Unable to start the network services. Error: $retString [$?]"

@@ -682,6 +686,9 @@

--stop)

    "$LIBDIR/vmware-usbarbitrator" --kill || true

+   ifconfig vmnet2 down

+   ifconfig bridge0 deletem vmnet2

+   ifconfig vmnet2 up

    "$LIBDIR/vmnet-cli" --stop

    vmware_stop_pidfile /var/run/vmnet-bridge.pid

-----

You'll probably have to apply it by hand, since I doubt formatting will survive the posting process.

This is probably a good point to reboot, although might not be strictly required if you did all of the above with fusion turned off.

For verification purposes, here's ifconfig output when fusion isn't running:

$ ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

  options=3<RXCSUM,TXCSUM>

  inet6 ::1 prefixlen 128

  inet 127.0.0.1 netmask 0xff000000

  inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

  nd6 options=1<PERFORMNUD>

gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

stf0: flags=0<> mtu 1280

en0: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500

  options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV>

  ether 68:5b:35:xx:xx:xx

  media: autoselect (1000baseT <full-duplex>)

  status: active

en1: flags=8823<UP,BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500

  ether c8:e0:eb:xx:xx:xx

  nd6 options=1<PERFORMNUD>

  media: autoselect (<unknown type>)

  status: inactive

en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500

  options=60<TSO4,TSO6>

  ether 32:00:13:xx:xx:xx

  media: autoselect <full-duplex>

  status: inactive

en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500

  options=60<TSO4,TSO6>

  ether 32:00:13:xx:xx:xx

  media: autoselect <full-duplex>

  status: inactive

bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

  options=3<RXCSUM,TXCSUM>

  ether 6a:5b:35:xx:xx:xx

  inet6 fe80::xxxx%bridge0 prefixlen 64 scopeid 0x8

  inet 192.168.1.44 netmask 0xffffff00 broadcast 192.168.1.255

  inet6 2001:xxxx prefixlen 64 autoconf

  inet6 2001:xxxx prefixlen 64 autoconf temporary

  Configuration:

  id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0

  maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200

  root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0

  ipfilter disabled flags 0x2

  member: en3 flags=3<LEARNING,DISCOVER>

         ifmaxaddr 0 port 7 priority 0 path cost 0

  member: en2 flags=3<LEARNING,DISCOVER>

         ifmaxaddr 0 port 6 priority 0 path cost 0

  member: en0 flags=3<LEARNING,DISCOVER>

         ifmaxaddr 0 port 4 priority 0 path cost 0

  nd6 options=1<PERFORMNUD>

  media: autoselect

  status: active

p2p0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 2304

  ether 0a:e0:eb:xx:xx:xx

  media: autoselect

  status: inactive

and when fusion is running:

$ ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384

  options=3<RXCSUM,TXCSUM>

  inet6 ::1 prefixlen 128

  inet 127.0.0.1 netmask 0xff000000

  inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

  nd6 options=1<PERFORMNUD>

gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280

stf0: flags=0<> mtu 1280

en0: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500

  options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV>

  ether 68:5b:35:xx:xx:xx

  media: autoselect (1000baseT <full-duplex>)

  status: active

en1: flags=8823<UP,BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500

  ether c8:e0:eb:xx:xx:xx

  nd6 options=1<PERFORMNUD>

  media: autoselect (<unknown type>)

  status: inactive

en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500

  options=60<TSO4,TSO6>

  ether 32:00:13:xx:xx:xx

  media: autoselect <full-duplex>

  status: inactive

en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500

  options=60<TSO4,TSO6>

  ether 32:00:13:xx:xx:xx

  media: autoselect <full-duplex>

  status: inactive

bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

  options=3<RXCSUM,TXCSUM>

  ether 6a:5b:35:xx:xx:xx

  inet6 fe80::xxxx%bridge0 prefixlen 64 scopeid 0x8

  inet 192.168.1.44 netmask 0xffffff00 broadcast 192.168.1.255

  inet6 2001:xxxx prefixlen 64 autoconf

  inet6 2001:xxxx prefixlen 64 autoconf temporary

  Configuration:

  id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0

  maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200

  root id 0:0:0:0:0:smileylaugh: priority 0 ifcost 0 port 0

  ipfilter disabled flags 0x2

  member: en3 flags=3<LEARNING,DISCOVER>

         ifmaxaddr 0 port 7 priority 0 path cost 0

  member: en2 flags=3<LEARNING,DISCOVER>

         ifmaxaddr 0 port 6 priority 0 path cost 0

  member: en0 flags=3<LEARNING,DISCOVER>

         ifmaxaddr 0 port 4 priority 0 path cost 0

  member: vmnet2 flags=3<LEARNING,DISCOVER>

         ifmaxaddr 0 port 11 priority 0 path cost 0

  nd6 options=1<PERFORMNUD>

  media: autoselect

  status: active

p2p0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 2304

  ether 0a:e0:eb:xx:xx:xx

  media: autoselect

  status: inactive

vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

  ether 00:50:56:c0:00:01

  inet 172.16.103.1 netmask 0xffffff00 broadcast 172.16.103.255

vmnet2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500

  ether 00:50:56:c0:00:02

vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500

  ether 00:50:56:c0:00:08

  inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255

en0 is the wired ethernet

en1 is the unused wireless interface

en2/en3 are the thunderbolt ports

bridge0 is the 'Thunderbolt Bridge' (ie. bridge of en0/en2/en3, we're adding vmnet2 to it)

vmnet0 is the 'vmware auto configured bridge' switch end point (which is failing to come up here, because fusion is confused by the thunderbolt bridge I think)

vmnet1 is the 'vmware host only' switch end point

vmnet8 is the 'vmware nat' switch end point

vmnet2 is the 'custom' switch end point (created above)

0 Kudos
MaZePallas
Contributor
Contributor

This continues to work with VMWare Fusion 6.03

--- /Applications/VMware Fusion.app/Contents/Library/services.sh_

2014-04-22 00:57:53.000000000 -0700
+++ /Applications/VMware Fusion.app/Contents/Library/services.sh2014-04-22 00:59:23.000000000 -0700

@@ -661,6 +661,11 @@

    if retString=`"$LIBDIR/vmnet-cli" --start`; then

       echo "Started network services"

+      ifconfig vmnet2 down \

+      && ifconfig vmnet2 inet delete \

+      && ifconfig bridge0 addm vmnet2 \

+      && ifconfig vmnet2 up \

+      || true

    else

       logger -s -t "VMware Fusion 1747349" \

          "Error: Unable to start the network services. Error: $retString [$?]"

@@ -682,6 +687,10 @@

--stop)

    "$LIBDIR/vmware-usbarbitrator" --kill || true

+   ifconfig vmnet2 down \

+   && ifconfig bridge0 deletem vmnet2 \

+   && ifconfig vmnet2 up \

+   || true

    "$LIBDIR/vmnet-cli" --stop

    vmware_stop_pidfile /var/run/vmnet-bridge.pid

0 Kudos
FAUCONH
Contributor
Contributor

Hello everybody !

Does the brigde word and E1000 virtual adapter mean that my 10Gb/s ethernet adapter will work only at one Gb/s ?

Is it the same problem with the config of similary  post about Thunderbolt Bridge and VMWare-Fusion 7 ?

Kind regards

0 Kudos