SDN涉及协议与标准分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
OpenFlow架构
OpenFlow 1.0
OpenFlow 1.1
4
Flow Table的组成
Match Fields Counters
Actions/Instructions
Actions: forward/enqueue/drop/modify-field Instructions: modify action-set or pipeline proc.
7
Group Table
Group IdentifierGroup Type Counters Actions Buckets
有序的action bucket 列表
报文被一个组处理的计数器
组的类型,all(所有bucket执行,多播/广播转发), select (基于switch的bucket选择算法),indirect(执行 定义的bucket,聚合),fast failover(直接执行第一个 32bit,唯一标识一个liv组e bucket)
• Flow-Removed消息:
– 当给switch增加一条表项时,会设定超时周期,当时间超时后,该条目就会被 删除,这时switch就会给controller发送Flow-Removed消息;当流表中有条目 要删除时,switch也会给controller发送该消息
/icmp type /icmp code
5
Flow Table的matching
PacketIn
Start at Table 0
Matched in Table n?
No
根据表配置: 1)丢弃; 2)发给Controller; 3)继续下一个流表匹配;
Yes
更新计数器 执行Instructions:
Port 0
2
Hale Waihona Puke Baidu
S
1
4
D
图3
图1
Port 1
3
图2
图4
图1:从源S到目的D有两条路径1-2-4和1-3-4,交换机1有两个端口port0,port1; 图2:用mp group id表示逻辑接口,先发送group mod消息,配置group为多路径类型,再发送flow mod配置流表,并将最后的
forward-action指向group的逻辑端口; 图3:或者在flow mod消息中隐含定义group; 图4:定义hash表将mp group id映射到实际的硬件组。
OpenFlow消息
❖ Asynchronous
▪ 该消息由switch发起,当switch状态发生改变时,发送该消息告诉 controller状态变化
• Packet-in消息:
– 对数据包来说,当Flow Table中没有匹配的表项或者匹配“send to controller”, switch将给controller发送packet-in消息。
Update action set Update packet/match set field Update metadata
Yes
Goto Table n?
No
执行Action Set
6
Pipeline的处理
每个openflow switch的pipeline包含多个flowtable,每个flowtable包含多个flowentry; 每个flowentry的处理结果只能交个序号更大的表进一步处理; Output action set和报文关联,可以用instructions来修改已匹配上的报文的action set; 当pipeline处理结束时,开始执行action set中的动作; Action Set执行时要按顺序:copy TTL inwards,pop,push,copy TTL outwards,decrement TTL,set,qos,group
SDN涉及协议及标准分析
SDN标准研究
SDN标准
ONF
IETF
ITU
ETSI
OpenFlow OF-CONFIG
I2RS NVO3 ForCES
SG13
Y.FNsdn
SG11
Q.Supplement-SDN
ISG NFV
2
Contents
1 OpenFlow 2 OF-CONFIG 3 IETF相关协议
9
OpenFlow消息
❖ OpenFlow Protocol由三种类型的消息 ▪ controller-to-switch ▪ Asynchronous ▪ Symmetric
❖ controller-to-switch
▪ 该消息由controller发送,用于管理和检查switch的状态 • Features消息:在SSL/TCP会话建立后,controller给switch发送Features请求switch的相关信息,switch必须应 答自己支持的功能,包括datapathid、数据路径接口号、接口名、接口MAC地址、接口支持的速率等等基本信息 • Configuration消息:controller可以设置或查询switch的状态 • Modify-State消息:controller发送该消息给switch,来管理switch的状态,即增加/删除、更改流表,并设置switch 的端口属性 • Read-State消息:controller用该消息收集switch上flow-tables、ports、individual flow entries的统计信息 • Send-Packet消息:controller发送该消息到switch的特定端口 • Barrier消息:Controller用Barrier request/reply消息来确保switch是否完成之前的操作得到应答后才会下发新的消 息,用来解决消息依赖关系。 10
基于Table/Flow/Port/Queue的各种报文计数器
Ingress Port
Meta
Ethernet
data src dst type
VLAN
MPLS
id prio. lab. t.c. src
IP
dst
Proto /A. op
ToS
TCP/UDP/SCTP ICMP
src port
dp port
Group table赋予了逻辑端口转发流的额外能力,引入group table的动机是为了支持 L2/L3多路径转发,另外还可支持LAG (link aggregation )、ECMP、non-ECMP、快 速重路由、multi-homing、BGP下一跳汇聚
8
Multipath Group Table示例
OpenFlow架构
OpenFlow 1.0
OpenFlow 1.1
4
Flow Table的组成
Match Fields Counters
Actions/Instructions
Actions: forward/enqueue/drop/modify-field Instructions: modify action-set or pipeline proc.
7
Group Table
Group IdentifierGroup Type Counters Actions Buckets
有序的action bucket 列表
报文被一个组处理的计数器
组的类型,all(所有bucket执行,多播/广播转发), select (基于switch的bucket选择算法),indirect(执行 定义的bucket,聚合),fast failover(直接执行第一个 32bit,唯一标识一个liv组e bucket)
• Flow-Removed消息:
– 当给switch增加一条表项时,会设定超时周期,当时间超时后,该条目就会被 删除,这时switch就会给controller发送Flow-Removed消息;当流表中有条目 要删除时,switch也会给controller发送该消息
/icmp type /icmp code
5
Flow Table的matching
PacketIn
Start at Table 0
Matched in Table n?
No
根据表配置: 1)丢弃; 2)发给Controller; 3)继续下一个流表匹配;
Yes
更新计数器 执行Instructions:
Port 0
2
Hale Waihona Puke Baidu
S
1
4
D
图3
图1
Port 1
3
图2
图4
图1:从源S到目的D有两条路径1-2-4和1-3-4,交换机1有两个端口port0,port1; 图2:用mp group id表示逻辑接口,先发送group mod消息,配置group为多路径类型,再发送flow mod配置流表,并将最后的
forward-action指向group的逻辑端口; 图3:或者在flow mod消息中隐含定义group; 图4:定义hash表将mp group id映射到实际的硬件组。
OpenFlow消息
❖ Asynchronous
▪ 该消息由switch发起,当switch状态发生改变时,发送该消息告诉 controller状态变化
• Packet-in消息:
– 对数据包来说,当Flow Table中没有匹配的表项或者匹配“send to controller”, switch将给controller发送packet-in消息。
Update action set Update packet/match set field Update metadata
Yes
Goto Table n?
No
执行Action Set
6
Pipeline的处理
每个openflow switch的pipeline包含多个flowtable,每个flowtable包含多个flowentry; 每个flowentry的处理结果只能交个序号更大的表进一步处理; Output action set和报文关联,可以用instructions来修改已匹配上的报文的action set; 当pipeline处理结束时,开始执行action set中的动作; Action Set执行时要按顺序:copy TTL inwards,pop,push,copy TTL outwards,decrement TTL,set,qos,group
SDN涉及协议及标准分析
SDN标准研究
SDN标准
ONF
IETF
ITU
ETSI
OpenFlow OF-CONFIG
I2RS NVO3 ForCES
SG13
Y.FNsdn
SG11
Q.Supplement-SDN
ISG NFV
2
Contents
1 OpenFlow 2 OF-CONFIG 3 IETF相关协议
9
OpenFlow消息
❖ OpenFlow Protocol由三种类型的消息 ▪ controller-to-switch ▪ Asynchronous ▪ Symmetric
❖ controller-to-switch
▪ 该消息由controller发送,用于管理和检查switch的状态 • Features消息:在SSL/TCP会话建立后,controller给switch发送Features请求switch的相关信息,switch必须应 答自己支持的功能,包括datapathid、数据路径接口号、接口名、接口MAC地址、接口支持的速率等等基本信息 • Configuration消息:controller可以设置或查询switch的状态 • Modify-State消息:controller发送该消息给switch,来管理switch的状态,即增加/删除、更改流表,并设置switch 的端口属性 • Read-State消息:controller用该消息收集switch上flow-tables、ports、individual flow entries的统计信息 • Send-Packet消息:controller发送该消息到switch的特定端口 • Barrier消息:Controller用Barrier request/reply消息来确保switch是否完成之前的操作得到应答后才会下发新的消 息,用来解决消息依赖关系。 10
基于Table/Flow/Port/Queue的各种报文计数器
Ingress Port
Meta
Ethernet
data src dst type
VLAN
MPLS
id prio. lab. t.c. src
IP
dst
Proto /A. op
ToS
TCP/UDP/SCTP ICMP
src port
dp port
Group table赋予了逻辑端口转发流的额外能力,引入group table的动机是为了支持 L2/L3多路径转发,另外还可支持LAG (link aggregation )、ECMP、non-ECMP、快 速重路由、multi-homing、BGP下一跳汇聚
8
Multipath Group Table示例