OpenFlow交换机规范解读:流表与行动指令
需积分: 50 15 浏览量
更新于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通道则确保了控制器对网络设备的远程、高效管理。这种分离控制平面和数据平面的设计,使得网络可以更加动态、灵活地适应不断变化的需求。
474 浏览量
2362 浏览量
162 浏览量
173 浏览量
131 浏览量
176 浏览量
293 浏览量
304 浏览量
物联网_赵伟杰
- 粉丝: 47
最新资源
- Dynamips/Dynagen/PEMU中文教程11.7:集成与配置详解
- 杰普科技采集系统概述与日志解析指南
- ASP.Net操作SqlServer图片存储技术详解
- LoadRunner入门教程:实战表单性能测试与脚本录制
- SQL Server 网络安全与客户机连接策略
- iBATIS SQL Maps入门教程:设计与业务逻辑应用
- iBATIS数据库层开发完全指南
- Oracle 10g Spatial User Guide & Reference: Indexing & Spatial App Dev
- MVC设计模式在网管系统开发中的应用实践
- Java SWT图形用户界面教程:从入门到精通
- 数字媒体专业基础:视音频信号处理探索
- 提升编程实力:算法分析与设计详解
- Jakarta Struts入门教程:面向初学者的MVC设计模式指南
- Visual Studio .NET 使用技巧详解
- MyEclipse 6 Java开发完全指南
- SQL 2005高效分页存储过程优化实例与代码