Network Virtualization in Cloud Computing
Network Virtualization is a process of logically grouping physical networks and making them operate as single or multiple independent networks called Virtual Networks.
Tools for Network Virtualization :
- Physical switch OS –
It is where the OS must have the functionality of network virtualization.
- Hypervisor –
It is which uses third-party software or built-in networking and the functionalities of network virtualization.
The basic functionality of the OS is to give the application or the executing process with a simple set of instructions. System calls that are generated by the OS and executed through the libc library are comparable to the service primitives given at the interface between the application and the network through the SAP (Service Access Point).
The hypervisor is used to create a virtual switch and configuring virtual networks on it. The third-party software is installed onto the hypervisor and it replaces the native networking functionality of the hypervisor. A hypervisor allows us to have various VMs all working optimally on a single piece of computer hardware.
Functions of Network Virtualization :
- It enables the functional grouping of nodes in a virtual network.
- It enables the virtual network to share network resources.
- It allows communication between nodes in a virtual network without routing of frames.
- It restricts management traffic.
- It enforces routing for communication between virtual networks.
Network Virtualization in Virtual Data Center :
1. Physical Network
- Physical components: Network adapters, switches, bridges, repeaters, routers and hubs.
- Grants connectivity among physical servers running a hypervisor, between physical servers and storage systems and between physical servers and clients.
2. VM Network
- Consists of virtual switches.
- Provides connectivity to hypervisor kernel.
- Connects to the physical network.
- Resides inside the physical server.
Advantages of Network Virtualization :
Improves manageability –
- Grouping and regrouping of nodes are eased.
- Configuration of VM is allowed from a centralized management workstation using management software.
Reduces CAPEX –
- The requirement to set up separate physical networks for different node groups is reduced.
Improves utilization –
- Multiple VMs are enabled to share the same physical network which enhances the utilization of network resource.
Enhances performance –
- Network broadcast is restricted and VM performance is improved.
Enhances security –
- Sensitive data is isolated from one VM to another VM.
- Access to nodes is restricted in a VM from another VM.
Disadvantages of Network Virtualization :
- It needs to manage IT in the abstract.
- It needs to coexist with physical devices in a cloud-integrated hybrid environment.
- Increased complexity.
- Upfront cost.
- Possible learning curve.
Examples of Network Virtualization :
- The performance and speed of busy networks can be improved by VLAN.
- VLAN can simplify additions or any changes to the network.
Network Overlays –
- A framework is provided by an encapsulation protocol called VXLAN for overlaying virtualized layer 2 networks over layer 3 networks.
- The Generic Network Virtualization Encapsulation protocol (GENEVE) provides a new way to encapsulation designed to provide control-plane independence between the endpoints of the tunnel.
Network Virtualization Platform: VMware NSX –
- VMware NSX Data Center transports the components of networking and security such as switching, firewalling and routing that are defined and consumed in software.
- It transports the operational model of a virtual machine (VM) for the network.
Applications of Network Virtualization :
- Network virtualization may be used in the development of application testing to mimic real-world hardware and system software.
- It helps us to integrate several physical networks into a single network or separate single physical networks into multiple analytical networks.
- In the field of application performance engineering, network virtualization allows the simulation of connections between applications, services, dependencies, and end-users for software testing.
- It helps us to deploy applications in a quicker time frame, thereby supporting a faster go-to-market.
- Network virtualization helps the software testing teams to derive actual results with expected instances and congestion issues in a networked environment.