北向和南向API
北向API在SDN架构中提供一个机制来将服务或应用程序呈现给企业。每个应用程序将会构建一个针对网络设备的数据流表,然后将请求发送给控制器以便将数据流分布到网络设备。
例如,一个虚拟交换应用程序将会构建一个覆盖网络中物理和虚拟交换机所有点的网络图/数据库。在多租赁以太网网络中,应用程序将构建一个集合的流规则来模拟以太网VLAN(虚拟局域网)同时又保持每个租赁人数据流完全的隔离。这些数据流规则将包含基于流入和流出端口的值,加上数据源和目标网卡地址。
从服务到控制器的北向API目前还没有被定义。我认为有三个理由。首先,大厂商还没有发现足够值得投资的使用情境。其次,只有少数控制器产品进入市场,它们还需要证明在生产传输中是稳健的平台。第三,根据不同的要求,不同的应用程序可能需要不同的面向控制器的API。比如,一个防火墙应用程序可能需要高性能低延迟低复杂性的数据交换,而一个监控应用程序可能只需要读取通过它们的数据流。
目前这个行业正在发展不同的方案。看起来ONF里面的论坛将在近期内开始提供一些指导,而IETF的网络工作组已经发布了这方面的大纲。
缺少标准API意味着软件开发商必须自己决定依赖的平台类型。F5是针对思科或Big Switch控制器开发的吗?一家安全性公司开发一个针对OpenFlow的防火墙怎么样?他们是否会选择惠普OpenFlow控制器或IBM版本的控制器?北向API必须在某个时间点上标准化,不过格式、性能和数据结构很可能没有被很好理解。我们将在未来的文章中讨论更多有关这方面的问题。
OpenFlow和SDN的区别
在考虑OpenFlow和SDN之间区别的时候,要想想它们在基础设施中的位置。OpenFlow是一个技术-到-技术的服务,因为它连接的是控制器和网络设备。对用户或企业来说,它是不可视的。与此相反,SDN是一个商业-到-技术的接口。SDN将服务呈现给用户和企业,然后将服务予以抽象化以便让控制器可以将它们转换成网络动作。
现在我们可以开始谈网络技术的革命了。我们现在的网络没有SDN。现在的“网络管理”平台不足以为网络拥有者提供可视性和控制性。这主要是因为SNMP(简单网络管理协议)的局限性,后者只是一个将数据从网络中抽取出来的标准方式(尽管一些工具已经开始尝试从命令行界面中抽取数据)