ODL 和博科 SDN 控制器 - scut.edu.cn · SDN 控制器的作用 Common Services Service...
Transcript of ODL 和博科 SDN 控制器 - scut.edu.cn · SDN 控制器的作用 Common Services Service...
5
今天的网络和未来的网络SDN 逻辑上整合网络的控制平面
厂商 A 厂商 B 厂商 C
SDN
控制器
Northbound API
业界标准的协议
标准的模型化语言
• 采用开放标准的逻辑控制平面,不依赖于特定厂商
• 通用编程接口
• 标准的控制协议和模型化语言
CLI/API
EMS/NMS
Vendor A
CLI/API
EMS/NMS
Vendor BVendor
Specific
Management
Captive
Control
Plane
Industry
Standard
Protocols
Vendor C
CLI/API
EMS/NMS
• EMS, NMS, CLI, 和 APIs 需要特定厂商提供
• 每种设备的控制平面均为私有
• 标准的通讯互联协议
OpenDaylight 项目Linux Foundation 针对 SDN 和 NFV 的开源控制框架项目
6
• OpenDaylight 是专注于 SDN 和 NFV 的开源框架项目
• 支持厂商包含: Brocade, Cisco, Arista, Juniper, Ciena, Hewlett Packard, NEC, VMware, Huawei, 等等
• OpenDaylight 框架的重要特性:
• 标准化的 REST API (northbound): 供应用开发者使用
• 标准化和厂商定制的 plugins (southbound): 允许广大交换机、路由器厂商提供增值特性
• 服务抽象层体系架构: 简化网络复杂性,提供软件开发者将重点集中在商务流程而非厂商私有化的接口
控制器平台
应用和服务允许软件开发者开发创新应用,来控
制网络、获取信息
网络 – 交换机和路由器
允许网络设备制造商创建相关插件和信息模型来改善网络管理、降低成本
SDN 控制器的作用
Service Abstraction LayerCommon Services
Standardized REST API
Standard Interfaces and Plugins
BGP-LS
PCE-P
用户开发的应用 厂商开发的应用
NETCONF
YANG
OVSDBSNMPOpenFlow
1.0 / 1.3
Neutron
插件
厂商定制的Plugins
8
南向和北向接口
9
博科 Open SDN 控制器
网络应用、协作层和服务层
Controller平台
Southbound接口和协议
数据平面单元(虚拟交换机、物理设备接口)
Open Daylight APIs (REST)
Network servicefunctions
Platformservices Extensions
OpenFlowOther standard
protocols (ONF, IETF, …)
Network applications, orchestration, and services
Vendor-specific interfaces
Service Abstraction Layer (SAL)
提供客户用来构建自有SDN策略的标准框架平台
提供博科用户方便地搭建关键协作层以及与之关联的服务,创建真正的按需数据中心
博科 OpenDaylight 控制器博科提供测试、支持和服务保障的商用版本
10
• 源自 OpenDaylight 开源控制器,提供高质量保证的定制版本
• 所有博科增强特性反馈于开源社区,避免厂商锁定
• 提供全球范围的技术支持和 24x7 小时服务以及及时的缺陷修复
• 支持博科 MLXe, VDX, ICX 和 Vyatta vRouter 系列
• 支持广泛的第三方厂商交换机和路由器
• 提供全面的开发支持,包含培训课程、应用测试和认证
• 用户可以在此基础上进行应用创新和开发
OpenStack
Orchestration
YANG
Model
s
Service Abstraction LayerCommon Services
Standardized REST API
Standard Interfaces and Plugins
BGP-LS
PCE-P
Customer Developed
Applications
Vendor Developed
Applications
NETCONF
YANG
OVSDBSNMPOpenFlow
1.0 / 1.3
Neutron
Plugin
Vendor-Specific Plugins
OpenDaylight 控制器
• 控制器平台• 服务抽象层
• 基础网络服务功能
• 南向接口和协议插件• OpenFlow 1.0/1.3, NETCONF, OVSDB, BGP-LS, PCE-P, SNMP, LISP
• 厂商定制的插件 (比如. Brocade Vyatta vRouter Control Interface)
博科商用版本
11
Service Abstraction LayerCommon Services
Standardized REST API
Standard Interfaces and Plugins
BGP-LS
PCE-P
Customer Developed
Applications
Vendor Developed
Applications
NETCONF
YANG
OVSDBSNMPOpenFlow
1.0 / 1.3
Neutron
Plugin
Vendor-Specific Plugins
博科 SDN 控制器针对 OpenDaylight 控制器的商用支持版本
12
博科定制的商用版本,需要额外软件许可
Base Network Service Functions
控制器平台
南向接口和协议插件
OpenDaylight APIs (REST)
Service Abstraction Layer (SAL)
网络应用、协作层和服务层
OVSDB
博科提供开源代码
博科提供的专用插件
博科交换机和路由器
第三方合作伙伴的开发应用
需要额外的博科应用许可
14
利用 Mininet 来模拟交换机环境
/-- s2 --- s3 --\
h1 --- s1 s5 --- h2
\------- s4 ------/
sudo mn --custom ./odl-paths-topo.py --switch ovsk,protocols=OpenFlow13 --controller=remote,ip=x.x.x.x,port=6633 --mac --topo pathstopo
NETCONF
• 网络配置协议
• IETF 制定的网络管理协议
• RFC 4741 定义
• NETCONF 提供安装、操控、删除网络设备配置的机制
• 操作在一个简化的远程程序调用 (RPC) 层上完成
• 使用基于 XML 语言的数据封装来实现配置数据和协议交互
17
YANG
• 用于模型化配置和状态数据的语言
• IETF 定义的 RFC 6020
• 配置数据采用树状结构
• 数据可以使用复杂类型,比如 lists and unions
• 可以在 NETCONF 的内容和操作层上表示
• 对应到 NETCONF XML 表示
• 完美支持约束和数据验证
18
YANG
• NETCONF 在业界大量使用
• NETCONF 需要一种数据模型语言与之匹配
• 其他语言很少设计用来实现配置管理 (SMI (SNMP), UML, XML Schema)
• 其他语言缺少关键的特性如:
• 易读性
• 提供语义和语法来验证配置数据模型的机制
为什么采用?
20
REST
• REST 提供了一组定义体系架构的原则
• 用来设计 Web 服务,专注于系统资源
• 系统资源状态通过 HTTP 表达和传递
• 什么是系统资源?
• 可以通过客户端远程操控服务器端的一组数据
• 可以是文字、图像、多媒体文件等
• HTTP 提供传递和操控资源的方法
• 资源通过一个 URL 来表达
• 独立于平台和语言
21
REST
• 计算机编程语言中,CRUD 是定义特定操作的缩写
• CRUD:
• Create
• Read
• Update
• Delete
• 对应到 HTTP:
• 在服务器上创建资源,用 POST.
• 获取资源,用 GET.
• 改变资源状态或更新,用 PUT.
• 删除资源,用 DELETE.
什么是 REST – CRUD 和 HTTP
22
• 运行于 HTTP 上面的类似于 REST 的协议,用于获取用 YANG 定义的数据, 采用 NETCONF 定义的数据存储结构
• RESTCONF 用来获取控制器内部的数据存储
• 控制器中二种数据存储
• Config – 包含通过控制器插入的数据
• Operational – 包含通过网络插入的数据
• RESTCONF 接受端口 8080 for HTTP 的请求
• RESTCONF 支持 OPTIONS, GET, PUT, POST, DELETE 操作
• 请求和响应数据可以是 XML 或者 JSON 格式
RESTCONF
• JavaScript Object Notation.
• JSON 是一种存取和交换数据的句法
• 与 XML类似,更容易使用
• 独立于平台
• 案例:
JSON
{
"path": [ {
"source-addr": "10.0.0.1"
,"destination-addr": "10.0.0.2"
} ]
}
控制器简化子系统一览
30
MD-SAL
NB API - RESTCONF
NETCONF
UI - RESTCONF 客户端
INTENT REALIZED
OPENFLOW SNMP
模型驱动的应用逻辑
外部应用
31
• 用来沟通北向与南向接口中间的层面
• 决定如何实现将来自北向 APP的请求,将底层南向接口的协议隔离,北向应用开发将不必关注底层协议
• 底层协议用来连接网络设备,可以是 OpenFlow (1.0, 1.3), BGP-LS, Netconf, OVSDB, SNMP 等。
• 二种不同的 SAL:
• AD-SAL :基于应用驱动
• MD-SAL :基于模型驱动
• MD-SAL 不依赖于底层协议,用来支持任何设备和服务模型
服务抽象层 - SAL
37
容量耗尽攻击防范为博科多业务路由器 MLXe 优化设计
日益增长的容量耗尽攻击
硬件防范设备过于昂贵
大部分解决方案同时也导致数据通信的中断
通过 sFlow 数据侦测、分析容量耗尽攻击
针对攻击的策略矫正
使用博科 SDN 控制器
支持 OpenFlow 1.3 的多业务路由器 MLXe
基于策略的解决方案提供灵活的控制
提供从千兆到 100 GbE 的性能
高性价比
不中断正常流量
面临的问题 解决方案 方案优势
容量耗尽攻击防范
1. 数据中心设备发送 sFlow 采样数据到sFlow 的收集、分析模块
2. sFlow 分析、识别容量耗尽攻击
3. 流量转向应用提供基于策略的界面和 REST APIs,通知控制器将攻击流量转向
4. 博科 Vyatta SDN 控制器下发 OpenFlow 1.3 的侧率来通知路由器丢弃攻击流量
亮点: 更经济的旁路解决方案
38
数据中心网络
博科sFlow 分析模块Brocade TS App
1
23
4
博科 SDN 控制器(BVC)
客户端门户
sFlow 采样数据Ethernet
VLAN, VXLAN
IPv4/v6, NVGRE
MPLS
39
流量操控支持任何 OpenFlow 1.0 和 1.3 的交换机
虚拟化环境中网络流量复杂化
修改流量路径的难题
难以人为插入新的网络服务
通过图形化界面直观地修改流量路径
博科 SDN 控制器
支持 OpenFlow-的交换机
直观化网络拓扑和流量路径
直观修改流量路径
快速的服务插入
面临的问题 解决方案 方案优势
拖拽式的路径修改
博科 Vyatta 控制器包括图形化的网络拓扑和路径显示。对于任何受控于博科 Vyatta 控制器的设备(OpenFlow), 图形化界面提供拖拽路径的修改方式。
博科 Vyatta 控制器— 图形化拖拽路径
Brocade
ICX 6610
数据中心
Brocade
ICX 6610
Brocade
ICX 6610Brocade MLXe
Brocade VDX
40
博科提供开放的开发者用户论坛
用户论坛包含:
- 博科 SDN 控制器下载- APIs 下载- 文档资料- 演示视频- 样本脚本- 专家回答……
41
http://community.brocade.com/t5/DevNet/ct-p/APISupport