Skip to content
LinkState
Go back

Promiscuous mode will not fix broken tenant isolation

Introduction to Promiscuous Mode

Promiscuous mode is a NIC setting that forces the controller to deliver every Ethernet frame it receives to the host’s network stack, bypassing the hardware filter that normally passes only frames addressed to the NIC’s own MAC (or joined broadcast/multicast groups).

Common Use Cases

Misconceptions


Understanding Virtual Traffic Visibility

Layer‑2 Domain in Virtualization

Virtual NICs (vNICs) connect to a virtual switch (vSwitch) that emulates a Layer‑2 segment. All VMs attached to the same vSwitch port group or Linux bridge share that broadcast domain. The vSwitch maintains a forwarding database (FDB) that maps MAC addresses to ports.

What a Promiscuous Guest Actually Sees

When a vSwitch knows the destination MAC, it forwards the frame only to the egress port(s) associated with that MAC—not to every port. Consequently, a guest in promiscuous mode receives:

Traffic that is switch‑filtered (e.g., a TCP flow between two VMs whose MACs are known) will not be delivered to a third VM, even if that VM is in promiscuous mode. This creates a false sense of visibility: an administrator may see only ARP and broadcast traffic and conclude the network is quiet while application traffic remains hidden.


Enabling Promiscuous Mode

Linux

# Enable promiscuous mode on eth0
sudo ip link set dev eth0 promisc on
# Verify
ip link show eth0 | grep promisc
# Example output: ... promiscuity 1 ...

# Disable promiscuous mode
sudo ip link set dev eth0 promisc off

Note: The ethtool method (ethtool -K eth0 promisc on) works on many drivers but ip link is the most portable.

Windows (PowerShell)

# Enable promiscuous mode on the adapter named "Ethernet"
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Promiscuous Mode" -Value "Enabled"
# Verify
Get-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Promiscuous Mode"
# Disable
Set-NetAdapterAdvancedProperty -Name "Ethernet" -DisplayName "Promiscuous Mode" -Value "Disabled"

Legacy netsh (version‑dependent):

netsh interface set interface name="Ethernet" admin=enabled
netsh interface set interface name="Ethernet" promisc=enabled

GUI Configuration for Virtualization Platforms

PlatformLocationSettingEffect
VMware vSphere (Standard Switch)Host → Configure → Networking → Virtual Switches → vSwitch0 → Edit → SecurityPromiscuous Mode (Accept/Reject)Accept → guest NICs see all frames on the vSwitch; Reject → normal filtering.
VMware vSphere (Distributed Switch)Distributed Switch → Port Group → Edit → SecurityPromiscuous Mode (Accept/Reject)Same semantics; applies to all member ports.
Microsoft Hyper‑VVM Settings → Network Adapter → Advanced FeaturesEnable Allow promiscuous mode (checkbox)Grants the VM promiscuous capability if the virtual switch allows it.
Oracle VM VirtualBoxVM Settings → Network → Adapter X → AdvancedPromiscuous Mode (Deny, Allow VMs, Allow All)Allow All → guest sees all frames on the host‑only or bridged network; Allow VMs → only VMs on the same host can see each other’s traffic.
Linux KVM / libvirtXML domain definition (virsh edit <domain>)Set the underlying OVS/TAP port: ovs-vsctl set Interface <tap> options:promiscuous=trueGuest can request promiscuous; the host bridge must be configured to allow it.
Open vSwitch (stand‑alone)CLIovs-vsctl set Interface <iface> options:promiscuous=trueMakes the OVS port deliver all frames to the attached device.

Security Implications and Risks


Troubleshooting with Promiscuous Mode

Identifying Layer‑2 Issues

Enabling promiscuous mode on a diagnostic VM allows capture of:

Comparing what the diagnostic VM sees with what the problematic VM expects helps pinpoint whether frames are dropped upstream (physical switch), filtered by the vSwitch, or never generated.

Analyzing Traffic Patterns

Using tcpdump or Wireshark:

# Basic capture
tcpdump -i eth0 -w capture.pcap

# Show VLAN tags on an access port (requires vSwitch to pass tags)
tcpdump -vv -e -i eth0 vlan

You can measure ARP latency, detect broadcast storms, spot protocol anomalies, and validate VLAN tagging.

Common Pitfalls

SymptomApparent Cause (with promiscuous)Actual Cause
No TCP SYN seen from client to server“Server not responding”Asymmetric routing: SYN reaches server via a different path; return path blocked by firewall.
Only ARP and broadcast traffic visible“Network is idle”vSwitch has learned MACs and forwards unicast directly; monitoring VM is on a different port group or VLAN.
High CPU on monitoring VM“Capturing too much traffic”Monitoring VM is on a trunk receiving all VLANs; without filtering it processes unnecessary frames.
Missing multicast streams“Application not receiving multicast”IGMP snooping on the vSwitch blocks the multicast group; promiscuous mode sees IGMP reports but not the data traffic.

These examples show how promiscuous mode can hide the real issue (a forwarding or filtering decision) while giving a false sense of visibility.


Limitations and Drawbacks

Performance Overhead

Security Exposure

Scaling Limitations


Alternatives to Promiscuous Mode

Port Mirroring (SPAN/RSPAN/ERSPAN)

Network Tapping

Virtual Network Functions (VNFs) and Service Chaining


By understanding the true scope of promiscuous mode, its risks, and the available alternatives, administrators can make informed decisions that balance visibility needs with security and performance requirements.


Share this post on:

Previous Post
Retransmission lists that never drain
Next Post
Originator ID and cluster list side effects on propagation