openflow交换机包含一些流表,流表负责具体包查找和转发
控制器通过of协议对流表查询和管理
一、流表
流表组成:
包头域、活动计数器、0个或多个执行行动
包头域:
计数器:
可以针对每张表、每个流、每个端口、每个队列来维护。用来统计流量的一些信息,例如活动表项、查找次数、发送包数
行动(action):
- 每个表项对一个0个或多个行动。
- 没有行动默认丢弃
- 多个按照优先级顺序执行
- 行动分两种类型:必备行动、可选行动
必备行动-转发
- ALL转发到所有出口(不包括入口)
- controller封闭并转发给控制器
- LOCAL转发给本地网络栈
- TABLE对要发出的包执行流表中的行动
- IN_PORT从入口发出
必备行动-丢弃
没有明确指明处理行动的表项,所匹配的所有网包默认丢弃。
可选行动-转发
- NORMAL按照传统交换机的2层或3层进行转发处理
- FLOOD通过最小从出品泛洪发出,不包括入口
可选行动-入列
将包转发到绑定某个端口的队列中
可选行动-修改域
修改包头内容
匹配过程:
每个包按照优先级依次去匹配流表中表项, 匹配包的优先级最高的表项即为匹配结果。
一旦匹配成功,对应的计数器将更新;如果没能找到匹配的表项,则转发给控制器
二、安全通道
安全通道用来连接交换机和控制器, 所有安全通道必须遵守of协议。 控制器可以配置、
管理交换机、接收交换机的事件信息,并通过交换机发出网包等
of 协议支持三种消息类型:controller-to-switch,asynchronous(异步)和 symmetric(对
称),每一类消息又有多个子消息类型。controller-to-switch 消息由控制器发起,用来管理
或获取 switch 状态;asynchronous 消息由 switch 发起,用来将网络事件或交换机状态变化
更新到控制器;symmetric 消息可由交换机或控制器发起.
来源:https://blog.csdn.net/LIUSHU427/article/details/100118536