Cumulus Linux 4.4 是具有 NVIDIA 用戶體驗( NVUE )的第一個版本,這是 Cumulus Linux 的全新 CLI 。對新的網絡 CLI 的興奮度和一個新的 56k 調制解調器是相同的。使 NVUE 與眾不同的不僅僅是它是一個新的 CLI ,而是它所基于的原則使其獨一無二。在其核心, NVUE 創建了 Cumulus Linux 的完整對象模型,實現了高級可編程性、可擴展性和可用性。
什么是對象模型?
對象模型并不完全是網絡工程師每天考慮的事情。在我參與幫助團隊設計 NVUE 之前,我不知道對象模型是什么。
對象模型定義系統的組件及其相互之間的關系。例如,接口是一個對象。它具有 IP 地址或 MTU 設置等組件。重要的不僅僅是對象模型存在這一事實,還包括如何將對象和組件之間的關系組合在一起的思想。
接口和 IP 地址是一個簡單的例子,但更復雜的是什么呢?考慮一個“ bond ”接口,也稱為端口通道。鍵合是像以太網端口一樣的頂級接口,將其他以太網接口的組件作為子接口,還是作為鍵合中的成員是接口的一個元素?
這些關系很快變得復雜起來。如果不仔細考慮這些問題,就會造成糟糕的用戶體驗,您可能需要多次定義相同的設置,以實現最終目標或不一致的配置。虛擬網絡 CLI 可以讓您在 VRF 對象下定義 VRF 內部的任何路由,但在頂層定義全局路由表中的任何路由,如以下示例所示:
ip vrf red ip route 10.1.1.0/24 via 169.254.1.1 !
ip route 192.168.1.0/24 via 172.16.1.1這是一個簡單的示例,但現在定義路由的方式并不統一,這取決于您在系統中的位置。
使用對象模型可以得到什么?
了解了對象模型是什么之后,下一個問題是,“為什么要關心?”通過擁有對象模型,構建與系統交互的方式變得非常簡單。系統與表示對象模型的 API 通信。當然,第一個接口是 CLI ,但現在任何東西都可以是系統的接口: REST 、 gRPC 甚至RFC1149 鳥類攜帶者。
圖 3 . Cumulus Linux 4 . 4 中提供了 CLI 和 REST 接口。
通過讓所有接口使用相同的對象模型,無論您如何與系統接口,都可以保證一致的結果。 CLI 和 REST API 使用相同的方法配置 BGP 對等機。根據您使用的接口,永遠不可能看到不同的行為。因為無論您如何與對象模型交互,對象模型都是相同的,這意味著從使用 CLI 到構建完全自動化是一種演變,而不是一個全新的過程。
目前,任何網絡設備都需要 REST 和 CLI 。除此之外,我們還能想到什么呢?對象模型可以直接導入 Python 或 Java 等編程語言。這使您能夠使用真正的編程概念為一個設備或整個設備結構構建配置。您可以前所未有地強制執行輸入、值和關系。以下代碼示例顯示了 NVUE Python 接口 MIGht 的外觀:
from nvue import Switch spine01 = Switch() x = 1 while x < len(spine01.interfaces): spine01.interfaces.x.state = "up" spine01.interfaces.x.ip.address = “10.1.” + x + “.1/24”?
spine01.apply()在本例中,我加載nvue庫并創建一個名為 spine01 的新Switch對象。我讓對象告訴我有len(spine01.interfaces)的系統上存在多少接口。對于每個接口,我將其置于 up 狀態,并分配一個 IP 地址,其子網值與接口號匹配。例如,端口 3 的 IP 地址為 10 . 1 . 3 . 1 / 24 。
這還不存在,但絕對是可能的,因為存在一個對象模型。與所有其他網絡供應商系統(其中模型由 CLI 確定)不同,此 CLI 基于模型。對象模型是一個獨立的元素,可以導入到編程語言、 API 或任何其他系統中。
關于作者
Pete Lumbis 是 NVIDIA 以太網網絡技術營銷總監。 Pete 幫助客戶構建、設計、自動化和加速下一代數據中心網絡。皮特是 CCIE # 28677 和 CCDE 2012 :: 3 。
審核編輯:郭婷
-
以太網
+關注
關注
40文章
5442瀏覽量
172057 -
NVIDIA
+關注
關注
14文章
5025瀏覽量
103270 -
API
+關注
關注
2文章
1505瀏覽量
62184
發布評論請先 登錄
相關推薦
評論