当前位置:文档之家› 软件定义网络SDN专题技术报告

软件定义网络SDN专题技术报告


基于Openflow的SDN通信流程
基于Openflow的SDN工作流程
①主机向网络发送数据包 ②OF交换机流表无匹配项,通过 PacketIn事件将数据包上报给控 制器 ③控制器下发流表(或PacketOut) ④数据包转发 ⑤同② ⑥同③ ⑦数据包转发
SDN目前应用范围
安全控制
校园 网
数据 中心 网络 管理
* * *
*
*
*
Controller 9
Openflow消息
• Openflow消息总共分为三大类:
Controller‐to‐Switch • • • • • Features 用来获取交换机特性 Configuration 用来配置Openflow交换机 Modify‐State 用来修改交换机状态(修改流表) Read‐Stats 用来读取交换机状态 Send‐Packet 用来发送数据包


OpenFlow的标准化组织
Dec, 2009
Feb, 2011
Dec, 2011
April, 2012
Sep, 2012
OF 1.0
OF 1.1 多表 MPLS、VLAN group ECMP
OF 1.2 IPv6
功能:
单表 IPv4
OF 1.3 重构了能力协商 PBB IPv6扩展头 多Controller Per flow meter
Software Defined Network
1
背景
2
SDN体系架构
SDN特征 SDN关键技术 SDN应用和未来方向
3
4
5
背景
传统的网络设备(交换机、路由器)的固件是由设备制 造商锁定和控制,所以大家希望将网络控制与物理网络拓扑 分离,从而摆脱硬件对网络架构的限制。这样企业便可以像 升级、安装软件一样对网络架构进行修改,满足企业对整个 网站架构进行调整、扩容或升级。而底层的交换机、路由器 等硬件则无需替换,节省大量的成本的同时,网络架构迭代 周期将大大缩短。
• 策略: Flood
Hub
硬件成为简单哑资源,专注转发;
L2Switch • 工作原理:基于MAC地址表转发 • 策略: STP+MAC地址学习
CP DP CP DP
Controller
CP
DP
CP
DP
Router
CP DP
• 工作原理:基于路由表转发
CP DP
CP
DP
CP
DP
• 策略:静态路由+动态路由协议
入端口
源MAC 地址
目的 MAC地 址 Ether Des
以太网 类型
VLAN ID
VLAN 优先级
源IP地 址
目的IP 地址
IP协 议
IP TOS位
TCP/UDP 源端口
TCP/UDP 目的端 口 TCP/UDP SRC Port
Ingress Port
Ether Source
Ether Type
转发(Forward)
修改域(Modify-Field)
丢弃(Drop)
Openflow1.0数据包处理流程
匹配 表0 否 ….. 是 是
接收报文
包头解析
实施动作
匹配 表n 否 通过安全通道 发送到控制器
Openflow1.0包头解析过程
初始化包头 设置输入端口,以太 网源地址,目的地址 极其类型,并将其他 所有置为0 判断 设置VLAN ID和 PCP 否 是
Packet‐in事件(交换机接收数据包)
情况1 当交换机收到一个数据包后,会查找流表,找出与数据包包头相匹配 的条目。如果流表中有匹配条目,则交换机按照流表所指示的action 列表处理数据包。如果流表中没有匹配条目,则交换机会将数据包封 装在Packet‐in消息中发送给控制器处理。此时数据包会被缓存在交换 机中等待处理。
情况2
交换机流表所指示的action列表中包含转发给控制器的动作 ( Output=CONTROLLER)。此时数据包不会被缓存在交换机中。
控制器配置流表( Flow‐Mod消息)
• Flow‐Mod消息用来添加、删除、修改Openflow交换机 的流表信息
ADD
DELETE
Flow‐Mod
DELETE‐STRICT MODIFY MODIFY‐STRIC
OpenFlow1.0之流表动作列表
动作名称 说明
ALL:将数据包从除入端口以外其他所有 端口发出 CONTROLLER:将数据包发送给控制器 LOCAL:将数据包发送给交换机本地端口 TABLE:将数据包按照流表匹配条目处理 IN_PORT:将数据包从入端口发出 NORMAL:按照普通二层交换机流程处理 数据包 FLOOD:将数据包从最小生成树使能端口 转发(不包括入端口) 设置VLAN ID、VLAN优先级,剥离VLAN头 修改源MAC地址、目的MAC地址 修改源IPv4地址、目的IPv4地址、ToS位 修改源端口号、目的端口号 交换机对没有明确指明处理动作的流表项, 将会对与其所匹配的所有数据包进行默认的 丢弃处理
FlowTable定义路由
MAC SRC MAC DST
IP SRC
IP DST * * *
TCP DPort TCP SPort * * * * * *
Action Port1 Port2 Port3
Count 249 229 898源自* * ** * *
192.168.1.0/254 192.168.2.0/254
VLAN ID
VLAN Priority
IP Source
IP Des
IP Proto
IP TOS bits
TCP/UDP SRC Port
OpenFlow1.0之流表计数器
• 针对交换机中的每张流表、每个数据流、每个设备端口、每个转 发队列进行维护,用于统计数据流量的相关信息 –针对每张流表,统计当前活动的表项数、数据包查询次数、数 据包匹配次数等 –针对每个数据流,统计接收到的数据包数、字节数、数据流持 续时间等 –针对每个设备端口,除统计接收到的数据包数、发送数据包数、 接收字节 数、发送字节数等指标之外,还可以对各种错误发生的次数进行 统计 –针对每个队列,统计发送的数据包数和字节数,还有发送时的 溢出(Overrun)错误次数等
OpenFlowv1.0之包头域
• 用于匹配交换机接收到的数据包的包头内容,OpenFlow 1.0包头域包含12个元组(tuple) –涵盖ISO网络模型中第二至第四层的网络配置信息 –每一个元组中的数值可以是一个确定的值或者是“ANY • OpenFlow 1.1及后续版本将“包头域”更名为“匹配域
SDN体系结构
应用层
上层应用 API API API
控制层
SDN 控制软件 网路服务 控制数据平面口 (例如OpenFlow) 网络设备 网络设备 网络设备 网络设备
基础设施层
网络设备
SDN特征
控制转发分离
网络虚拟化
可编程接口
控制平面(CP)
转发平面(DP)
SDN 将网络设备的控制平面集中上收到Controller; 传统网络设备的CP与DP 不分离; 网络设备上只保留转发平面(转发表项); • 工作原理:基于物理端口转发 设备之间通过控制协议交互转发信息 ; 软件可以实现灵活的控制面功能满足用户多元化需求
什么是SDN
软件定义网络(Software Defined Network, SDN ),是由美国斯坦福大学 clean slate研究组提出的一种新型网络创新架构,核心理念是,希望应用软 件可以参与对网络的控制管理,满足上层业务需求,通过自动化业务部署简 化网络运维。 传统网络设备紧耦合的网络架构被分拆成应用、控制、转发三层分离的架构。 控制功能被转移到了服务器,上层应用、底层转发设施被抽象成多个逻辑实 体。如果说现在的网络系统是功能机,系统和硬件出厂时就被捆绑在一起, 那么SDN 就是 Android系统,可以在很多智能手机上安装、升级,同时还能 安装更多更强大的手机 App(SDN 应用层部署)。
Asynchronous • • • • Packet‐in 用来告知控制器交换机接收到数据包 Flow‐Removed 用来告知控制器交换机流表被删除 Port‐Status 用来告知控制器交换机端口状态更新 Error 用来告知控制器交换机发生错误
Symmetric • Hello 用来建立Openflow连接 • Echo 用来确认交换机与控制器之间的 • Vendor 厂商自定义消息
18
OpenFlowv1.0之流表结构
• 流表是OpenFlow对网络设备的数据转发功能的抽象 –表项包括了网络中各个层次的网络配置信息
包头域 计数器 动作
• –包头域:用于对交换机接收到的数据包的包头内容进行匹配 –计数器:用于统计数据流量相关信息,可以针对交换机中的每张流 表、每 个数据流、每个设备端口、每个转发队列进行维护 –动作(action):用于指示交换机在收到匹配数据包后如何对其进行 处理
CP
DP
CP
DP
CP
DP
CP
DP
CP
DP
CP
DP
CP
DP
CP
DP
通过Controller实现了对基础网络设施的抽象;
应用程序看到的是Controller提供的网络服务
被抽象出的网络
应用程序的视角
Controller
物理网络/Fabric Underlay网络
SDN实现方式
SDN的核心技术:OpenFlow
• Flow Table:Flow Table 里面的每个条 目都会与一个动作相关联,来告诉 网络交换设备来如何处理与这个条 目相关联的 data Flow; Secure Channel:用于连接网络交换 设备和远程网络控制器,在控制器 和网络交换设备之间互相发送命令 和数据包; OpenFlow Protocol:提供一个开放标 准统一的接口,使得控制器和网络 交换设备之间可以相互通信
相关主题