關於trunking的問題

我想將我們的 TS833XU-RP 連接到兩個不同的交換機,以便在其中一個交換機離線時能夠進行故障切換。

在測試情境中,我建立了一個主動/備份 (active/backup) 聚合,但出現了幾個問題:

  1. 是否可以移除用於聚合的網路介面卡(該介面卡的 MAC 位址被聚合使用)——是否可以更改聚合的 MAC 位址,還是必須刪除整個聚合?(當我將滑鼠移到取消選擇按鈕時,出現以下訊息:「無法取消選擇該介面卡。該介面卡的 MAC 位址目前被連接埠聚合使用。」)

  2. 如何選擇聚合的「主要」介面,使其在恢復後成為主動介面?(在測試設定中,最後一個主動介面保持主動狀態)

  3. 是否可以在兩個 LACP 聚合之間建立主動/備份聚合?

感謝任何建議

Edgar

Trunk(鏈路聚合)其實並不適合用在兩台不同的交換機之間。你最好還是使用兩條獨立的網路連線,讓 QNAP 自行決定哪一條連線速度最快或最優化。Trunking 的主要目的是讓你可以把多個埠結合在一起,以提升連線速度——例如兩個 1 Gbit 埠可以組成一條 2 Gbit 的連線,兩個 2.5 Gbit 埠則可以組成 5 Gbit,依此類推。沒錯,你可以設定成有故障切換(fallover)等功能,但這並不是設計來跨兩台交換機使用的。我自己也沒看過這種做法。

所以,針對你的問題——我認為你無法更改 trunk 的 MAC 位址。你為什麼想要這麼做呢?

至於第二個問題,我認為你無法選擇哪一條是主線(primary)、哪一條是次線(secondary)。這些都是由協定自動處理的。

第三個問題,我從來沒看過有「trunk of trunks」這種功能。這沒有意義。Trunk 本身已經是一個封裝的通道,流量會在兩條連線之間分配。再建立一個「trunk of a trunk」有什麼用途呢?Trunk 已經內建了備援功能。我可能會試著在我的 Cisco 上把一個 trunk 埠再加到另一個 trunk 上看看……

Hello NA9D,
感謝您的回覆。
依我看,主動/被動 trunk(主動/被動聚合)設計的目的是當主動端口上的交換機故障(或在韌體升級期間重啟)時啟用被動端口。在這種情況下,最好不要將被動端口連接到同一台交換機。

為了讓我的問題更清楚一點:
關於問題1:如果我在 1 Gbit 和 10 Gbit 介面上建立主動/被動 trunk,之後又花錢加購了額外的 10Gbit 介面,我傾向於將 1 Gbit 介面從 trunk 中移除,這樣故障轉移時一定會走在 10 Gbit 介面上。

關於問題2:是的,看起來在 QNAP 上是由協定處理的(或者我忽略了相關設定)。在 Linux 上設定主動/被動 bond 的主介面完全沒問題……這樣的好處是我可以指定哪一台網路交換機處理「正常」流量。

關於問題3:我認為 trunk of trunks(trunk 的聚合)有個好處,就是可以建立(兩個)(LACP) trunk 來做頻寬聚合,各自連到不同的(ToR)交換機,然後再將它們聚合成主動/被動 trunk,以提高可用性。(我們在多台 Linux 主機和 NetApp 上都採用這種配置。)

網路交換機(像您的 Cisco)會用 STP 或 SPB 來處理交換機間連線的備援。

看起來在你的情況下,直接用一條10 Gbit連線和一條1 Gbit備用連線會比較簡單。不需要做trunking(鏈路聚合)。只要有兩條連線和兩個IP就可以了。我想如果用trunk(鏈路聚合)會更簡單,因為你可以只用一個IP。

我不確定QNAP是否支援你想要做的那種trunk(鏈路聚合)……

嗨大家好!我是新手,也是第一次接觸 QNAP,不過並不是要轉換平台。在 QNAP 的世界裡,「trunk」是指 LAG/LACP 嗎?就是把兩個或更多的網路埠合併成一個來使用。我一直以為 trunk 是用來讓所有 VLAN 都能通過某個埠的方式。

我來這裡是想找一種在 QSW-M3216R-8S8T 上做 trunk(讓所有 VLAN 都能通過某個埠)的方法,並且看到了這篇文章。不好意思插個話,只是想搞懂 QNAP 的術語。

是的,我理解這種混淆。在 Cisco 的術語中,trunk 埠是指在單一埠上封裝多個 VLAN 的埠。port-channel 是 LAG(鏈路聚合)。而在 QNAP 的世界裡,trunk 指的是 LAG(鏈路聚合)。

了解!感謝您的說明。那我的下一個問題是,QNAP能否做到Cisco術語中的「trunk port」?我一直找不到相關資訊,真的很困擾。

我不太確定你在這裡想做什麼,也不明白你為什麼要將多個 VLAN 傳送到 QNAP。你可能最好還是採用 VLAN 路由。

你或許可以利用 QNAP 的虛擬交換機(Virtual Switch)功能來設定一些 Trunk 埠,但我不太確定是否可行。

QSW 將連接到 EL8000 中的 (4) 台 HPE e920 刀片。每台刀片都將運行 Oracle Linux,並搭載 K8s 和虛擬機 (VMs)。會針對特定工作負載分割成 VLAN。因此,這四個「主機」需要透過上行鏈路看到所有 VLAN,以處理南北向流量。

再次說明,並非有意劫持此討論串。

等等——你是在說 QNAP NAS 還是 QNAP Switch?

如果你是在說 QNAP Switch,那你應該另外開一個新討論串。我對 QNAP Switch 能做什麼不太了解。不過我猜它們應該支援 trunk。

我之前說的全部都是跟 QNAP NAS 有關的……

切換。我會開始一個新討論串。

謝謝您,先生!

我確信交換產品使用封裝技術,將多個 VLAN 結合在單一連線上。

親愛的 @RIFeV

問題:2 如何為 trunk 選擇「主要」介面,使其在恢復後成為主動介面?(在測試環境中,最後活躍的介面保持為主動)

答案:

很高興通知您,我們的開發團隊已完成驗證。現在可以設定主要介面。

但只有 active_backbalance-tlbbalance-alb 模式允許手動指定主要介面。

echo ${interface} > /sys/class/net/bond${N}/bonding/primary

針對您的第 3 個問題:「我可以在兩個 LACP trunk 上建立一個主動/備援 trunk 嗎?」

為了更了解您的需求並提供準確的建議,能否請您分享更多有關您預期設定的細節?

  • 您想達成的具體使用情境或案例是什麼?
  • 是否有特定的故障轉移或備援需求促使您採用此配置?

您的回覆將有助於我們評估此類配置是否可行,並推薦最合適的解決方案。

我想要將兩個介面(eth0 和 eth1)聚合成一個 LACP 通道(bond0)連接到 switch1,
另外兩個介面(eth2 和 eth3)則聚合成第二個 trunk(bond1)連接到 switch2
(兩台交換機都是「獨立」的——沒有堆疊、沒有 MLAG 等)。
現在我想將 bond0 和 bond1 加入到一個主動/被動 trunk(bond2)以實現備援,所以如果 switch1 離線,bond2 會將 bond1 設為主動埠。

是的:我們希望將服務中斷降到最低……

感謝您詳細的說明以及圖示——這對理解您想要的配置非常有幫助。

我們已經與技術團隊一起審查了這個設定,很遺憾,您所期望的配置——將多個 bonded 介面(例如將 bond0bond1 組合成更高層級的 bond2)——不被支援。這是因為 Linux bonding driver 的限制,不允許在另一個 bond 內進行 bonding(巢狀 bonding)。因此,我們的 QNAP 系統也無法支援這種配置。

我們理解您希望達到高可用性並減少服務中斷的目標,也非常感謝您在設計高韌性的網路架構上所付出的努力。雖然巢狀 bonding 無法實現。

太可惜了……

親愛的 @RIFeV

感謝您寶貴的回饋。

在 QNAP,我們持續致力於提升產品品質,並提供符合客戶期望的功能。我們會將您的建議提交給開發團隊進行評估。經過詳細的可行性研究後,團隊將考慮在未來的更新中納入此建議。

我們非常感謝您的意見——這有助於我們改進並更好地滿足您的需求。