This article includes a list ofgeneral references, butit lacks sufficient correspondinginline citations. Please help toimprove this article byintroducing more precise citations.(November 2024) (Learn how and when to remove this message) |
In computing,network virtualization is the process of combining hardware and software network resources and network functionality into a single, software-based administrative entity, avirtual network. Network virtualization involvesplatform virtualization, often combined with resource virtualization.
Network virtualization is categorized as eitherexternal virtualization, combining many networks or parts of networks into a virtual unit, orinternal virtualization, providing network-like functionality to software containers on a single networkserver.
Insoftware testing, software developers use network virtualization to test software which are under development in a simulation of the network environments in which the software is intended to operate. As a component ofapplication performance engineering, network virtualization enables developers to emulate connections between applications, services, dependencies, and end users in a test environment without having to physically test the software on all possible hardware or system software. The validity of the test depends on the accuracy of the network virtualization in emulating real hardware andoperating systems.
Various equipment and software vendors offer network virtualization by combining any of the following:
External network virtualization combines or subdivides one or morelocal area networks (LANs) into virtual networks to improve a large network's or data center's efficiency. A virtual local area network (VLAN) andnetwork switch comprise the key components. Using this technology, asystem administrator can configure systems physically attached to the same local network into separate virtual networks. Conversely, an administrator can combine systems on separatelocal area networks (LANs) into a single VLAN spanning segments of a large network.
External network virtualization is envisioned to be placed in the middle of the network stack and help integrating different architectures proposed for next generation networks.[1]
Internal network virtualization configures a single system withsoftware containers, such asXenhypervisor control programs, or pseudo-interfaces, such as aVNIC, to emulate a physical network with software. This can improve a single system's efficiency by isolating applications to separate containers or pseudo-interfaces.[2]
Citrix andVyatta have built a virtual networkprotocol stack combining Vyatta's routing, firewall, and VPN functions with Citrix's Netscalerload balancer, branch repeaterwide area network (WAN) optimization, andsecure sockets layer VPN.
OpenSolaris network virtualization provides a so-called "network in a box" (seeOpenSolaris Network Virtualization and Resource Control).
Microsoft Virtual Server uses virtual machines to make a "network in a box" forx86 systems. These containers can run different operating systems, such asMicrosoft Windows orLinux, either associated with or independent of a specificnetwork interface controller (NIC).
Network virtualization may be used in application development and testing to mimic real-world hardware and system software. Inapplication performance engineering, network virtualization enables emulation of connections between applications, services, dependencies, and end users for software testing.
Wireless network virtualization can have a very broad scope ranging from spectrum sharing, infrastructure virtualization, to air interface virtualization. Similar to wired network virtualization, in which physical infrastructure owned by one or more providers can be shared among multiple service providers, wireless network virtualization needs the physical wireless infrastructure and radio resources to be abstracted and isolated to a number of virtual resources, which then can be offered to different service providers. In other words, virtualization, regardless of wired or wireless networks, can be considered as a process splitting the entire network system. However, the distinctive properties of the wireless environment, in terms of time-various channels, attenuation, mobility, broadcast, etc., make the problem more complicated. Furthermore, wireless network virtualization depends on specific access technologies, and wireless network contains much more access technologies compared to wired network virtualization and each access technology has its particular characteristics, which makes convergence, sharing and abstraction difficult to achieve. Therefore, it may be inaccurate to consider wireless network virtualization as a subset of network virtualization.[3]
Until 1 Gbit/s networks, network virtualization was not suffering from the overhead of the software layers or hypervisor layers providing the interconnects. With the rise of high bandwidth, 10 Gbit/s and beyond, the rates of packets exceed the capabilities of processing of the networking stacks.[citation needed] In order to keep offering high throughput processing, some combinations of software and hardware helpers are deployed in the so-called "network in a box" associated with either a hardware-dependentnetwork interface controller (NIC) usingSRIOV extensions of the hypervisor or either using afast path technology between the NIC and the payloads (virtual machines or containers).
For example, in case ofOpenstack, network is provided by Neutron which leverages many features from the Linux kernel for networking: iptables, iproute2, L2 bridge, L3 routing or OVS. Since the Linux kernel cannot sustain the 10G packet rate[citation needed], then some bypass technologies for afast path are used. The main bypass technologies are either based on a limited set of features such asOpen vSwitch (OVS) with itsDPDKuser space implementation or based on a full feature and offload of Linux processing such as6WIND virtual accelerator.