“動態BGP”和“靜態BGP”,經常有人疑惑關于這兩種有什么區別?今天快速云幫大家簡單介紹下。
從傳統多線到BGP
不知道大家是否還記得當年聯網打游戲,聯通的兄弟和電信的兄弟,完全沒法配合,延遲嚇 死人。這是由于每個運營商都有自己的網絡,運營商之間互聯點是比較少的,帶寬也不大,跨網 連接都要迂回到連接點還經常擁塞。
很多應用為了應付這種情況,都申請了多線,一根電信一根聯通一根移動。應用在每一個運 營商都申請了一個IP地址,多個IP地址共同映射到同一個內網IP上。電信訪問走電信的IP,移動 訪問走移動的IP,聯通走聯通自己的IP。
這樣確實是能解決跨網的問題,但是隨著運營商數量越來越多(長城、教育網等),IP的維 護越來越復雜,DNS的智能解析要求越來越高。
我們是否有辦法申請一個IP地址,讓每一個運營商網絡都有這個IP的路由,并且都指向我們 的應用,不再跨網?即上圖不再是IP1~IP3,而只有IP1。
BGP類型的EIP就是專門針對處理這個問題的。
例如某段IP地址,在多家運營商同時廣播,每家運營商網絡里面都有這個IP的路由并指向同 一個地方。這類IP地址就是BGP類型的IP地址。
傳統多線,如果應用只申請了IP1,在聯通發布,則電信的訪問者必須先走到電信與聯通互 聯口上,進入聯通網絡才能訪問到IP1。
BGPIP,每一家運營商內網都有IP1的路由并直接指向網內的某出口,不必跨網。
在BGP的場景下,運營商的路由管理是比之前復雜的。老場景下,同一個IP段的路由只有1 條;BGP的場景下,本網內有1條,還可能從其他網學到路由。本地的路由表維護量會翻倍,優 先走網內,次優跨網。
這里有個點。既然網內已經有了一條,為何還需要從其他運營商那里學路由?
如果不學,當網內路由出現問題,路由消失業務就斷了;學了以后,網內故障,可以迂回到 其他運營商;
路由在運營商之間交叉穿透,這會導致運營商網絡維護復雜度更高,運營商缺省是不穿透 的,需要客戶買單。
動態BGP與靜態BGP
剛才說了運營商網內的事情,但IP地址其實是歸企業所有的,運營商只是代播。那IP地址到 底是如何發布到所有運營商的?作為一個企業,是如何跟運營商對接的?
所說的動態和靜態,其實就是企業跟運營商對接的方式和IP廣播點上有差異。
動態BGP
企業的路由器跟所有的運營商之間建立EBGP,IP地址在企業的路由器上發布,運營商只負 責學習并傳播。若企業路由器跟運營商之間線路中斷,運營商沒有學到路由,網內路由撤銷。
這就是動態BGP。
動態BGP的好處就是,路由發布點是在企業的路由器上,企業可以自己控制各個運營商的路 由優先級。當某一家運營商網絡抖動厲害時,企業可以主動取消對他發布的路由,而使得該運營 商內網的訪問者迂回其他運營商訪問,旁路故障點。
靜態BGP
企業的路由器跟運營商之間只是普通的IP對接,不需要建立BGP。IP地址在運營商的網絡里 面發布以后,通過靜態路由的方式將網段指給企業的路由器。線路的中斷,企業的路由器的故 障,跟運營商的IP發布情況沒有關聯關系。
靜態BGP配置簡單,而且跟運營商之間沒有動態協議聯動。對運營商來說,自己網內的路由 都是自己發的,不需要依賴企業的發布。所以靜態BGP比動態BGP便宜。
回包怎么回?
剛才說的都是入方向的流量,那出方向怎么出呢?因為源地址都是一樣的,目的地址也都是 隨機的,如何知道該走哪家運營商出去呢?
傳統多線,出方向的報文,會選擇一家運營商,或者通過鏈路負載均衡等設備選擇。
動態BGP,因為企業會學習到各個運營商的細化路由,回包匹配路由回程即可
靜態BGP,還是需要單獨找設備跟運營商建立EBGP,收取運營商的路由,根據收到的路由做路由策略回程