OpenFlow交换机规范解读:流表与行动指令
需积分: 50 19 浏览量
更新于2024-08-10
收藏 516KB PDF 举报
"本文档主要介绍了OpenFlow 1.3中的核心概念,包括行动列表、OpenFlow通道以及交换机的基本架构和工作原理。"
在OpenFlow 1.3中,行动列表(Action List)是实现流量控制和数据包处理的关键部分。Apply-Actions指令和Packet-out消息都包含了这一列表,使得一系列的行动能够被依次执行。行动的效果是累积的,意味着如果列表中有两个或更多的相同行动,如Push VLAN,那么数据包会依次受到这些操作的影响,即被加上多个VLAN标签。常见的行动包括:
1. Required Action: Output - 将数据包发送到指定的端口,这是执行转发动作的基本方式。
2. Required Action: Drop - 丢弃数据包,用于过滤和阻止不需要的流量。
3. Required Action: Group - 使用组表进一步处理数据包,实现负载均衡、多路径转发等复杂策略。
4. Optional Action: Push-Tag/Pop-Tag - 添加或移除VLAN标签,用于VLAN标记和管理。
5. Optional Action: Set-Field - 修改数据包头部的字段,如源MAC、目的MAC或IP地址等。
6. Optional Action: Change-TTL - 更改Time To Live值,影响数据包在网络中的生存时间。
OpenFlow通道是控制器与交换机间通信的桥梁,它们通过安全传输层协议(TLS)或不加密的TCP连接进行交互。OpenFlow协议定义了三种消息类型:
1. Controller-to-Switch - 由控制器发起,用于管理交换机配置和获取状态信息。
2. Asynchronous - 异步消息,由交换机发送,报告网络事件和状态变化。
3. Symmetric - 对称消息,可由控制器或交换机双向发送,用于执行控制命令和数据包转发。
OpenFlow交换机的核心结构包括流表和控制器通信通道。流表由一系列流表项组成,每个流表项包含匹配条件、计数器和指令集。匹配过程从第一个流表开始,按优先级顺序检查,当找到匹配项时,执行相应的指令。如果没有匹配项,则依据漏桶表项的配置决定数据包的命运,如发送到控制器、丢弃或继续到下一个流表。指令可以涉及数据包转发、修改或组表处理。当指令集不再指向下一个表时,数据包会被修改并转发到指定端口。
交换机的端口不仅包括物理端口,还可能包括逻辑端口,如预留端口用于通用行为(如发送到控制器、泛洪)和交换机自定义的逻辑端口(如链路聚合、隧道)。组表(Group)是实现多跳转发和复杂策略的工具,它是一组操作的集合,可以是泛洪、多路径转发或链路聚合等。
OpenFlow 1.3通过精细的流表管理和灵活的行动列表,为SDN(Software-Defined Networking)提供了强大的流量控制能力,而OpenFlow通道则确保了控制器对网络设备的远程、高效管理。这种分离控制平面和数据平面的设计,使得网络可以更加动态、灵活地适应不断变化的需求。
2022-12-12 上传
103 浏览量
2019-08-07 上传
2024-07-17 上传
2024-04-03 上传
2023-08-07 上传
2022-06-09 上传
物联网_赵伟杰
- 粉丝: 46
- 资源: 3977
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库