16/10/2024 Prof.
Ahmed Didouh 1
Course Objectives
• Chapter 1: Introduction to Network Virtualization and SDN
• Chapter 2: Network Hypervisors and Flow Management
• Chapter 3: Network Virtualization Platforms
• ONOS Plateform
• OpenDayLight
• Chapter 4: Network Function Virtualization (NFV)
• Chapter 5: Overview of OpenStack for NFV Deployment
16/10/2024 Prof. Ahmed Didouh 2
Intuitive
exercice 1
• A network administrator must configure the switches and the
router in the figure so that the machines from VLAN3 and
VLAN4 can communicate with the company server in
VLAN2. Which two Ethernet segments need to be
configured as trunk links?
16/10/2024 Prof. Ahmed Didouh 3
Intuitive
exercice 2
A switch has been configured as shown in the figure above. Host 1 is connected to port 0/4
with the IP address 192.168.1.22/28. Host 2 is connected to port 0/5 with the IP address
192.168.1.33/28. Host 3 is connected to port 0/6 with the IP address 192.168.1.30/28.
1. Can Host 1 ping Host 2?
2. Can Host 1 ping Host 3?
3. Can Host 2 ping Host 3?
16/10/2024 Prof. Ahmed Didouh 4
Lab2 tutorial : OpenVirteX
16/10/2024 Prof. Ahmed Didouh 5
Server virtualisation vs Network virtualisation
16/10/2024 Prof. Ahmed Didouh 6
Network Virtualization
• Virtual networks
• VLAN (MAC layer)
• VPN : Tunnels (Multiple routing
table)
• Network Slicing
• Network resources (bandwidth
on a network link)
• Compute resources
(processing power within
network elements or servers)
• Storage (flow table space)
16/10/2024 Prof. Ahmed Didouh 7
Software Defined Network (SDN)
Single control plane controls several forwarding devices
Traffic
Routing Engineering
Mobility
Network OS
Control plane physically separate from data plane
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
A Disaggregated Solution
Central TE Server
Northbound API
SDN apps: TE, Routing, Flow
OpenFlow
SDN Controller OpenFlow Agent
Linux OS Linux OS
Commodity Server Open Compute Switch
Controller cluster DC Gateway switches
Datacenter Site
About Open Networking Lab
• Non-profit lab founded in 2012
• Mission to develop, distribute, support open-source tools and
platforms for SDN
• Projects:
• Mininet: emulate an OpenFlow network on your laptop/EC2
• Flowvisor: share OpenFlow switches
• Open Network OS: distributed SDN controller
• OpenvirteX: network hypervisor
• OpenCloud: unified service orchestration in a cloud
Motivation for ONOS
Routing TE Mobility
Scale-out?
Distributed Network OS
Instance Instance Instance Instance
1 2 3 …
Fault Tolerance?
Retain global
global network view?
Community needs an open source distributed SDN OS
ONOS High Level Architecture
Network Graph
Eventually consistent
Titan Graph DB
Cassandra In-Memory DHT
Distributed Registry
Strongly Consistent Zookeeper
Instance 1 Instance 2 Instance 3
ONOS ONOS ONOS
core core core
Floodlight Floodlight Floodlight
Host
Host
Host
ONOS Architecture
• External Apps
• interact with the REST API,
GUI, and CLI.
• Core services include
Mobility, Proxy ARP, L2
Forwarding, and SDN IP/BGP.
• Modules for Device
Configuration, Discovery,
Network Virtualization, and
Topology.
• Protocols such as OpenFlow,
NetConf, and OVSDB support
the underlying architecture.
16/10/2024 Prof. Ahmed Didouh 13
ONOS Architecture
16/10/2024 Prof. Ahmed Didouh 14
ONOS Subcomponent
16/10/2024 Prof. Ahmed Didouh 15
Events and descriptions
16/10/2024 Prof. Ahmed Didouh 16
Onos GUI
16/10/2024 Prof. Ahmed Didouh 17
P4 Language
• P4 is a programming language for controlling packet forwarding planes in networking
devices, such as routers and switches.
From Bottum-up approach to Top-Down
Source : P4F
16/10/2024 Prof. Ahmed Didouh 18
PISA: Protocol-Independent Switch Architecture
Source : P4F
16/10/2024 Prof. Ahmed Didouh 19
PISA in Action
• Packet is parsed into individual headers (parsed representation)
• Headers and intermediate results can be used for matching and actions
• Headers can be modified, added or removed
• Packet is deparsed (serialized)
Source : P4F
16/10/2024 Prof. Ahmed Didouh 20
Example Architectures and Targets
Source : P4.org
16/10/2024 Prof. Ahmed Didouh 21
Programming a P4 Target
16/10/2024 Prof. Ahmed Didouh 22
P416 Program Template (V1Model)
• ingress_port - the port on which the packet arrived
• egress_spec - the port to which the packet should be sent to
• egress_port - the port that the packet will be sent out of (read only in egress pipeline)
16/10/2024 Prof. Ahmed Didouh 23
Example: IPv4_LPM Table
• Data Plane (P4) Program
• Defines the format of the
table
• Key Fields
• Actions
• Action Data
• Performs the lookup
• Executes the chosen action
• Control Plane (IP stack,
Routing protocols)
• Populates table entries with
specific information
• Based on the configuration
• Based on automatic
discovery
• Based on protocol
calculations
16/10/2024 Prof. Ahmed Didouh 24
•The type match_kind is special in P4
The standard library (core.p4) defines three
standard match kinds
• Exact match
• Ternary match
• LPM match
The architecture (v1model.p4) defines two
additional match kinds:
• range
• selector
•
Other architectures may define (and provide
implementation for) additional match kinds
16/10/2024 Prof. Ahmed Didouh 25
FPGA (Field Programmable Gate Array)
16/10/2024 Prof. Ahmed Didouh 26
P4→NetFPGA
• Prototype and evaluate P4 programs in real hardware!
• 4x10G network interfaces
• Special price for academic users :)
• https://github.com/NetFPGA/P4-NetFPGA-public/wiki
16/10/2024 Prof. Ahmed Didouh 27
BEHAVIORAL MODEL (bmv2)
16/10/2024 Prof. Ahmed Didouh 28