MAC OSX Networking Issue

Not open for further replies.

Andrew Hardy

Hi All,

I'm hoping for some guidance on how to stand up a specific type of networking which I used to be able to do within the Windows Environment but cannot in MAC OSX.

What I'm wanting to achieve is a way that I can create VLAN Interfaces using a non-physical interface (I.E... EN0 / Thunderbolt in this case). In case you were wondering why I would like to do this, it's because I lab numerous things within the virtual world and I require the ability to do this whilst on the move. My solution that I have to date is to have two thunderbolt adapters with a very short piece of Cat6e cable and bridge the two thunder bolt adapters to trick the OS in to thinking the Interface is up and therefore being able to create VLAN interfaces and bridge them to the virtual world (VMWare Fusion) in this case.

So now for what I have tried;

1. Using Tun/Tap scripts I've been able to create both Tun adapters (using python) and Tap adapters using C script and compiling. What I cannot figure out is how to get these Tap adapters to display in Network preferences. I have not been successful. "Is this because the Tun/Tap adapters are software based and "Network Preferences" is tied to the XCode / OS database "preferences.plist" and "networkpreferences.plist"?

2. I tried following the approach where you modify the preferences file with a "unique UUID" - map this throughout the preferences.plist file in the appropriate locations then jumping in to the networkpreferences.plist file and adding the unique VLAN entries and mapping to the BSD name of the newly created interface. This worked in the sense that I could see the VLAN interfaces as Active (green) in the Network Preferences GUI menu but the "manually added" en0 equivalent interface named 'Lab Interface' actively showed down/as red. When clicking the hardware option under the new 'Lab Interface' it wouldn't display any type of Duplex Settings or MAC Address like I would of expected (when comparing to En0). Further more, I could create an IP address locally for each of the VLAN interfaces I created manually and ping it through the TCP/IP stack. On mapping the "Lab Interface" to the Virtual Machine and then configuring the VM with an IP on one of the VLAN interfaces (mapped to the Lab Interface) - I could not ping the host machine IP which I should have been able to. I would of expected the 'Lab Interface' to appear in the GUI menu tree (which it did) and for the "create virtual interface" menu tree to display the 'Lab Interface' option as well as the En0 option. This only seems to show options if the interfaces are physically up (Bluetooth and Wireless card would definitely not be displayed here).

The question is - is there another plist file that needs to be modified out side of the two mentioned above to pre-define the MAC addresses and duplex settings? My understanding is that when you create a virtual interface and map it to En0, it dynamically creates a MAC Address for you and assigns it to the interface. Is there a better way to achieve this?

Is there a better way to achieve this? If this is possible, it will also be a good way to stand up a magnitude of different environments using the Virtual Versions of Big IP load balances etc which generally have a 3 physical interface limitation in the virtual machine sense. If there is a way to create these VLAN interfaces and some how bind them to a virtual interface which is bridgeable in VMWare fusion then I think we would have a workable solution.

I have been reading online for days trying to get to the bottom of this conundrum but in all honesty, it may not be possible. There is probably a much better and graceful way to achieve this shy of having both NICs used up and a random cable hanging out of the PC whilst on the move :)

Any assistance/advise would be hugely appreciated.


If you are good at what you said then you should be afraid of /Applications/Utilities/Terminal app. There is a code to see if you change you work (without screwing with Preferences files) with the code:

man networksetup

Maybe you can do what you what with this Terminal command. Good Luck.
Not open for further replies.