1. 程式人生 > >BGP網路學習總結

BGP網路學習總結

1、前言

     雲端計算在中國發展越來越快,企業逐步開始將業務遷移到公有云中,方便運維,節省成本。公有云最複雜的地方是網路,客戶對網路的需求千奇百怪,造成網路環境極其複雜,稍有不慎,就會出現網路連通性問題。因此大部分雲端計算廠商機房網路型別的運營商接入均為 BGP 多線路,保證線路質量。公有云中網路安全也是非常重要,例如DDos攻擊,域名未備案封堵系統。我在工作中接觸到了BGP高仿和域名未備案封堵系統,今天總結一下自己對BGP網路的理解,涉及的內容有什麼是BGP,BGP用來解決什麼問題,雲端計算廠商中BGP機房有啥優勢,BGP高防如何做到引流和回注,域名未備案系統是怎麼實現的。

2、BGP網路介紹

  目前中國境內主要分為網通、電信、移動、聯通、教育網、科技網、衛通等網路,由於這些公司獨立運作,造成國內長久以來整個網際網路處於無法快速互聯互通的局面,如何將各個AS自制系統連通起來,就需要搭建BGP網路。

在介紹BGP協議之前,先介紹幾個概念:

  (1) AS(Autonomous system):自治系統,指在一個(有時是多個)組織管轄下的所有IP網路和路由器的全體,它們對網際網路執行共同的路由策略。也就是說,對於網際網路來說,一個AS是一個獨立的整體網路。而BGP實現的網路自治也是指各個AS自治。每個AS有自己唯一的編號。

  (2)IGP(Interior Gateway Protocol):內部閘道器協議,在一個AS內部所使用的一種路由協議。一個AS內部也可以有多個路由器管理多個網路。各個路由器之間需要路由資訊以知道子網路的可達資訊。IGP就是用來管理這些路由。代表的實現有RIP和OSPF。

       (3)EGP(Exterior Gateway Protocol):外部閘道器協議,在多個AS之間使用的一種路由協議,現在已經淘汰,被BGP取而代之。

       BGP(Border Gateway Protocol)主要用於網際網路AS(自治系統)之間的互聯,BGP的最主要功能在於控制路由的傳播和選擇最佳路徑。全國各大網路運營商多數都是通過BGP協議與自身的AS號來實現多線互聯的。使用BGP協議互聯後,網路運營商的所有骨幹路由裝置將會判斷到IDC機房IP段的最佳路由,以保證不同網路運營商使用者的高速訪問。

  動態BGP多線網路,路由表項是通過相互連線的路由器之間交換彼此路由資訊,然後按照一定的演算法優化出來的,而這些路由資訊是在一定時間間隙裡不斷更新,以適應不斷變化的網路,以隨時獲得最優的尋路效果。為了實現IP分組的高效尋路,IETF制定了多種尋路協議。也就是說,當靜態BGP中的網路結構發生變化,運營商是無法在第一時間自動調整網路設定以保障使用者的體驗度。而動態BGP可根據設定的尋路協議第一時間自動優化網路結構,以保持客戶使用的網路持續穩定、高效。所以,動態BGP網路被稱為真正意義上的BGP。

3、BGP流量引流和回注

  雲端計算廠商需要保證客戶網路的正常,通常會為單個公網IP提供數G的防護能力,當超過預設的閾值,公網IP備遷移到黑洞中,進行封堵。這樣導致使用者的服務不可訪問了,客戶為了正常訪問服務,就需要接入BGP高防,防護能力高達數百G,來保護服務正常。高防的費用是非常高的,通常雲廠商自己搭建高防系統,通過BGP協議將流量引流到高防清洗系統,將異常流量清洗掉,將正常流量回注給客戶。參考華為的DDos防護系統http://forum.huawei.com/enterprise/thread-388785-1-1.html

4、搭建BGP引流和回注

  使用Linux下開源的Quagga開源搭建基於BGP協議的路由器,Quagga守護程序負責BGP的服務叫bgpd。關於如何使用Quagga搭建一個BGP路由器,可以參考:

路由器A和路由器B使用100.100.0.0/30子網來連線到對方。

  技術實現目前可以使用Intel開源的DPDK網路開發包快速開發,使用KNI新建一個虛擬網絡卡,配置好與上層互動機建立BGP,然後通過虛擬網路將流量引入,分析流量過後,使用回注口將報文使用二層MAC送回到交換機。關於DPDK的介紹可以參考:https://www.jianshu.com/p/0ff8cb4deaef