选谁更好?NETCONF与OPENFLOW能否和谐相处

2017-08-11 09:41 出处:其他 作者:佚名 责任编辑:sunziyi

  【PConline 干货铺】在OpenDaylight众多南向协议之中,OpenFlow与NETCONF是两个最适合企业网场景使用的协议。那么两者是竞争关系吗?用户选择哪个会更好呢?又或许他们能够和谐相处呢? 

  OpenFlow 是一种网络传输协议,它引入的最重要思想是将设备的控制面和转发面相分离,让网络设备专注于转发行为,而整网的控制行为集中在一台控制器上,由控制器生成转发行为并通过 OpenFlow 协议以流表的形式下发给网络设备,从而实现网络控制面的集中管理,降低维护管理成本。Big Switch和VMware NSX借助OpenFlow协议设计的新网络构架已经给传统网络带来了很大的冲击。

  NETCONF提供一套管理网络设备的机制,SDN控制器通过使用网络设备提供的规范API,来获取网络设备的配置和状态信息,向网络设备发送和获取配置。NETCONF协议提供了一个标准框架和一个标准远程过程调用协议RPC方法的集合。设备的配置数据和NETCONF协议都采用XML格式。由于其良好的功能性和扩展性而被主流设备产商所支持。

  以二层转发建立过程为例来介绍两者的处理过程:

  【以下Switch简称SW,Server简称S】

  1.SW1收到S1发来的ARP请求。

  2.SW1因未命中表项将报文Packet_in给SDN控制器。

  3.SDN控制器根据拓扑以及报文特点(广播)将报文Packet_out给整网拓扑的边缘端口(SW2 Gi 0/3),同时记录S1 MAC和SW Gi0/1位置关系。

  4.S2收到ARP请求后发送ARP应答,发送给SW2。

  5.SW2因未命中表项将报文Packet_in给控制器。

  6.控制器收到S2的应答,记录S2 MAC和 SW2 Gi 0/3位置关系。结合刚才记录的S1 MAC,同时下发表项Flow_mod给SW设备:

  SW1( sMAC=S1, dMAC=S2,Output Gi0/2; sMAC=S2, dMAC=S1,Output Gi0/1)SW2 (sMAC=S1, dMAC=S2,Output Gi0/3; sMAC=S2, dMAC=S1,Output Gi0/4)

  7.将S2的ARP Reply Packet_out给SW1。

  8.后续S1/S2通信匹配流表正常转发。

  1.SDN控制器通过netconf往SW1和SW2下发地址学习和未知名/广播报文泛洪的配置。

  2.SW1收到S1发来的ARP请求。

  3.SW1的MAC地址表中自动学习到(S1 MAC,GI0/1)的MAC表项。由于是广播报文,SW1还会将报文泛洪到SW2。

  4.SW2也会自动学习到(S1 MAC,gi0/4)的MAC表项,报文泛洪到S2。

  5.S2收到ARP请求后发送ARP应答,发送给SW2。

  6.SW2/SW1重复相应的地址学习过程。由于已经存在S1 MAC的MAC表项,因此会按照MAC地址表进行转发。

  从上面的示例可以看出,通过OpenFlow方式实现时,控制逻辑在SDN控制器上,SDN控制器将流表下发到网络设备,网络设备依据流表进行数据的转发。而通过NETCONF实现时,SDN控制器下发配置到网络设备,网络设备依据配置实现二层的学习与转发。

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

  NETCONF协议修改的配置内容可以显示在设备配置中,并且能够保存这些更改的配置。而OpenFlow创建的流表是临时的,它们不会出现在设备配置中,在设备重启时会丢失。例如,创建ACL和将ACL应用于接口上,可以在任何具有NETCONF的网络设备上实现,但是NETCONF消息的具体内容是各网络厂商自定义的。 为了支持多个网络产商的设备,SDN控制器必须实现网络产商的特定功能。但如果通过OpenFlow,则只要将相同的转发流表下发到支持OpenFlow的网络设备中即可。

  单纯从技术角度来看,OpenFlow的完全控制转发分离架构对协议体系成熟度、控制器产品的实现难度更高。一个离开集中控制器就无法运转的网络架构,本身就蕴含了额外的风险和成本。而在SDN的初期推广过程中,如果要在已有网络中部署SDN,则面临额外增加控制器采购成本问题。如果这时候SDN带来的收益不足以让客户付出此部分额外的成本,则可能会从反面质疑SDN可靠性的问题。

  鉴于上述对比分析,大多数人会希望保留原有网络设备的功能,通过NETCONF简化配置管理;而新功能需要添加转发流表时,则通过OpenFlow来配置,所以当前这两种协议还是会和谐共处。

网络设备论坛帖子排行

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