前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >白话SDN和学习笔记

白话SDN和学习笔记

作者头像
吕海峰
发布2018-04-03 15:18:02
1.2K0
发布2018-04-03 15:18:02
举报
文章被收录于专栏:Brian

概述

最近开发私有云产品,那么不得不提的就是VPC(虚拟专有网络)。VPC是什么且具有什么优势呢?虚拟私有云(Virtual Private Cloud,VPC)可部署一个私有的、隔离的云计算环境,用户/租户可在该VPC中的虚拟网络上创建虚拟机、服务等资源。用户/租户可在 VPC上定义一个非常类似传统网络的虚拟网络拓扑,且对该虚拟网络环境拥有完全的控制权,包括选择IP地址范围、 创建子网、配置路由表及网关等等。由于使用隧道封装技术(VXLAN)对云服务器的IP报文进行封装,所以云服务器的数据链路层(二层MAC地址)信息不会进入物理网络,实现了不同云服务器间二层网络隔离,因此也实现了不同专有网络间二层网络隔离。 总结来说就是:软件定义网络(灵活定制)和安全隔离

SDN实现

为了实现软件定义网络和安全隔离就需要SDN架构的网络体系结构来支撑网络隔离和灵活定制。 SDN:SDN是一种逻辑集中控制的新网络架构,最主要的的是实现了数据平面和控制平面的分离,控制平面和数据平面的之间有统一的开放接口OpenFlow。SDN的最伟大思想是数控分离并对网络资源进行抽象和可编程化。

  • 网路开发编程。
  • 数据平面和控制平面分离。
  • 逻辑上的集中控制(对分布式网络状态的集中统一管理)

SDN主要有SDN网络应用、北向接口、SDN控制器、南向接口和SDN数据平面。

SDN架构图
SDN架构图

我们依次来介绍上述几个组件。

南向协议

sdn南向协议为网络数据面提供统一的、开放的和具有更多编程能力的接口,使SDN控制器可以基于这些接口对数据平面设备进行编程控制和网络流量转发等行为。

openflow 南向协议

openflow是现在最为流行的南向协议,openflow交换机可以分为流表和安全通道。流表用于存放流表项的表,安全通道用于和控制器的安全通道。既可以是直接建立在TCP上也可以基于TSL加密后的socket通信。 在openflow交换机和控制器连接初始化阶段,需要将openflow交换机的一些特征信息和端口信息等上报给控制器,当数据包从入端口进入交换机且匹配流表项失败时,将数据包放在Packet-in报文中上报给控制器。控制接收到Packet-in报文,可以选择下发流表项和下发Packet-out报文通知交换机如何处理。所以openflow协议的架构中,交换机是策略的执行者,网络的相关策略需要由控制器下发。

openflow主要由流表、组表和Meter表三种类型构成。

  • 流表:交换机用于存储流表项的表。每条流表项由匹配域、指令集和计数器三个主要部分和其它附属特性组成(cookie).Flow:数据包进入交换机后会进行流表项的匹配,匹配到同一流表的数据包称为Flow。
  • 组表:用于定义一组动作且这些动作可被多条流表项共同使用,从而实现组播、负载均衡和聚合等功能。
  • Meter表:面向流的计量和限速功能。

openflow通道是控制器和交换机通信的通道,通道中转发的数据为openflow消息/报文。Controller-to-Switch、Asynchronous和Symmetric三种类型通道。 1.Controller-to-Switch:由控制器初始化并发送给交换机。 2.Asynchronous:交换机异步上报给控制器的报文。 3.Symmetric:无须等待对方请求,双方可以任意发送报文。

南向协议:

  • OF-Config:它是一种openflow交换机配置协议,是协助openflow进行功能、特性及资源进行配置的,一般在正常工作之前,需要利用OF-Config进行配置,传输协议也是利用NETCONF实现的,遗憾的是没有数据交换、路由等模块,所以实时性较差相比openflow。无论选择哪一种南向协议,都需要OF-Config进行配置。
  • OVSDB:和OF-Config类似,OF-Config支持所有openflow的软件或者硬件的交换机,而OVSDB仅用于OVS的配置和管理。
  • NETCONF:较强的数据描述能力和可扩展性,也属于配置交换机协议的一种,通过传输层来传输。

SDN控制器

SDN控制器是SDN的大脑,控制数据平面的转发等行为并提供可编程的抽象化。架构图如下:

SDN主要有SDN网络应用、北向接口、SDN控制器、南向接口和SDN数据平面。

SDN架构图1
SDN架构图1

控制平面大致可以划分为:南向接口层、控制核心层、北向接口层和应用层。开源的控制器有如下:POX,Ryu,Floodlight和OpenDaylight/ONOS.比较活跃的是开源控制器:Ryu,OpenDaylight和ONOS. 在后面章节里面,通过demo来不断熟悉控制器。

SDN数据平面

控制平面负责实现网络的逻辑控制,数据平面则执行网络的逻辑控制。只有数据平面提供足够的可编程能力,控制平面才可以通过南向接口来对网络进行灵活的配置和编程。我们来看一下SDN通用可编程数据平面架构。

SDN架构图1
SDN架构图1

通用可编程数据平面设备中所有的网络处理模块,包括解析器(Parser)、包转发(Packet Forwarding)和包调度(Packet Secduling)等模块是可编程配置和协议无关的。 由于现有路由器和交换机中网络转发平面的不足,有人就提出了一种可编程通用转发抽象模型:OpenFlow Switch.OpenFlow Switch将网络数据转发处理抽象成通用的Match-Action map过程,同时对网络系统中的各种查找表记性了通用抽象和处理。 OpenFlow Switch通用转发模型主要包括通用硬件模型和通用处理指令。

通用硬件模型

通用硬件模型的处理流程:

  • 数据包从某个端口进入通用模型,通用模型对数据包头部的分析。
  • 根据分析结果选择对应的流表处理。
  • 在流表内部,解析出来的数据包内容会与每个流表项进行比较,如果匹配则进行相应处理否则丢弃或者转发给控制器。

OpenFlow Switch的网络通用处理器指令分为操作指令、跳转指令和专用指令

  • 操作指令是对数据包的转发、修改等具体操作,以及组表和Meter表的处理。
  • 跳转指令实现网络数据包在多个流表之间的跳转操作。
  • 专用指令实现某种特定的网络数据流处理。

SDN工具清单

作为SDN初学者,循序渐进的学习SDN网络知识非常重要。下面说一下大众的网络虚拟化平台 1.OpenVirteX. OpenVirteX实现多租户下的网络虚拟化,OVX是介于租户控制器和交换机之间的转换平台,对于租户,OVX就是数据平面的网络;对于交换机,OVX就是交换机。 2.Cbench 用于测量Openflow控制性能开源软件。 3.OFTest和OFLops OFTest入门比较简单易用,是Openflow的交换机的测试框架。 4.Wireshark 网络数据包分析软件 5.发包工具

  • Iperf
  • Scapy

总结

SDN细节过多,这篇文章是我在看《SDN架构与实现》的读书笔记,给了我很大的帮助。

参考资料

1.《SDN架构与实现》

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • SDN实现
    • 南向协议
      • openflow 南向协议
    • SDN控制器
      • SDN数据平面
        • 通用硬件模型
      • SDN工具清单
      • 总结
        • 参考资料
        相关产品与服务
        负载均衡
        负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档