SlideShare a Scribd company logo
1 of 36
Download to read offline
OpenDaylight -
SDN-NFV Tutorial
Basics and Hands On
dec/2016
Prof. Christian Rothenberg (FEEC/UNICAMP)
PhD candidate Javier Quinto (UNICAMP & INICTEL-UNI)
Agenda
● Introduction to Open DayLight (ODL)
● Exercise 1: Learning-Switch
● Exercise 2: Flow Programming Through REST
● Exercise 3: TAP Application
Open DayLight
Introduction
High-level Architecture (versión 0.3)
1. Get familiar with the Model-View-Control approach for app
development in a modular fashion
- YANG Model for data, RPC and notifications
- RESTconf View generated automatically
- Implementation in Java or Scala to handle data changes, notifications and
RPC call backs
2. Get familiar with platform essentials (maven, config
subsystem, dependencies) and useful tools
3. Learn about existing projects and reuse modules
- No need to change code of other projects. Just link them as binary libraries
What does it mean to program in ODL
Outdated Tutorial: This is focused solely on:
- OpenFlow based app development
- API driven SAL that is similar in spirit to what ONOS uses
OSGi based activation
Current Tutorial:
- Approaches app development from the perspective of
YANG modeling since it is core to OpenDaylight
- Model driven SAL (MD-SAL) for all state handling
Uses config subsystem for bundle activation
What’s new in this tutorial?
Java, Maven, OSGi, Interface
● Java chosen as an enterprise-grade,
cross-platform compatible language.
● Maven build system for Java, uses
pom.xml (Project Object Model for
this
bundle) to script the dependencies
between bundles and also to
describe
what bundles to load on start.
Developing OSGi Components for OpenDaylight
● OSGi
- Allows dynamically loading bundles.
- Allows registering dependencies and services exported.
- For exchanging information across bundles.
● Java Interfaces are used for event listening, specifications and forming patterns.
● Karaf: Karaf is a small OSGi based runtime which provides a lightweight container
for loading different modules.
The tutorial application that we will work with is located in
/home/tutorial/SDNHub_OpenDaylight_tutorial directory.
Open a Terminal tab (Ctrl-Shift-T) and go into the
SDNHub_Opendaylight_Tutorial folder where we have
included sample applications that this tutorial will focus on:
1) a Hub / L2 learning switch
2) a network traffic monitoring tap.
Setup
For a better handling of this tutorial, we have created six environment variable in
“.bashrc” file.
a) Go to controller path:
export
control=~/SDNHub_Opendaylight_Tutorial/distribution/opendaylight-karaf/target/assembly/bin/
b) Go to learning-switch code:
export
learn=~/SDNHub_Opendaylight_Tutorial/learning-switch/implementation/src/main/java/org/sdn
hub/odl/tutorial/learningswitch/impl/
c) Go to deploy folder:
export
deploy=~/SDNHub_Opendaylight_Tutorial/distribution/opendaylight-karaf/target/assembly/depl
oy
d) Go to target folder:
export target=~/SDNHub_Opendaylight_Tutorial/learning-switch/implementation/target
e) go to learning-switch folder:
export program1=~/SDNHub_Opendaylight_Tutorial/learning-switch
f) go to TAP folder:
export program2=~/SDNHub_Opendaylight_Tutorial/tapapp
Setup
To build Open DayLigth Tutorial in our VM, we have required JDK 1.8 and
Apache Maven 3.3.9. The following commands allow building maven and
install components in the controller:
$ cd ~/SDNHub_Opendaylight_Tutorial/ # Go to our working space
$ mvn clean install # Cleaning anything of maven and install again, (this
step is done, not repeat it again!)
$ cd $control # Go to the path from Open DayLigth controller
$ ./karaf debug # Start the controller
karaf> feature:install sdnhub-XYZ # Install any program available in the
controller
How to Build ( Not doing this step for now)
● pom.xml: The POM in the main directory specifies all the
sub-POMs to build
● commons/parent: contains the parent pom.xml with all properties
defined for the subprojects.
● commons/utils: contains custom utilities built for OpenFlow
programming
● learning-switch: contains the tutorial L2 hub / switch
● tapapp: contains the traffic monitoring tap application
● features: defines the two features
"sdnhub-tutorial-learning-switch", "sdnhub-tutorial-tapapp"
that can be loaded in Karaf
● distribution/karaf-branding: contains karaf branner for SDN Hub
● distribution/opendaylight-karaf: contains packaging relevant pom
to generate a running directory
Directory Organization
Maven and project building
Let’s start with building the tutorial project in the VM using the following step:
~/SDNHub_Opendaylight_Tutorial$ mvn install -nsu
If at the end of the installation appears the message “BUILD SUCCESS”,
means that the build was sucessfully, otherwise the build will stop at the
module where it failed.
Maven compiles code based on the pom.xml file in that directory. “install” is
essential for compilation. It also accepts an optional argument “clean” if you
wish to clean the temporary build files.
Maven Configuration
Now that we compiled our sample project, let’s run the controller itself;
preferably in a different terminal. (<CTRL>+<SHIFT>+T)
cd $control
tutorial$ ./karaf debug
Karaf Parameters:
- List available features in ODL
feature:list # List all features available in ODL
feature:list | grep sdnhub # Filter a specific feature in ODL
- List avalable bundles in ODL
bundle:list -s | grep sdnhub # Filter a specific bundle in ODL
- Install our feature “sdnhub-tutorial-learning-switch”
feature:install sdnhub-tutorial-learning-switch
Karaf Configuration
Karaf Configuration
Mininet-based Topology
Hands-on
Learning-Switch
For the purposes of this tutorial, you should attempt to convert the hub learning
switch to a MAC learning switch that programs flows. Here, we give you the
steps to configure this first exercise:
1. Start the ODL controller in debug mode # Terminal 1
cd $control
./karaf debug
2. Verify if the feature “sdnhub-tutorial-learning-switch” is installed
> feature:list -i |grep sdnhub-tutorial-learning-switch
If it is not installed, install it
> feature:install sdnhub-tutorial-learning-switch
Wait 30 seconds until the Learning-Switch program is installed and active
> bundle:list -s |grep learning-switch
189 | Active | 80 | 1.0.0.SNAPSHOT org.sdnhub.odl.tutorial.learning-switch.impl
Setup Configuration
3. Start mininet topology # Change to a second terminal (Terminal 2)
sudo mn --topo single,3 --mac --switch ovsk,protocols=OpenFlow13
--controller remote
* We wait until the controller is connected to the mininet topology:
is_connected: true
4. Try to do ping between “host1” and “host2”
mininet> h1 ping h2
From 10.0.0.1 icmp_seq=1 Destination Host Unreachable
Q1: Why is the Ping failing?
5. Add the next rule and verify the ping
mininet> s1 ovs-ofctl add-flow tcp:127.0.0.1:6654 -OOpenFlow13
priority=1,action=output:controller
mininet> h1 ping -c 10 h2
Setup Configuration
6. Open the learning-switch program ($learn/TutorialL2Forwarding.java) and
pay attention in the lines #79 and #143
In the line #79 you may note that the default function of the code is in “hub
mode”. This means that our program (learning-switch) will act as hub, thus ping
between hosts would have a high RTT value, as you can see above. In the line
#143 you may note the code block related to the behavior of the program.
7. In the same file TutorialL2Forwarding.java, change the default function of
the program from “hub” to “switch”.
private String function = "hub"; # Line 79
to
private String function = "switch";
Setup Configuration
8. Update maven from the path of the program and copy the “JAR” generated
by maven to the folder “deploy” of our controller
cd $program1 # Path of the learning-switch program
mvn install -nsu
cp $target/learning-switch-impl-1.0.0-SNAPSHOT.jar $deploy/
9. Restart “mininet” and the “controller” and do ping between h1 and h2 again:
> logout # Logout to the controller
./karaf debug # Start the controller again
mininet > exit # Exit to the mininet
$ mn -c # Clean mininet
$ sudo mn --topo single,3 --mac --switch ovsk,protocols=OpenFlow13
--controller remote
mininet > h1 ping -c 10 h2
Q2 Do you note changes in the RTT value obtained in the steps 5 and 9?
Setup Configuration
Flow Programming
Through REST
It is possible to use RESTconf to send static flows to the controller. The REST
input is based on the YANG model. For instance, post following 2 static flows
using XML tags
Exercise #2: Flow Programming Through
REST
1. Start and configure the ODL controller (Terminal #1)
cd $control
./karaf clean # Clean features and bundles
Install the features that are needed to use for Restconf
> feature:install odl-restconf odl-mdsal-apidocs odl-dlux-core
2. Start the mininet topology (Terminal #2)
sudo mn -c # Clean mininet configuration
sudo mn --topo single,3 --mac --switch ovsk,protocols=OpenFlow13
--controller remote
3. Two files “forward.xml” and “reverse.xml” are stored in the ~/XML folder.
By using Postman application, create two OpenFlow rules to send static flows to
the controller. See the next steps:
Flow Programming
4. Open Postman application and enter Request URL in PUT mode and
configure header parameters needed, such as is shown in Figure below:
Postman Configuration
5. XML Configuration for forward ping (See the file ~/XML/forward.xml). Note
that the XML information is added in the “Body” tag
Postman Configuration
6. XML Configuration for reverse ping (See the file ~/XML/reverse.xml)
Postman Configuration
7. Dump flows from mininet (same terminal #2)
mininet> sh ovs-ofctl dump-flows s1 -O OpenFlow13
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=5264.052s, table=0, n_packets=20, n_bytes=1624, in_port=1 actions=output:2
cookie=0x0, duration=4983.190s, table=0, n_packets=17, n_bytes=1498, in_port=2 actions=output:1
8. Testing connectivity between hosts h1 and h2
mininet> h1 ping -c 3 h2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.432 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.118 ms
Postman Configuration
Q3: By using Postman and DELETE mode, how can you delete the flows
previously created? (see the file ~XML/delete.xml)
TAP Application
The traffic monitoring tap application is a simple proactive flow programmer that
deals with source, sinks and traffic types. We will follow the steps described earlier to
build this application. The model of the tap configuration data was described earlier
in the slide above. Based on that model, we perform following to make the tap work:
1. Extract header details from the tap object during the onDataChanged() event
handling
2. For each source-port, perform following steps to create a flow
- Create match object using appropriate builders
- Create action list with a list of actions specifying output to sink-port
- Create flow object with match and action list. Write this flow object to the Flow
table of the node
Note that the traffic type is a special enum field defined in the YANG model to allow
user to specific important traffic types worth monitoring, like ARP, ICMP, DNS,
DHCP, TCP, UDP. For converting the enum to actual values for the dl_type,
nw_proto and tp_port, one can use the following switch statement:
Network Traffic Monitoring Tap
Karaf Parameters:
- Install the features that are needed to use for Restconf
feature:install odl-restconf-all
- List the installed programs in Karaf
feature:list -i |grep odl-restconf-all
feature:list -i |grep tapapp
- List avalable bundles in ODL
bundle:list -s | grep sdnhub # Filter a specific bundle in ODL
Karaf Configuration
1. Start the controller again
$ ./karaf debug
2. Start mininet
$ sudo mn --topo single,3 --mac --switch ovsk,protocols=OpenFlow13
--controller remote
Once you add the model, you can build the project and run Karaf to
immediately verify if your model is sufficient for your application. For
instance, when we run karaf, even without any implementation or event
handlers defined, you will be able to store data in the data store as follows:
Network Traffic Monitoring Tap
3. Add flows using RESTFul. Open a terminal in the VM and copy the box
below
$ curl -u admin:admin -H "Content-Type:application/json" -X PUT -d '{"tap-spec":
{"tap":[
{"id":"1",
"node":"openflow:1",
"traffic-match":"HTTP",
"src-node-connector":["openflow:1:1"],
"sink-node-connector":["openflow:1:2"]
}
]
}
}' http://localhost:8181/restconf/config/tap:tap-spec
Network Traffic Monitoring Tap
You can open a browser and inspect the data store at
http://localhost:8181/restconf/config/tap:tap-spec
4. Open Postman and import the XML file stored in the path
~/XML/tap.xml
Network Traffic Monitoring Tap
In each Tag added you should configure the Authorization Type as “Basic
Auth” and then click in “Update Request”
Q4: By using Postman, could you add two new rules to match traffics
ARP and ICMP?
Q5: What happens if the controller goes down? Are the flows removed?
5. Using Postman, install the two addition rules (Tap1 addition and Tap2
addition) on OVS, clicking in the bottom “Send”.
6. Inspect the data stored:
http://127.0.0.1:8181/restconf/config/tap:tap-spec
7. Now, send the two deletion rules clicking in the bottom “Send”. Repeat
step 6.
8. Now, send the two Create dummy rules. Go to mininet and type:
mininet> sh ovs-ofctl dump-flows s1 -O OpenFlow13
mininet> h1 ping h2
9. Finally, delete those flows with the Delete dummy rules
Network Traffic Monitoring Tap
Thanks!

More Related Content

What's hot

Docker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksDocker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksAdrien Blind
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101LorisPack Project
 
OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Diverajdeep
 
Docker networking tutorial 102
Docker networking tutorial 102Docker networking tutorial 102
Docker networking tutorial 102LorisPack Project
 
Open VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needsOpen VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needsrranjithrajaram
 
Pipework: Software-Defined Network for Containers and Docker
Pipework: Software-Defined Network for Containers and DockerPipework: Software-Defined Network for Containers and Docker
Pipework: Software-Defined Network for Containers and DockerJérôme Petazzoni
 
OpenStack networking
OpenStack networkingOpenStack networking
OpenStack networkingSim Janghoon
 
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)Thomas Graf
 
Openflow overview
Openflow overviewOpenflow overview
Openflow overviewopenflowhub
 
2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful ServicesThomas Graf
 
Sdnds tw-meetup-2
Sdnds tw-meetup-2Sdnds tw-meetup-2
Sdnds tw-meetup-2Fei Ji Siao
 
Virtualized network with openvswitch
Virtualized network with openvswitchVirtualized network with openvswitch
Virtualized network with openvswitchSim Janghoon
 
SDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininetSDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininetSAMeh Zaghloul
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFThomas Graf
 
Deep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksDeep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksLaurent Bernaille
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking WalkthroughThomas Graf
 

What's hot (20)

Docker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined NetworksDocker networking basics & coupling with Software Defined Networks
Docker networking basics & coupling with Software Defined Networks
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101
 
OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Dive
 
Kubernetes Intro
Kubernetes IntroKubernetes Intro
Kubernetes Intro
 
macvlan and ipvlan
macvlan and ipvlanmacvlan and ipvlan
macvlan and ipvlan
 
rtnetlink
rtnetlinkrtnetlink
rtnetlink
 
Docker networking tutorial 102
Docker networking tutorial 102Docker networking tutorial 102
Docker networking tutorial 102
 
Open VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needsOpen VSwitch .. Use it for your day to day needs
Open VSwitch .. Use it for your day to day needs
 
Pipework: Software-Defined Network for Containers and Docker
Pipework: Software-Defined Network for Containers and DockerPipework: Software-Defined Network for Containers and Docker
Pipework: Software-Defined Network for Containers and Docker
 
OpenStack networking
OpenStack networkingOpenStack networking
OpenStack networking
 
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
 
Openflow overview
Openflow overviewOpenflow overview
Openflow overview
 
2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services2015 FOSDEM - OVS Stateful Services
2015 FOSDEM - OVS Stateful Services
 
Sdnds tw-meetup-2
Sdnds tw-meetup-2Sdnds tw-meetup-2
Sdnds tw-meetup-2
 
Virtualized network with openvswitch
Virtualized network with openvswitchVirtualized network with openvswitch
Virtualized network with openvswitch
 
SDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininetSDN Training - Open daylight installation + example with mininet
SDN Training - Open daylight installation + example with mininet
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPF
 
Deep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksDeep dive in Docker Overlay Networks
Deep dive in Docker Overlay Networks
 
Docker network
Docker networkDocker network
Docker network
 
DevConf 2014 Kernel Networking Walkthrough
DevConf 2014   Kernel Networking WalkthroughDevConf 2014   Kernel Networking Walkthrough
DevConf 2014 Kernel Networking Walkthrough
 

Similar to Open Dayligth usando SDN-NFV

Runos OpenFlow Controller (eng)
Runos OpenFlow Controller (eng)Runos OpenFlow Controller (eng)
Runos OpenFlow Controller (eng)Alexander Shalimov
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.jsSu Zin Kyaw
 
Opendaylight SDN Controller
Opendaylight SDN ControllerOpendaylight SDN Controller
Opendaylight SDN ControllerSumit Arora
 
Recipe to build open splice dds 6.3.xxx Hello World example over Qt 5.2
 Recipe to build open splice dds 6.3.xxx Hello World example over Qt 5.2   Recipe to build open splice dds 6.3.xxx Hello World example over Qt 5.2
Recipe to build open splice dds 6.3.xxx Hello World example over Qt 5.2 Adil Khan
 
15LLP108_Demo4_LedBlinking.pdf1. Introduction In D.docx
15LLP108_Demo4_LedBlinking.pdf1. Introduction In D.docx15LLP108_Demo4_LedBlinking.pdf1. Introduction In D.docx
15LLP108_Demo4_LedBlinking.pdf1. Introduction In D.docxfelicidaddinwoodie
 
OpenDayLight (ODL) Project
OpenDayLight (ODL) ProjectOpenDayLight (ODL) Project
OpenDayLight (ODL) ProjectVahid Sadri
 
OpenDaylight app development tutorial
OpenDaylight app development tutorialOpenDaylight app development tutorial
OpenDaylight app development tutorialSDN Hub
 
Kubernetes laravel and kubernetes
Kubernetes   laravel and kubernetesKubernetes   laravel and kubernetes
Kubernetes laravel and kubernetesWilliam Stewart
 
Openshift cheat rhce_r3v1 rhce
Openshift cheat rhce_r3v1 rhceOpenshift cheat rhce_r3v1 rhce
Openshift cheat rhce_r3v1 rhceDarnette A
 
CSC 451551 Computer Networks Fall 2016Project 4 Softwar.docx
CSC 451551 Computer Networks Fall 2016Project 4 Softwar.docxCSC 451551 Computer Networks Fall 2016Project 4 Softwar.docx
CSC 451551 Computer Networks Fall 2016Project 4 Softwar.docxannettsparrow
 
OpenPOWER Application Optimization
OpenPOWER Application Optimization OpenPOWER Application Optimization
OpenPOWER Application Optimization Ganesan Narayanasamy
 
Enabling ceph-mgr to control Ceph services via Kubernetes
Enabling ceph-mgr to control Ceph services via KubernetesEnabling ceph-mgr to control Ceph services via Kubernetes
Enabling ceph-mgr to control Ceph services via Kubernetesmountpoint.io
 
Programming the Network Data Plane
Programming the Network Data PlaneProgramming the Network Data Plane
Programming the Network Data PlaneC4Media
 
John Spray - Ceph in Kubernetes
John Spray - Ceph in KubernetesJohn Spray - Ceph in Kubernetes
John Spray - Ceph in KubernetesShapeBlue
 
Network Automation Tools
Network Automation ToolsNetwork Automation Tools
Network Automation ToolsEdwin Beekman
 

Similar to Open Dayligth usando SDN-NFV (20)

Runos OpenFlow Controller (eng)
Runos OpenFlow Controller (eng)Runos OpenFlow Controller (eng)
Runos OpenFlow Controller (eng)
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Opendaylight SDN Controller
Opendaylight SDN ControllerOpendaylight SDN Controller
Opendaylight SDN Controller
 
Readme
ReadmeReadme
Readme
 
Recipe to build open splice dds 6.3.xxx Hello World example over Qt 5.2
 Recipe to build open splice dds 6.3.xxx Hello World example over Qt 5.2   Recipe to build open splice dds 6.3.xxx Hello World example over Qt 5.2
Recipe to build open splice dds 6.3.xxx Hello World example over Qt 5.2
 
15LLP108_Demo4_LedBlinking.pdf1. Introduction In D.docx
15LLP108_Demo4_LedBlinking.pdf1. Introduction In D.docx15LLP108_Demo4_LedBlinking.pdf1. Introduction In D.docx
15LLP108_Demo4_LedBlinking.pdf1. Introduction In D.docx
 
OpenDayLight (ODL) Project
OpenDayLight (ODL) ProjectOpenDayLight (ODL) Project
OpenDayLight (ODL) Project
 
OpenDaylight app development tutorial
OpenDaylight app development tutorialOpenDaylight app development tutorial
OpenDaylight app development tutorial
 
Kubernetes laravel and kubernetes
Kubernetes   laravel and kubernetesKubernetes   laravel and kubernetes
Kubernetes laravel and kubernetes
 
Openshift cheat rhce_r3v1 rhce
Openshift cheat rhce_r3v1 rhceOpenshift cheat rhce_r3v1 rhce
Openshift cheat rhce_r3v1 rhce
 
CSC 451551 Computer Networks Fall 2016Project 4 Softwar.docx
CSC 451551 Computer Networks Fall 2016Project 4 Softwar.docxCSC 451551 Computer Networks Fall 2016Project 4 Softwar.docx
CSC 451551 Computer Networks Fall 2016Project 4 Softwar.docx
 
OpenPOWER Application Optimization
OpenPOWER Application Optimization OpenPOWER Application Optimization
OpenPOWER Application Optimization
 
HPC_MPI_CICD.pptx
HPC_MPI_CICD.pptxHPC_MPI_CICD.pptx
HPC_MPI_CICD.pptx
 
Enabling ceph-mgr to control Ceph services via Kubernetes
Enabling ceph-mgr to control Ceph services via KubernetesEnabling ceph-mgr to control Ceph services via Kubernetes
Enabling ceph-mgr to control Ceph services via Kubernetes
 
Programming the Network Data Plane
Programming the Network Data PlaneProgramming the Network Data Plane
Programming the Network Data Plane
 
Ns2leach
Ns2leachNs2leach
Ns2leach
 
John Spray - Ceph in Kubernetes
John Spray - Ceph in KubernetesJohn Spray - Ceph in Kubernetes
John Spray - Ceph in Kubernetes
 
Network Automation Tools
Network Automation ToolsNetwork Automation Tools
Network Automation Tools
 
Build server
Build serverBuild server
Build server
 
Airflow 101
Airflow 101Airflow 101
Airflow 101
 

More from Open Networking Perú (Opennetsoft)

More from Open Networking Perú (Opennetsoft) (7)

Primera capacitación en sdn para el proyecto Bella-T
Primera capacitación en sdn para el proyecto Bella-TPrimera capacitación en sdn para el proyecto Bella-T
Primera capacitación en sdn para el proyecto Bella-T
 
Capacitación de SDN para COMSOC UNI
Capacitación de SDN para COMSOC UNICapacitación de SDN para COMSOC UNI
Capacitación de SDN para COMSOC UNI
 
Afiche Oficial del COOPEBRAS-2017 - I Jornada Peruana-Internacional de Invest...
Afiche Oficial del COOPEBRAS-2017 - I Jornada Peruana-Internacional de Invest...Afiche Oficial del COOPEBRAS-2017 - I Jornada Peruana-Internacional de Invest...
Afiche Oficial del COOPEBRAS-2017 - I Jornada Peruana-Internacional de Invest...
 
Programa Oficial del COOPEBRAS 2017
Programa Oficial del COOPEBRAS 2017Programa Oficial del COOPEBRAS 2017
Programa Oficial del COOPEBRAS 2017
 
Tutorial GPG
Tutorial GPGTutorial GPG
Tutorial GPG
 
IntelFlow: Toward adding Cyber Threat Intelligence to Software Defined Networ...
IntelFlow: Toward adding Cyber Threat Intelligence to Software Defined Networ...IntelFlow: Toward adding Cyber Threat Intelligence to Software Defined Networ...
IntelFlow: Toward adding Cyber Threat Intelligence to Software Defined Networ...
 
Qualifying exam-2015-final
Qualifying exam-2015-finalQualifying exam-2015-final
Qualifying exam-2015-final
 

Recently uploaded

Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 

Recently uploaded (20)

The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Open Dayligth usando SDN-NFV

  • 1. OpenDaylight - SDN-NFV Tutorial Basics and Hands On dec/2016 Prof. Christian Rothenberg (FEEC/UNICAMP) PhD candidate Javier Quinto (UNICAMP & INICTEL-UNI)
  • 2. Agenda ● Introduction to Open DayLight (ODL) ● Exercise 1: Learning-Switch ● Exercise 2: Flow Programming Through REST ● Exercise 3: TAP Application
  • 5. 1. Get familiar with the Model-View-Control approach for app development in a modular fashion - YANG Model for data, RPC and notifications - RESTconf View generated automatically - Implementation in Java or Scala to handle data changes, notifications and RPC call backs 2. Get familiar with platform essentials (maven, config subsystem, dependencies) and useful tools 3. Learn about existing projects and reuse modules - No need to change code of other projects. Just link them as binary libraries What does it mean to program in ODL
  • 6. Outdated Tutorial: This is focused solely on: - OpenFlow based app development - API driven SAL that is similar in spirit to what ONOS uses OSGi based activation Current Tutorial: - Approaches app development from the perspective of YANG modeling since it is core to OpenDaylight - Model driven SAL (MD-SAL) for all state handling Uses config subsystem for bundle activation What’s new in this tutorial?
  • 7. Java, Maven, OSGi, Interface ● Java chosen as an enterprise-grade, cross-platform compatible language. ● Maven build system for Java, uses pom.xml (Project Object Model for this bundle) to script the dependencies between bundles and also to describe what bundles to load on start. Developing OSGi Components for OpenDaylight ● OSGi - Allows dynamically loading bundles. - Allows registering dependencies and services exported. - For exchanging information across bundles. ● Java Interfaces are used for event listening, specifications and forming patterns. ● Karaf: Karaf is a small OSGi based runtime which provides a lightweight container for loading different modules.
  • 8. The tutorial application that we will work with is located in /home/tutorial/SDNHub_OpenDaylight_tutorial directory. Open a Terminal tab (Ctrl-Shift-T) and go into the SDNHub_Opendaylight_Tutorial folder where we have included sample applications that this tutorial will focus on: 1) a Hub / L2 learning switch 2) a network traffic monitoring tap. Setup
  • 9. For a better handling of this tutorial, we have created six environment variable in “.bashrc” file. a) Go to controller path: export control=~/SDNHub_Opendaylight_Tutorial/distribution/opendaylight-karaf/target/assembly/bin/ b) Go to learning-switch code: export learn=~/SDNHub_Opendaylight_Tutorial/learning-switch/implementation/src/main/java/org/sdn hub/odl/tutorial/learningswitch/impl/ c) Go to deploy folder: export deploy=~/SDNHub_Opendaylight_Tutorial/distribution/opendaylight-karaf/target/assembly/depl oy d) Go to target folder: export target=~/SDNHub_Opendaylight_Tutorial/learning-switch/implementation/target e) go to learning-switch folder: export program1=~/SDNHub_Opendaylight_Tutorial/learning-switch f) go to TAP folder: export program2=~/SDNHub_Opendaylight_Tutorial/tapapp Setup
  • 10. To build Open DayLigth Tutorial in our VM, we have required JDK 1.8 and Apache Maven 3.3.9. The following commands allow building maven and install components in the controller: $ cd ~/SDNHub_Opendaylight_Tutorial/ # Go to our working space $ mvn clean install # Cleaning anything of maven and install again, (this step is done, not repeat it again!) $ cd $control # Go to the path from Open DayLigth controller $ ./karaf debug # Start the controller karaf> feature:install sdnhub-XYZ # Install any program available in the controller How to Build ( Not doing this step for now)
  • 11. ● pom.xml: The POM in the main directory specifies all the sub-POMs to build ● commons/parent: contains the parent pom.xml with all properties defined for the subprojects. ● commons/utils: contains custom utilities built for OpenFlow programming ● learning-switch: contains the tutorial L2 hub / switch ● tapapp: contains the traffic monitoring tap application ● features: defines the two features "sdnhub-tutorial-learning-switch", "sdnhub-tutorial-tapapp" that can be loaded in Karaf ● distribution/karaf-branding: contains karaf branner for SDN Hub ● distribution/opendaylight-karaf: contains packaging relevant pom to generate a running directory Directory Organization
  • 12. Maven and project building Let’s start with building the tutorial project in the VM using the following step: ~/SDNHub_Opendaylight_Tutorial$ mvn install -nsu If at the end of the installation appears the message “BUILD SUCCESS”, means that the build was sucessfully, otherwise the build will stop at the module where it failed. Maven compiles code based on the pom.xml file in that directory. “install” is essential for compilation. It also accepts an optional argument “clean” if you wish to clean the temporary build files. Maven Configuration
  • 13. Now that we compiled our sample project, let’s run the controller itself; preferably in a different terminal. (<CTRL>+<SHIFT>+T) cd $control tutorial$ ./karaf debug Karaf Parameters: - List available features in ODL feature:list # List all features available in ODL feature:list | grep sdnhub # Filter a specific feature in ODL - List avalable bundles in ODL bundle:list -s | grep sdnhub # Filter a specific bundle in ODL - Install our feature “sdnhub-tutorial-learning-switch” feature:install sdnhub-tutorial-learning-switch Karaf Configuration
  • 18. For the purposes of this tutorial, you should attempt to convert the hub learning switch to a MAC learning switch that programs flows. Here, we give you the steps to configure this first exercise: 1. Start the ODL controller in debug mode # Terminal 1 cd $control ./karaf debug 2. Verify if the feature “sdnhub-tutorial-learning-switch” is installed > feature:list -i |grep sdnhub-tutorial-learning-switch If it is not installed, install it > feature:install sdnhub-tutorial-learning-switch Wait 30 seconds until the Learning-Switch program is installed and active > bundle:list -s |grep learning-switch 189 | Active | 80 | 1.0.0.SNAPSHOT org.sdnhub.odl.tutorial.learning-switch.impl Setup Configuration
  • 19. 3. Start mininet topology # Change to a second terminal (Terminal 2) sudo mn --topo single,3 --mac --switch ovsk,protocols=OpenFlow13 --controller remote * We wait until the controller is connected to the mininet topology: is_connected: true 4. Try to do ping between “host1” and “host2” mininet> h1 ping h2 From 10.0.0.1 icmp_seq=1 Destination Host Unreachable Q1: Why is the Ping failing? 5. Add the next rule and verify the ping mininet> s1 ovs-ofctl add-flow tcp:127.0.0.1:6654 -OOpenFlow13 priority=1,action=output:controller mininet> h1 ping -c 10 h2 Setup Configuration
  • 20. 6. Open the learning-switch program ($learn/TutorialL2Forwarding.java) and pay attention in the lines #79 and #143 In the line #79 you may note that the default function of the code is in “hub mode”. This means that our program (learning-switch) will act as hub, thus ping between hosts would have a high RTT value, as you can see above. In the line #143 you may note the code block related to the behavior of the program. 7. In the same file TutorialL2Forwarding.java, change the default function of the program from “hub” to “switch”. private String function = "hub"; # Line 79 to private String function = "switch"; Setup Configuration
  • 21. 8. Update maven from the path of the program and copy the “JAR” generated by maven to the folder “deploy” of our controller cd $program1 # Path of the learning-switch program mvn install -nsu cp $target/learning-switch-impl-1.0.0-SNAPSHOT.jar $deploy/ 9. Restart “mininet” and the “controller” and do ping between h1 and h2 again: > logout # Logout to the controller ./karaf debug # Start the controller again mininet > exit # Exit to the mininet $ mn -c # Clean mininet $ sudo mn --topo single,3 --mac --switch ovsk,protocols=OpenFlow13 --controller remote mininet > h1 ping -c 10 h2 Q2 Do you note changes in the RTT value obtained in the steps 5 and 9? Setup Configuration
  • 23. It is possible to use RESTconf to send static flows to the controller. The REST input is based on the YANG model. For instance, post following 2 static flows using XML tags Exercise #2: Flow Programming Through REST
  • 24. 1. Start and configure the ODL controller (Terminal #1) cd $control ./karaf clean # Clean features and bundles Install the features that are needed to use for Restconf > feature:install odl-restconf odl-mdsal-apidocs odl-dlux-core 2. Start the mininet topology (Terminal #2) sudo mn -c # Clean mininet configuration sudo mn --topo single,3 --mac --switch ovsk,protocols=OpenFlow13 --controller remote 3. Two files “forward.xml” and “reverse.xml” are stored in the ~/XML folder. By using Postman application, create two OpenFlow rules to send static flows to the controller. See the next steps: Flow Programming
  • 25. 4. Open Postman application and enter Request URL in PUT mode and configure header parameters needed, such as is shown in Figure below: Postman Configuration
  • 26. 5. XML Configuration for forward ping (See the file ~/XML/forward.xml). Note that the XML information is added in the “Body” tag Postman Configuration
  • 27. 6. XML Configuration for reverse ping (See the file ~/XML/reverse.xml) Postman Configuration
  • 28. 7. Dump flows from mininet (same terminal #2) mininet> sh ovs-ofctl dump-flows s1 -O OpenFlow13 OFPST_FLOW reply (OF1.3) (xid=0x2): cookie=0x0, duration=5264.052s, table=0, n_packets=20, n_bytes=1624, in_port=1 actions=output:2 cookie=0x0, duration=4983.190s, table=0, n_packets=17, n_bytes=1498, in_port=2 actions=output:1 8. Testing connectivity between hosts h1 and h2 mininet> h1 ping -c 3 h2 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.432 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.118 ms Postman Configuration Q3: By using Postman and DELETE mode, how can you delete the flows previously created? (see the file ~XML/delete.xml)
  • 30. The traffic monitoring tap application is a simple proactive flow programmer that deals with source, sinks and traffic types. We will follow the steps described earlier to build this application. The model of the tap configuration data was described earlier in the slide above. Based on that model, we perform following to make the tap work: 1. Extract header details from the tap object during the onDataChanged() event handling 2. For each source-port, perform following steps to create a flow - Create match object using appropriate builders - Create action list with a list of actions specifying output to sink-port - Create flow object with match and action list. Write this flow object to the Flow table of the node Note that the traffic type is a special enum field defined in the YANG model to allow user to specific important traffic types worth monitoring, like ARP, ICMP, DNS, DHCP, TCP, UDP. For converting the enum to actual values for the dl_type, nw_proto and tp_port, one can use the following switch statement: Network Traffic Monitoring Tap
  • 31. Karaf Parameters: - Install the features that are needed to use for Restconf feature:install odl-restconf-all - List the installed programs in Karaf feature:list -i |grep odl-restconf-all feature:list -i |grep tapapp - List avalable bundles in ODL bundle:list -s | grep sdnhub # Filter a specific bundle in ODL Karaf Configuration
  • 32. 1. Start the controller again $ ./karaf debug 2. Start mininet $ sudo mn --topo single,3 --mac --switch ovsk,protocols=OpenFlow13 --controller remote Once you add the model, you can build the project and run Karaf to immediately verify if your model is sufficient for your application. For instance, when we run karaf, even without any implementation or event handlers defined, you will be able to store data in the data store as follows: Network Traffic Monitoring Tap
  • 33. 3. Add flows using RESTFul. Open a terminal in the VM and copy the box below $ curl -u admin:admin -H "Content-Type:application/json" -X PUT -d '{"tap-spec": {"tap":[ {"id":"1", "node":"openflow:1", "traffic-match":"HTTP", "src-node-connector":["openflow:1:1"], "sink-node-connector":["openflow:1:2"] } ] } }' http://localhost:8181/restconf/config/tap:tap-spec Network Traffic Monitoring Tap You can open a browser and inspect the data store at http://localhost:8181/restconf/config/tap:tap-spec
  • 34. 4. Open Postman and import the XML file stored in the path ~/XML/tap.xml Network Traffic Monitoring Tap In each Tag added you should configure the Authorization Type as “Basic Auth” and then click in “Update Request”
  • 35. Q4: By using Postman, could you add two new rules to match traffics ARP and ICMP? Q5: What happens if the controller goes down? Are the flows removed? 5. Using Postman, install the two addition rules (Tap1 addition and Tap2 addition) on OVS, clicking in the bottom “Send”. 6. Inspect the data stored: http://127.0.0.1:8181/restconf/config/tap:tap-spec 7. Now, send the two deletion rules clicking in the bottom “Send”. Repeat step 6. 8. Now, send the two Create dummy rules. Go to mininet and type: mininet> sh ovs-ofctl dump-flows s1 -O OpenFlow13 mininet> h1 ping h2 9. Finally, delete those flows with the Delete dummy rules Network Traffic Monitoring Tap