VMware Cloud Community
remixedcat
Contributor
Contributor

Vmware ESXI within Hyper-v (server 2012) networking issue

I am trying to get esxi running within hyper-v and it won't recognize the virtual switch even though I got it setup properly and it works with any other VMs on this system.

http://i.imgur.com/4rCA3.png

Hyper-V-Virtual-Switch-Issue-421.PNG

I only have one NIC but it works fine with other VMs.

191 Replies
EvgenijSmirnovB
Contributor
Contributor

Well, that kinda is the question, isn't it? You can't simply "set" it on a Hyper-V vSwitch the way you'd do it on vSphere. Since I haven't found any other settings, I *think* that Setting MACAddressSpoofing to ON and injecting the promiscous mode cllause into the XML file of the VM should do the trick - but it doesn't Smiley Sad so obviously I'm missing something here. Could be as simple as Server 2012R2 vs. Windows 8.1 but http://technet.microsoft.com/en-us/library/hh857623.aspx appears to suggest there is no difference in this regard...

Reply
0 Kudos
dbutch1976
Hot Shot
Hot Shot

https://communities.vmware.com/thread/473299

Ahhh, sorry about that, I was confused by the terminology.  When you're saying talking about the VMs you're actually referring to Nested Hosts right?  (Virtual machines running ESXi 5.5 from within Hyper-V on Windows 8.1)

Your nested hosts are booting up and getting IPs, so the NIC drivers are working, or at least working enough not to throw and error or purple screen of death.

You are able to access the ESXi 5.5 console on the nested hosts right?  If so, could you answer a few questions?

1.  How many vNics do you have running on the nested host?  Have you tried multiple vNics?  Do you see the same behaviour on each Nic?

2.  Are the Nics coming up as 100 half duplex?

I attempted something similar to what you're doing using autodeploy, but I abandoned it because VMware Workstation is just simply so much easier to work with.  The link to my progress is above, not sure if there's anything you might find useful.

Even though I got Nested ESXi hosts to boot into my vCenter I think I ran into the exact same issues you're facing now, I couldn't find a promiscious mode/forged transmits equivlent in Hyper-V, so my Networking never worked properly.

Reply
0 Kudos
admin
Immortal
Immortal

The networking issues could be a bug in my tulip driver patch.  In tulip_start_xmit, when skb_linearize fails, I return 0 (success).  You might try returning 1 instead.

Reply
0 Kudos
EvgenijSmirnovB
Contributor
Contributor

Could you please elaborate some? So far, I have used the VIB distributed in this thread and elsewhere. I have no problem patching manually but would certainly need sources. Where do I get those?

Thanks in advance!

Reply
0 Kudos
admin
Immortal
Immortal

See my

Reply
0 Kudos
EvgenijSmirnovB
Contributor
Contributor

OK, got it. Thanks, will give it a try. Any idea what the modification is going to break beside fixing connectivity? 😉

Reply
0 Kudos
admin
Immortal
Immortal

No ideas! 🙂 

Reply
0 Kudos
remixedcat
Contributor
Contributor

Do it for SCIENCE!

Reply
0 Kudos
EvgenijSmirnovB
Contributor
Contributor

Any suggestion which Linux distro / version I should be using? Ubuntu 14.04 seems to be far ahead of the game in terms of GCC version...

Reply
0 Kudos
admin
Immortal
Immortal

Ubuntu 8.04 LTS (Hardy Heron) should be in the ballpark.

Reply
0 Kudos
obi7ster
Contributor
Contributor

Hi,

I think i have found the solution to the "networking problem".

I have Hyper-V installed as role in win 2012 r2 standard. I have created VM and installed ESXi 5.5. Of course I need to add ignoreHeadless=True on boot and create customized esxi boot cd (ESXi Customizer). Also need to add vmx.allowNested=True on VM nested in esxi.

So, I created some kind of "pyramid": Hyper-V(hypervisor) -> VM(ESXi) -> VM (Win7).

At that point I came across the "networking problem"- simply put: no network connected, I cannot get IP from DHCP or set static address.

To solve this problem you need enable: "MAC spoofing" on hyper-V VM. Legacy network adapter-> advanced settings (or similar option) -> check MAC SPOOFING checkbox. Of Course you need to add "Legacy network adapter" or ESXi won't detect the adapter. I have also add "allow promiscuous mode" line in hyper V (VM configuration file). I don't know, is that necessary,  but I added this "just in case"

Bellow, I present the print screens. Unfortunately, I have polish version of windows and  all the settings are translated to polish. But I translated the important options to English.

pastedImage_1.png

After i check the "Mac spoofing" check box the network on top the VM pyramid started to work and the machine got address from DHCP.

If VM file will require to create new file, try to power off machine and disable the service in Hyper V manager. Save the file and start the service again.

I hope it helps someone.

Good Luck,

Raf Smiley Happy

PS: Sorry for my English, I hope you understand what I mean and you will solve the issue.

Reply
0 Kudos
dureimar
Contributor
Contributor

Hi everyone!

Has anyone resoled the networking issue?

What i've got ESX 5.1 with tulip driver installed with a Legacy Network Adapter on Hyper-V Windows 8.1

I tried <allow_promiscuous_mode type="string">TRUE</allow_promiscuous_mode> and MAC Spoofing.

I have only one NIC on ESXi.

I have two virtual switches on Hyper-V: Internal with IP range 192.168.1.1 and External with IP address 172.x.x.x

What I have found out. I can obtain DHCP address in both cases, whether I'm connected to Internal or External virtual switches.

In case if I'm connected to Internal switch, network test fails to pass.

In case if I'm connected to the External switch, network test passes OK! I can ping default gateway and DNS servers and even the hosts on the Internet, but I cannot ping the hosts on my local network.

Looks like it is related with MAC address resolving or something related.

Has anyone the idea?

Reply
0 Kudos
bakkerb
Contributor
Contributor


Hi Dureimar,

Seems I am not the only one experiencing this issue, or at least very similar. see my post at https://communities.vmware.com/thread/496572

If you manage to find the solution, with or without help from this forum, then please also let me know in private message. I am really eager to get this issue resolve. I will do the same for you when I find the solution sooner then you do.

Kind regards,

Bastiaan Bakker

Reply
0 Kudos
franklinb
Contributor
Contributor

So I am experiencing the same networking connectivity issue between my Windows 8.1 hyper-V host and my ESXi 5.5 guest

Here's my steps so far:

- Built customised ESXi 5.5 ISO using the tulip.vib and VMware-ESXi-5.5-RollupISO.iso

- Created Virtual Switch

     - name: vmlan1

     - type: Internal

- Configured local nic with 10.0.0.10/24 and disabled all other services except IPv4

- Created new Hyper-V VM

     - generation 1

     - Legacy Network Adapter (has to be Legacy)

          - Virtual Switch: vmlan1

     - 4096MB RAM (min required for ESXi 5.5)

     - 2 vCPU (min required for ESXi 5.5)

     - Mount ISO

     - Create new 10GB VDHX hard drive

- Boot VM

     - Interrupt boot with Shift-O and add " ignoreheadless=TRUE" to the existing text i.e. "runweasel ignoreheadless=TRUE"

     - Install ESXi

     - Boot into ESXi (again requiring the Shift-O and ignoreheadless=true text added to the end with a space in between)

     - Troubleshooting -> Enable Shell

     - Alt+F1 and login

     - enter "esxcfg-advcfg –-set-kernel “TRUE” ignoreHeadless" (this will enable headless ignore for all future boots so no need to enter again)

     - type exit to logout, Alt+F2, disable Shell

     - Configure vm nic with 10.0.0.11/24 and restart management network

After doing this I cannot ping in either direction between ESXi and the host Smiley Sad

So further steps after reading this:

- Stop Hyper-V Machine Virtual Management service (otherwise I can't modify the VM's xml config file)

- Edit VM's XML file

     - Add line in <global> section:

          <allow_promiscuous_mode type="string">TRUE</allow_promiscuous_mode>

- Save and restart service

- Boot VM

Same deal Smiley Sad

Reply
0 Kudos
mikedeatworld
Contributor
Contributor

Hello!  First post here.

Did anyone get this documented or blogged? This would be great for labs!

I was hoping to see if anyone has seen this issue.

So, I have Hyper-V 2012 R2 in my lab and I'd like to, virtualize ESXi 5.1 as a guest VM.

I'm able to:

  • Set a Legacy NIC
  • Boot into the ESXI 5.1 installer
  • Set the runweasel ignoreHeadless=TRUE
  • Install ESXi 5.1 successfully (kind of, see below):

    However, after the install completes, the VM is rebooted. After the reboot, the VM goes right back into the ESXI installer loops and attempts / prompts to upgrade/install ESXI.  After reboot, the installer will be presented again....not option to move past that.

    Has anyone seen this? Does anyone have any tips on getting past this issue?

Thank you,

MD-

Reply
0 Kudos
mikedeatworld
Contributor
Contributor

Okay, so its working. I just had to bounce the box, and then tell the installer to NOT install ESXI.

Then things were fine. After one more reboot...

Reply
0 Kudos
admin
Immortal
Immortal

It sounds like you didn't eject the virtual DVD after installation.

Reply
0 Kudos
ZuberFowler
Contributor
Contributor

Help for others:

I am able to now connect to ESXi with vSphere client from  the Hyper-v level machine.

I thought I would draw attention to the evolution of the statement in this discussion:

<allow_promiscuous_mode type="string">TRUE</allow_promiscuous_mode> from

<allow_promiscuous_mode type="boolean">TRUE</allow_promiscuous_mode>

Contrary to intuition the correct type appears to be "string". Not that that is all that is

required...


From my testing, the network only works at all if the Hyper-v switch is "External" associated

with a real NIC (no "Internal" or "Private").

Not even a non--Hyper-v loopback connected to a Hyper-v "External" switch works.

It also appears that I have to ping the ESXi address from a command prompt to start it up.

I haven't created a VM under ESXi as of yet, so I can't yet speak to that part of the network.

Question:

This is my first experience with ESXi. With all of the fiddling with this, I'm not sure if I deleted

the Hyper-v SCSI adapter on the last install or if ESXi just doesn't recognize it in any case

(no driver for it)? I know that in this virtuality IDE vs SCSI makes little difference, it just seems

ESXi on a real machine would most likely use SCSI, and I don't want to have to reinstall to

find out.

Reply
0 Kudos
NoSpamPleaze
Contributor
Contributor

hi,

Would it be possible to create a VIB for Hyper-V sinthetic NIC, avoiding the need to use legacy adapter?

I managed to use tulib.vib to run ESXi 6.0 inside Hyper-V VM, but would like to do it with sinthetic NIC, rather than legacy NIC.

I found Download Linux Integration Services Version 4.0 for Hyper-V from Official Microsoft Download Center and kernel/git/torvalds/linux.git - Linux kernel source tree but have no clue how to continue, not a Linux expert at all Smiley Happy

Thanks!

Reply
0 Kudos
admin
Immortal
Immortal

Sure, it's possible.  It's hard to justify the effort, though.

Reply
0 Kudos