“天下武功出少林”,各類武俠小說中,少林寺與“少林派”是出鏡率極高的江湖團體。每一場令人印象深刻的激烈交戰中,總少不了少林僧人及其玄妙武功。在路由這個大江湖里,共有IGP和BGP兩大門派。或許我們可以這么說,BGP應該屬于路由的搬運工,負責在多個自治系統間進行路由的傳遞與交換,可以說“網絡路由出IGP”。IGP絕對算是內功深厚,招數奇多的門派,它運用復雜的招數和內功產生路由,是路由的源頭,其又細分:OSPF、IS-IS、RIP、IGRP、EIGRP等眾多流派。IGP、BGP兩大門派和平相處,各司其職,在江湖中相安無事幾十年。近年來,SDN風起云涌,浪潮之下,傳統路由似乎窮途末路,抑或煥發青春活力?
路由概況
BGP在網絡中的位置及功能作用,結合極其靈活的可擴展性,在SDN浪潮下,表現出了頑強的生命力,仙福永享,壽與天齊,暫且不表,這里重點說說IGP。
IGP路由大體上分為鏈路狀態路由,距離矢量路由兩大類,其本質為Dijkstra算法及Bellman-Ford算法。簡單整理下目前IGP路由協議現狀:
RIP只適用于小型網絡,當今應用案例很少。
IGRP已經死亡,IOS早已裁減了該特性。
EIGRP在特定行業應用較多,如金融行業。
適用于無線MESH網絡的HWMP、OLSR等,無線MESH網絡本身應用限制及各種替代技術,使得其路由應用較少。
傳統鏈路狀態路由協議在大規模使用,是事實上的主流協議,如:OSPF、ISIS。
傳統基于鏈路狀態的路由協議具備適用于大型網絡,無跳數限制,收斂快速且天然無環等諸多優點,基本成為事實上現網應用最多的路由協議類別。值得一提的是應用于無線MESH領域的OLSR(Optimized Link State Routing)對傳統OSPF、IS-IS鏈路狀態路由協議進行了大膽創新改造優化,通過MPR(MultiPoint Reply)機制降低報文泛洪量,在大規模網絡拓撲規模下,優化極為明顯,是一款優雅的路由協議。OLSR依托于較少應用場景的無線MESH組網,且無線MESH網絡本身有不少替代技術,使得其現網應用較少。尤其隨著SDN的興起,可預見OLSR還未興起既已沒落。
曾有媒體將Dijkstra最短路徑算法,選為統治世界的十大基礎算法之一,確不為過。沒有該算法,當今互聯網將無法工作。
OSPF、ISIS等路由協議核心本質上均為單源最短路徑算法。而鏈路狀態全網同步,收集全網拓撲信息,成為協議的主要差異點,體現為鄰居建立及LSDB的同步過程上,這也是協議層面必須規范的行為。拋開鏈路狀態同步機制的不同,其核心思想如下:
一旦設備鄰居關系建立完畢,鏈路狀態信息同步完成,以當前設備為根進行最短路徑計算,生成路由表即可。示例中
生成路由表后,將表項下入硬件轉發芯片,生成轉發表,指導硬件高速轉發。傳統路由交換設備均基于此思路進行,衍生的形形色色的數通特性均圍繞其展開。
我們可以看到傳統路由原理并不復雜,但OSPF無疑依舊為迄今為止最復雜的路由協議,沒有之一,OSPF協議標準RFC 2328文檔近300頁的超長篇幅,無出其右,也足以說明這點。以至于圍繞路由領域,衍生了一個生態,傳統設備商的各種認證如:CCIE、HCIE、H3CIE等,曾成為一個熱門職業。拿到這些認證,尤其CCIE,便意味著高薪工作,時至今日CCIE雖已日薄西山,但依舊余溫猶在。可以預見,SDN浪潮下,各種網絡工程師認證如CCIE等將逐漸降溫。簡單的路由原理,卻有極為復雜的現實,功能特性層出不窮,帶來傳統路由設備的永葆活力,是否傳統設備商刻意營造的一種技術門檻呢?以至于只有那幾家玩得轉。CCIE等認證本質難道不是帶動路由設備的拋售?IGP + MPLS等各種場景下的應用,配置命令成百上千條,用戶如何忍受?生態已成,客戶無法擺脫,SDN正是一個契機,但設備商會輕易放手?
路由變革
傳統路由設備繁重復雜的功能特性已很難應對。面對現網存量巨大的傳統路由設備,SDN重塑整個網絡面臨如下問題:
1.傳統網絡路由如何做SDN化改造?
2.傳統路由和SDN網絡路由如何平滑過渡?
3.如何軟件定義轉發路徑?
4.如何解決傳統路由路徑備份不足的問題?
針對問題1,基于傳統路由設備,個人認為無法做到真正的SDN改造,但還要讓客戶看起來像一點兒SDN,表面上看起來是SDN。目前設備商主流做法時,SDN控制器集中管控配置,傳統路由設備做轉發面,SDN控制器更多側重在統一集中運維層面。設備商的形形色色,加之對SDN理解的不同,實現方式的不同,導致SDN南向接口包羅萬象,事實上并未有統一標準。SDN真正的威力正在于問題2,傳統路由網絡和SDN網絡銜接過渡,有各種解決方案,這里不作深入探討。最簡單直接的方案傳統路由設備接入SDN轉發面,SDN轉發面將路由報文Packet-In直接上送SDN控制器,SDN控制器交由上層APP進行路由協議處理,充當和路由設備對接角色。SDN控制器通過Packet-Out下發路由協議報文到轉發面并轉至傳統路由設備,完成對接。SDN開源控制器ONOS針對BGP組網有類似解決方案如下:
基于問題1和2,注定現階段了轉發面仍需要跑路由協議,否則無法應對現網設備復雜的組網環境,傳統設備商也不會自斷臂膀。理想中的SDN,控制面全部收縮,任重而道遠,只能向現實妥協。思考一個不太關注的問題:單純SDN網絡下,轉發面如何連接SDN控制器,控制通道路由如何產生?這本身就是一個先有雞,還是先有蛋的問題,理性來看,單純的SDN網絡是不可行的,仍依賴于傳統網絡。
問題3,理想的SDN網絡,路由控制全在SDN控制器,做到軟件定義路徑比較容易,結合傳統設備及TE流量工程,Segment Routing無疑是最優選擇。Segment Routing具體介紹參考如下文章:Segment Routing將助力SDN重塑新型網絡
問題4,傳統路由路徑備份特性一直在發展,基于最短路徑LFA(Loop-Free Alternate)便是應用較廣的一種技術。但該技術很多情況下,無法計算出備份路由。衍生了更多更復雜的備份路由計算方法,如RLFA(Remote LFA),MRT (Maximally Redundant Trees) 等技術。這些新技術為了技術出備份路由,其代價甚至要比路由計算浪費資源更多,帶來收斂性能的大幅降低。個人認為,這些技術僅限于研究層面,即使在未來現網生產環境也會鮮有使用。但SDN架構下,備份路由的產生將具備得天獨厚的優勢,完全取決于控制器APP的發揮空間,理論上存在的備份路由均可產生。在SDN控制器技術中,結合Segment Routing,備份路徑的計算將輕而易舉。
展望
傳統路由IP網絡能在全球范圍內擁有廣泛部署,靠的是一套分布式的協議體系——一個或多個節點的路由器崩潰,IP網絡仍然可以繼續運行,這非常了不起。然而,正是這個分布式體系,使得很多本來很容易的全局性特殊策略難以實施,IP網絡的“智商”其實很低。更麻煩的是,網絡的控制在應用層軟件和路由器軟件之間有斷層,難以全自動地實施應用策略。
SDN的引入,正在試圖解決這些問題。但機械激進的引入SDN,甚至會帶來更多問題。在路由器組成的廣域網領域,牽一發動全身,因此SDN的引入策略也相對保守,保守的表現在于盡量不去觸及路由器的轉發面,并且在控制面也盡量保持兼容,以一種混合體系運行的方式,逐步把路由器上分布式運行的控制面轉到集中式運行在控制器上,并且通過層次化的控制器,及合理的北向接口,實現軟件全面自動化的訴求。
SDN已度過炒作階段,傳統設備商、激進研究派、運營商等都逐漸理性冷卻下來,傳統路由作為“少林正宗”,依舊必不可少;但通過SDN可以大幅減低網絡設備的復雜度,停止向復雜化發展的趨勢,使網絡簡單化、自動化、智能化。