基于OpenFlow的線性保護方法
【技術領域】
[0001]本發明涉及線性保護技術領域,尤其是涉及一種基于OpenFlow的線性保護方法。
【背景技術】
[0002]MPLS-TP (Mult1-Protocol Label Switching Transport Profile,多協議標簽交換傳輸網標準)是由ITU-T和IETF成立的聯合工作組在2008年4月提出,其前身是ITU-T于2005年5月開始開發的T-MPLS技術標準。
[0003]隨著通信技術的發展,MPLS-TP成為了傳輸網發展一個主流方向。MPLS-TP技術對多協議標簽交換(MPLS)、偽線(MPLS/PW)技術進行了簡化和改造,引入了傳送網分層、0ΑΜ和保護等概念,符合傳送網的需求。MPLS-TP為了適應傳輸網的需求,提出了分層的概念,主要分為段層(Sect1 n Layer)、LSP 層(Label Switch Path Layer)、Pff 層(Pseudo WireLayer)。針對各層定義了各自的 0AM(Operat1ns,Administrat1n, and Maintenance)標準,也定義了 LSP (Label Switch Path)和 PW(Pseudo Wire)的線性保護標準。
[0004]保護作為MPLS-TP網絡中的一個核心話題,主要負責網絡的可靠性保障,在網絡發生故障或者傳輸質量降低的情況下,完成由故障鏈路到備份鏈路的倒換,在最短時間內恢復正常的業務通信。在IETF RFC5654里面對保護提出了明確的需求,基于拓撲主要分為線性保護和環網保護。線性保護主要提供LSP (Label Switch Path)和PW (Pseudo Wire)的保護。現有MPLS-TP的線性保護,支持1+1保護和1:1兩種保護方式。它依靠MPLS-TP0ΑΜ檢測Working(工作)和Protect1n(保護)兩條鏈路的狀態,再加上管理員可以參與控制,實現對線性數據傳輸的保護。
[0005]然而,傳統的MPLS-TP線性保護,切換與否都是由發送端和接收端本地決定的,不利于網管的統一管理。
【發明內容】
[0006]本發明的目的在于克服現有技術的缺陷,提供一種基于OpenFlow的線性保護方法,以將鏈路切換的控制權從交換機迀移到控制器,便于統一管理。
[0007]為實現上述目的,本發明提出如下技術方案:一種基于OpenFlow的線性保護方法,包括以下步驟:
[0008]OpenFlow控制器下發流表給數據發送端和數據接收端;
[0009]數據發送端接收MPLS報文并根據OpenFlow控制器下發的流表通過通訊鏈路將MPLS報文發送給數據接收端;
[0010]數據接收端根據OpenFlow控制器下發的流表行為選擇相應的通訊鏈路接收所述MPLS報文。
[0011]優選地,OpenFlow控制器下發組表給數據發送端,所述組表類型為type-all類型,所述OpenFlow控制器下發一條流表給數據接收端。
[0012]優選地,所述數據發送端根據OpenFlow控制器下發的組表行為,將MPLS報文從數據發送端所有的出口同時發送到每個出口相應的通訊鏈路上;所述數據接收端根據OpenFlow控制器下發的流表從其中一條通訊鏈路接收所述MPLS報文。
[0013]優選地,所述組表行為包括:將收到的MPLS報文先剝除MAC層,并將MPLS標簽修改為數據發送端所有出口的出口號,再將修改后的MPLS報文重新加上新的MAC層,從數據發送端所有的出口發送出去。
[0014]優選地,當數據接收端當前接收MPLS報文的通訊鏈路發生故障時,所述控制器刪除從該通訊鏈路接收MPLS報文的流表,并立即下發從另外一條通訊鏈路接收MPLS報文的流表。
[0015]優選地,所述OpenFlow控制器下發一條流表給數據發送端,所述OpenFlow控制器下發多條流表給數據接收端,所述OpenFlow控制器下發給數據接收端的流表數目與通訊鏈路的條目相同。
[0016]優選地,所述數據發送端根據控制器下發的流表行為選擇一條通訊鏈路發送MPLS報文給數據接收端;所述數據接收端根據控制器下發的流表行為從所有的通訊鏈路上接收MPLS報文。
[0017]優選地,當數據發送端當前發送MPLS報文的通訊鏈路發生故障時,控制器更新數據發送端上的流表,改為從另外一條通訊鏈路發送MPLS報文。
[0018]優選地,所述通訊鏈路包括工作鏈路和保護鏈路。
[0019]與現有技術相比,本發明的有益效果是:本發明基于OpenFlow的語義,實現了 1+1和1:1的線性保護,對于推動網絡迀移到通過OpenFlow統一管理階段,提供了具有實際使用價值的保護方案。
【附圖說明】
[0020]圖1是本發明基于OpenFlow的線性保護方法的流程示意圖;
[0021]圖2是本發明基于OpenFlow實現的1+1線性保護的原理示意圖;
[0022]圖3是本發明基于OpenFlow實現的1:1線性保護的原理示意圖。
【具體實施方式】
[0023]下面將結合本發明的附圖,對本發明實施例的技術方案進行清楚、完整的描述。
[0024]本發明通過OpenFlow實現了 1+1和1:1的線性保護,將鏈路切換的控制權從交換機迀移到控制器,便于統一管理。
[0025]數據的發送端到接收端有多條路徑(一般兩條)可達的時候,定義其中一條為Working (工作)鏈路,另外一條為Protect1n (保護)鏈路。數據可以在這兩條路徑間切換,從而實現保護的功能。1+1線性保護的原理是“雙發單收”,報文發送端同時向Working和Protect1n兩條路徑發送相同的數據,報文接收端會選取一條路徑接收。
[0026]圖1為本發明基于OpenFlow的線性保護方法的流程示意圖;圖2是本發明基于OpenFlow實現的1+1線性保護的原理示意圖;圖2中,控制器和數據發送端PE1、數據接收端PE2相連,可以向這兩臺設備下發組和流信息。下面的描述,都是基于PE1作為數據發送端,PE2作為數據接收端這個前提的。實際上本發明非常容易推廣到PE2作為數據發送端,PE1作為數據發送端的場景。往往這兩個方向都需要提供線性保護。
[0027]結合圖1和圖2所示,本發明實施例1所揭示的一種基于OpenFlow的1+1線性保護方法,包括以下步驟:
[0028]步驟l、0penFlow控制器下發組表給數據發送端,所述組表類型為type-all類型,OpenFlow控制器下發一條流表給數據接收端;
[0029]步驟2、數據發送端根據OpenFlow控制器下發的組表行為,將MPLS報文從數據發送端所有的出口同時發送到每個出口相應的通訊鏈路上;
[0030]步驟3、數據接收端根據OpenFlow控制器下發的流表從其中一條通訊鏈路接收所述MPLS報文。
[0031]具體地,在數據發送端PE1上,MPLS報文(指的是MPLS封裝下的原始報文)從其portl 口進入,假設此時MPLS報文的MPLS標簽為100。
[0032]在數據發送端PE1上:
[0033](1) OpenFlow控制器創建類型為type-all組表,定義MPLS報文的出口是port2 (其mpls標簽=200)和port3 (mpls標簽=300),該組表行為是將收到的MPLS報文先剝除MAC層,并將MPLS標簽從100修改為200,再將修改后的MPLS報文重新加上新的MAC層,從數據發送端的出口 port2發送出去;同時將MPLS標簽從100修改為300,再將修改后的MPLS報文重新加上新的MAC層,從數據發送端的出口 port3發送出去。
[0034](2) OpenFlow控制器創