How to Configure Windows Server 2016 DCB Data Center Bridging

Data Center Bridging (DCB) is a set of IEEE standards that enhance Ethernet to provide a lossless fabric capable of carrying multiple types of traffic including storage, networking, and cluster communications over a single converged network. DCB enables the coexistence of latency-sensitive and high-bandwidth traffic by classifying and prioritizing different traffic types. Windows Server 2016 includes built-in support for DCB through the Data Center Bridging feature, enabling servers to participate in a converged fabric network alongside DCB-capable switches. This tutorial covers installing, configuring, and verifying DCB on Windows Server 2016.

DCB Components and Standards

DCB comprises several complementary IEEE standards. Priority Flow Control (PFC, IEEE 802.1Qbb) provides pause-based flow control per traffic class to eliminate packet loss on specific priority lanes without affecting other traffic. Enhanced Transmission Selection (ETS, IEEE 802.1Qaz) allows allocation of minimum bandwidth guarantees to different traffic classes. Data Center Bridging Exchange (DCBX, IEEE 802.1AB and 802.1Qaz) enables automatic negotiation of DCB capabilities and settings between directly connected devices. Together, these standards create the lossless Ethernet fabric required by RDMA technologies like RoCE and FCoE (Fibre Channel over Ethernet).

Installing the Data Center Bridging Feature

Install the DCB feature on Windows Server 2016 using PowerShell. Open an elevated PowerShell window and run:

Install-WindowsFeature -Name Data-Center-Bridging -IncludeManagementTools

Verify the feature is installed:

Get-WindowsFeature -Name Data-Center-Bridging

Configuring DCB QoS Policies

DCB traffic classification is implemented through QoS policies that match specific traffic types and assign them to priority classes. The typical DCB configuration for a converged fabric carrying SMB Direct (storage) and cluster/management traffic uses two or three priority classes. Create a QoS policy for SMB Direct traffic assigning it to priority 3:

New-NetQosPolicy -Name "SMB_Direct" -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3

Create a QoS policy for cluster heartbeat traffic assigning it to priority 7:

New-NetQosPolicy -Name "Cluster_Heartbeat" -Cluster -PriorityValue8021Action 7

Create a default policy for all other traffic at priority 0:

New-NetQosPolicy -Name "DEFAULT" -Default -PriorityValue8021Action 0

Configuring Priority Flow Control

Enable Priority Flow Control for RDMA traffic on priority 3. PFC causes the switch to send a pause frame to the server when the buffer for that priority class fills up, preventing packet loss:

Enable-NetQosFlowControl -Priority 3

Disable PFC for all other priorities to avoid unnecessary flow control that could stall other traffic types:

Disable-NetQosFlowControl -Priority 0,1,2,4,5,6,7

Verify PFC settings:

Get-NetQosFlowControl

Configuring Enhanced Transmission Selection

Enhanced Transmission Selection allocates minimum bandwidth guarantees to traffic classes. Configure ETS to reserve dedicated bandwidth for RDMA traffic (priority 3), cluster traffic (priority 7), and all other traffic (priority 0):

New-NetQosTrafficClass -Name "SMB_Traffic_Class" -Priority 3 -BandwidthPercentage 50 -Algorithm ETS
New-NetQosTrafficClass -Name "Cluster_Traffic_Class" -Priority 7 -BandwidthPercentage 1 -Algorithm ETS

View all configured traffic classes and their bandwidth allocations:

Get-NetQosTrafficClass

Applying DCB Settings to Network Adapters

Apply the DCB QoS policies to the network adapters that carry converged traffic. First, enable QoS on the target adapter:

Enable-NetAdapterQos -Name "Ethernet1"

Verify QoS is enabled and DCB capabilities are reported by the adapter:

Get-NetAdapterQos -Name "Ethernet1"

Check that the adapter reports support for PFC and ETS in the capabilities output. If OperationalFlowControl shows the correct priorities, DCB is active on the adapter.

Verifying DCB Configuration

View all current QoS policies to confirm they are in place:

Get-NetQosPolicy | Select-Object Name, Template, PriorityValue8021Action, NetDirectPort

Check traffic class bandwidth allocations:

Get-NetQosTrafficClass | Select-Object Name, Priority, BandwidthPercentage, Algorithm

Verify that PFC is correctly enabled only for priority 3:

Get-NetQosFlowControl | Select-Object Priority, Enabled

Configuring DCBX Mode

DCBX controls whether the server accepts DCB configuration from a connected switch or enforces its own locally configured settings. In environments with DCB-capable switches, DCBX Willing mode allows the switch to push DCB parameters to the server. In environments without DCB switches, or for consistent server-enforced settings, configure DCBX as not willing:

Set-NetQosDcbxSetting -Willing $false

To allow the switch to configure DCB settings on the server (Willing mode):

Set-NetQosDcbxSetting -Willing $true

View current DCBX mode:

Get-NetQosDcbxSetting

Best Practices for DCB on Windows Server 2016

Always configure DCB consistently across all servers and switches in the converged fabric to avoid traffic class mismatches that can cause unexpected behavior. Use the same priority assignments for RDMA traffic (typically priority 3) across all servers and switches in the environment. Allocate at least 30 to 50 percent bandwidth to RDMA traffic classes to ensure sufficient throughput for storage operations. Set DCBX to not willing on servers when using statically configured DCB policies to prevent switch-pushed configurations from overriding server settings. Test DCB configuration using RDMA workloads and performance monitoring before deploying in production. Document all QoS policies, traffic classes, and PFC settings for each server to simplify troubleshooting.

Properly configured DCB on Windows Server 2016 enables reliable converged networking that can simultaneously carry storage, cluster, and VM traffic over a single high-speed Ethernet fabric, eliminating the need for separate dedicated storage networks and reducing cabling and switch infrastructure costs.