將路由器聚合成一個自治系統AS(autonomous systems)
①同一AS內的路由器運行相同的路由協議自治系統內部路由協議(「intra-AS」 routing protocol)
②不一樣AS內的路由器能夠運行不一樣的AS內部路由協議
路由器的轉發表由AS內部路由算法與AS間路由算法共同配置:
①AS內部路由算法設置AS內部目的網絡路由入口(entries)
②AS內部路由算法與AS間路由算法共同設置AS外部目的網絡路由入口
網關路由器(gateway router)位於AS邊緣,經過鏈路鏈接其餘AS的網關路由器
假設AS1內某路由器收到一個目的地址在AS1以外的數據報,爲肯定路由器應該將該數據報轉發給哪一個網關路由器:
(1)AS1必須學習到哪些目的網絡能夠經過AS2到達,哪些能夠經過AS3到達。
(2)AS間路由算法將這些網絡可達性信息傳播給AS1內部路由器。
(3)路由器利用AS內部路由信息,肯定其到達網關路由器的最小費用路徑接口,在轉發表中增長入口
(4)若是經過AS3和AS2都可到達,爲了配置轉發表,路由器必須肯定應該將去往子網的數據報轉發給哪一個網關,這個任務也是由AS間路由協議完成的。在實踐中常用的一種方法是熱土豆路由選擇(hotpotatorouting),將分組發送給最近的網關路由器。
Internet採用層次路由:
Internet的AS內部路由協議也稱爲內部網絡協議IGP(interior gateway protocols):
- 路由信息協議:RIP(Routing Information Protocol)
早於1982年隨BSD-UNIX操做系統發佈。
是一種距離向量協議, 費用其實是從源路由器到目的子網的跳步數(max = 15 hops),跳是沿着從源路由器到目的子網(包括目的子網)的最短路徑所通過的子網數量
每隔30秒,鄰居之間交換一次DV,成爲RIP通告(RIP advertisement)-RIP響應報文,其中包含了一個該AS內的最多25個目的子網的列表(IP地址形式),以及發送方到其中每一個子網的距離。
路由器也可經過使用RIP請求報文,請求其鄰居到指定目的地的費用。
每臺路由器維護一張稱爲路由選擇表的RIP表,包括該路由器的距離向量和該路由器的轉發表。
若是180秒沒有收到通告→鄰居/鏈路失效,通過該鄰居/鏈路的路由不可用,從新計算路由並向鄰居發送新的通告,鄰居再依次向外發送通告(若是轉發表改變)
鏈路失效信息要快速傳播到全網,可能發生無窮計數問題,所以使用了毒性逆轉技術,且定義16 hpps = 無窮距離
RIP路由表是利用一個稱做routed (daemon)的應用層進程進行管理, 維護路由選擇信息並與相鄰路由器中的routed進程交換報文,通告報文週期性地經過UDP數據報發送。路由器在UDP上使用端口520相互發送RIP請求與響應報文。封裝在標準IP數據報中的UDP報文段在路由器之間傳輸。
- 開放式最短路徑優先協議OSPF(Open Shortest Path First)
開放指路由選擇協議規範是公衆可用的。
OSPF的核心就是一個使用洪泛(向整個AS內廣播,而不只僅是鄰居)鏈路狀態信息的鏈路狀態協議和一個Dijksua最低費用路徑算法。使用OSPF,一臺路由器構建了一幅關於整個自治系統的完整拓撲圖(網絡AS拓撲圖)。
各條鏈路費用是由網絡管理員配置的。
路由器在本地運行Dijkstra的最短路徑算法,以肯定一個以自身爲根結點的到全部子網的最短路徑樹。
每當一條鏈路的狀態發生變化時(如費用的變化或鏈接/中斷狀態的變化),路由器就會廣播鏈路狀態信息。
即便鏈路狀態未發生變化,它也要週期性地(至少每隔30分鐘一次)廣播鏈路狀態。
OSPF通告包含在OSPF報文中,該OSPF報文直接封裝到IP數據報中。所以OSPF協議必須自已實現諸如可靠報文傳輸、鏈路狀態廣播等功能。OSPF協議還要檢查鏈路正在運行(經過向相連的鄰居發送HELLO報文),並容許OSPF路由器得到相鄰路由器的網絡範圍鏈路狀態的數據庫。
OSPF的優勢:
- 安全(security):全部OSPF報文能夠被認證(預防惡意入侵)
- 容許使用多條相同費用的路徑 (RIP只能選一條),數據多的時候能夠負載到多條路徑
- 對於每條鏈路,能夠針對不一樣的TOS設置多個不一樣的費用度量。例如,衛星鏈路能夠針對「盡力」(best effort) ToS設置低費用、針對實時ToS設置「高」費用
- 對單播與多播路由選擇的綜合支持:多播OSPF(MOSPF)提供對OSPF 的簡單擴展,以便提供多播路由選擇。它使用現有的OSPF鏈路數據庫,併爲現有的OSPF 鏈路狀態廣播機制增長了一種新型的鏈路狀態通告。
- 支持對大規模AS分層
OSPF的分層:
一個OSPF自治系統能夠配置成多個區域。每一個區域都運行本身的OSPF鏈路狀態路由選擇算法,鏈路狀態通告只限於區域內部。
每一個路由器掌握所在區的詳細拓撲,只知道去往其餘區網絡的「方向」 (最短路徑)
如圖:局部分層爲骨幹區域、局部區域。
一個AS內只有一個OSPF 區域配置成主幹(backbone) 區域。主幹區域的主要做用是爲AS 內其餘區域之間的流量提供路由選擇。該主幹老是包含了AS內的全部區域邊界路由器,而且可能還包含了一些非邊界路由器。
每一個局部區域內,都有一臺或多臺區域邊界路由器,既是區域內部路由器,又是主幹路由器。負責爲流向該區域之外的分組提供路由選擇;彙總到達所在區網格的距離,通告給其它區域的區域邊界路由器。
在AS內的區域間的路由選擇要求分組首先通告區域內路由選擇路由到一個區域邊界路由器,再經過主幹路由到位於目的區域的區域邊界路由器,而後再路由到最終目的地。
主幹區還有一個AS邊界路由器。
Internet AS間路由協議: BGP4,它是將Internet粘合成一個總體的關鍵
- 邊界網關協議BGP (Border Gateway Protocol)
BGP爲每一個AS提供了一種手段:
(1)eBGP: 從鄰居AS獲取子網可達性信息.
(2)iBGP: 向全部AS內部路由器傳播子網可達性信息.
(3)基於可達性信息與策略,肯定到達其餘網絡的「好」路徑.
(4)允許子網向Internet其他部分通告它的存在
BGP會話(session):兩個BGP對等方 (BGP Peers)交換BGP報文,通告去往不一樣目的前綴(prefix)的路徑 (「路徑向量(path vector)」協議),報文交換基於半永久的TCP鏈接
跨越兩個AS的BGP會話稱爲外部BGP (eBGP) 會話(external BGP session)
在同一個AS中的兩臺路由器之間的BGP會話稱爲內部BGP (iBGP) 會話(internal BGP session) 。
BGP報文:
①OPEN: 與peer創建TCP鏈接,並認證發送方
②UPDATE: 通告新路徑 (或撤銷原路徑)
③KEEPALIVE: 在無UPDATE時,保活鏈接;也用於對OPEN請求的確認
④NOTIFICATION: 報告先前報文的差錯;也被用於關閉鏈接
當AS3利用eBGP會話通告一個CDIR化的前綴給AS1時:AS3承諾能夠將數據報轉發給該子網、AS3在通告中會聚合網絡前綴
AS1的AS邊界路由器1c能夠利用iBGP向AS1內的全部路由器分發新的前綴可達性信息
1c能夠(也可能不)進一步經過1b-到-2a的eGP會話,向AS2通告新的可達性信息
當路由器得到新的前綴可達性時,即在其轉發表中增長關於該前綴的入口(路由項)
當一臺路由器經過BGP會話通告一個前綴時,它在前綴中包括一些BGP 屬性,前綴+屬性= 「路由」
兩個重要屬性:
AS-PATH(AS路徑)包含前綴通告所通過的AS序列
NEXT-HOP(下一跳)開始一個AS-PATH的路由器接口,指向下一跳AS。可能從當前AS到下一跳AS存在多條鏈路,NEXT-HOP指明瞭走哪一條。
當一臺網關路由器接收到一臺路由器通告時,它使用其輸入策略來決定是否接收/過濾該路由。
輸人策略可能過濾掉一條路由,由於該AS可能不但願經過在該路由的AS-PATH中的某個AS發送流量。
網關路由器也可能過濾一條路由,由於它已經知道了一條到相同前綴的偏好路由。
路由器可能獲知到達某目的AS的多條路由,基於如下準則選擇:
1. 本地偏好(preference)值屬性: 策略決策(policy
decision)
2. 最短AS-PATH
3. 最近NEXT-HOP路由器: 熱土豆路由(hot potato routing)
4. 附加準則
以某一個例子來講明BGP路由選擇策略:
A,B,C是提供商網絡/AS(provider network/AS)
X,W,Y是客戶網絡(customer network/AS)
W,Y是樁網絡(stub network/AS): 只與一個其餘AS相連
X是雙宿網絡(dual-homed network/AS): 鏈接兩個其餘AS
X不指望通過他路由B到C的流量,所以,X不會向B通告任何一條到達C的路由
A向B通告一條路徑:AW
B向X通告路徑:BAW
B不會向C通告路徑BAW:由於W和C均不是B的客戶,B路由CBAW的流量沒有任何「收益」,B指望強制C經過A向W路由流量、本身只路由去往/來自其客戶的流量!
綜上,採用不一樣的AS內與AS間路由協議的緣由:
inter-AS: 指望可以管理控制流量如何被路由,誰路由通過其網絡等
intra-AS: 單一管理,無需策略決策
層次路由節省路由表大小,減小路由更新流量
適應大規模互聯網
intra-AS: 側重性能
inter-AS: 策略主導