OpenFlow交换机规范解读:流表与行动指令
需积分: 50 32 浏览量
更新于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 上传
106 浏览量
2019-08-07 上传
2024-07-17 上传
2024-04-03 上传
2023-08-07 上传
2021-09-25 上传
物联网_赵伟杰
- 粉丝: 46
- 资源: 3957
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍