我是靠谱客的博主 自信大象,最近开发中收集的这篇文章主要介绍软件定义网络(SDN)基础概念学习笔记(上),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第一章

1. 克服解决传统网络

两大根本原因
  • 传统网络、设备的只可配置,不可编程性
  • 网络分布式架构与管理带来的制约
    • 管理平面
    • 控制平面
    • 数据平面
新方案两种解决办法
  • 弹性响应上层的网络可编程
  • 集中统一的控制与管理层
SDN三层网络架构
1. 应用层:用户业务系统
2. 控制层:SDN控制器,往上与上层应用交互,往下下发流表、指导转发行为
3. 基础设施层:仅保存数据层的基础设备
4. 北向接口:提供应用系统(控制层)与SDN控制器(控制层)的各种API接口
5. 南向接口:提供控制层与基础设施层的控制数据平面接口
SDN三大态势
- 应用范围扩大
- 市场规模扩大
- SDN技术融合扩大、加速

2. SDN标准化

四大组织
  • ONF

  • IETF

  • ITU-T

  • ETSI

第二章

1. 主流SDN架构

  • ONF基于OpenFlow的三层架构

  • IETF技术架构

  • NICIRA的Overlay架构

  • ETSI的NFV技术

2. ONF基于OpenFlow的三层架构

四大平面,两大接口:
  • 应用平面、控制平面、数据平面、管理平面
  • 北向接口、南向接口
数据平面
  • 关键技术:SDN Datapath
    • 控制数据平面接口 CDPI
    • 代理转发引擎 Forwarding Engineer
    • 表和处理功能 Process Function
  • 主要作用:对数据面进行抽象建模
控制平面
  • 组成部分:

    • 北向接口代理 NBI
    • SDN控制逻辑
    • 控制数据平面接口驱动 CDPI Driver
  • 主要任务:

    • 将SDN应用层请求转换到Datapath
    • 为SDN应用层提供底层网络抽象模型
  • 关键技术:

    • 控制器(NOS)[NOX,POX,FloodLight,RYU,OpenDayLight,ONOS]
应用平面
  • ​ 关键技术:
    • SDN应用逻辑:改造传统应用交付能力(负载均衡、访问控制、应用加速)
    • 北向接口驱动 NBI
控制平面
  • 主要任务(静态工作):
    • 网元初始化配置
    • 制定Datapath控制器
    • 定义控制器及控制范围
南向接口(CDPI)
  • 功能:转发行为控制、设备性能查询、统计报告、事件通知

  • 关键技术:

    • 转发面开放协议(南向接口协议)

      允许控制器控制交换机的配置及相关转发行为。

  • 举例:南向接口协议 Openflow

北向接口(NBI)
  • 功能:向应用层提供抽象的网络视图,使应用能直接控制网络的行为

  • ​ 关键技术:

    • SDN北向接口设计

      控制器将网络能力封装后开放接口,供上层业务调用。

  • 举例:REST API (是北向接口的主流设计)

其他
  • 在现有网络设备基础上提供开放的API 属于IETF提出的I2RS架构的特点

3. 核心思想

三个核心思想:
  • 解耦:将控制平面和数据平面分类
    • 控制平面负责上层控制决策,数据屏幕负责下层数据交换转发。
    • 控制平面可进行软件实现、灵活,可满足多元化需求
    • 数据平面有硬件设备实现,可专注于转发,简单通用
  • 抽象
    • 转发抽象:将各种如MAC表、ACL表、MPLS等抽象成统一的流表
    • 状态抽象:通过NOS实现下发控制命令、收集设备链路状态,为上层应用提供全局网络视图
    • 配置抽象:网络行为表达通过编程语言实现
  • 可编程
    • 北向接口:REST API,JAVA API
    • 南向接口:Openflow,OF-Config,NETCONF,OVSDB
    • 东西向接口
    • 数据平面:DPDK(Intel网络数据处理框架),P4(斯坦
    • 福)

4. MININET 实验

mininet创建
  1. 图形化界面创建:sudo python minideit.py

  2. 命令行创建:

    • sudo mn
    • py net.addhost(‘h3’)
    • nodes
  3. 编写脚本:

    • gedit
  4. mininet基本命令:

    https://blog.csdn.net/ten_sory/article/details/79593554

第三章

1. SDN数据平面架构

传统数据转发特点
  • 协议相关,只能转发特定几种协议数据包
  • 功能模块固定,仅支持有限的用户配置
SDN数据平面架构
  • 包处理流程中的所有模块实现可编程性

2. SDN数据平面转发模型

  • Openflow交换机转发模型

openflow交换机转发模型

缺点:未实现协议无关;不支持对数据包解析逻辑进行编程

  • 可编程协议无关交换机架构 (PISA 架构)

    特点:

    • 设计了可编程解析器,实现了协议无关的数据包解析处理
    • 在入口、出口分别设计了“匹配-动作”逻辑

2. Openflow

Openflow架构 三个组成部分
  • 流表:只是交换机如何进行流的处理
  • 安全通道:控制器与交换机之间的交互,通过安全通道与远端控制器连接
  • Openflow协议:定义南向接口标准
主要版本和特性

主要版本和特性

单流表到多流表的变化

单流表到多流表的变化

3. 流表

流表:针对特定流的策略表项的集合,负责数据包的查找与转发。
Openflow1.0流表组成
  • 包头域:12个字段,4-7层的大部分标识

    • 4层

在这里插入图片描述

  • 计数器:统计数据流量相关信息

    • 流表:表项数、数据包查询次数、数据包匹配次数
    • 数据流:数据包数、字节数、数据流持续时间
    • 设备端口:收到的数据包数、发送数据包数、接收字节数、发送字节数、错误发送的次数
    • 队列:发送的数据包数、字节数、溢出错误次数
  • 动作表:应该执行的下一步操作

    • 每个流表项对应零到多个动作,如果没有定义转发动作,数据包丢弃
    • 多个动作可以具有不同优先级
    • 出现Openflow不支持的参数值,则返回错误信息
  • 动作:

    • 必备动作:
      • 转发(ALL、CONNTROLLER、TABLE、IN_PORT、ANY、LOCAL)
      • 丢弃
    • 可选动作:
      • 转发 (NOMAL、FLOOD)
      • 排队
      • 修改域
  • 端口:

    • 物理端口、逻辑端口

    • 保留端口:指定通用的转发动作

      ALL、CONNTROLLER、TABLE、IN_PORT、ANY、LOCAL、NOMAL、FLOOD

保留端口

数据包处理流程

数据包处理流程

流表项结构变化

流表项结构变化

组表:由多个组表项组成,提供更高级的数据包转发特性,可实现负载均衡、容灾备份、组播和聚合
计量表:由多个计量表项组成,实现简单的QoS功能

4. SDN交换机

交换芯片
  • 通用CPU、专用集成电路芯片(ASIC)、现场可编程门阵列(FPGA)、网络处理器(NP)
Openflow交换芯片-NDM
SDN交换机
  • SDN物理交换机

    • 基于ASIC的SDN品牌交换机

      CISCO Nexus 9500、NEC IP8800、ARISTA、JUNIPER等

    • 基于ASIC的SDN白盒交换机

      big switch、盛科 V30等

    • 基于NP的SDN交换机

    • 基于FPGA的SDN交换机

      斯坦福 NetFPGA

  • SDN虚拟交换机/软件交换机

    • Open vSwitch (OVS)
    • Cisco Netxus 1000V
交换机选型参数
  • 背板带宽(机架式交换机):背板带宽越高,所能处理数据能力越强

    计算方法:端口数×相应端口速率×2(全双工)

  • 端口密度、端口速率、支持模块类型、带宽类型

  • 时延、功耗、支持Openflow版本、机架单元、网管功能

3. Open vSwitch

Open vSwitch是一个产品级质量的多层虚拟交换机

重要概念:
  • Bridge代表一个以太网交换机
  • 交换机包含端口:Normal、Internal、Patch、Tunnel
  • 一个端口可以有一个或多个接口
  • 包通过流转发的
特性*

特性

总体结构

总体结构

三个重要组件:

  • ovsdb-server:OVS数据库服务进程
  • ovs-vswitchd:OVS核心组件,负责保存和管理控制器下的所有流表
  • Forwarding Path:OVS的内核模块,缓存某些常用流表,并负责数据包转发
OVS提供的命令

提供的命令

最后

以上就是自信大象为你收集整理的软件定义网络(SDN)基础概念学习笔记(上)的全部内容,希望文章能够帮你解决软件定义网络(SDN)基础概念学习笔记(上)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部