network virtualization tools in linuxqniyaz/olf_2014v2.pdf · linux containers (lxc) light‐weight...

24
Network Virtualization Tools in Linux PRESENTED BY: QUAMAR NIYAZ & AHMAD JAVAID

Upload: others

Post on 05-Oct-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Network Virtualization Tools in Linux

PRESENTED  BY:

QUAMAR  NIYAZ  &  AHMAD  JAVAID

Page 2: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Contents Introduction Types of Virtualization Network Virtualization OS Virtualization OS‐Level Virtualization Some Virtualization Tools + Features Some Virtualization Scenarios

Page 3: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Introduction Virtualization:An illusion of resource ownership

Exists since 1960s First used in Mainframes OS level illusion to the processes about CPU, memory, etc. ownership

Meaning broadened in last few decades

Page 4: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Types of Virtualization Various kinds of virtualizations:OS VirtualizationNetwork VirtualizationApplication Level VirtualizationHardware Virtualization… and many more

Our Focus: Network Virtualization  Will also use OS Virtualization

Page 5: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

*Image Source: http://cloud‐distribution.blogspot.com/2010_02_01_archive.html

Page 6: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Network Virtualization Abstraction of physical network Co‐existence of several virtual networks on a single physical network

Involves platform/resource virtualization Resources required to interconnect  We use OS Virtualization 

Page 7: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

*Image Source: http://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Network_Virtualization/PathIsol.html

Page 8: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

OS Virtualization Sometimes categorized as Platform Virtualization   Computer Hardware Virtualization

Several Categories defined, major ones listed here Full‐Virtualization uses hypervisors or VMMs Guest OS is unaware of the virtualized environment Para‐Virtualization Modified guest kernel Hypervisor provides hypercall interfacesOS‐level Virtualization (Mostly Linux based)

Page 9: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

OS Virtualization (contd.) Tools for Full and Para virtualization Available for Linux + Windows Vmware Hyper‐V Xen

Visual Example

Page 10: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

*Image Source: https://www.suse.com/documentation/sles11/singlehtml/book_xen/book_xen.html

Page 11: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

OS‐level Virtualization The guest OS shares the host kernel

Does not use any hypervisor Executes directly on the host OS

Performs better compared to other technique

Mostly Linux based

Definitely comes with limitations … !!  

Page 12: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

OS‐level Virtualization

*Image Source: http://www.vpshosting.com.hk/cn/cloud‐vps‐infrastructure/cloud‐vps‐technology

Page 13: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

OS‐level Virtualization tools Linux Container (LXC) Two Linux kernel features neededNamespace: gives illusion of isolated instance to processes within itselfCgroups (control groups):  used to limit, account, and isolate resource usage of process groups

Linux‐V server

OpenVZ

Page 14: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Network Namespace Six kinds of namespace in LinuxMount, UTS, IPC, PID, Network, Username  

Network namespace provides isolation of system resources associated with networkingdifferent and separate instances of network interfaces and routing table. 

Page 15: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Network namespace (contd.) Creating and listing network namespace ip netns add vnet ip netns list

Assigning Interfaces network namespace ip link add veth0 type veth peer name veth1 ip link set veth1 netns vnet

Configuring interfaces in network namespace ip netns exec vnet ifconfig veth1 10.1.1.11/24 up

Access a network namespace ip netns exec vnet bash

Page 16: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Linux Containers (LXC) Light‐weight virtualization in between chroot and a full fledged virtual machine.

GoalCreate a close to standard Linux environment

Based on namespace isolation and cgroup

Allows to run a complete Linux instance

Page 17: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Linux Containers (contd.) LXC can be installed from Ubuntu repository sudo apt-get install lxc

Creating an LXC From template: sudo lxc-create -n ub1 -t Ubuntu

Clone: lxc-clone -n ub2 -o ub1

Start/Shut‐down an LXC lxc-start -n ub1

lxc-shutdown -n ub1

Page 18: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Linux Containers (contd.) LXC Configuration available in its directory/var/lib/lxc/ub1/config

Edit the config file for network settingslxc.network.link = br0lxc.network.type = vethlxc.network.flags = uplxc.network.veth.pair = c1eth1lxc.network.ipv4 = 10.10.1.11/24

Page 19: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Open vSwitch (OVS) Open source software switch Implements basic Ethernet switch  Capable of being a production quality, multi‐layer virtual switch at its extreme

Can operate both as  software switch  control stack for programmable hardware switches

Implements open flow protocol for SDNs

Page 20: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Features of OVS Security VLAN isolation, traffic filtering

Monitoring NetFlow, sFlow, SPAN, RSPAN

QoSTraffic queuing, traffic shaping

Automated Control Open flow, ovsdb mgmt. protocol

Page 21: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

OVS utilities Open vswitchd management utility: ovs-vsctl list-br add-br br0 add-port br0 eth0 show br0

Open‐flow enabled switch management utility: ovs-ofctl

Page 22: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Network Virtualization Scenarios Full‐virtualization based VMs 

Networking features Bridged mode, NAT, Host only

VMs attached with Open vSwitch ports

Network namespace and its integration with OVS

LXC and its integration with OVS

Page 23: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Hands‐On ScenarioHost Machine 1

Virtual Host 1 Virtual Host 2

eth0 eth0

veth1 veth2

eth0

10.10.1.11 10.10.1.12

Br0(10.10.1.1)

Host Machine 2

Virtual Host 1 Virtual Host 2

eth0 eth0

veth1 veth2

eth0

10.10.1.21 10.10.1.22

Br0(10.10.1.2)

Page 24: Network Virtualization Tools in Linuxqniyaz/OLF_2014v2.pdf · Linux Containers (LXC) Light‐weight virtualization in between chrootand a full fledged virtual machine. Goal Create

Thank You!