zoukankan      html  css  js  c++  java
  • SDN 杂谈

         SDN的本质就是让用户/应用可以通过软件编程充分控制网络的行为,让网络软件化,进而敏捷化。如SDN一个具体实现技术openflow,使用设备不再仅基于MAC或IP转发数据,openflow可以基于10元组决定数据流向,控制平面解决网络路由优化、安全、策略、QoS、流量工程等问题。SDN是一种新型的可视化网络设计架构,一种网络资源管理和优化使用方式,一种节约资源降低网络成本的技术,一种体现对网络需求增速变慢的技术体现点。

    Neutron为什么需要SDN

    Neutron有很多无法满足部署需求的网络功能场景:

          场景一:基于VM网卡或IP的限速、基于路由的限速以及基于租户的限速

          至今仍没有完善的解决方案,这些在实际物理网络中部署都是极其常见的功能。有人用Libvirt对虚拟机网卡的inbound average和outbound average做出入方向的限速,但这个方案不是太妥。部署该方案时是通过设置flavor的quota:vif_inbound_average和quota:vif_outbound_average来实现的,会导致对VM的所有网卡都做限制。该方案不仅限制了南北流量,还限制了东西流量。Qos功能不只是限速,还有很多诸如队列调度、流控等方面的Qos需求,当有业务需要时,Neutron却无从提供满足需求的支持。

          场景二:网络节点存在的单点故障

          至今依然没有完善的解决方案,DVR(Distributed Virtual Routing,分布式路由)对虚拟路由器的HA方案也存在很大的缺陷。与传统交换机(甚至与路由器)相比,网络节点的带宽能力还存在一定差距,尤其是对单路由带宽没有分流方案,一旦带宽超过虚拟路由器的带宽能力则无能为力。

    Neutron的演进史:

    1. Nova-network是前身
    2. Core plugin完成L2/L3/DHCP等基本功能
    3. Service plugin完成L4~L7功能升级
    4. DVR等实现系统层次的HA可用
    5. Neutron结合SDN实现网络可控为终极形态 ,Neutron有很多SDN控制器作为plugin

    控制器选择标准

    SDN控制器作为未来网络架构的核心组件,目前其发展的前景和产品化仍在不断演进中,企业选择SDN控制器需要考虑的10个功能标准,企业可用来评估SDN控制器的选择方向。

    1. OpenFlow的支持 :企业需要了解OpenFlow控制器目前支持的功能,包括支持可选功能和扩展协议。企业也需要了解网络供应商的路线图,能够支持OpenFlow的新版本。
    2. 网络虚拟化:控制器必须能够动态地创建基于策略的虚拟网络,这些虚拟的网络能够形成逻辑的网络资源池,类似于服务器虚拟化的计算资源池。
    3. 网络功能:控制器有能力发现从源地址到目标地址的多条路径,并能够分配链路选择。还包括能够使用一整套丰富的架构,使得在L2和L3网络中创建特定租户的虚拟网络。
    4. 可扩展性:SDN控制器应该能够支持至少100台交换机。它也必须能够减轻影响网络的广播开销和增长的流表条目。
    5. 性能:SDN控制器必须能够预先填充的流表可能的程度,并且它必须具有处理和I/O能力,以确保该控制器不会成为创建流表条目的瓶颈。
    6. 网络可编程性:控制器必须能够进行精细的包过滤。SDN控制器应提供模板,确保创建的脚本CLI允许动态的网络编程。
    7. 可靠性:控制器必须有多个从出发地到目的地的网络路径。SDN控制器也可以同时建立硬件和软件冗余功能,它必须能够实现控制器的集群管理。
    8. 网络安全性:控制器需要实现企业级身份验证和授权,并完全隔离每个虚拟网络。SDN控制器必须能对通信速率上线进行控制。
    9. 集中管理和可视化:SDN控制器应提供给企业对不同类流量的监控,为运行在控制器上的物理网络和多个虚拟网络提供可视化。
    10. 控制器供应商:供应商必须证明其拥有的财务和技术资源,可以支持正在进行的SDN研发和进展。供应商还必须证明其专注在SDN市场的定位和竞争能力。 
  • 相关阅读:
    React源码深度解析视频 某课网(完整版)
    解决VueRoter/element-ui路由报错Error: Avoided redundant navigation to current location的问题
    package-lock.json的作用
    encodeURI()和encodeURIComponent() 区别
    Webpack HMR 原理解析
    Kibana详细入门教程
    大数据可视化(万物互联)
    ES11来了,有些新特性还是值得一用的!
    Prometheus(普罗米修斯)——适合k8s和docker的监控系统
    linux安装pm2
  • 原文地址:https://www.cnblogs.com/gaozhengwei/p/7095015.html
Copyright © 2011-2022 走看看