SDN初学者

SDN初学者

一、概念

==SDN==(Software-Defined Networking,软件定义网络)


是一种新型的网络体系结构,通过将==网络控制==与==网络转发==++解耦合++构建开放可编程的网络体系结构。SDN认为不应无限制地增加网络的复杂度,需要对网络进行抽象以屏蔽底层复杂度,为上层提供简单的、高效的配置与管理。


二、诞生背景

1.压力决定动力: 互联网用户的不断增加、以及新兴业务的不断涌现,导致网络不堪重负。

  • 互联网流量飞速增长,网络难以满足海量数据传输要求
  • 传统网络结构不灵活,不能适应不断涌现的新业务需求,服务质量难以保证。
  • 网络安全、网络不可控、不可管问题突出

  1. 需求推动改革:提出SDN
  • 高校科研人员:网络创新实验可以在校园网上通过编程实现新的网络协议,不必求助于设备提供商
  • 网络服务提供商:降低网络管理复杂度都和网络设备成本,快速实现==云计算技术==对网络特性的新需求
  • 运营商:缩短网络的面市周期,降低网络管理成本。

三、发展历程

SDN的概念最初诞生于美国斯坦福大学Nick McKeown 教授等人的Ethane 项目,随后ONF组织、NFV产业联盟的推动以及运营商、网络服务提供商、设备生产商的积极投入、将SDN从概念逐渐向商业化推进。

2006年

首次提出OpenFlow概念

2007年

Casado在Ethane项目中提出集中式控制器的概念

2008年

Nick McKeown教授等人提出SDN的概念


四、实现方案

1. OpenFlow(开放流)

基于开放协议的方案

  • 最主流的实现方式
  • 包括ONF SDN和ETSI NFV

2. Overlay(叠加)

基于叠加网络的方案

  • 在原有网络基础上创建虚拟网络,隔离底层设备复杂度与差异性实现网络资源的池化。
  • 将网络资源进行逻辑分离,采用多租户模式管理网络,更好满足云计算等新兴业务的需求。
  • 但是增加了网络架构复杂度,降低数据处理性能,而且无法彻底摆脱低层网络影响。
  • 米钱主要方案包括VXLAN、NVGRE|NVP等

3.专有技术

基于专用接口的方案

  • 专用方案不改变传统网络的实现机制和工作方式,在网络设备上添加专用API实现控制转移。
  • 但是依旧无法摆脱厂商的锁定。

image

五、核心架构

包括物理层、南向接口、控制层、北向接口、应用层

1.物理层

物理层是硬件设备层,专注于数据业务物理转发,对处理性能要求较高。该层主要部署SDN交换机,如Open vSwitch

2.南向接口

南向接口是物理层与控制器信号传输的通道,相关的设备状态、数据流表项和控制命令都需要经由SDN的南向接口传达,实现对设备的管理控制,典型代表是OpenFlow协议

3.控制器

  • 控制器集中管理网络中所有设备,根据用户需求以及全局网络拓扑,灵活动态的分配网络资源。
  • 对下层,通过标准的协议与基层网络通信
  • 对上层,通过开放接口向应用层提供对网络资源的控制
  • 常见的控制器包括开源的 NOX、POX、Floodlight、Beacon以及OpenDaylight,商用的Helios、SNAC等。

4.北向接口

控制器向上层业务应用开放的接口

5.应用层

  • 用用层通过控制层提供的编程接口对底层设备进行编程
  • 应用场景主要聚焦在:数据中兴网络、数据中心间的互联、政企网络、电信运营商网络、互联网公司业务部署。

六、思维误区

1.
image
image

image

image

image

七、知识储备

  1. 了解传统网络知识、主要是二层三层基础知识及相关技术
  2. Linux常用命令
  3. 掌握一门编程语言如python、c++、java

八、入门利器

1. Mininet

  • Mininet是一个轻量级软件定义网络研发和测试平台。
  • 该平台支持OpenFlow、OpenvSwitch等软件定义网络部件、支持复杂拓扑和自定义拓扑,提供Python API,LInux兼容,高拓展性

2.Floodlight

  • 基于Java开发的开源SDN控制器,工作在支持OpenFlow协议的硬件虚拟交换机组成的网络环境中
  • Floodlight使用模块化的架构来实现控制器的功能和应用,可以直接在网络中部署实现数据转发、拓扑发现等基本功能。

3.OpenDaylight

  • 是一套以社区为主的开源SDN框架主要内容包括SDN控制器开发、南北向接口的扩展、用于多个控制器交互的东西向协议实现等
  • 拥有一套模块化、可插拔且极为灵活的控制器,能够被部署在任何支持Java的平台上

4.OpenvSwitch

  • 简称OVS,是一个虚拟交换软件,主要用于虚拟机VM环境
  • 作为一个虚拟交换机,支持Xen/XenServer\KVM和VirtualBox多种虚拟化技术。
  • 传递虚拟机VM之间的流量,以及VM和外界网络的通信

你可能感兴趣的:(SDN初学者)