Flow Monitoring in OVS for Efficient Network Management

 
Flow Monitoring in OVS
 
Ashish Varma
VMware
OpenFlow “Flow” Programming
Controller
                                                                 
OpenFlow Switch
Flow
Table
Flow
Table
Flow
Table
Controller
Protocol
Port
Port
Port
Port
Header
Fixed Fields
Cookie,
Table_ID,
Command,
Priority
 
FLOW_MOD
Match Fields
e.g. in_port,
eth_type,
ip_proto,
nw_src,
Instructions
 Apply Actions
Output
Push VLAN
 GoTo Table
 
What is Flow Monitor?
 
Allows a controller to keep track of changes to the flow table.
Controller can ask the switch to send events for all changes OR filtered
based on:
Flow Command Action (INITIAL/ADD/DELETE/MODIFY)
Certain Match Fields (e.g. eth_type=0x0800, ip_proto=132 [SCTP])
   
         e.g. eth_type=0x8847 [MPLS])
out_port / out_group
table_id
 
Multiple Flow Monitors can be installed by a single controller.
Events would be generated by the OpenFlow Switch based on Flow
Add/Delete/Modify matching a Flow Monitor.
 
 
 
 
Flow Monitor (Multipart) Message
Controller
OVS
 
FLOW MONITOR
 
REQUEST 
xid=
X
, 
M1
=[id=1, Flags=I/A/D/M, Match] , 
M2
, 
M3
 
FLOW MONITOR
 
RESPONSE 
xid=
X
, event=INITIAL, Flow Update1, … Flow Update100
100
Flows
 
FLOW MOD REQUEST (Add Flow)
 
FLOW MONITOR
 
RESPONSE 
xid=
0, 
event=ADDED, Flow Update
M1,
M2,
M3
OVS Flow Monitor Support
                                                                                         
OVS
Flow
Table
Flow
Table
Flow
Table
veth_t0
veth_t2
ovs-vsctl show
Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
        Port "veth_t2"
            Interface "veth_t2"
        Port "veth_t0"
            Interface "veth_t0"
ovsdb-server
ovs-vswitchd
/usr/local/var/run/open‐vswitch/db.sock
/usr/local/var/run/open‐vswitch/br0.mgmt
ovs-ofctl
monitor
br0 watch:
ovs-ofctl
add-flow
br0 …
Monitor
 
event=ADDED
 
Monitor vs Snoop
                                                                                         
OVS
Flow
Table
Flow
Table
Flow
Table
veth_t0
veth_t2
 
ovs-vsctl show
 
Bridge "br0”
  
Controller
"tcp:127.0.0.1:6653"
        Port "br0"
            Interface "br0"
                type: internal
        Port "veth_t2"
            Interface "veth_t2"
        Port "veth_t0"
            Interface "veth_t0"
ovsdb-server
ovs-vswitchd
 
/usr/local/var/run/open‐vswitch/db.sock
 
/usr/local/var/run/open‐vswitch/br0.snoop
ovs-ofctl
snoop br0
ODL/RYU
 
ovs-ofctl monitor examples
 
ovs-ofctl monitor br0 watch:      (monitors all flows in all tables)
ovs-ofctl monitor br0 watch:out_port=2 (flows with outport==2)
ovs-ofctl monitor br0 watch:table=100 (flows with table==100)
ovs-ofctl monitor br0 watch:\!add,\!modify,\!delete (report only
initial flows)
ovs-ofctl monitor br0 watch:\!initial (don’t report initial flows but
only changes to flow table from now on)
ovs-ofctl monitor br0 watch:nw_src=192.168.0.100 (only flows
containing the match field)
 
 
 
Use Cases and OpenFlow 1.4 + Support
 
Use Cases
In a multi-controller environment, this enables a controller to be aware of
changes made to the flow tables by another controller.
Act as an acknowledgement back to the controller when programming
(add/delete/modify) flows.
 
OpenFlow 1.4 + Support
OVS (ovs-vswitchd/ovs-ofctl) support for OpenFlow 1.4+ Flow Monitor
    (ovs-ofctl -OOpenFlow14 monitor <bridge> watch: 
 )
https://patchwork.ozlabs.org/patch/1004725/
   (Patch to add 1.4 + support)
 
 
 
 
 
Thank You !
Slide Note
Embed
Share

Learn how Flow Monitoring in Open vSwitch (OVS) allows controllers to track and manage changes to flow tables, enabling efficient network management. Explore topics such as Flow Mod programming, Flow Monitor messages, OVS support, monitoring vs. snoop, and practical examples of flow monitoring in action. Dive into concepts like Flow Mod messages, Flow Monitor requests and responses, and OVS command examples for effective network monitoring and configuration.

  • Network Management
  • Open vSwitch
  • Flow Monitoring
  • Network Programming
  • OVS Configuration

Uploaded on Jul 30, 2024 | 1 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Flow Monitoring in OVS Ashish Varma VMware

  2. FLOW_MOD OpenFlow Flow Programming Header Fixed Fields Cookie, Table_ID, Command, Priority Controller Controller Match Fields e.g. in_port, eth_type, ip_proto, nw_src, Protocol OpenFlow Switch Port Port Instructions Apply Actions Flow Table Flow Table Flow Table Output Port Port Push VLAN GoTo Table

  3. What is Flow Monitor? Allows a controller to keep track of changes to the flow table. Controller can ask the switch to send events for all changes OR filtered based on: Flow Command Action (INITIAL/ADD/DELETE/MODIFY) Certain Match Fields (e.g. eth_type=0x0800, ip_proto=132 [SCTP]) e.g. eth_type=0x8847 [MPLS]) out_port / out_group table_id Multiple Flow Monitors can be installed by a single controller. Events would be generated by the OpenFlow Switch based on Flow Add/Delete/Modify matching a Flow Monitor.

  4. Flow Monitor (Multipart) Message Controller OVS FLOW MONITORREQUEST xid=X, M1=[id=1, Flags=I/A/D/M, Match] , M2, M3 100 Flows M1, M2, M3 FLOW MONITORRESPONSE xid=X, event=INITIAL, Flow Update1, Flow Update100 FLOW MOD REQUEST (Add Flow) FLOW MONITORRESPONSE xid=0, event=ADDED, Flow Update

  5. OVS Flow Monitor Support ovs-vsctl show Bridge "br0" Port "br0" Interface "br0" type: internal Port "veth_t2" Interface "veth_t2" Port "veth_t0" Interface "veth_t0" ovs-ofctl monitor br0 watch: ovs-ofctl add-flow br0 /usr/local/var/run/open vswitch/db.sock /usr/local/var/run/open vswitch/br0.mgmt OVS event=ADDED ovs-vswitchd ovsdb-server veth_t0 veth_t2 Flow Table Flow Table Flow Table Monitor

  6. Monitor vs Snoop ovs-vsctl show Bridge "br0 Controller "tcp:127.0.0.1:6653" Port "br0" Interface "br0" type: internal Port "veth_t2" Interface "veth_t2" Port "veth_t0" Interface "veth_t0" ovs-ofctl snoop br0 ODL/RYU /usr/local/var/run/open vswitch/db.sock /usr/local/var/run/open vswitch/br0.snoop OVS ovs-vswitchd ovsdb-server veth_t0 veth_t2 Flow Table Flow Table Flow Table

  7. ovs-ofctl monitor examples ovs-ofctl monitor br0 watch: (monitors all flows in all tables) ovs-ofctl monitor br0 watch:out_port=2 (flows with outport==2) ovs-ofctl monitor br0 watch:table=100 (flows with table==100) ovs-ofctl monitor br0 watch:\!add,\!modify,\!delete (report only initial flows) ovs-ofctl monitor br0 watch:\!initial (don t report initial flows but only changes to flow table from now on) ovs-ofctl monitor br0 watch:nw_src=192.168.0.100 (only flows containing the match field)

  8. Use Cases and OpenFlow 1.4 + Support Use Cases In a multi-controller environment, this enables a controller to be aware of changes made to the flow tables by another controller. Act as an acknowledgement back to the controller when programming (add/delete/modify) flows. OpenFlow 1.4 + Support OVS (ovs-vswitchd/ovs-ofctl) support for OpenFlow 1.4+ Flow Monitor (ovs-ofctl -OOpenFlow14 monitor <bridge> watch: ) https://patchwork.ozlabs.org/patch/1004725/ (Patch to add 1.4 + support)

  9. Thank You !

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#