Technical Anshu
Tutorials Blog
🌐 Nested Networking

Nested Proxmox VMs Have No Network The Port Group Security Fix

The strangest nested-lab fault: Proxmox itself is perfectly online, yet every VM inside it is network-dead. Nothing is broken — ESXi is doing exactly what its default security policies tell it to. Here is the diagnosis and the three-setting fix.

✍️ Technical Anshu🖥️ ESXi + Proxmox⏱️ 7 minute read
🎥 Watch the video build first — then use this page when the nested guests come up silent

The symptoms mislead everyone the first time. Proxmox inside ESXi pings the gateway, downloads updates, loads its web UI — clearly the network works. But a VM created inside that Proxmox gets no DHCP address, or gets one and then cannot reach anything, and pinging it from outside returns silence. The fault is not in Proxmox, not in the guest, and not in your cables. It is a security policy on the ESXi port group doing its designed job: dropping frames that appear to come from a machine the switch does not know.

ESXi port group — Security policies for the nested lab port group (recreated)
Security — all three must accept
Promiscuous modeACCEPT
MAC address changesACCEPT
Forged transmitsACCEPT
Defaults are Reject. With defaults, frames from nested VMs are dropped on sight — Proxmox's own traffic, which uses the VM's real MAC address, passes untouched. That split behaviour is the fingerprint of this fault.
👆 Three policies, one port group. Set them on a dedicated lab port group, not on the one your other VMs depend on.
1

Read the Symptom Correctly — Outer Healthy, Inner Silent

The split personality is the diagnosis. ESXi knows exactly one machine on that port: the Proxmox VM, with one MAC address. Traffic from Proxmox itself uses that MAC and flows normally. But every guest inside Proxmox transmits with its own MAC address, which arrives at the ESXi virtual switch looking forged — a different machine apparently hiding behind the Proxmox VM's port. Default policy says drop. Result: the outer layer is healthy, the inner layer is mute, and every troubleshooter who starts inside the guest wastes an hour.

2

Why ESXi Drops the Frames — Forged Transmits and MAC Changes

The vSwitch security policies exist to stop one VM impersonating another. Forged transmits: Reject drops any frame whose source MAC differs from the VM's assigned MAC — which describes every nested guest frame ever sent. MAC address changes: Reject similarly refuses traffic for MACs the guest OS claims beyond its assigned one. And Promiscuous mode: Reject prevents the port from receiving frames addressed to those other MACs, so even replies cannot find their way back. Networking textbooks use nested virtualization as the textbook example for these policies — it is the workload they were guaranteed to break.

3

The Fix — Three Policies to Accept

  1. In ESXi, go to Networking and select the port group the Proxmox VM is connected to
  2. Edit its settings and open the Security section
  3. Set Promiscuous mode to Accept
  4. Set MAC address changes to Accept
  5. Set Forged transmits to Accept
  6. Save, then restart the nested guest (or its network) and test again

On a distributed switch the same three policies live on the distributed port group. No reboot of Proxmox or ESXi is needed — the change bites as soon as the guest retransmits.

4

Scope It to a Lab Port Group — the Honest Security Trade

These settings loosen real protections, so be deliberate about where they live. Promiscuous Accept lets the port hear traffic not addressed to it; Forged Transmits Accept lets a VM send as another address. On a port group shared with production VMs, that is a genuine weakening. The clean pattern is a dedicated port group (ideally its own VLAN) for the nested lab, with the three Accepts applied there and nowhere else. The Proxmox VM moves to that port group; everything else keeps default Reject policies and full protection.

5

Prove It End to End

  1. Boot a nested guest and confirm it receives a DHCP address
  2. From the guest, ping the gateway, then a public IP, then a hostname — three separate layers, three separate proofs
  3. From another machine, ping the guest — the return path matters as much as the way out
  4. If DHCP still fails, confirm the Proxmox VM's adapter is really attached to the edited port group; editing the wrong group is the classic own goal

🎥 Watch the Full Video

Watch the nested Proxmox video for the full build — this fix is the step that turns a half-working lab into a whole one.

▶️ Watch Full Video
❓ Frequently Asked Questions

Proxmox itself lost network after I changed the policies. What happened?

Most likely the policies were edited on a different port group than the one the Proxmox VM is attached to, or the VM's adapter got reconnected to another group during editing. Check the Proxmox VM's network adapter setting and confirm it names the port group you edited. The three Accept settings themselves never break the outer VM's traffic — they only permit more, never less.

Is setting these to Accept dangerous?

On the wrong port group, it is a real weakening: promiscuous mode exposes traffic, and forged transmits allow address spoofing. That is why the recommendation is a dedicated lab port group, ideally on its own VLAN, with the Accepts set only there. Scoped to a lab segment containing only your nested hosts, the risk is contained and the trade is a fair one.

Does the same fix apply on a vSphere distributed switch?

Yes. The same three security policies — Promiscuous mode, MAC address changes and Forged transmits — exist on distributed port groups, and nested guests need all three set to Accept there too. The menu location differs slightly from a standard switch port group, but the policy names and the reasoning are identical.

This guide is based on the Technical Anshu Proxmox nested VM setup video • Stuck on a step? Ask in the video comments — you will get a reply 🙏