在Driver中利用NETCONF协议读取并修改路由器配置、生成NETCONF命令、并下发到路由器是Driver开发的重要部分。...如果对这两个步骤还不是很了解的同学,可以参考以下连接:https://wiki.onosproject.org/display/ONOS/NETCONF。...同时向设备发送hello的NETCONF命令,完成两个设备间所支持功能的同步,为以后使用NETCONF命令进行交流打下基础。 ?...三、NETCONF命令的发送 当控制器与设备建立好连接以后,我们就可以通过控制器想设备发送命令了。...至此,NETCONF命令的下发和信息的返回过程就结束了。 不知道我有没有讲清楚,欢迎大家拍砖讨论。
NETCONF和YANG对应的RFC文档分别是RFC6241和RFC6020,而RFC6244描述了一个实现NETCONF/YANG的参考架构。...YANG和NETCONF是相伴而生的,虽然,原则上YANG也能够用于其他的协议和不同的领域,但基本上可以认为YANG就是为NETCONF量身定做的。...SSH(Secure Shell)是NETCONF强制支持的传输协议,其他的传输协议如TLS和SOAP也能满足NETCONF的要求。...NETCONF Server是要配置的网络设备,除了硬件之外,NETCONF引擎是和NETCONF Client建立会话的软件模块,当然,Server上面还会运行自身设备的软件系统。...如下面的例子,NETCONF Client从NETCONF Server那里得到一个网络接口的link-up事件。 ?
ONOS中主要通过NETCONF协议远程读取、修改网络设备配置,所以我们也基于NETCONF协议来实现对Juniper路由器的管理。主要工作分为如下几部分。...前期准备 ONOS中基于NETCONF协议对路由器配置进行远程控制,由于之前对NETCONF协议不太熟悉,首先学习了NETCONF协议,并用分别用NETCONF协议的Python函数库(ncclient...升级路由器,使其支持NETCONF协议。同时学习juniper路由器的配置命令,弄清实现不同命令时NETCONF协议下发的XML文件。...我们的juniper driver继承了NETCONF driver,调用NETCONF协议(onos/protocols/netconf)中的方法实现和路由器的通信。...NETCONF协议和控制器相连。
2 NETCONF NETCONF[3]由W3C提出,是一种基于XML的网络配置管理协议,因此使得其可以表达复杂的层次化数据。...NETCONF为一个层次化协议,从下到上共四层分别是: 安全传输层,NETCONF是面向连接的,它要求通信端口之间建立永久性的连接,而且这种连接必须提供可靠的、按序的数据传输。...消息层,NETCONF使用和元素实现独立于传输层协议的NETCONF请求和响应。 操作层,NETCONF在RPC消息层之上定义了一组操作,用于操作数据库。...OF-CONFIG协议基于NETCONF协议实现,依赖于NETCONF的操作和传输标准,区别在于OF-CONFIG关注于OpenFlow设备配置,其在NETCONF的内容层中定义了OpenFlow数据元素...YANG是一个可扩展的NETCONF数据建模语言,为NETCONF协议、NETCONF RPC、NETCONF通知(notifications)操作的配置数据和状态数据进行建模。
2.NETCONF NETCONF[3]由W3C提出,是一种基于XML的网络配置管理协议,因此使得其可以表达复杂的层次化数据。...NETCONF为一个层次化协议,从下到上共四层分别是: 安全传输层,NETCONF是面向连接的,它要求通信端口之间建立永久性的连接,而且这种连接必须提供可靠的、按序的数据传输。...消息层,NETCONF使用和元素实现独立于传输层协议的NETCONF请求和响应。 操作层,NETCONF在RPC消息层之上定义了一组操作,用于操作数据库。...OF-CONFIG协议基于NETCONF协议实现,依赖于NETCONF的操作和传输标准,区别在于OF-CONFIG关注于OpenFlow设备配置,其在NETCONF的内容层中定义了OpenFlow数据元素...YANG是一个可扩展的NETCONF数据建模语言,为NETCONF协议、NETCONF RPC、NETCONF通知(notifications)操作的配置数据和状态数据进行建模。
YANG模型是一种数据建模语言,用来建模由NETCONF协议、NETCONF远端过程调用(RPCs)、和NETCONF通知(notification)操作的配置数据和状态数据。...YANG模型与NETCONF 由最初YANG模型的定义可知,YANG模型与NETCONF密切相关,其产生是为了对NETCONF协议所操作的数据进行建模。...图1 如图中所示,NETCONF在很多方面体现出对于SNMP协议的优越性,NETCONF协议由XML编码,以SSH加密,采用TCP连接,体现出更好的安全性和可靠性。 ?...协议、NETCONF远端过程调用(RPCs)、和NETCONF通知(notification)”。...XML涉及到NETCONF,NETCONF配置是xml格式的,YANG 可以无差转化为XML格式,即YIN YANG ?
配置文件读取 首先,我们需要一个结构来读取和解析CNI配置文件: package main import ( "encoding/json" "io/ioutil" ) type NetConf..., error) { netConf := &NetConf{} if err := json.Unmarshal(bytes, netConf); err !...= nil { return nil, err } return netConf, nil } 3. net.go:网络配置 然后,我们需要实现网络配置功能,包括创建veth...*NetConf) error { hostIfName := fmt.Sprintf("veth%s", containerID[:5]) contIfName := ifName...*NetConf) error { // Here you should clean up the network resources allocated for the container
一、Yang的来源 早在2003年,IETF成立了一个NETCONF工作组,提出一种基于XML的网络配置管理协议,也就是NETCONF(Network Configuration Protocol),因为该协议的配置功能非常强大...NETCONF协议分为传输层、RPC层、操作层和内容层。...其中,内容层是唯一没有标准化的层,于是一种新的建模语言YANG产生了,它的目标是对NETCONF数据模型、操作进行建模,覆盖NETCONF协议的操作层和内容层 ?...rpc rpc语句用来定义NETCONF协议的RPCs,input和output使用YANG数据定义语句。如下例子,建模一个激活软件图片的RPC: ?
图2 抽象层屏蔽各厂商差异化实现 YANG+NETCONF,是否可行? ...NETCONF是一个基于XML,被设计用来替代CLI、SNMP的网络配置和管理协议,YANG Model与NETCONF也进行了完整的适配。 ...方法和过程并不复杂,但NETCONF自2006年提出,2011年以RFC6241作为终稿再次发布后,在比较长的一段时间内主流网络设备厂商对NETCONF支持有限,近些年随着SDN和网络自动化运维的迅速发展...,NETCONF才在诞生10多年后在传统计算机网络领域重新崛起。...而多数厂商并非采用统一的NETCONF数据模型,各个硬件型号和软件版本的支持覆盖度也不同,导致现网实际很难通过NETCONF对网络设备进行大规模的配置审计和管理。
此外,使用RFC 7950的南向Netconf设备的互操作性在Carbon版本中成为可能。 NETCONF集群实现通过集群单例服务进行重新架构变得更加稳定,并大大提高了测试覆盖率。...最终用户可以实现与Boron版本一致的NETCONG集群体验,但是在分布式控制器部署中可以更放心地使用NETCONF。...在NETCONF项目中添加了基于IETF Call Home的Draft 08初始实现,该实现目前不是集群感知,而是提供呼叫归属功能的基本功能。...相比较于RESTCONF、NETCONF或其他一些北向接口,应用程序开发人员可以挂接总线来操纵数据,实际上这解锁了使用支持ZMQ集成的非JRE语言编写控制器应用程序的功能,从这个角度来说,它开创了一套全新的开发人员参与项目的能力
NETCONF:IETF在2003年5月成立了Netconf工作组,该工作组主要是为了提出一个全新的基于XML的网络配置(NETCONF)协议而成立的。...该工作组已于2006年12月通过了NETCONF协议的基本标准RFC4741-4744。...RFC4741- 4744,RFC4742- RFC4744 分别描述了NETCONF在三种不同的传输模式SOAP,BEEP和SSH下是如何工作的。...2008 年7 月推出RFC5277,主要定义了NETCONF的事件通知机制,用于故障管理。...2009 年5 月推出的RFC5539 描述了NETCONF如何保证传输层传输信息的安全机制,加强了NETCONF的安全体系。
这些plug-in还不如没有呢,谁天天升级系统啊还有就是在说说netconf和restful的api,国内的厂家netconf 基本就只有一个壳,里面大量的东西是没有完成或者只做了几个平台的产品。...这个除了cli 的方式外,netconf restful的接口通常都是结构化的数据了,所以,有结构化的数据 开发就舒服很多。 2.连接的无状态性。这一点也许名字叫得不是很合适。...4.最后一个是事务性 前面三个问题或者说属性,对于现在netconf 的方式,http +json 或者叫restful 的方式 都不是大问题,基本是能解决的,或者是已经解决的不错的。...Q2:到底这种基于netconf restful结构化的北向接口,比适配厂家的独立的北向api或者cli,优势在哪里呢? 因为netconf和restful的数据基本都是结构化的。比cli方便。...但是现在厂家的netconf or restful接口功能不是很全。 Q3:有个问题Juniper的设备是能做到幂等性的?可以通过本地拼接成XML通过netconf做配置吗 Juniper是可以的。
拓扑管理、策略管理),还使用统一的控制平面和数据平面,即北向接口REST API要支持SRP流预留协议来实现OPC UA的发布-订阅模式,控制器要新添CUC、CNC等网络功能组件,要能通过OpenFlow、Netconf...实现适配的南向接口 南向接口可以采用OpenFlow和Netconf,OpenFLow保持协议不变,完成流表下发等功能,对于TSN相关协议的配置和更新,可采用Netconf对接口(需要修改很多的匹配字段...Netconf协议(RFC 6241)规定了网络设备中的Netconf Server和控制器中的Netconf Client组件,在Server端,配置被存储在配置数据库中,客户端可以通过RPC(Remote
一般来说,在这个层面编程就更像是EMS针对网元级别的编程,你可以使用各种特定网络设备支持的协议来编程,openflow, ovsdb, snmp ,soap, netconf ...当你的网络变大,要实现的业务变得更多的时候...A2:是的,可以参见odl的框架图,南向接口上有的,openflow, netconf等等 Q3:采用第三种方法也能像第二种方法一样通过sFlow拿到流量吗?...A5:你这个问题问得挺好的,理论上你也可以用odl和sflow collector/analyzer来接,譬如你在那个sflow collector 实现一个netconf server,然后用netconf...A6:理论上你也可以用odl和sflow collector/analyzer来接,譬如你在那个sflow collector 实现一个netconf server,然后用netconf 和它对接。...A11:take vyatta router as example,we had bunch of yang files to define the vyatta router.turn the netconf
NETCONF开发团队贡献了利用基于密钥的身份验证和南向NETCONF设备的功能,NETCONF设备迄今仅限于基本身份验证。
以下是我的 Arch Linux 测试机中的示例输出: ssh 22/tcp ssh 22/udp ssh 22/sctp sshell 614/tcp sshell 614/udp netconf-ssh...830/tcp netconf-ssh 830/udp sdo-ssh 3897/tcp sdo-ssh 3897/udp netconf-ch-ssh 4334/tcp snmpssh 5161/tcp
,希望在市场继续保持优势,另一方面,运营商即想拥抱新理念,也想保护现有的投资,这样希望针对现有网络进行平滑的过渡,所以采取大多不动设备上的控制智能,控制器(只能说是一种伪控制器)与转发设备间的接口采用NETCONF...1.2.2.SDN平台实现框架 理想是丰满的,但现实往往呈现出很骨感,学术界提出的正统SDN,在产业界和运营商的不断实践下,南向接口不仅仅局限在OpenFlow,也包含了NETCONF、SNMP等协议。...RESTCONF、NETCONF是南向协议还是北向协议?...首先就RESTCONF和NETCONF本身作为协议来讲,是不区分北向协议还是南向协议的;其次,在实际的应用过程中,通常情况下RESTCONF用在北向,NETCONF用在南向,但同时也注意到有些厂家控制器提供的北向接口使用的是...NETCONF。
一般来说,在这个层面编程就更像是EMS针对网元级别的编程,你可以使用各种特定网络设备支持的协议来编程,openflow, ovsdb, snmp ,soap, netconf ...当你的网络变大,要实现的业务变得更多的时候...A2:是的,可以参见odl的框架图,南向接口上有的,openflow, netconf等等 Q3:采用第三种方法也能像第二种方法一样通过sFlow拿到流量吗?...A5:你这个问题问得挺好的,理论上你也可以用odl和sflow collector/analyzer来接,譬如你在那个sflow collector 实现一个netconf server,然后用netconf...A10:take vyatta router as example,we had bunch of yang files to define the vyatta router.turn the netconf
.// This function squirrels the data away to be retrieved later.func SaveConfig(conf *types.NetConf,...return fmt.Errorf("ERROR: serializing delegate OVS saved data: %v", err) }}func LoadConfig(conf *types.NetConf...Name string `json:"name"` // From NetConf.Name Config UserSpaceConf `json...:"config"` // From NetConf.ContainerConf IPResult current.Result `json:"ipResult"` // Network
configuration):高速通道带宽预留协议,是SRP的增强模式,采用集中式的管理方式,通过集中式的网络配置节点(Centralized Network Configuration,CNC)通过远程管理协议(如NETCONF...此外,远程可配置性,支持NETCONF网络配置协议服务,YANG被用作NETCONF上的数据建模语言。...IEEE802.1Qcp(Basic YANG):面向桥接的YANG数据模型可结合NETCONF在网桥之间实现基本桥接配置数据的通信。...IEEE802.1Qcw(YANG for Qbv,Qbu & Qci):面向Qbv、Qbu、Qci的YANG模型扩展了802.1Qcp的功能,结合NETCONF支持在网桥之间实现调度、抢占和监督配置数据的通信...IEEE802.1CBcv(YANG & MIB for FRER):扩展了802.1Qcp功能,结合NETCONF支持在网桥之间实现冗余配置数据的通信。
领取专属 10元无门槛券
手把手带您无忧上云