SDN-自学笔记

目录

书籍推荐

网站推荐

OpenDaylight

简介

特点

版本

相关文章

SDN-Opendaylight(Nitro版本)安装使用

ONOS

简介

相关文章

Mininet

简介

版本

相关文章

SDN-Mininet安装使用

SDN-Postman及python编程对流表的操作

OpenFlow

相关文章

SDN-OpenFlow1.0协议分析

SDN-openflow1.0抓包分析

SDN-流表分析与增删改查

SAL

AD-SAL

MD-SAL

YANG

OpenDaylight应用开发

SDN-OpenDaylight(Solium版本)应用开发入门HelloWorld

SDN-OpenDaylight(Solium版本)应用开发入门Toster


书籍推荐

《软件定义网络:SDN与OpenFlow解析》

《OpenDaylight应用指南》

《重构网络  SDN架构实现》

《深入理解OSGi原理》

《Maven权威指南中文版》

网站推荐

SDNLAB

OpenDaylight

简介

开源控制器有很多,比如Floodlight、Ryu、ONOS等。博主学习的是OpenDaylight,因为这个比较火,容易找到资料。OpenDaylight是目前备受瞩目的开源控制器之一,是一款基于Java开发的控制器。

官网:OpenDaylight官网

特点

南向接口不仅支持OpenFlow(博主学习的这个,以后会讲到),还支持SNMP、PCEP、BGP-LS、OF-Config等其他标准化协议,甚至允许出现私有化接口。
引入了服务抽象层(博主学习的MD-SAL),这使得上下层模块之间的调用可以相互隔离,屏蔽多种南向协议的差异,为上层的功能模块提供一致性服务。
北向提供开放可扩展的API,用户可根据需要通过调用函数或者REST接口开发应用(博主这里学习的REST API)。
OpenDaylight具有模块化、可扩展的控制器核心。采用开放服务网关(Open ServiceGateway Initiative,OSGi)体系结构(可以看看推荐的第三本书籍),解决功能组件之间的隔离问题,实现代码和功能的灵活加载,并可支持运行时业务或应用的安装、更新、删除等插拔操作。
使用YANG工具可直接生成业务管理的“骨架”,开发者只需专注于具体业务,根据业务驱动模型工具来设计接口,实现业务功能。
OpenDaylight拥有一个开源的分布式数据网格平台,该平台不仅能实现数据的存储、查找和监听,更重要的是它使OpenDaylight支持控制器集群。

版本

OpenDaylight版本按元素周期表来命名,截止写这篇文章,已经发布到钠(Sodium)版本。书籍总是滞后的,前面的版本有试过安装,有些插件安装不上,博主也不喜欢安装最新版本,选择的是氮版本,在下面的相关文章里面有安装的方式。

相关文章

SDN-Opendaylight(Nitro版本)安装使用

ONOS

简介

官网:ONOS官网

相关文章

SDN-ONOS1.x学习记录(安装、拓扑、命令、图形化界面)

Mininet

简介

Mininet是一款轻量级网络仿真器,目前的版本已经可视化,

更多介绍:https://github.com/mininet/mininet/wiki/Introduction-to-Mininet

Github:Mininet

官网:Mininet

版本

Mininet支持可视化(2.2.0+),所以建议安装2.2.0之后的版本,相关文章里面有安装步骤。官网里面给了三种方式,小伙伴们多看看官网的Walkthrough部分。

相关文章

SDN-Mininet安装使用

SDN-Postman及python编程对流表的操作

OpenFlow

OpenFlow,一种网络通信协议,属于数据链路层,能够控制网上交换器或路由器的转发平面(forwarding plane),借此改变网络数据包所走的网络路径。

OpenFlow交换机将原来完全由交换机/路由器控制的报文转发过程转化为由OpenFlow交换机(OpenFlow Switch)和控制服务器(Controller)来共同完成,从而实现了数据转发和路由控制的分离。控制器可以通过事先规定好的接口操作来控制OpenFlow交换机中的流表,从而达到控制数据转发的目的。

在OpenDaylight中,OpenFlow2]的实现分为OpenFlowJava和OpenFlowPlugin两部分。
其中,OpenFlowJava负责面向南向设备完成OpenFlow协议的序列化、反序列化、端口监听以及消息收发,而OpenFlowPlugin负责完成OpenFlow协议的状态管理、会话管理、事件处理等,向SAL层提供服务。

相关文章

SDN-OpenFlow1.0协议分析

SDN-openflow1.0抓包分析

SDN-流表分析与增删改查

SAL

AD-SAL

AD-SAL是SAL的早期实现,它使用API调用的方式抽象服务层,将接口和实现进行分离。AD-SAL会将API的调用适配为北向或者南向插件提供的实现实例。AD-SAL有强制固定的部分,不够灵活。

MD-SAL

相较于AD-SAL而言,MD-SAL(Model-Driven SAL,基于模型驱动的服务抽象层)加入了自动化的部分,是SAL的当前主推版本,它采用数据为中心的服务抽象层框架,使用模型化语言——YANG描述业务的数据结构以及统一南北向接口。除此之外,它还提供消息传递和数据存储,因此,可以将它视为一个消息总线、内存数据库以及请求路由的结合体。

  • MD-SAL模型驱动的服务抽象层,为Apps和Plugins开发提供同意支持
  • 提供Request Routing和用来实现抽象服务和相应API的基础框架
  • 抽象服务和API都由各个Plugin通过Yang Model定义
  • Yang Tools Plugin根据Yang Model的定义自动生成API,生成相应Java代码
  • 开发者通过实现自动生成的Service Interface来实现具体的API功能和服务内容
  • Plugin通过MD-SAL和生成的API(Rpc,Notification),DataStore去利用其他Plugin的服务和数据
  • 所有功能模块的信息交互,数据存储调用都通过MD-SAL完成

名词解释

  • Rpc(Remote Procedure Call):提供服务的远程调用接口
  • Notification:提供通知,可以发出通知和接收通知。
  • DataStore:提供数据存储,读取,Transaction(事务)等功能。
  • Request Routing:提供请求路由功能,把外部请求传送到正确的Plugin和Node instance处理。
  • Node instance:Yang结构树上的节点实例
  • Restconf Subsystem:自动定义和创建Restconf API的Plugin
  • Config subsystem:提供统一的配置文件管理功能的Plugin

YANG

在OpenDaylight中,YANG同样有两种功能:数据描述和接口描述。OpenDaylight中的YANG文件格式有两种,一种是基于MD-SAL的应用/插件,一种是基于ConfigSubSystem的启动配置。

OpenDaylight应用开发

SDN-OpenDaylight(Solium版本)应用开发入门HelloWorld

SDN-OpenDaylight(Solium版本)应用开发入门Toster

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!
如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lady_killer9

感谢您的打赏,我会加倍努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值