NVGRE (Network Virtualization using Generic Routing Encapsulation) is a network virtualization method that uses encapsulation and tunneling to create large numbers of virtual LANs (VLANs) for subnets that can extend across dispersed data centers and layer 2 (the data link layer) and layer 3 (the network layer). The purpose is to enable multi-tenant and load-balanced networks that can be shared across on-premises and cloud environments.
NVGRE was designed to solve problems caused by the limited number of VLANs that the IEEE 802.1Q specification enables, which are inadequate for complex virtualized environments, and make it difficult to stretch network segments over the long distances required for dispersed data centers.
Key capabilities of the NVGRE standard include identifying a 24-bit Tenant Network Identifier (TNI) to address problems associated with the multi-tenant network, and using a Generic Routing Encapsulation (GRE) to create an isolated virtual Layer 2 network that may be confined to a single physical Layer 2 network or extend across subnet boundaries. NVGRE also isolates individual TNIs by inserting the TNI specifier in the GRE header.
The NVGRE specification was proposed by Microsoft, Intel, HP and Dell. NVGRE competes with another encapsulation method, VXLAN (Virtual Extensible LAN).