1.OpenFlow交換機(jī)的基本構(gòu)成
1.1 流表
版本 | 包含內(nèi)容 |
---|---|
1.0 | 頭字段(Header Filed)伶丐、計(jì)數(shù)器(Counters)晌杰、行動(dòng)(Actions) |
1.1 | 匹配字段(Match Filed)蓝晒、計(jì)數(shù)器)(Counters)、指令(Instruction) |
1.2 | 同OpenFlow1.1 |
1.3 | 匹配字段(Match Filed)仔引、優(yōu)先級(jí)(Priority)家厌、計(jì)數(shù)器(Counters)播玖、指令(Instruction)、超時(shí)(Timeouts)饭于、Cookies |
1.4 | 同OpenFlow1.3 |
1.5 | 同OpenFlow1.5 |
OpenFlow流表由流表項(xiàng)構(gòu)成蜀踏,流表項(xiàng)的結(jié)構(gòu)隨著OpenFlow版本的不斷演進(jìn)不斷變化维蒙,不同協(xié)議所包含的流表項(xiàng)結(jié)構(gòu)不同,具體各版本如下表所示:
版本 | 包含內(nèi)容 |
---|---|
1.0 | 頭字段(Header Filed)果覆、計(jì)數(shù)器(Counters)颅痊、行動(dòng)(Actions) |
1.1 | 匹配字段(Match Filed)、計(jì)數(shù)器)(Counters)局待、指令(Instruction) |
1.2 | 同OpenFlow1.1 |
1.3 | 匹配字段(Match Filed)斑响、優(yōu)先級(jí)(Priority)、計(jì)數(shù)器(Counters)钳榨、指令(Instruction)舰罚、超時(shí)(Timeouts)、Cookies |
1.4 | 同OpenFlow1.3 |
1.5 | 同OpenFlow1.5 |
1.2 組表
OpenFlow交換機(jī)只含有一個(gè)組表重绷,組表中包含許多組表項(xiàng)沸停,每條組表項(xiàng)的結(jié)構(gòu)如下:
組ID(Group identier) | 組類型(Group Type) | 計(jì)數(shù)器(Counters) | 動(dòng)作桶(Action Buckets) |
---|---|---|---|
1.3 Meter表
Meter表項(xiàng)用于關(guān)聯(lián)流表項(xiàng),對(duì)匹配流表項(xiàng)的報(bào)文實(shí)施QOS策略
Meter identifier | Meter Bands | Counters |
---|---|---|
其中Meter帶又有如下組成:
Bands Type | Rate | Counters| | Type Specific arguments |
---|---|---|---|
1.4 匹配字段
OpenFlow流表項(xiàng)的匹配域支持豐富的匹配字段昭卓,OpenFlow1.0支持匹配的數(shù)據(jù)包頭的12個(gè)字段,到OpenFlow1.3瘟滨,已經(jīng)擴(kuò)展到39個(gè)字段候醒,并規(guī)定了OpenFlow交換機(jī)必須實(shí)現(xiàn)的13個(gè)字段(之后補(bǔ)充)
OpenFlow1.0的12個(gè)字段如下:
Ingress Port | Ether Source | Ether Des | Ether Type | VLAN ID | VLAN Priority | IP Source | IP Des | IP Protocol | IP TOS | TCP/UDP Source Port | TCP/UDP Des Port |
---|---|---|---|---|---|---|---|---|---|---|---|
1.5 指令集
指令 | 說明 | 可選/必選 |
---|---|---|
Write-Action | 添加指定動(dòng)作到動(dòng)作集 | 必選 |
GoTo-Table | 轉(zhuǎn)到另一個(gè)流表處理 | 必選 |
Meter | 指示報(bào)文關(guān)聯(lián)指定的Meter流表項(xiàng) | 可選 |
Apply-Actions | 應(yīng)用動(dòng)作列表中的動(dòng)作 | 可選 |
Clear-Actions | 清空動(dòng)作集 | 可選 |
Write-Metadata | 寫入元數(shù)據(jù) | 可選 |
當(dāng)報(bào)文匹配上流表項(xiàng)時(shí),執(zhí)行表項(xiàng)包含的指令集杂瘸,指令集類型如下所示:
指令 | 說明 | 可選/必選 |
---|---|---|
Write-Action | 添加指定動(dòng)作到動(dòng)作集 | 必選 |
GoTo-Table | 轉(zhuǎn)到另一個(gè)流表處理 | 必選 |
Meter | 指示報(bào)文關(guān)聯(lián)指定的Meter流表項(xiàng) | 可選 |
Apply-Actions | 應(yīng)用動(dòng)作列表中的動(dòng)作 | 可選 |
Clear-Actions | 清空動(dòng)作集 | 可選 |
Write-Metadata | 寫入元數(shù)據(jù) | 可選 |
1.6 動(dòng)作集
當(dāng)流表項(xiàng)的指令集中不包含GoTo-Table時(shí)倒淫,立即執(zhí)行相關(guān)聯(lián)的動(dòng)作集,動(dòng)作類型如下表所示:
動(dòng)作類型 | 說明 | 可選/必選 |
---|---|---|
Output | 將報(bào)文轉(zhuǎn)發(fā)到特性的OpenFlow端口 | 必選 |
Drop | 滿足條件時(shí)丟棄 | 必選 |
Group | 將報(bào)文轉(zhuǎn)交組表處理败玉,動(dòng)作由組表類型定義 | 必選 |
Set-Queue | 將報(bào)文指定隊(duì)列ID敌土,用于實(shí)施QOS | 可選 |
Push-Tag/Pop-Tag | 適用于對(duì)VLAN頭,MPLS頭运翼,PBB頭進(jìn)行操作 | 可選 |
Set-Field | 識(shí)別匹配字段類型并修改字段的值 | 可選 |
Change-TTL | 修改IPV4,IPV6返干,MPLS中的TTL | 可選 |
1.7 動(dòng)作列表
動(dòng)作列表存在于特定協(xié)議報(bào)文中,它與動(dòng)作集的區(qū)別在于血淌,動(dòng)作列表中的動(dòng)作按照列表順序依次執(zhí)行矩欠,且可以包含多個(gè)同類型動(dòng)作,這些動(dòng)作的執(zhí)行效果可以疊加悠夯。
1.8 OpenFlow端口
OpenFlow端口分為三類:物理端口癌淮,邏輯端口,保留端口
- 物理端口為OpenFlow交換機(jī)的硬件接口
- 邏輯端口通常由協(xié)議設(shè)置沦补,如聚合口乳蓄,隧道口
- 保留端口由轉(zhuǎn)發(fā)動(dòng)作定義,例如轉(zhuǎn)發(fā)到控制器
1.9 OpenFlow報(bào)文的處理流程
OpenFlow流水線將交換機(jī)內(nèi)的一組流表串聯(lián)起來夕膀,定義了每個(gè)流表怎樣用于報(bào)文處理虚倒。
1.10 安全信道
安全信道是控制器和其管理的每一臺(tái)OpenFlow交換機(jī)間的可靠連接美侦,具體流程如圖所示:
1.11 協(xié)議報(bào)文
1.同步消息
可由交換機(jī)或控制器主動(dòng)發(fā)起,并需要接受對(duì)方的應(yīng)答裹刮。主要用于建立檢測(cè)對(duì)方是否在線等音榜。
-
包括Hello、Echo捧弃、Vendo三種子消息
?
?
2.異步消息
由OpenFlow交換機(jī)發(fā)起赠叼,用來通知交換機(jī)上發(fā)生的某些異步事件。消息是單向的违霞,不需要控制器應(yīng)答嘴办。主要用于交換機(jī)向控制器通知收到報(bào)文、狀態(tài)變化买鸽、出現(xiàn)錯(cuò)誤等事件信息
-
包括Packet-In涧郊、Flow-removed、Port-status眼五、Error四種子消息
?
3.控制器向交換機(jī)連接
由控制器發(fā)起妆艘,對(duì)OpenFlow交換機(jī)進(jìn)行狀態(tài)查詢和修改配置等操作;OpenFlow交換機(jī)接收并處理可能發(fā)送或不需要發(fā)送的應(yīng)答消息
-
包括Modify-state看幼、Read-state批旺、Packet-Out、Barrier request/reply等四類子消息
?
2.OpenFlow演進(jìn)
2.1 OpenFlow協(xié)議的功能演進(jìn)
OpenFlow各個(gè)協(xié)議版本之間的主要區(qū)別
版本 | 主要功能 |
---|---|
OF 1.0 | 單表诵姜、IPV4 |
OF 1.1 | 多級(jí)流表汽煮、組表、MPLS棚唆、VLAN |
OF 1.2 | 多控制器暇赤、IPV6 |
OF 1.3 | Meter表、版本協(xié)商能力 |
OF 1.4 | 流表同步宵凌、協(xié)議消息完善 |
OF 1.5 | 數(shù)據(jù)包類型識(shí)別流程(以太網(wǎng)數(shù)據(jù)包鞋囊、PPP數(shù)據(jù)包)egress Table |