淺談“云網關”轉控對接技術
1、什么是“云網關”?
云網關主要是指將用戶接入網關放到邊緣云側,云網關承接用戶上網,增值業務流量調度等功能。服務提供側通過云網關就近接入各類業務,使用戶能夠簡單的實現一跳上云,簡單高效地體驗穩定高性能的海量增值業務。
云網關的部署應用更加接近用戶家庭,結合算力網絡的規劃,以云網關為基礎,發展云網關衍生應用,可以發掘海量的家庭“算力”,為家庭算力的模型構建以及運用打下一個堅實的基礎。
圖片
當然,云網關的種種好處離不開它基于SDN網絡架構的核心思想,即轉發和控制分離的理念。
2、“云網關”開創用戶上網新模式
云網關開創了一種用戶接入網絡新形式。家庭寬帶上網方式的發展歷史可以概括為從撥號連接到電纜調制解調器,到DSL和光纖到戶,再到云網關,網絡速度和連接方式不斷升級,用戶的上網體驗也越來越好。
圖片
總的來說,互聯網接入中國的二十多年里,家庭寬帶用戶上網的方式發生了多次重大的變化,每次變化都給用戶的體驗和服務質量帶來了跨越式的提升,云網關也不例外。
3、“云網關”的技術架構
云網關基于SDN思想,實現了一套轉控分離的高性能轉發框架。
圖片
轉發面:
在云網關中,轉發面(轉發進程)主要負責根據策略,路由等規則,進行高性能純數據包的轉發和流量調度。
控制面:
與傳統的設計不同的是,在云網關中控制面分成兩個層級。
(1)設備控制面
圖片
圖片
云網關的設備控制面,主要負責一些路由協議的協商和鄰居建立,如BGP、OSPF、RIP等常見協議路由獲取導入以及生成,再通過轉控對接方式,將計算后的路由結果下發給轉發面,轉發面只需要根據下發的路由結果進行數據包的匹配轉發,不需要參與到特定的路由計算和生成環節。
與此同時,設備控制面還負責協議的控制報文生成和交互,如IPsec加密隧道的IKE生成等。除此之外,設備控制面還負責ARP報文的解析生成ARP表項的下發,同步轉發面和控制面接口MTU等一系列需要計算和維護的功能。
由此可以看出,一系列功能的處理和運行,對設備內部控制面和轉發面的對接方式有了較高的要求,具體會在下個章節進行介紹。
(2)控制器以及運營平臺
云網關網元層面的控制面,就是一般意義上的SDN控制面,如上圖所示,總的來說在云網關管理系統中,管理面(云網關控制器以及運營平臺)主要負責網絡拓撲發現和管理、流量控制和管理、網絡安全管理、業務訂單管理等功能,與設備內部層面不同的是,網元側控制面在更宏觀的角度對設備進行管理,對網絡進行調度編排,更充分劃分了一個大腦的功能。
然而,網絡拓撲發現,流量控制,訂單管理依賴各類完全不同的南北向接口,對轉發面控制面的邊界劃分,內部協議貫通對齊,都有新的挑戰,對架構規劃以及研發能力有較高要求。
4、“云網關”的轉控對接方案
綜合前面幾個小節所描述的,因為云網關的轉發面控制面分為設備內部和網元單元,所以云網關的轉控對接技術,不能簡單的理解成傳統意義上設備和控制器的南北向接口,設備內部的實現更多地基于底層驅動的設計實現,計算機底層原理的理解運用,而網元單元更多的是網絡業務相結合的技術。
4.1 常見的南北向接口
? OpenFlow
OpenFlow是一種網絡通信協議,伴隨SDN誕生,可以說是最早的南向協議,屬于數據鏈路層,能夠控制網上交換器或路由器的轉發平面(forwarding plane),借此改變網絡數據包所走的網絡路徑。
? Netconf
IETF在2003年5月成立了Netconf工作組,該工作組主要是為了提出一個全新的基于XML的網絡配置(Netconf)協議而成立的。該工作組已于2006年12月通過了Netconf協議的基本標準RFC4741-4744,2011年6月RFC6241、RFC6242替代了原有的 RFC4741、RFC4742,RFC4743和 RFC4744則被標記為歷史資料。
? PCEP
路徑計算單元協議(Path Computation Element Protocol,PCEP):為MPLS網絡域間流量工程(Traffic Engineering,TE)等應用提出的,以支持集中化的路徑計算。
如上所述,云網關也有一套自己的南北向對接方式。
4.2 “云網關”網元對接接口
云網關的控制面負責網絡拓撲管理、流量調度、安全管理和業務訂單管理等功能。換言之,控制面需要與轉發面對齊相關信息,以便在數據傳輸通道(如統計和調度)和網絡信息通道(如拓撲發現)中進行交互。
? 普通數據通道
云網關實際部署時,發現常常需要將云網關部署在私有局域網,而云管平臺(控制面)則部署在公網中,故云網關在設計時,使用Websocket在轉發面和控制面之間建立了一個TCP長連接雙向通道,但是由于Websocket的重傳機制不太友好,同時需要為轉發面控制面另外預留一條HTTPS的網絡接口用于數據發送接收。
圖片
傳輸的消息格式,采用RestFul風格設計,能夠快速便捷地進行設備編排管控。
? 網絡信息通道
網絡拓撲收集和拓撲自生成,是路徑調度,網絡編排的基礎,僅這個模塊就是非常復雜的。云網關在設計過程中,依賴了BGP的能力,在一定場景下(云網關作為POP設備時),通過BGP-LS能力和控制器建立BGP-LS鄰居,云網關通過BGP的路由屬性,攜帶計算好的拓撲信息至控制器,控制器通過BGP協議能夠快速解析生成網絡拓撲。
然而,該方案需要控制器支持南向BGP-LS接口,因為BGP-LS是BGP的一種擴展屬性,很多設備和控制器不一定能夠支持。云網關在設計過程中,結合POP探究場景,提出了一種基于SRv6的拓撲快速生成方法,并申請了相關專利,在該方案中,控制器只要擁有普通數據通道即可快速或許拓撲信息。
4.3 “云網關”設備內部轉控對接
回到設備內部,上文提到了設備內部也需要面臨轉控對接的問題。同樣,也存在兩個具體的南北向通道大類,一個是數據交互通道,一個是控制報文交互通道。
? 數據交互通道
設備內部的數據交互通道,是用來下發設備內部控制面計算好的路由,IP以及ARP等信息,以數據的形式下發至轉發面,轉發面拿到相關信息調用相應接口,在轉發面增刪改這些基本信息。
在云網關中,數據通道利用了Linux內核自帶的Netlink消息作為載體,控制面進程在計算完信息后,如BGP協議建立BGP鄰居通過路由重分布獲取到路由,控制面進程通過路由屬性判斷好路由優先級,最終加入FIB轉發表中時,除非Netlink消息,發送至設備轉發進程,由于數據量可能會很大,轉發進程結合Epoll機制,創建大量Socket,最終實現高效的數據信息下發。
? 控制報文交互通道
上文提到了,設備內部控制面還要負責控制報文協商,比如BGP的OPEN報文,IPsec的IKE等。那么如何將這部分報文從轉發進程中分離出來,通過哪種途徑通道將數據包發送到控制面,控制面如何發送給轉發面。不過作為控制報文,可以犧牲一小部分性能。
云網關在設計時,針對這塊采用了通過Linux內核驅動創建Tun/Tap口,轉發面和控制面均通過這個虛擬硬件口收發控制報文,云網關同時針對這個方案進行了Linux內核驅動的優化修改,提升了幾倍性能。
5、“云網關”的應用和未來
云網關的研發和推出,完成了許許多多的技術積累和創新突破,積累了一定技術能力,以轉控對接技術為例,這類技術不僅僅在云網關上適用,相應的技術創新和積累還可以在整個SDN網絡以及未來將要構建的算網底座中使用。
除了完成技術創新和積累,中國移動智慧家庭運營中心將以云網關為基礎,研發部署云化業務插件、基于SFC業務鏈技術的調度系統, 面向不同客戶場景,通過家庭網絡調度能力,實現上網安全、應用加速等增值服務快速加載部署,滿足不同家庭場景需求。
未來,中國移動智慧家庭云網關還將持續賦能更多產業合作伙伴、衍生更多使用場景,做大生態圈,為家庭、泛家庭用戶提供更加人性化的業務服務。