概述
第一章
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创建
-
图形化界面创建:sudo python minideit.py
-
命令行创建:
- sudo mn
- py net.addhost(‘h3’)
- nodes
-
编写脚本:
- gedit
-
mininet基本命令:
https://blog.csdn.net/ten_sory/article/details/79593554
第三章
1. SDN数据平面架构
传统数据转发特点
- 协议相关,只能转发特定几种协议数据包
- 功能模块固定,仅支持有限的用户配置
SDN数据平面架构
- 包处理流程中的所有模块实现可编程性
2. SDN数据平面转发模型
- 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)基础概念学习笔记(上)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复