Wireless Networking Workaround On VMware ESXi and Hyper-V Hosts Via DD-WRT Client Bridge Mode On A Linksys WRT54G v5
2010-12-19 Initial Post
From previous research I know that Hyper-V (as of 2008 R2) still does not support Wi-Fi/wireless networking for use by virtual machine guests (at least not directly-- see my update from 2010-12-27 below); the host itself will support wireless though. With VMware ESXi 4.1 I couldn't find anything that states that even the host will support wireless. ESXi guests might be able to use wireless via VMDirectPath or USB device passthrough, but I haven't fully researched that.
Anyway, the point of this post is that I found a way to get around an issue with how to give my Hyper-V and ESXi hosts access to my home wireless network. Here's what I want to accomplish:
- Put both servers upstairs in a spare bedroom, out of sight.
- Allow both servers (hosts and their guests) to access the Internet via my Verizon FiOS Actiontec router, which is downstairs in the living room.
- Not having to set up a dedicated VM router.
- Not having to run any network cables from the living room to the spare bedroom.
- Allow room for expansion if I want to set up another VM host.
So the other day I was searching for a type of hardware device, probably a wireless access point of some sort, that would allow me to extend my home network. Such a device would allow my servers to plug into standard wired Ethernet ports, thus eliminating any issues with wireless and VM hosts or guests. I found a Linksys article about their WAP54G and how to configure it as a wireless bridge. I wondered if the Linksys WRT54GC I had laying around would have the wireless bridge feature so I checked its user guide and there was no mention of wireless bridging. At that point I decided to search for wireless bridges and stumbled up this article about DD-WRT and the client bridge mode. Great! Now I just need to find a router that DD-WRT supports.
I had read about DD-WRT before, so I knew what it was. Basically it's an updated OS for routers that offers many more features than the stock OS. So I searched to see if my Linksys WRT54GC was supported by DD-WRT and unfortunately it was not. Only the regular WRT56G is supported (mine has the 'C' in it, because it's the compact model).
There are other makes and models that will run DD-WRT, but the Linksys WRT54G series is ubiquitous and I'm sure many are now unused because the ISPs give out new routers (like my Actiontec from Verizon FiOS) that replace the separate modems and routers. Why waste money and resources when I can reuse something that's collecting dust in someone's closet? If I can't get a WRT54G, I can spend less than $30 and get an ASUS router from NewEgg that will support DD-WRT.
I went over to my brother-in-law's house today and was thinking he might have a WRT54G because I remembered that he had changed his wireless settings not too long ago, probably because he changed his ISP. It turns out that he switched to Verizon FiOS from DSL and they gave him an Actiontec router just like mine. So I asked him if I could have his old WRT54G and he went into his attic and got it for me. I was thrilled! Honestly, this could have been a Christmas present for me.
I spent the next hour or two reading instructions and updating the router. I had the WRT54G v5, per the sticker on the bottom of the router. It turns out that v5 is not one of the "recommended" models for running DD-WRT because Linksys reduced the size of RAM and flash memory after v4, which caused performance and stability issues with DD-WRT. From what I read, many people with v5 and similar have rendered their routers useless by trying to update them. I figured I'd give it a shot anyway, and there were instructions specifically for this version, so I had nothing to lose. If this router dies, I could probably find someone else with another WRT54G (hopefully pre-v5).
I carefully followed the instructions for Linksys WRT54G v5.0 & 5.1 & 6.0 and was able to get everything up and running. The parts of the instructions that weren't clear were 20.5 - 20.7. For those steps, after you plug the power back in to complete the "power cycle" is when you should count to 2; you don't count to 2 right after unplugging the router to start the power cycle. The other thing with those instructions was that it doesn't look like it uses the latest build, but it shouldn't really matter because I'm only using this as a wireless bridge. The version listed in the DD-WRT router info page is DD-WRT v24-sp2 (07/22/09) micro - build 12548M NEWD Eko.
After I got DD-WRT installed, I followed the instructions to configure client bridge mode and pre-configured the settings to work with my home router. One deviation from the instructions was that I made my WRT54G's IP address 192.168.1.254, which makes it easier to remember. When I got home and plugged everything in, it worked exactly as expected. Right now I have the WRT54G and my Hyper-V server sitting upstairs and will leave them there for a few days to see if the wireless bridge is stable. I'll be running a few ping -a commands between my Hyper-V server and guests and the Actiontec router downstairs. I'll also power cycle the WRT54G a few times. If everything still works correctly by the end of the week, I'll get a spot ready to permanently leave the WRT54G and my two servers in the spare bedroom.
I'm a dummy. I have no idea why I never came across the articles on how to set up a Network Bridge between a Hyper-V host's wireless network card and a virtual network. I think I didn't look into that because I could never get my wireless NIC working on the Hyper-V host. I thought it was because I had a cheap ASUS NIC and Windows Server 2008 didn't have the drivers for it, and I could never find the right drivers.
Well, it turns out that one reason I never got that NIC working was because Server 2008 needs to have the Wireless LAN Service feature enabled. Doing that will install the WLAN AutoConfig service. Duh! This was news to me, because Windows saw the NIC before, but I could never enable it and never got any helpful message that stated something along the lines of "You need to install the Wireless LAN Service." Maybe there was something in one of the Event Viewer logs that might have mentioned that, but I never checked. I just assumed that it was a driver issue and never bothered with it again.
Anyway, last week I found several articles on setting up a Network Bridge with Hyper-V, but this one was the only one I saw that mentioned enabling the Wireless LAN Service feature first. I enabled that and my wireless NIC did pick up my WiFi network, but Windows kept on getting mixed up with the network profiles and I could never actually get on the wireless network. I decided not to waste anymore time messing with this since it might be caused by the fact that I set up my host to route between a virtual network, so I'd just be making this more complex. At least I know this is an option now.
About the WRT54G: I ended up not putting the servers upstairs in the spare bedroom; the reason is that the electric outlets in that room are on the same circuit as bunch of other outlets all around the house. I've already tripped that circuit a few times while running two space headers at the same time, so adding two computers to that circuit will overload it even more. Now both servers will sit in my home office, which is on the other side of the foyer from the living room. DD-WRT on the WRT54G is still running strong, so it should be fine to use in my lab. I might eventually get a Gigabit switch to connect to it so that I can transfer files quickly between the two servers.
I did some testing by copying a 20 GB file from a computer connected via wired Ethernet to the Actiontec, to the Hyper-V host connected to the WRT54G. During the file transfer, I was able to download files from miscellaneous Websites to the Hyper-V host and also browse the Internet with IE from within a Hyper-V guest. I didn't notice any major slowness with those other activities. The 20 GB file copy completed after ~4 hours. The WRT54G's CPU load during the copy averaged over 60%, which makes sense since since the file transfer was between the wireless and wired networks.
Whenever my Actiontec router reboots, I have to reboot (power cycle) the WRT54G afterwards, otherwise it won't connect back to the Actiontec. This happened to me twice recently.