Practical Software-Defined Networking: 6 The OpenFlow Protocol

بواسطة: LinkedIn Learning

Overview

Learn about the OpenFlow network communications protocol. Explore the theory behind OpenFlow, the details of OpenFlow messages, what happens when an SDN controller fails, and more.

Syllabus

1. OpenFlow Theory Webinar
  • Make SDN real and OpenFlow theory, part 1: OpenFlow, controllers, and NSX
  • OpenFlow messages
  • OpenFlow channel
2. OpenFlow Messages
  • Summary of OpenFlow messages
3. Wireshark Captures, Part 1
  • Wireshark OpenFlow capture on Windows
  • Wireshark openflow_v4 display filters
  • Wireshark OpenFlow HELLO message, part 1
  • Wireshark OpenFlow negotiation failure
  • Wireshark OpenFlow HELLO message, part 2
  • Wireshark and OpenFlow headers
  • Wireshark types of messages
  • Wireshark OpenFlow connection setup
  • Wireshark: Which Layer 4 protocol is used?
  • Wireshark features request reply (DPID)
4. Wireshark Captures, Part 2
  • Multiple OpenFlow tables
  • Wireshark capture n_tables field
  • Benefits of multiple tables and TTPs
  • Wireshark capture multipart request
  • Wireshark capture packet in message, part 1
  • Wireshark capture packet in message, part 2
5. Wireshark Captures, Part 3
  • Install Wireshark on an SDN controller
  • Wireshark Xming
  • Compile Wireshark and capture OpenFlow on Ubuntu
  • Wireshark auxiliary port and switch capabilities
  • Wireshark n_tables
6. What Happens When a Controller Fails?
  • What happens when the SDN controller fails (OpenFlow and OVS)? Part 1
  • What happens when the SDN controller fails (OpenFlow and OVS)? Part 2
  • What happens when the SDN controller fails (OpenFlow and OVS)? Part 3

Taught by

David Bombal

Practical Software-Defined Networking: 6 The OpenFlow Protocol
الذهاب الي الدورة

Practical Software-Defined Networking: 6 The OpenFlow Protocol

بواسطة: LinkedIn Learning

  • LinkedIn Learning
  • مدفوعة
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • الجميع
  • N/A
8.1.2PHP Version284msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (194ms)
    • Application (89.03ms)
    • 1 x Booting (68.42%)
      194.12ms
      1 x Application (31.38%)
      89.03ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed8.09ms
      • select * from `courses` where `slug_ar` = 'practical-software-defined-networking:-6-the-openflow-protocol' limit 1
        6.66ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. practical-software-defined-networking:-6-the-openflow-protocol
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-06-01 17:01:40' where `id` = 4125
        560μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-01 17:01:40
        • 1. 4125
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (15)
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        130μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (56) and `providers`.`deleted_at` is null
        310μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 4116 limit 1
        260μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 4116
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        N3tySTLkhySvyDCX2AFaW8LSn6N1lOc03NwcIahQ
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/practi...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/practical-software-defined-networking:-6-the-openflow-protocol
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.143.246.80" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "3.143.246.80" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "94904632ac07141c-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.143.246.80" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "3.143.246.80" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "94904632ac07141c-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "16512" "REMOTE_ADDR" => "172.70.127.228" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/practical-software-defined-networking:-6-the-openflow-protocol" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1748797299.8871 "REQUEST_TIME" => 1748797299 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sun, 01 Jun 2025 17:01:40 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjNUQUgrb01tUFZDWHNJUmtudzZwalE9PSIsInZhbHVlIjoiN2FiT1dTb1NlbGpDVklhcVRid085M3oySXNZMzhUTkhIU1UvcVJwTG1HandqR29zM09zWFBqcHEzMk1Nd3RSdGFPRlBUTjV5RHpFcnR2QncrS1NUMzhjVzNsRWFsN2JWMWpudlZubzQ3ZkNuampRZExlQ3JtTG45UmlZdlNXL0UiLCJtYWMiOiJmZjE2YzAyOTQ0NTVjYmIyZjU2Y2UzZWNlMDEyZTNiZTg0ZTBhYWNlMzAyNDFiNDkxODdhNjdjYjMwMmZmOWY5IiwidGFnIjoiIn0%3D; expires=Sun, 01 Jun 2025 19:01:40 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IjNUQUgrb01tUFZDWHNJUmtudzZwalE9PSIsInZhbHVlIjoiN2FiT1dTb1NlbGpDVklhcVRid085M3oySXNZMzhUTkhIU1UvcVJwTG1HandqR29zM09zWFBqcHEzMk1Nd3RSdGFPRlBUT" 1 => "laravel_session=eyJpdiI6IjBNaHZzTVpoMjlNZVRYNVpGSzljaXc9PSIsInZhbHVlIjoiSE9tcU16NHFBRmwxZ0Y4OWlyT01QM0c5MWJ1Nk9nOVpJcTJlRGlRcFhIMjMxRHVJZ1o5d0kvTmpMK1dqRnhCUnd3NUp6N2pQSlhSMzdoOHo5ZUpzaWtoQnpydjBzQ1pPSmN3cDlsTnFTbU4rWUZPOUlnM2pEd2F5VkxmYmNpWkkiLCJtYWMiOiIxZWFmZmY0ZTdmYjhmZmE4YTJlYmJlYTg1YzQ0ZThkOWJlZmEyM2E3MmViNmVjYWVhYzk1ZWMzNTkyNTZiN2I1IiwidGFnIjoiIn0%3D; expires=Sun, 01 Jun 2025 19:01:40 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjBNaHZzTVpoMjlNZVRYNVpGSzljaXc9PSIsInZhbHVlIjoiSE9tcU16NHFBRmwxZ0Y4OWlyT01QM0c5MWJ1Nk9nOVpJcTJlRGlRcFhIMjMxRHVJZ1o5d0kvTmpMK1dqRnhCUnd3" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IjNUQUgrb01tUFZDWHNJUmtudzZwalE9PSIsInZhbHVlIjoiN2FiT1dTb1NlbGpDVklhcVRid085M3oySXNZMzhUTkhIU1UvcVJwTG1HandqR29zM09zWFBqcHEzMk1Nd3RSdGFPRlBUTjV5RHpFcnR2QncrS1NUMzhjVzNsRWFsN2JWMWpudlZubzQ3ZkNuampRZExlQ3JtTG45UmlZdlNXL0UiLCJtYWMiOiJmZjE2YzAyOTQ0NTVjYmIyZjU2Y2UzZWNlMDEyZTNiZTg0ZTBhYWNlMzAyNDFiNDkxODdhNjdjYjMwMmZmOWY5IiwidGFnIjoiIn0%3D; expires=Sun, 01-Jun-2025 19:01:40 GMT; path=/XSRF-TOKEN=eyJpdiI6IjNUQUgrb01tUFZDWHNJUmtudzZwalE9PSIsInZhbHVlIjoiN2FiT1dTb1NlbGpDVklhcVRid085M3oySXNZMzhUTkhIU1UvcVJwTG1HandqR29zM09zWFBqcHEzMk1Nd3RSdGFPRlBUT" 1 => "laravel_session=eyJpdiI6IjBNaHZzTVpoMjlNZVRYNVpGSzljaXc9PSIsInZhbHVlIjoiSE9tcU16NHFBRmwxZ0Y4OWlyT01QM0c5MWJ1Nk9nOVpJcTJlRGlRcFhIMjMxRHVJZ1o5d0kvTmpMK1dqRnhCUnd3NUp6N2pQSlhSMzdoOHo5ZUpzaWtoQnpydjBzQ1pPSmN3cDlsTnFTbU4rWUZPOUlnM2pEd2F5VkxmYmNpWkkiLCJtYWMiOiIxZWFmZmY0ZTdmYjhmZmE4YTJlYmJlYTg1YzQ0ZThkOWJlZmEyM2E3MmViNmVjYWVhYzk1ZWMzNTkyNTZiN2I1IiwidGFnIjoiIn0%3D; expires=Sun, 01-Jun-2025 19:01:40 GMT; path=/; httponlylaravel_session=eyJpdiI6IjBNaHZzTVpoMjlNZVRYNVpGSzljaXc9PSIsInZhbHVlIjoiSE9tcU16NHFBRmwxZ0Y4OWlyT01QM0c5MWJ1Nk9nOVpJcTJlRGlRcFhIMjMxRHVJZ1o5d0kvTmpMK1dqRnhCUnd3" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "N3tySTLkhySvyDCX2AFaW8LSn6N1lOc03NwcIahQ" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/practical-software-defined-networking:-6-the-openflow-protocol" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]