浅谈NETCONF与Openflow在实际应用中的协作

2017-08-21 12:35 出处:其他 作者:佚名 责任编辑:sunziyi

  【PConline 干货铺】在OpenDaylight众多南向协议之中,OpenFlow与NETCONF是两个最适合企业网场景使用的协议。目前各大网络厂商的网络设备都已基本宣称支持NETCONF与OpenFlow。那么在实际应用中,这两种协议如何协同工作呢?

  如果对OpenFlow和NETCONF不了解,可以先阅读前面几期的文章进行脑补。这里简单回顾一下两者的概念。

OpenFlow

  以使用最广泛的OpenFlow1.3版本为例,对于支持OpenFlow的交换机,包含一个或者多个流表和一个组表,用于报文的查找和转发。SDN控制器生成转发规则并通过OpenFlow协议以流表的形式下发给网络设备。SDN控制器可以往OpenFlow交换机中添加、更新和删除流表中的表项。

NETCONF

  NETCONF是一种网络配置管理协议。通过NETCONF协议,SDN控制器可以使用网络设备提供的规范API,来获取网络设备的配置和状态信息,向网络设备发送和获取配置。NETCONF协议提供了一个标准框架和一个标准远程过程调用协议RPC方法的集合。设备的配置数据和NETCONF协议都采用XML格式。

协作

  NETCONF协议允许SDN控制器去修改网络设备的配置,而OpenFlow协议允许SDN控制器去修改流表。如果用户需要去配置一个网络设备,则应该选择NETCONF;而如果用户想实现新功能,但通过配置网络设备中的已有CLI命令不易实现时,则通过OpenFlow直接下发流表是更好的选择。

  由于两者的侧重点不同,经常会使用两者来协作完成某个功能。

  以一个SDN控制器实现ARP代答的例子说明NETCONF与OpenFlow的协作关系。(ARP代答的目的是为了减少网络中的广播流量,减少带宽浪费。)

  【以下Switch简称SW,Server简称S;SW1/SW2为二层Switch,S1/S2的网关在SW3上】

  1)SDN控制器预先设置好ARP报文上送控制器的规则,当SW1/SW2与SDN控制器相连时,通过OpenFlow协议下发流表到SW1/SW2上。【步骤1】

  2)同网段的S1与S2通信,S1请求S2的ARP信息。

  3)SW1匹配中ARP报文上送控制器的流表,将ARP请求报文Packet_in到SDN控制器。【步骤2】

  4)SDN控制器上暂时没有学习到S2的ARP信息,由控制器将报文packet_out到SW2上。【步骤3】

  5)SW2将请求报文发送给S2,S2进行应答。

  6)SW2收到S2的ARP应答报文,匹配中ARP报文上送控制器的流表,将ARP应答报文packet_in到SDN控制器。【步骤4】

  7)SDN控制器将报文packet_out到SW1,SW1发送给S1,这样S1就学习到S2的ARP信息。【步骤5】

  8)SDN控制器通过NETCONF往SW3下发静态ARP配置,用于后续的路由封装;通过NETCONF往SW1/SW2下发静态MAC配置,用于后续的地址查找。【步骤6】

  步骤1~5使用了OPENFLOW协议,步骤6使用了NETCONF协议,两者协作完成ARP代答功能。

  虽然Openflow和NETCONF是两种不同的南向协议,也各自具备不同的特性,可以满足不同场景下的使用需求,但是在实际部署的过程中,两者结合起来使用效果会更好。

网络设备论坛帖子排行

最高点击 最高回复 最新
最新资讯离线随时看 聊天吐槽赢奖品