计算机网络——26通用转发和SDN

通用转发和SDN

网络层功能

  • 转发: 对于从某个端口 到来的分组转发到合适的 输出端口
  • 路由: 决定分组从源端 到目标端的路径

网络层

传统路由器的功能

每个路由器(Per Route)的控制平面 (传统)

  • 每个路由器上都有实现路由算法元件(它们之间需要相互交互),形成传统IP实现方式的控制平面
  • 控制平面式分布式的,由各个路由器的各自完成,难于管理

在这里插入图片描述

路由器的网络层功能:

  • IP转发:对于到来的分组按照路由表决定如何转发,数据平面
  • 路由:决定路径,计算路由表;处在控制平面

传统的网络设备

还有其他种类繁多网络设备(中间盒):

  • 交换机;防火墙;NAT;IDS;负载均衡设备
  • 未来:不断增加的需求和相应的网络设备
  • 需要不同的设备去实现不同的网络功能
    • 每台设备集成了控制平面和数据平面的功能
    • 控制平面分布式地实现了各种控制平面功能
    • 升级和部署网络设备非常困难

网络设备控制平面的实现方式特点

互联网网络设备:传统方式都是通过分布式,每台设备的方法来实现数据平面和控制平面功能

  • 垂直集成:每台路由器或其他网络设备,包括:
    • 硬件、在私有的操作系统;
    • 互联网标准协议(IP, RIP, IS-IS, OSPF, BGP)的私有实现
    • 从上到下都由一个厂商提供(代价大、被设备上“绑架”“)
  • 每个设备都实现了数据平面和控制平面的事情
    • 控制平面的功能是分布式实现的
  • 设备基本上只能(分布式升级困难)按照固定方式工作, 控制逻辑固化。
  • 不同的网络功能需要不同的 “middleboxes”:防火墙、负载均衡设备、NAT boxes, .
  • (数据+控制平面)集成>(控制逻辑)分布->固化
    • 代价大;升级困难;管理困难等

问题

  • 垂直集成造成价格昂贵
  • 不便于创新的生态(垄断)
  • 分布式、固化设备功能造成网络设备种类繁多
    • 无法改变路由等工作逻辑,无法实现流量工程等高级 特性
    • 配置错误影响全网运行;升级和维护会涉及到全网设 备:管理困难
    • 要增加新的网络功能,需要设计、实现以及部署新的 特定设备,设备种类繁多
  • ~2005:开始重新思考网络控制平面的处理方式
    • 集中:远程的控制器集中实现控制逻辑
    • 远程:数据平面和控制平面的分离

SDN:逻辑上集中的控制平面

一个不同的(通常是远程)控制器和CA交互,控制器决定分组转发的逻辑(可编程),CA所在设备执行逻辑

在这里插入图片描述

SDN的主要思路

  • 网络设备数据平面和控制平面分离
  • 数据平面 - 分组交换机
    • 将路由器、交换机和目前大多数网络设备的功能进一步抽象成:按照流表(由控制平面设置的控制逻辑)进行PDU(帧、分组)的动作(包括转发、丢弃、拷贝、泛洪、阻塞)
    • 统一化设备功能:SDN交换机(分组交换机),执行控制逻辑
  • 控制平面 - 控制器 + 网络应用
    • 分离、集中
    • 计算和下发控制逻辑:流表

SDN控制平面和数据平面分离的优势

  • 水平集成控制平面的开放实现(而非私有实现),创造出好的产业状态,促进发展
    • 分组交换机、控制器和各种控制逻辑网络应用APP可由不同厂商生产,专业化,引入竞争形成良好生态
  • 集中式实现控制逻辑,网络管理容易
    • 集中式控制器了解网络状况,编程简单,传统方式困难
    • 避免路由器的误配置
  • 基于流表的匹配 + 行动的工作方式允许“可编程的”分组交换机
    • 实现流量工程等高级特性
    • 在此框架下实现各种新型(未来)的网络设备

类比:主框架到PC的演变

在这里插入图片描述

流量工程:传统路由比较困难

在这里插入图片描述

Q: 网管如果需要u到z的流量走uvwz,x到z的流量走xwyz,怎么办?
A: 需要定义链路的代价,流量路由算法以此运算( IP路由面向目标,无法操作) (或者需要新的路由算法)!

在这里插入图片描述

Q: 如果网管需要将u到z的流量分成2路:uvwz 和uxyz ( 负载均衡),怎么办?(IP路由面向目标)
A: 无法完成(在原有体系下只有使用新的路由选择算法 ,而在全网部署新的路由算法是个大的事情)

在这里插入图片描述

Q:如果需要w对蓝色的和红色的流量采用不同的路由,怎么办?
A: 无法操作 (基于目标的转发,采用LS, DV 路由)

SDN特点

在这里插入图片描述

SDN架构

数据平面交换机

  • 快速、简单、商业化交换设备,采用硬件实现通用转发功能
  • 流表被控制器计算和安装
  • 基于南向API,SDN控制器访问基于流的交换机
    • 定义了哪些可以被控制哪些不能
    • 定义了和控制器的协议

在这里插入图片描述

SDN控制器

  • 维护网络状态信息
  • 通过上面的北向API和网络应用交互
  • 通过下面的南向API和网络交换机交互
  • 逻辑上集中,但是在实现上通常由于性能、可拓展性、容错性以及鲁棒性采用分布式方法

在这里插入图片描述

控制应用

  • 控制的大脑:采用下层提供的服务(SDN控制器提供的API),实现网络功能
    • 路由器交换机
    • 接入控制防火墙
    • 负载均衡
    • 其他功能
  • 非绑定:可以被第三方提供,与控制器厂商以通常上不同,与分组交换机厂商也可以不同

在这里插入图片描述

流表

每个路由器包含一个流表(被逻辑上集中的控制器计算和分发)

在这里插入图片描述

OpenFlow

OpenFlow数据平面抽象

  • 流:由分组(帧)头部字段所定义
  • 通用转发:简单的分组处理规则
    • 模式:将分组头部字段和流表进行匹配
    • 行动对于匹配上的分组,可以是丢弃、转发、修改、将匹配的分组发送给控制器
    • 优先权Priority:几个模式匹配了,优先采用哪个,消除歧义
    • 计数器Counters:#bytes 以及 #packets

在这里插入图片描述

流表的表项结构

在这里插入图片描述

例子:

在这里插入图片描述

OpenFlow抽象

match + action:统一化各种网络设备提供的功能

设备matchaction
路由器最长前缀匹配通过一条链路转发
防火墙IP地址和TCP/UDP端口号允许或者禁止
交换机目标MAC地址转发或者泛洪
NATIP地址和端口号重写地址和端口号

目前几乎所有的设备都可以在这个匹配 + 行动模式框架进行描述,具体化为各种网络设备包括未来的网络设备

OpenFlow例子

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/483112.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

本地运行环境工具UPUPWANK(win)和Navicat数据库管理工具

UPUPWANK安装地址:https://www.upupw.net 1.进入UPUPWANK后点击一键开启 2.新增项目 这里请千万注意80端口,如果80端口被占用了,请记住去任务管理器关闭占用80端口的进程。不然就不会成功显示。(笔者含泪警告,一晚上的…

2024年C语言最新经典面试题汇总(11-20)

C语言文章更新目录 C语言学习资源汇总,史上最全面总结,没有之一 C/C学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程…

Day44:WEB攻防-PHP应用SQL盲注布尔回显延时判断报错处理增删改查方式

目录 PHP-MYSQL-SQL操作-增删改查 PHP-MYSQL-注入函数-布尔&报错&延迟 基于布尔的SQL盲注-逻辑判断(需要有回显,没回显搞不了)跟union需要的条件差不多 基于时间的SQL盲注-延时判断(不需要任何回显) 基于报错的SQL盲注-报错回显(需要报错回显,没报错回…

算法系列--链表刷题(二)

💕"轻舟已过万重山"💕 作者:Mylvzi 文章主要内容:算法系列–链表刷题(二) 今天为大家带来的是算法系列--链表刷题(二),带来了几道经典的有关链表的面试题(合并K个有序列表) 1.两数相加 https://leetcode.cn/problems/a…

短视频素材网站去哪里找?

嘿,各位视频创作者们!想知道短视频素材网站去哪里找?今天就来给大家介绍几个必备的视频素材网站,特别是对于入门新手和运营人员来说,这些网站可是必不可少的资源哦! 首先,我们来看看那些提供可…

FreeRtos时间管理(一)

FreeRtos的时间管理包括相对延时vTaskDelay、绝对延时vTaskDelayUntil、系统时钟Systick 本篇主要分析相对延时vTaskDelay函数 调用vTaskDelay是一定会触发任务切换的,需要分析下PendSv中断触发的位置。 一、 函数流程 二 、prvAddCurrentTaskToDelayedList 注意&…

Redis中AOF、RDB和复制功能对过期键的处理

AOF、RDB和复制功能对过期键的处理 生成RDB文件 在执行SAVE命令或者BGSAVE命令创建一个新的RDB文件时,程序会对数据库中的键进行检查,已过期的键不会被保存到新创建的RDB文件中。 例子 举个例子,如果数据库中包含三个键k1、k2、k3&#x…

地宫取宝dfs

分析: 矩阵里的每一个位置都有标记,要求的问题是:有几种方法能完成这个规定。 那么,我们只需要计算从开始(1,1)到最后(n,m)的深度优先搜索中,有几个是满足要求的即为正确答案。 有个要求是,如果一个格子中…

删除单链表偶数节点

本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下: struct ListNode {int data;struct ListNode *next; };函数接口定义: struct ListNode *createlist(); struct ListNode *deleteeven( s…

Linux hook系统调用使你文件无法删除

文章目录 前言一、什么是hook技术二、Linux hook种类三、系统调用表hook3.1 查看删除文件用到系统调用3.2 获取系统调用函数3.3 编写hook函数3.4 替换hook函数3.5 测试 参考资料 前言 hook技术在Linux系统安全领域有着广泛的应用,例如通过hook技术可以劫持删除文件…

xilinx的高速接口构成原理和连接结构

本文来源: V3学院 尤老师的培训班笔记【高速收发器】xilinx高速收发器学习记录Xilinx-7Series-FPGA高速收发器使用学习—概述与参考时钟GT Transceiver的总体架构梳理 文章目录 一、概述:二、高速收发器结构:2.1 QUAD2.1.1 时钟2.1.2 CHANNEL…

pytest之fixture结合conftest.py文件使用+断言实战

pytest之fixture结合conftest.py文件使用 conftest.py--存放固件固件的优先级pytest执行流程pytest之断言实战pytest结合allure-pytest插件生成美观的报告 conftest.py–存放固件 在一个项目的测试中,大多数情况下会有多个类、模块、或者包要使用相同的测试夹具。这…

【Node.js】全局变量和全局 API

node 环境中没有 dom 和 bom ,此外 es 基本上都是可以正常使用的。 如果一定要使用 dom 和bom,可以借助第三方库 jsdom 帮助我们实现操作。npm i jsdom 实例: const fs require(node:fs) const {JSDOM} require(jsdom)const dom new JS…

命令执行漏洞

绕过技巧&#xff1a; cat 233.txt # 管道符号绕过 # 空格绕过 ${IFS} # %0a、%09 # 重定向绕过 < <> # 变量拼接绕过 kali:$ ac;bat;cfl;dag;$a$b $c$d # 单引号、双引号绕过 cat flag cat"" flag # 编码绕过 $(printf "\x63\x61\x74\x20\x2f\x…

前端学习之css 定位与浮动

定位 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>定位和浮动</title><style>*{/* 将模块紧紧贴着浏览器边框 */margin: 0;}.c{background-color: blueviolet;width: 100px;height: 1…

长安链团队论文入选国际顶会Usenix Security 2024

零知识证明是区块链扩容和隐私保护的关键前沿技术&#xff0c;其天然具备完备性、可靠性和零知识性的特点&#xff0c;是提升区块链交易吞吐量与可扩展性、在验证用户身份的同时保护用户数据隐私&#xff0c;实现复杂计算不可或缺的关键技术。基于零知识证明技术实现高兼容性、…

鸿蒙Harmony应用开发—ArkTS-像素单位

ArkUI为开发者提供4种像素单位&#xff0c;框架采用vp为基准数据单位。 说明&#xff1a; 本模块首批接口从API version 7开始支持&#xff0c;后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 名称描述px屏幕物理像素单位。vp屏幕密度相关像素&#xff0c;…

【机器学习】决策树学习下篇(详解)

引言 在当今数据驱动的时代&#xff0c;机器学习技术已成为解决复杂问题不可或缺的工具。其中&#xff0c;决策树学习作为一种基础且强大的算法&#xff0c;广泛应用于各种领域&#xff0c;包括但不限于金融风控、医疗诊断、客户关系管理等。决策树以其简单直观、易于理解和实…

Java八股文(秒杀)

Java八股文の秒杀 秒杀 秒杀 你对秒杀功能模块的理解是什么&#xff1f;你认为秒杀功能的关键点是什么&#xff1f; ○ 秒杀功能模块是指在一段时间内&#xff0c;将某个商品以非常优惠的价格或特殊活动进行销售&#xff0c;从而吸引大量用户抢购。其关键点是高并发的请求处理…

深层次理解拷贝构造函数

1.1 拷贝构造概念 在现实生活中&#xff0c;可能存在一个与你一样的自己&#xff0c;我们称其为双胞胎。 那在创建对象时&#xff0c;可否创建一个与已存在对象一某一样的新对象呢&#xff1f; 拷贝构造函数&#xff1a;只有单个形参&#xff0c;该形参是对本类类型对象的引…