適合小孩子的自動化。 第二部分。 網路設計

在前兩篇文章中,我提出了自動化問題並勾勒出其框架,在第二篇文章中,我退回網路虛擬化,作為自動化服務配置的第一種方法。
現在是時候繪製實體網路圖了。

如果您不熟悉設定資料中心網絡,那麼我強烈建議您從 關於他們的文章.

所有問題:

本系列中所述的實踐應該適用於任何類型的網路、任何規模、任何種類的供應商(不是)。然而,不可能描述這些方法的應用的通用範例。因此,我將重點放在DC網路的現代架構: 克洛茲工廠.
我們將在 MPLS L3VPN 上進行 DCI。

Overlay 網路在主機的實體網路之上運作(這可以是 OpenStack 的 VXLAN 或 Tungsten Fabric 或任何其他僅需要網路基本 IP 連線的網路)。

適合小孩子的自動化。 第二部分。 網路設計

在這種情況下,我們得到了一個相對簡單的自動化場景,因為我們有許多設備以相同的方式配置。

我們將選擇真空中的球形 DC:

  • 到處都是一種設計版本。
  • 兩個廠商組成兩個網路平面。
  • 一個 DC 就像另一個 DC 一樣,就像豆莢裡的兩顆豌豆。

Содержание

  • 物理拓撲
  • 路由
  • 智慧財產權計劃
  • 臘八
  • 結論
  • 有用的鏈接

例如,讓我們的服務提供者 LAN_DC 託管有關在電梯卡住時生存的培訓影片。

在大城市,這非常流行,因此您需要大量實體機器。

首先,我將按照我的意願大致描述該網路。然後我會在實驗室中簡化它。

物理拓撲

地點

LAN_DC 將有 6 個 DC:

  • 俄羅斯 (RU):
    • 莫斯科(MSK)
    • 喀山(崑山)

  • 西班牙 (SP):
    • 巴塞隆納(BCN)
    • 馬拉加(毫升)

  • 中國 (CN):
    • 上海 ()
    • 西安()

適合小孩子的自動化。 第二部分。 網路設計

DC 內部(DC 內)

所有 DC 都具有基於 Clos 拓撲的相同內部連接網路。
它們是什麼類型的 Clos 網路以及為什麼它們位於單獨的網路中 文章.

每個 DC 有 10 個裝有機器的機架,它們將編號為 A, B, C 等。

每個機架有30台機器。他們不會讓我們感興趣。

此外,在每個機架中都有一個所有機器都連接到的交換器 - 這是 架頂式交換器 - ToR 否則,就 Clos 工廠而言,我們稱之為 .

適合小孩子的自動化。 第二部分。 網路設計
工廠總圖。

我們會打電話給他們 XXX-葉子Y哪裡 XXX - 三字母縮寫 DC,以及 Y - 序號。例如, kzn-leaf11.

在我的文章中,我將允許自己相當隨意地使用術語 Leaf 和 ToR 作為同義詞。然而,我們必須記住,事實並非如此。
ToR 是安裝在連接機器的機架中的交換器。
Leaf是實體網路中裝置的角色,或是Cloes拓樸中的第一級交換器。
也就是說,Leaf != ToR。
例如,Leaf 可以是 EndofRaw 交換器。
然而,在本文的框架內,我們仍將它們視為同義詞。

每個 ToR 交換器依序連接到四個更高層級的聚合交換器 - 。 DC 中的一個機架分配給 Spines。我們將類似地命名它: XXX-脊柱Y.

同一機架將包含用於板載 MPLS 的 DC-2 路由器之間連接的網路設備。但總的來說,這些職責範圍是相同的。也就是說,從 Spine 交換器的角度來看,連接機器的通常 ToR 或 DCI 路由器根本不重要 - 只是轉送。

這種特殊的 ToR 稱為 邊葉型。我們會打電話給他們 XXX-邊緣Y.

它看起來像這樣。

適合小孩子的自動化。 第二部分。 網路設計

在上圖中,我實際上將邊緣和葉子放置在同一水平面上。 經典三層網絡 他們教導我們將上行鏈路(因此稱為上行鏈路)視為上行鏈路。事實證明,DCI「上行鏈路」再次下降,這對某些人來說稍微打破了通常的邏輯。在大型網路的情況下,當資料中心被劃分為較小的單元時 - POD的(交貨點),突出顯示單獨的 邊緣POD用於 DCI 和存取外部網路。

為了將來便於感知,我仍然會將 Edge 繪製在 Spine 之上,同時我們要記住,Spine 上沒有智能,並且在使用常規 Leaf 和 Edge-leaf 時沒有差異(儘管這裡可能存在細微差別) ,但一般來說這是正確的)。

適合小孩子的自動化。 第二部分。 網路設計
帶邊葉的工廠方案。

Leaf、Spine 和 Edge 三位一體形成了一個 Underlay 網路或工廠。

網路工廠的任務(閱讀Underlay),正如我們已經在中定義的 上一期,非常非常簡單 - 在同一 DC 內以及它們之間的機器之間提供 IP 連接。
這就是為什麼網路被稱為工廠,就像模組化網路盒內的交換工廠一樣,您可以在中閱讀更多信息 SDSM14.

一般來說,這樣的拓樸稱為工廠,因為fabric翻譯過來就是fabric的意思。很難不同意:
適合小孩子的自動化。 第二部分。 網路設計

工廠完全是L3級。沒有 VLAN,沒有廣播 - 我們在 LAN_DC 擁有如此優秀的程式設計師,他們知道如何編寫生活在 L3 範式中的應用程序,並且虛擬機不需要保留 IP 位址的即時遷移。

再次:回答為什麼工廠和 L3 是在一個單獨的地方的問題 文章.

DCI - 資料中心互連(DC 間)

DCI 將使用 Edge-Leaf 進行組織,也就是說,它們是我們高速公路的出口點。
為簡單起見,我們假設 DC 透過直接連結相互連接。
讓我們排除外部連接的考慮。

我知道每次刪除一個元件時,我都會顯著簡化網路。當我們將抽象網路自動化時,一切都會好起來的,但在真實的網路上就會有拐杖。
這是真實的。儘管如此,本系列的重點是思考和研究方法,而不是英勇地解決想像中的問題。

在 Edge-Leaf 上,底層被放置在 VPN 中並透過 MPLS 主幹網路(相同的直接連結)傳輸。

這是我們得到的頂層圖。

適合小孩子的自動化。 第二部分。 網路設計

路由

對於 DC 內的路由,我們將使用 BGP。
MPLS 中繼上的OSPF+LDP。
對於 DCI,即在地下組織連接 - 基於 MPLS 的 BGP L3VPN。

適合小孩子的自動化。 第二部分。 網路設計
通用路由方案

工廠沒有 OSPF 或 ISIS(俄羅斯聯邦禁止的路由協定)。

這意味著不會自動發現或計算最短路徑——只有手動(實際上是自動的——我們在這裡討論的是自動化)設定協定、鄰域和策略。

適合小孩子的自動化。 第二部分。 網路設計
DC內BGP路由方案

為什麼選擇 BGP?

關於這個話題有 整個RFC 以 Facebook 和 Arista 命名,講述如何構建 很大 使用 BGP 的資料中心網路。它讀起來幾乎就像小說一樣,我強烈推薦它度過一個慵懶的夜晚。

我的文章中還有一整節專門討論這一點。我該帶你去哪裡 我正在發送.

但總而言之,沒有IGP適合網路設備數量達到數千台的大型資料中心網路。

此外,到處使用 BGP 將使您不必浪費時間支援多種不同的協定以及它們之間的同步。

說實話,在我們工廠,大機率不會快速發展,OSPF 就足夠了。這些其實是大型企業和雲端巨頭的問題。但讓我們想像一下,只有幾個版本需要它,我們將使用 BGP,正如 Pyotr Lapukhov 遺贈的那樣。

路由策略

在 Leaf 交換器上,我們將前綴從 Underlay 網路介面匯入到 BGP 中。
我們將在以下人員之間進行 BGP 會話: 每個 葉-主幹對,其中這些底層前綴將透過網路來回公佈。

適合小孩子的自動化。 第二部分。 網路設計

在一個資料中心內,我們將分發導入到 ToRe 的規範。在 Edge-Leafs 上,我們將聚合它們並向遠端 DC 宣布並將它們發送到 TOR。也就是說,每個 ToR 將確切地知道如何到達同一 DC 中的另一個 ToR,以及到達另一個 DC 中的 ToR 的入口點。

在DCI中,路由將作為VPNv4傳輸。為此,在 Edge-Leaf 上,通往工廠的介面將放置在 VRF 中,我們將其稱為 UNDERLAY,Edge-Leaf 上的 Spine 鄰域將在 VRF 內以及 VPNv4 中的 Edge-Leaf 之間上升 -家庭。

適合小孩子的自動化。 第二部分。 網路設計

我們還將禁止重新宣布從脊椎收到的路由返回給它們。

適合小孩子的自動化。 第二部分。 網路設計

在 Leaf 和 Spine 上,我們不會匯入 Loopback。我們只需要它們來確定路由器 ID。

但在 Edge-Leafs 上,我們將其導入全域 BGP。在環回位址之間,Edge-Leaf 將在 IPv4 VPN 系列中相互建立 BGP 會話。

我們將在 EDGE 設備之間建立 OSPF+LDP 主幹網路。一切都在一個區域。配置極為簡單。

這是帶有路由的圖片。

BGP ASN

邊葉 ASN

Edge-Leafs 將在所有 DC 中擁有一個 ASN。 Edge-Leaf 之間存在 iBGP 非常重要,我們不會陷入 eBGP 的細微差別。設為 65535。實際上,這可能是公共 AS 的編號。

脊椎ASN

在 Spine 上,每個 DC 都有一個 ASN。讓我們從私有 AS 範圍中的第一個數字開始 - 64512、64513 等等。

為什麼選擇 DC 上的 ASN?

讓我們把這個問題分成兩個:

  • 為什麼一個 DC 的所有主幹上的 ASN 都相同?
  • 為什麼它們在不同的 DC 中有所不同?

為什麼一個 DC 的所有主幹上都有相同的 ASN?

Edge-Leaf 上 Underlay 路由的 AS 路徑如下所示:
[leafX_ASN, spine_ASN, edge_ASN]
當您嘗試將其通告回 Spine 時,它將丟棄它,因為它的 AS (Spine_AS) 已在清單中。

然而,在 DC 內,我們完全滿意的是,上升到 Edge 的 Underlay 路由將無法下降。 DC 內主機之間的所有通訊都必須發生在主幹層級內。

適合小孩子的自動化。 第二部分。 網路設計

同時,其他 DC 的聚合路由在任何情況下都將輕鬆到達 ToR - 它們的 AS 路徑將只有 ASN 65535 - AS Edge-Leaf 的數量,因為那是它們創建的地方。

為什麼它們在不同的 DC 中有所不同?

理論上,我們可能需要在DC之間拖曳Loopback和一些商業虛擬機器。

例如,在主機上我們將執行 Route Reflector 或 相同的VNGW (虛擬網路網關),它將透過 BGP 與 TopR 鎖定並宣布其環回,該環回應該可以從所有 DC 存取。

所以它的 AS 路徑如下所示:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]

並且任何地方都不應該有重複的 ASN。

適合小孩子的自動化。 第二部分。 網路設計

也就是說,Spine_DC1 和 Spine_DC2 必須不同,就像 leafX_DC1 和 leafY_DC2 一樣,這正是我們正在接近的。

您可能知道,儘管有環路預防機制(Cisco 上的allowas-in),有些駭客仍允許您接受具有重複 ASN 的路由。它甚至還有合法用途。但這是網路穩定性的潛在差距。我個人也曾陷入過幾次。

如果我們有機會不使用危險的東西,我們就會利用它。

葉ASN

我們將在整個網路中的每個葉子交換器上都有一個單獨的 ASN。
我們這樣做的原因如下:AS 路徑沒有環路,BGP 設定沒有書籤。

為了使Leaf之間的路由順利通過,AS-Path應該如下所示:
[leafX_ASN, spine_ASN, leafY_ASN]
其中 leafX_ASN 和 leafY_ASN 最好是不同的。

對於 DC 之間宣布 VNF 環回的情況也需要這樣做:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]

我們將使用 4 位元組的 ASN,並根據 Spine 的 ASN 和 Leaf 交換器編號產生它,如下所示: Spine_ASN.0000X.

這是帶有 ASN.1 的圖片。
適合小孩子的自動化。 第二部分。 網路設計

智慧財產權計劃

基本上,我們需要為以下連接分配地址:

  1. ToR 與電腦之間的底層網路位址。它們在整個網路中必須是唯一的,以便任何機器都可以與任何其他機器通訊。非常合身 10/8。每個機架有 /26 個備用。我們將為每個 DC 分配 /19,為每個區域分配 /17。
  2. Leaf/Tor 和 Spine 之間的連結位址。

    我想透過演算法來分配它們,即根據需要連接的設備的名稱來計算它們。

    就這樣吧...169.254.0.0/16。
    169.254.00X.Y/31哪裡 X - 脊椎數量, Y ——P2P網路/31.
    這將允許您在 DC 中啟動最多 128 個機架和最多 10 個 Spine。連結地址可以(並且將會)在 DC 之間重複。

  3. 我們在子網上組織 Spine-Edge-Leaf 連接 169.254.10X.Y/31,其中完全相同 X - 脊椎數量, Y ——P2P網路/31.
  4. 從 Edge-Leaf 到 MPLS 主幹網路的連結位址。這裡的情況有些不同 - 所有部分都連接成一個餅,因此重複使用相同的位址將不起作用 - 您需要選擇下一個空閒子網路。因此,我們以 192.168.0.0/16 我們將從其中剔除免費的。
  5. 環回地址。我們將為他們提供整個系列 172.16.0.0/12.
    • Leaf - /25 每個 DC - 相同的 128 個機架。我們將為每個區域分配/23。
    • Spine - /28 每個 DC - 最多 16 個 Spine。讓我們為每個區域分配 /26。
    • Edge-Leaf - 每個 DC /29 - 最多 8 盒。讓我們為每個區域分配/27。

如果我們在 DC 中沒有足夠的分配範圍(並且不會有任何範圍 - 我們聲稱是超大規模器),我們只需選擇下一個區塊。

這是帶有 IP 尋址的圖片。

適合小孩子的自動化。 第二部分。 網路設計

環回:

字首
設備角色
地區
直流

172.16.0.0/23
邊緣
 
 

172.16.0.0/27
ru
 

172.16.0.0/29
MSK

172.16.0.8/29
崑山

172.16.0.32/27
sp
 

172.16.0.32/29
BCN

172.16.0.40/29
毫升

172.16.0.64/27
cn
 

172.16.0.64/29

172.16.0.72/29

172.16.2.0/23
脊柱
 
 

172.16.2.0/26
ru
 

172.16.2.0/28
MSK

172.16.2.16/28
崑山

172.16.2.64/26
sp
 

172.16.2.64/28
BCN

172.16.2.80/28
毫升

172.16.2.128/26
cn
 

172.16.2.128/28

172.16.2.144/28

172.16.8.0/21

 
 

172.16.8.0/23
ru
 

172.16.8.0/25
MSK

172.16.8.128/25
崑山

172.16.10.0/23
sp
 

172.16.10.0/25
BCN

172.16.10.128/25
毫升

172.16.12.0/23
cn
 

172.16.12.0/25

172.16.12.128/25

襯墊:

字首
地區
直流

10.0.0.0/17
ru
 

10.0.0.0/19
MSK

10.0.32.0/19
崑山

10.0.128.0/17
sp
 

10.0.128.0/19
BCN

10.0.160.0/19
毫升

10.1.0.0/17
cn
 

10.1.0.0/19

10.1.32.0/19

臘八

兩個供應商。一網。 ADSM。

杜松+阿里斯塔。烏班圖。好老的夏娃。

Mirana 虛擬伺服器上的資源量仍然有限,因此在實務上我們將使用簡化到極限的網路。

適合小孩子的自動化。 第二部分。 網路設計

兩個資料中心:喀山和巴塞隆納。

  • 各有兩個脊椎:Juniper 和 Arista。
  • Juniper 和 Arista 中各有一個環面(葉),連接一台主機(為此我們採用輕量級 Cisco IOL)。
  • 每個 Edge-Leaf 節點(目前僅限 Juniper)。
  • 一台思科交換器即可統治所有這些。
  • 除了網路盒之外,虛擬控制機也在運作。運行Ubuntu。
    它可以存取所有設備,它將運行 IPAM/DCIM 系統、一堆 Python 腳本、Ansible 以及我們可能需要的任何其他內容。

配置齊全 所有網路設備,我們將嘗試使用自動化來重現。

結論

這也被接受了嗎?我應該在每篇文章下寫一個簡短的結論嗎?

所以我們選擇了 三級 DC 內的 Clos 網絡,因為我們預期會有大量東西向流量並需要 ECMP。

網路分為實體網路(underlay)和虛擬網路(overlay)。同時,覆蓋層從主機開始——從而簡化了對底層的要求。

我們選擇 BGP 作為網路網路的路由協議,是因為它具有可擴展性和策略靈活性。

我們將有單獨的節點來組織 DCI - Edge-leaf。
骨幹網路將採用OSPF+LDP。
DCI將基於MPLS L3VPN來實作。
對於P2P鏈接,我們將根據設備名稱透過演算法計算IP位址。
我們將根據設備的角色及其位置順序分配環回。
底層前綴 - 僅在葉交換機上依其位置順序排列。

假設現在我們還沒有安裝設備。
因此,我們接下來的步驟是將它們新增至系統(IPAM、庫存)、組織存取、產生配置並部署它。

在下一篇文章中,我們將討論 Netbox——DC 中 IP 空間的庫存和管理系統。

謝謝

  • Andrey Glazkov 又名 @glazgoo 進行校對與更正
  • Alexander Klimenko 又名 @v00lk 進行校對和編輯
  • KDPV 的 Artyom Chernobay

來源: www.habr.com

添加評論