一個開關的故事

一個開關的故事
在我們的本地網路聚合中,我們有六對 Arista DCS-7050CX3-32S 交換器和一對 Brocade VDX 6940-36Q 交換器。 這並不是說我們對這個網路中的博科交換器過度緊張,它們工作並執行其功能,但我們正在準備某些操作的完全自動化,而我們在這些交換機上沒有這些功能。 我還想從40GE介面切換到使用100GE的可能性,以便為未來2-3年做好儲備。 所以我們決定將 Brocade 改為 Arista。

這些交換器是每個資料中心的 LAN 聚合交換器。 分佈交換器(第二級聚合)直接連接到它們,它們已經將架頂式本地網路交換器組裝在具有伺服器的機架中。

一個開關的故事
每台伺服器連接一台或兩台存取交換器。 接取交換器連接到一對分佈交換器(兩台分佈交換器以及接取交換器到不同分佈交換器的兩條實體連結用於冗餘)。

每個伺服器都可以被自己的客戶端使用,因此客戶端被指派一個單獨的VLAN。 然後,在任意機架中該客戶端的另一台伺服器上註冊相同的 VLAN。 資料中心由若干這樣的行(POD)組成,每行機架都有自己的分配交換器。 然後這些分佈交換器連接到匯聚交換器。

一個開關的故事
客戶可以訂購任意排的伺服器;無法提前預測伺服器將被分配或安裝在特定機架的特定排中,這就是每個資料中心的匯聚交換器上大約有2500個VLAN的原因。

DCI(資料中心互連)設備連接到匯聚交換器。 它可用於 L2 連線(一對交換器形成通往另一個資料中心的 VXLAN 隧道)或 L3 連線(兩個 MPLS 路由器)。

一個開關的故事
正如我已經寫過的,為了統一一個資料中心設備上的服務配置自動化流程,有必要更換中央聚合交換器。 我們在現有交換器旁邊安裝了新交換機,將它們組合成 MLAG 對並開始準備工作。 它們立即連接到現有的聚合交換機,以便它們在所有用戶端 VLAN 上擁有一個通用的 L2 網域。

電路細節

具體來說,讓我們為舊的匯聚交換器命名 A1 и A2, 新的 - N1 и N2。 讓我們想像一下,在 吊艙 1 и 吊艙 4 託管一個客戶端的伺服器 S1,客戶端 VLAN 以藍色表示。 該用戶端正在使用與另一個資料中心的 L2 連線服務,因此其 VLAN 被饋送到一對 VXLAN 交換器。

顧客 S2 主機伺服器在 吊艙 2 и 吊艙 3,客戶端 VLAN 以深綠色表示。 該用戶端也使用與另一個資料中心的連線服務,但 L3,因此其 VLAN 被饋送到一對 L3VPN 路由器。

一個開關的故事
我們需要客戶端 VLAN 來了解替換工作的哪個階段會發生什麼、通訊中斷發生在哪裡以及中斷的持續時間可能是多長。 該方案中沒有使用STP協議,因為在這種情況下它的樹的寬度很大,並且協議的收斂性隨著設備和它們之間的鏈路的數量呈指數增長。

透過雙鏈路連接的所有設備形成堆疊、MLAG 對或 VCS 乙太網路結構。 對於一對 L3VPN 路由器,不使用此類技術,因為不需要 L2 冗餘;它們透過聚合交換器相互具有 L2 連接就足夠了。

實施方案

在分析進一步事件的選項時,我們意識到有多種方法可以進行這項工作。 從整個本地網路的全域中斷,到部分網路的 1-2 秒小中斷。

網絡,停下來! 開關,更換!

當然,最簡單的方法是在所有 POD 和所有 DCI 服務上聲明全域通訊中斷,並從交換器切換所有連結 А 至開關 N.

一個開關的故事
除了中斷之外,我們無法可靠預測的時間(是的,我們知道鏈路數量,但我們不知道會出現多少次問題 - 從跳線損壞或連接器損壞到連接埠或收發器故障),我們仍然無法提前預測連接到舊交換器A 的轉接線、DAC、AOC 的長度是否足以到達新交換機N,雖然站在它們旁邊,但仍然有點距離側面,以及相同的收發器是否適用於從Brocade 交換機到Arista 交換機的/DAC/AOC。

而這一切都是在來自客戶和技術支援的巨大壓力的情況下進行的(「Natasha,站起來!Natasha,一切都不起作用!Natasha,我們已經寫信給技術支援,說實話!Natasha,他們已經放棄了所有東西」) !娜塔莎,我們還有多少個不行?它會起作用嗎?娜塔莎,它什麼時候會起作用?!」)。 儘管預先宣布了休息時間並通知了客戶,但在這樣的時間肯定會有大量的請求湧入。

停下來,1-2-3-4!

如果我們不宣布全球中斷,而是宣布 POD 和 DCI 服務的一系列小型通訊中斷,該怎麼辦? 第一次休息時,切換到開關 N吊艙 1,在第二個——幾天後—— 吊艙 2,然後再過幾天 吊艙 3進一步 POD 4…[N],然後是 VXLAN 交換機,然後是 L3VPN 路由器。

一個開關的故事
透過這種切換工作的組織方式,我們可以降低一次性工作的複雜性,並在突然出現問題時增加解決問題的時間。 切換後,POD 1 仍與其他 POD 和 DCI 保持連線。 但工作本身拖了很長一段時間;在資料中心的這項工作中,需要工程師親自執行切換,並且在工作期間(這種工作通常在晚上進行,從 2 點開始)。到凌晨5 點),線上網路工程師的存在需要相當高的資質水準。 但隨後我們會遇到短暫的通訊中斷;通常,工作可以以半小時為間隔進行,最多可休息 2 分鐘(實際上,根據設備的預期行為,通常為 20-30 秒)。

在範例客戶端中 S1 或客戶 S2 您必須警告至少三次有關通訊中斷的工作 - 第一次在其中一個伺服器所在的一個 POD 上執行工作,第二次 - 第二次,第三次 - 當DCI 服務的交換設備。

切換聚合通訊通道

為什麼我們要討論設備的預期行為,以及如何在最小化通訊中斷的同時切換聚合通道? 讓我們想像一下下面的圖片:

一個開關的故事
連結的一側有 POD 分配交換器 - D1 и D2,它們彼此形成一個 MLAG 對(堆疊、VCS 工廠、vPC 對),另一方面有兩個連結 - 鏈接1 и 鏈接2 - 包含在舊聚合交換器的 MLAG 對中 А。 在開關側 D 具有名稱的聚合介面 埠通道A,在匯聚交換器一側 А - 具有名稱的聚合接口 連接埠通道D.

聚合介面的工作方式採用LACP協議,即兩端交換器定期在兩條鏈路上交換LACPDU報文,以確保鏈路:

  • 工作;
  • 包含在遠端的一對設備中。

交換報文時,報文攜帶值 系統ID,指示包含這些連結的設備。 對於 MLAG 對(堆疊、工廠等),形成聚合介面的設備的 system-id 值是相同的。 轉變 D1 發送至 鏈接1系統 ID D,並切換 D2 發送至 鏈接2系統 ID D.

開關 A1 и A2 分析透過一個 Po D 介面接收到的 LACPDU 封包並檢查其中的 system-id 是否符合。 如果透過某些連結收到的系統 ID 突然不同 從目前的經營價值來看,則該連結將從聚合介面中刪除,直到情況得到修正。 現在在我們的交換器端 D 來自 LACP 合作夥伴的目前系統 ID 值 - A,並在開關側 А — 來自 LACP 合作夥伴的目前系統 ID 值 — D.

如果我們需要切換聚合接口,我們可以透過兩種不同的方式來完成:

方法 1 - 簡單
停用來自交換器 A 的兩個連結。 在這種情況下,聚合通道不起作用。

一個開關的故事
將兩條鏈路一一連接到交換機 N,然後將再次協商LACP工作參數並形成接口 波D 在開關上 N 以及在連結上傳輸值 系統 ID N.

一個開關的故事

方法 2 - 盡量減少干擾
斷開連結 2 與交換器 A2 的連接。 同時,之間的交通 А и D 將繼續僅透過其中一條鏈路進行傳輸,該鏈路仍將是聚合介面的一部分。

一個開關的故事
將 Link 2 連接到交換器 N2。 在開關上 N 聚合介面已經配置 波DN,並切換 N2 將開始傳輸到 LACPDU 系統 ID N。 在這個階段我們已經可以檢查開關 N2 與用於的收發器正常工作 鏈接2,表示連接埠已進入狀態 Up,且連接埠在傳輸LACPDU時不會發生錯誤。

一個開關的故事
但事實是開關 D2 用於聚合介面 波A 從側面 連結 2 收到與目前作業系統 ID A 值不同的系統 ID N 值, 不允許切換 D 介紹 鏈接2 聚合介面的一部分 波A。 轉變 N 無法進入 鏈接2 投入運行,因為它沒有收到交換器 LACP 夥伴的可操作性確認 D2。 得到的流量是 鏈接2 沒有通過。

現在我們從開關 A1 關閉連結 1,從而剝奪開關 А и D 工作聚合介面。 所以在開關側 D 介面的目前工作系統 ID 值消失 波A.

一個開關的故事
這允許開關 D и N 同意交換系統 ID 一個 在接口上 波A и 波DN,這樣流量就開始沿著連結傳輸 鏈接2。 實際上,這種情況下的休息時間最多為 2 秒。

一個開關的故事
現在我們可以輕鬆地將 Link 1 切換到 N1、恢復介面冗餘的容量和級別 波A и 波DN。 由於當該連結連接時,目前的 system-id 值在任何一方都不會改變,因此不會出現中斷。

一個開關的故事

附加連結

但切換時可以在沒有工程師在場的情況下進行切換。 為此,我們需要提前在分配交換器之間鋪設額外的連結 D 和新的聚合交換機 N.

一個開關的故事
我們正在聚合交換器之間鋪設新鏈路 N 以及所有 POD 的分配交換器。 這需要訂購和鋪設額外的跳線,並安裝額外的收發器,如下所示 N所以 D。 我們可以做到這一點,因為在我們的交換器中 D 每個 POD 都有可用連接埠(或我們預先釋放它們)。 因此,每個 POD 透過兩個鏈路物理連接到舊交換器 A 和新交換器 N。

一個開關的故事
在開關上 D 已形成兩個聚合介面 - 波A 有連結 鏈接1 и 鏈接2磷氮 - 有連結 連結N1 и 連結N2。 在這個階段,我們檢查介面和鏈路的連接是否正確,鏈路兩端的光訊號電平(透過交換器的DDM資訊),甚至可以檢查負載下鏈路的性能或監控鏈路的狀態。光訊號和收發器溫度幾天。

流量仍然透過介面發送 波A,以及介面 磷氮 不花費流量。 介面上的設定是這樣的:

Interface Port-channel A
Switchport mode trunk
Switchport allowed vlan C1, C2

Interface Port-channel N
Switchport mode trunk
Switchport allowed vlan none

通常,D 交換器支援基於會話的配置變更;使用具有此功能的交換器型號。 所以我們可以一步更改Po A和Po N介面的設定:

Configure session
Interface Port-channel A
Switchport allowed vlan none
Interface Port-channel N
Switchport allowed vlan C1, C2
Commit

然後配置變更將發生得足夠快,並且實際上中斷時間不會超過 5 秒。

這種方法使我們能夠提前完成所有準備工作,進行所有必要的檢查,與過程中的參與者協調工作,詳細預測作品製作的動作,而不會在「一切都出了問題」時失去創造力。 ,」並手頭上有一個恢復到先前配置的計劃。 根據此計劃的工作由網路工程師執行,而現場沒有實際執行交換的資料中心工程師。

這種切換方法的另一個重要之處是所有新連結都已提前受到監控。 錯誤、在單元中包含連結、載入連結 - 所有必要的資訊都已經在監控系統中,並且已經繪製在地圖上。

D日

POD

我們為客戶選擇了最不痛苦的切換路徑,並且透過附加連結最不容易出現「出現問題」的情況。 因此,我們在幾個晚上將所有 POD 更換為新的聚合交換器。

一個開關的故事
但剩下的就是切換提供DCI服務的設備了。

L2

對於提供 L2 連接的設備,我們無法使用額外的連結進行類似的工作。 至少有兩個原因:

  • VXLAN 交換器上缺乏所需速度的閒置連接埠。
  • VXLAN 交換器上缺乏會話設定變更功能。

我們沒有僅在同意新的系統 ID 對時“一次一個”地切換鏈接,因為我們沒有 100% 的信心相信該過程會正確進行,並且實驗室的測試表明,在如果“出現問題”,我們仍然會遇到連線中斷,最糟糕的情況不僅是與其他資料中心有L2 連線的客戶端,而且通常是該資料中心的所有客戶端。

我們提前做好了L2通道過渡的宣傳工作,因此VXLAN交換器受影響的客戶數量已經比一年前少了好幾倍。 因此,我們決定中斷二層連接服務的通信,前提是保持一個資料中心本地網路服務的正常運作。 此外,該服務的 SLA 還提供了在中斷的情況下執行預定工作的可能性。

L3

為什麼我們在組織DCI業務時建議大家改用L3VPN? 原因之一是能夠在提供此服務的路由器之一上執行工作,只需將冗餘等級降低到 N+0,而無需中斷通訊。

讓我們仔細看看服務交付方案。 在此服務中,L2 網段僅從客戶端伺服器到達 L3VPN Selectel 路由器。 客戶端網路在路由器上終止。

每個客戶端伺服器,例如 S2 и S3 在上圖中,有自己的私有IP位址 - 伺服器 S10.0.0.2 上的 24/2 и 伺服器 S10.0.0.3 上的 24/3。 地址 10.0.0.252/24 и 10.0.0.253/24 由 Selectel 指派給路由器 L3VPN-1 и L3VPN-2, 分別。 IP位址 10.0.0.254/24 是 VRRP VIP 位址 在 Selectel 路由器上。

您可以了解更多有關L3VPN服務的信息 閱讀 在我們的部落格上。

在切換之前,一切看起來大致如圖所示:

一個開關的故事
兩個路由器 L3VPN-1 и L3VPN-2 連接到舊的聚合交換機 А。 VRRP VIP 位址 10.0.0.254 的主裝置是路由器 L3VPN-1。 該位址比路由器具有更高的優先權 L3VPN-2.

unit 1006 {
    description C2;
    vlan-id 1006;
    family inet {       
        address 10.0.0.252/24 {
            vrrp-group 1 {
                priority 200;
                virtual-address 10.100.0.254;
                preempt {
                    hold-time 120;
                }
                accept-data;
            }
        }
    }
}

S2伺服器使用網關10.0.0.254與其他位置的伺服器通訊。 因此,斷開 L3VPN-2 路由器與網路的連接(當然,如果它首先與 MPLS 網域斷開連接)不會影響客戶端伺服器的連接。 此時,電路的冗餘等級就被簡單地降低了。

一個開關的故事
之後我們就可以安全地重新連接路由器了 L3VPN-2 到一對開關 N。 鋪設鏈路,更換收發器。 用戶端服務運作所依賴的路由器邏輯介面將會被停用,直到確認一切正常運作為止。

檢查完介面上的連結、收發器、訊號等級和錯誤等級後,路由器投入運行,但已連接到一對新交換器。

一個開關的故事
接下來,我們降低 L3VPN-1 路由器的 VRRP 優先級,並將 VIP 位址 10.0.0.254 移至 L3VPN-2 路由器。 這些工作也是在不中斷通訊的情況下進行的。

一個開關的故事
將 VIP 位址 10.0.0.254 傳輸到路由器 L3VPN-2 允許您停用路由器 L3VPN-1 不中斷客戶端的通訊並將其連接到一對新的聚合交換機 N.

一個開關的故事
是否將 VRRP VIP 回傳給 L3VPN-1 路由器是另一個問題,即使返回,也是在不中斷連線的情況下完成的。

在總

經過所有這些步驟後,我們實際上更換了其中一個資料中心的聚合交換機,同時最大限度地減少對客戶的干擾。

一個開關的故事
剩下的就是拆除了。 拆除舊交換器、拆除交換器 A 和 D 之間的舊連結、拆除這些連結的收發器、校正監控、校正文件和監控中的網路圖。

我們可以使用其他項目中切換後留下的交換器、收發器、跳線、AOC、DAC或進行其他類似的切換。

“娜塔莎,我們改變了一切!”

來源: www.habr.com

添加評論