究竟什么是软件定义网络(SDN)?

时间:2015-01-22 09:06:35

标签: opendaylight sdn

我正在研究Open DayLight的文档,似乎无法理解软件定义的网络甚至是什么。我可以在SDN上找到的所有媒体炒作,博客和文章都充斥着流行语,这些流行语对我来说对工程师来说毫无意义。所以我问: SDN究竟是什么(确切)?什么是特定的使用它解决的案例/问题?是吗:

  • 只是制作专有网络硬件服务网络API,从而允许程序配置它们(而不是IT人员使用控制台或Web界面)?或
  • 将(传统上专有的)网络硬件实现为软件;或
  • 编写以某种方式与虚拟化平台(vLAN,vSwitch等)使用的虚拟网络硬件集成的软件?或
  • 还有其他什么吗?!?

BONUS: Open DayLight如何适应这个等式?

3 个答案:

答案 0 :(得分:3)

首先,你是对的,没有来自NIST或类似标准化机构的官方定义,而且其含义模糊的事实被营销人员所利用。

SDN的要点是它允许使用API​​编程网络功能。 过去,交换机和路由器等网络设备只能使用专有接口进行配置(无论是供应商特定工具还是设备上的CLI),并且没有API允许配置OSI L2-L3方面,如VLAN和路由,但还有L6-L7等高负荷均衡的方面。顺便说一句。在L6-L7功能的情况下,术语NVF =网络虚拟化功能似乎已经建立。

这对于支持多租户的虚拟化IaaS系统尤其需要。您可以随意创建新的VPC并将它们排列在一起。要真正将租户彼此隔离,您需要进行L2隔离,因此为VPC提供的相同动态会传播到网络以进行互连。

结论:这是关于扩展的第一个子弹,API不一定由某些硬件设备提供,它也可以由一些纯软件实现提供。

关于OpenDaylight: 它是SDN的OpenStack吊坠。他们还积极推动与OpenStack的集成。他们说这是一个“通过开源SDN和NFV解决方案实现可编程性和控制的开放式参考框架”。这意味着它(如你所说)为manfold aspects of networking提供了一个外观。 他们拥有所有大名鼎鼎的成员,这可能意味着他们有能力建立像OpenStack这样的事实上的标准。成员受益于他们可以为他们的产品提供插件,集成和调整,以便他们与OpenDayligh无缝集成,您只需要关心单个标准 API。

答案 1 :(得分:2)

SDN是可编程网络。不同的SDN解决方案在其API中为应用程序开发人员提供不同的功能。

这里为软件开发人员提供了很好的SDN概述:

https://github.com/BRCDcomm/BVC/wiki/SDN-applications

SDN解决方案最常见的元素是

  1. 北向API:应用程序/脚本用于监视,管理和控制网络中的网络拓扑和数据包流的编程接口。
  2. 网络元素:切换或路由网络元素,通过北向API强制执行应用程序提供的规则。这些元素可以是物理(Cisco,Brocade,Tallac等)或虚拟(Open VSwitch,Brocade Vyatta vrouter,Cisco 1000等)或其组合。
  3. 基于控制器的解决方案具有一个集群架构元素(“控制器”),它为应用程序提供了北向的api,并为网络设备连接了一组可扩展的南向API。目前可用的一些控制器是OpenDaylight,开放式网络操作系统(ONOS),Juniper Open Contrail,Brocade Vyatta控制器(ODL分配),HP VAN控制器等。

    了解SDN产品的最佳经验法则:

    1. 阅读其北向API - 这可以告诉您在网络中可以监控,管理和控制的内容。
    2. 找出它支持的南向API - 这可以告诉您它可以使用哪些交换机/路由器。
    3. 一些SDN用例/应用程序:

      • DevOps / Admin自动化 - 通过自动化使网络管理员或DevOps生活更轻松的应用程序和脚本。 OpenStack Neutron是一个常见的例子。
      • 安全性 - 惠普提供“网络保护器”,用于了解网络拓扑,然后监控提供警报和/或修复不合规行为的活动。
      • 网络优化
        • Brocade提供“流量管理器”,可监控网络利用率并实时修改流量,以根据定义的策略优化质量。
        • HP提供“HP Network Optimizer”,为企业Microsoft Lync用户提供端到端语音优化路径。
        • Lyatiss实时配置AWS网络以满足应用需求。
      • 监控课堂上课时间--Elbrys提供的应用程序为教师提供了一个仪表板,可以实时监控学生的上班时间,并使个别学生重定向到他们选择的网页。 (免责声明:我为Elbrys Networks工作)
      • OpenDaylight项目提案页面 - https://wiki.opendaylight.org/view/Project_Proposals:Main

答案 2 :(得分:0)

SDN的概念非常简单。 SDN将控制平面(即决策)与数据平面(实际转发动作)分离,并在它们之间提供API(例如OpenFlow API)。

enter image description here

有了SDN架构,网络工程师不再需要为不同供应商学习专有的CLI命令。他们可以专注于开发逻辑上集中的控制程序,以制定网络全局决策并将其发送到网络交换机(数据平面)。 转储的网络交换机(数据平面)接收到控制器的规则/决定,并在找不到决定的情况下相应地处理网络数据包,并询问控制器。

例如:在控制器中作为程序开发的 SDN体系结构 路由算法中,它收集所有必需的元数据(例如,交换机,端口,主机连接,链接,速度等),然后为网络中的每个交换机做出路由决策。在常规网络中,路由算法是在所有交换机中以分布式方式实现的(即,通常每个交换机都有自己的智能并做出自己的路由决策)。

SDN explained by Nick Feamster

Here is a good paper that illustrates the road map to SDN