什么是靜態(tài)路由、OSPF、BGP
1. 什么是靜態(tài)路由
1.1 基本概念
靜態(tài)路由是一種網絡路由配置方式,其中網絡管理員手動配置路由信息,將特定的目標網絡和下一跳路由器關聯起來。這種配置方式是相對于動態(tài)路由而言的,動態(tài)路由是通過路由協議自動學習和更新路由表。
在靜態(tài)路由中,路由表的更新不是由路由協議自動完成的,而是由網絡管理員手動輸入或配置的。每個路由器上都有一個手動維護的路由表,其中包含了到達目標網絡的路徑。當網絡拓撲發(fā)生變化時,管理員需要手動更新路由表以反映這些變化。
1.2 靜態(tài)路由的主要特點包括
手動配置: 靜態(tài)路由需要管理員手動配置路由信息,包括目標網絡和下一跳路由器。這種手動配置方式提供了對網絡流量的更精確控制。
較少的網絡開銷: 由于靜態(tài)路由不涉及動態(tài)路由協議的信息交換和計算,因此在網絡中產生較少的開銷。這對于小型網絡或具有相對穩(wěn)定拓撲的網絡是有益的。
相對簡單: 靜態(tài)路由配置相對簡單,易于理解和實施。這使得它成為一些簡單網絡或對路由控制要求不高的場景中的常見選擇。
較少的網絡流量: 由于不需要動態(tài)路由協議的更新消息,靜態(tài)路由生成的網絡流量較少。這有助于減少網絡中的控制流量。
然而,靜態(tài)路由也有一些缺點,特別是在大型、動態(tài)網絡中:
難以擴展: 在大型網絡中,手動配置和維護靜態(tài)路由表可能變得非常繁瑣和不實際。網絡拓撲的變化需要手動更新路由表,這可能會增加管理負擔。
不適用于動態(tài)網絡: 如果網絡拓撲經常變化,靜態(tài)路由可能無法有效應對。動態(tài)路由協議能夠更靈活地適應變化的網絡條件。
<br>
2. 什么是 OSPF
OSPF(Open Shortest Path First)是一種開放式的鏈路狀態(tài)路由協議,用于在TCP/IP網絡中計算路由。它屬于內部網關協議(IGP,Interior Gateway Protocol)的一種,用于在同一自治系統(tǒng)(AS,Autonomous System)內,即單一組織或網絡內部,進行路由決策。
OSPF的主要特點包括:
鏈路狀態(tài)協議: OSPF是一種鏈路狀態(tài)協議,它維護了網絡中所有路由器之間的鏈路狀態(tài)數據庫(Link State Database,LSDB)。每個路由器都有完整的鏈路狀態(tài)數據庫,其中包含網絡中所有路由器和連接的信息。
路由計算: OSPF使用Dijkstra算法進行路由計算,找到最短路徑。通過在鏈路狀態(tài)數據庫中存儲鏈路狀態(tài)信息,OSPF能夠計算出最短路徑樹(Shortest Path Tree),從而確定到達目的地的最優(yōu)路徑。
開放性和標準化: OSPF是一種開放協議,由IETF(Internet Engineering Task Force)標準化。這意味著任何符合標準的設備都可以實現并與其他支持OSPF的設備進行通信。
<br>
3. 什么是 BGP
BGP 的全稱是 Border Gateway Protocol,即:邊界網關協議。它是一個 Linux 內核原生就支持的、專門用在大規(guī)模數據中心里維護不同的“自治系統(tǒng)”之間路由信息的、無中心的路由協議。
我可以用一個非常簡單的例子來為你講清楚。
在這個圖中,我們有兩個自治系統(tǒng)(Autonomous System,簡稱為 AS):AS 1 和 AS 2。而所謂的一個自治系統(tǒng),指的是一個組織管轄下的所有 IP 網絡和路由器的全體。你可以把它想象成一個小公司里的所有主機和路由器。在正常情況下,自治系統(tǒng)之間不會有任何“來往”。
但是,如果這樣兩個自治系統(tǒng)里的主機,要通過 IP 地址直接進行通信,我們就必須使用路由器把這兩個自治系統(tǒng)連接起來。
比如,AS 1 里面的主機 10.10.0.2,要訪問 AS 2 里面的主機 172.17.0.3 的話。它發(fā)出的 IP 包,就會先到達自治系統(tǒng) AS 1 上的路由器 Router 1。
而在此時,Router 1 的路由表里,有這樣一條規(guī)則,即:目的地址是 172.17.0.2 包,應該經過 Router 1 的 C 接口,發(fā)往網關 Router 2(即:自治系統(tǒng) AS 2 上的路由器)。
所以 IP 包就會到達 Router 2 上,然后經過 Router 2 的路由表,從 B 接口出來到達目的主機 172.17.0.3。
但是反過來,如果主機 172.17.0.3 要訪問 10.10.0.2,那么這個 IP 包,在到達 Router 2 之后,就不知道該去哪兒了。因為在 Router 2 的路由表里,并沒有關于 AS 1 自治系統(tǒng)的任何路由規(guī)則。
所以這時候,網絡管理員就應該給 Router 2 也添加一條路由規(guī)則,比如:目標地址是 10.10.0.2 的 IP 包,應該經過 Router 2 的 C 接口,發(fā)往網關 Router 1。
像上面這樣負責把自治系統(tǒng)連接在一起的路由器,我們就把它形象地稱為:邊界網關。它跟普通路由器的不同之處在于,它的路由表里擁有其他自治系統(tǒng)里的主機路由信息。
上面的這部分原理,相信你理解起來應該很容易。畢竟,路由器這個設備本身的主要作用,就是連通不同的網絡。
但是,你可以想象一下,假設我們現在的網絡拓撲結構非常復雜,每個自治系統(tǒng)都有成千上萬個主機、無數個路由器,甚至是由多個公司、多個網絡提供商、多個自治系統(tǒng)組成的復合自治系統(tǒng)呢?
這時候,如果還要依靠人工來對邊界網關的路由表進行配置和維護,那是絕對不現實的。而這種情況下,BGP 大顯身手的時刻就到了。
在使用了 BGP 之后,你可以認為,在每個邊界網關上都會運行著一個小程序,它們會將各自的路由表信息,通過 TCP 傳輸給其他的邊界網關。而其他邊界網關上的這個小程序,則會對收到的這些數據進行分析,然后將需要的信息添加到自己的路由表里。
這樣,圖 2 中 Router 2 的路由表里,就會自動出現 10.10.0.2 和 10.10.0.3 對應的路由規(guī)則了。所以說,所謂 BGP,就是在大規(guī)模網絡中實現節(jié)點路由信息共享的一種協議。
需要注意的是,BGP 協議實際上是最復雜的一種路由協議。我在這里的講述和所舉的例子,僅是為了能夠幫助你建立對 BGP 的感性認識,并不代表 BGP 真正的實現方式。
記錄自己工作的技術積累