基于YANG的可編程網(wǎng)絡:用YANG、NETCONF、RESTCONF和gNMI實現(xiàn)網(wǎng)絡自動化架構
定 價:149 元
叢書名:網(wǎng)絡專業(yè)人員書庫
- 作者:[美]貝諾特·克萊斯(Beno?t Claise),[美]喬·克拉克(Joe Clarke),[美]簡·林德布拉德(Jan Lindblad)
- 出版時間:2021/9/1
- ISBN:9787111691273
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP393
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
整個網(wǎng)絡行業(yè)正面臨著自動化的壓力,以實現(xiàn)規(guī)模化和更快的發(fā)展,本書介紹如何利用YANG來釋放網(wǎng)絡自動化的力量,提供了通用的術語、模型,以及對用例和工具的認識,以便能夠進行有效地交流。通過提供豐富的背景、案例以及解釋“為什么”和提供大量動手實踐的機會,本書旨在為網(wǎng)絡專業(yè)人士以及整個行業(yè)的發(fā)展提供幫助。
目標和方法
整個網(wǎng)絡行業(yè)正面臨著用自動化實現(xiàn)規(guī);透彀l(fā)展的壓力。本書介紹如何利用YANG來釋放網(wǎng)絡自動化的力量。
自動化面臨許多障礙。主要的障礙是需要網(wǎng)絡運維人員和軟硬件提供商之間達成共識。要達成共識,迫切需要做到三件事情。
,參與者需要有一種共同語言。本書提供通用的術語、模型以及對用例和工具的認識,以便參與者能夠進行有效的交流。
第二,自動化并不是讓計算機循環(huán)運行。網(wǎng)絡自動化是一個非常棘手的問題,是分布式、并行、實時、高可用、性能敏感、安全敏感的核心控制問題,需要一個系統(tǒng)架構。該系統(tǒng)架構已經(jīng)存在,但并不為人所知。許多經(jīng)驗豐富的專業(yè)人士對該系統(tǒng)架構的關鍵部分也缺少了解。本書描繪了一幅藍圖,讓各方都能了解自己那一部分適合放在哪里以及如何實現(xiàn)共同目標。
第三,你可能聽過這句話:“知道怎么做的人會被錄用,而知道為什么這么做的人會成為經(jīng)理”。了解選擇架構的原因是了解架構本身的核心組成部分。本書提供了這個背景。
通過提供豐富的背景知識與案例,解釋“為什么”,以及提供大量動手實踐的機會,我們希望本書能對網(wǎng)絡專業(yè)人士以及整個行業(yè)的發(fā)展有所幫助。
誰應該讀這本書
本書為所有對網(wǎng)絡自動化感興趣的網(wǎng)絡專業(yè)人員設計。無論你是網(wǎng)絡運維人員、DevOps工程師、網(wǎng)絡軟件開發(fā)人員、網(wǎng)絡編排工程師、NMS/OSS架構師、服務工程師或其中任何一類人員的經(jīng)理,本書都是適用的。如果你希望從基于命令行界面的管理過渡到數(shù)據(jù)模型驅動的管理,如果你是需要通過某些可編程性技能來補充網(wǎng)絡技能以確保緊跟行業(yè)發(fā)展的工程師,那么本書非常適合你。
擁有網(wǎng)絡管理知識的人將從本書中受益匪淺。同時,想要采用與管理存儲和計算相同的方式來管理網(wǎng)絡的軟件工程師也將從閱讀本書中受益。
顯然有不同的方法通讀本書。每章開頭總結目標受眾和主要內容。通讀該介紹有助于找到適合你的內容。隨著事業(yè)的成長和不斷學習,你可能會發(fā)現(xiàn)你將不斷地回頭閱讀本書的其他內容。
本書的組織方式
本書可以連貫地從頭讀到尾。然而其設計靈活,可以跳過一些章節(jié)直接閱讀你感興趣的內容。
第1章提供NETCONF和YANG誕生的背景。
第2章從更廣泛的視角介紹網(wǎng)絡管理和自動化需求以及解決方案的層級和組件。推薦所有人閱讀該章。
第3章分階段開發(fā)用于業(yè)務用例的YANG模型,并隨著解決方案的進展引入、解釋新的結構。這些階段輔以GitHub項目,想完全理解上述內容的人可將其作為實際操作素材。該章是本書的核心內容,但如果你已經(jīng)開發(fā)了許多YANG模塊,可以跳過該章向后閱讀。另外,經(jīng)驗豐富的YANG開發(fā)者也可以快速瀏覽該章以找到一些新的有用的詳述。
第4章對傳輸協(xié)議進行解釋,研究基本操作和編碼。在許多實例中對NETCONF、RESTCONF和gNMI進行介紹和對比。每個實例都可以在GitHub的配套項目中復制,供有志于動手操作實踐的讀者參考。
第5章涵蓋遙測、自動化反饋環(huán)路機制。反饋是控制系統(tǒng)的重要組成部分,但遙測仍是一個正在建設的領域,現(xiàn)在許多解決方案尚未用到遙測。
第6章涵蓋去哪里尋找YANG模型,與哪些標準定義機構合作,使用哪些工具,以及如果一個功能有多個模型該怎么做。
第7~9章都涵蓋了YANG模型的元數(shù)據(jù)和工具,但從三個不同的角度進行闡述。
第7章涵蓋所有人都需要使用的基本工具和模塊信息。
第8章適合YANG模塊作者閱讀。
第9章適合自動化應用程序開發(fā)人員閱讀。
第10章包含完整的自動化過程。該章從一個業(yè)務案例開始,創(chuàng)建一個service-YANG模型,添加一個服務實現(xiàn),通過NETCONF連接一組設備,創(chuàng)建一個服務實例,并詳細查看消息來回傳遞時會發(fā)生什么。然后修改并撤銷服務級別更改。閱讀該章的所有內容后,你會發(fā)現(xiàn)你已經(jīng)完全理解了本書的全部內容。該章將提供良好的全方位模型驅動網(wǎng)絡自動化概覽。
第11章基于作者多年的YANG建模經(jīng)驗,提供包含有關如何設計和如何避免設計YANG模塊的諸多建議。
推薦序
譯者序
前言
致謝
作者簡介
技術審校者簡介
第1章 網(wǎng)絡管理世界必須改變:
你為什么要關心這件事1
1.1 導言1
1.2 行業(yè)發(fā)生了變化:趨勢是什么4
1.2.1 縮短部署時間4
1.2.2 CLI不再是標準(無法自動化的功能不應存在)5
1.2.3 硬件商品化和解耦7
1.2.4 DevOps時代9
1.2.5 軟件定義網(wǎng)絡11
1.2.6 網(wǎng)絡功能虛擬化12
1.2.7 彈性云:按需付費13
1.2.8 數(shù)據(jù)模型驅動的管理14
1.2.9 數(shù)據(jù)模型驅動的遙測16
1.2.10 基于意圖的網(wǎng)絡17
1.2.11 軟件正在吞噬世界19
1.3 現(xiàn)有網(wǎng)絡管理實踐和相關限制19
1.3.1 CLI:這是API嗎19
1.3.2 SNMP:用于監(jiān)控但不用于配置21
1.3.3 NetFlow和IPFIX:主要用于流記錄27
1.3.4 syslog:無結構化數(shù)據(jù)30
1.4 數(shù)據(jù)模型是自動化的關鍵32
1.4.1 信息模型與數(shù)據(jù)模型的差異32
1.4.2 用不同的數(shù)據(jù)模型管理網(wǎng)絡的挑戰(zhàn)33
專家訪談40
與Victor Kuarsing的問答40
與Russ White的問答42
小結43
參考資料44
注釋44
第2章 數(shù)據(jù)模型驅動的管理46
2.1 起因:一套新的要求46
2.2 網(wǎng)絡管理已死,網(wǎng)絡管理萬歲49
2.3 YANG:數(shù)據(jù)建模語言50
2.4 自動化的關鍵?數(shù)據(jù)模型52
2.4.1 YANG和運維人員的需求53
2.4.2 良好數(shù)據(jù)模型的屬性54
2.4.3 不同類型的YANG模塊55
2.4.4 從MIB模塊映射YANG對象56
2.5 管理架構57
2.6 數(shù)據(jù)模型驅動的管理組件58
2.7 編碼(協(xié)議綁定和序列化)61
2.7.1 XML62
2.7.2 JSON62
2.7.3 Google protobuf63
2.7.4 CBOR63
2.8 服務器架構:數(shù)據(jù)存儲64
2.9 協(xié)議65
2.9.1 NETCONF65
2.9.2 RESTCONF68
2.9.3 gNMI(gRPC)69
2.9.4 CoMI70
2.10 編程語言70
2.11 遙測71
2.12 使用NETCONF管理網(wǎng)絡72
專家訪談76
與Jürgen Sch?nw?lder的問答76
小結77
參考資料77
注釋78
第3章 對YANG的闡釋80
3.1 導言80
3.2 描述數(shù)據(jù)世界81
3.2.1 準確描述數(shù)據(jù)84
3.2.2 將數(shù)據(jù)歸類89
3.3 描述可能的事件95
3.3.1 動作和RPC95
3.3.2 通知98
3.4 區(qū)分狀態(tài)數(shù)據(jù)與配置數(shù)據(jù)99
3.5 約束使事情有意義104
3.5.1 強制性和默認數(shù)據(jù)107
3.5.2 條件內容108
3.5.3 正確跟隨指針109
3.5.4 不考慮模式節(jié)點112
3.6 增擴、擴展和可能的偏離122
3.6.1 擴展YANG126
3.6.2 偏離127
3.7 網(wǎng)絡管理數(shù)據(jù)存儲架構129
專家訪談132
與Martin Bj?rklund的問答132
小結134
參考資料135
第4章 對NETCONF、RESTCONF和gNMI的闡釋137
4.1 導言137
4.2 NETCONF138
4.2.1 基本原理138
4.2.2 XML標簽、屬性和命名空間140
4.2.3 RPC機制144
4.2.4 消息框架146
4.2.5 消息概述149
4.2.6 hello消息149
4.2.7 get-config消息151
4.2.8 edit-config消息153
4.2.9 get消息157
4.2.10 RPC和動作160
4.2.11 通知161
4.2.12 更多NETCONF操作164
4.2.13 NMDA操作get-data和edit-data164
4.3 RESTCONF165
4.3.1 REST原則165
4.3.2 RESTCONF與NETCONF對比166
4.3.3 查找RESTCONF服務器URL168
4.3.4 閱讀和導航RESTCONF資源169
4.3.5 使用RESTCONF創(chuàng)建和更新配置175
4.3.6 動作183
4.3.7 通知184
4.4 OpenConfig和gNMI186
4.4.1 gRPC187
4.4.2 gNMI CapabilityRequest187
4.4.3 gNMI GetRequest188
4.4.4 gNMI SetRequest191
4.4.5 gNMI SubscribeRequest和遙測195
4.4.6 YANG RPC、動作和通知196
專家訪談196
與Kent Watsen的問答196
小結197
參考資料198
第5章 對遙測的闡釋200
5.1 導言200
5.2 數(shù)據(jù)模型驅動的遙測200
5.3 從SNMP轉向遙測202
5.4 遙測的使用案例205
5.5 遙測組件205
5.5.1 架構206
5.5.2 傳輸討論:監(jiān)控與事件207
5.5.3 訂閱類型:變動與定期208
5.5.4 撥入模式和撥出模式210
5.6 遙測標準機制210
5.6.1 NETCONF事件通知211
5.6.2 IETF YANG訂閱212
5.6.3 IETF YANG Push與OpenConfig:一些歷史215
5.6.4 OpenConfig流式遙測216
專家訪談216
與Alex Clemm的問答216
小結219
參考資料219
注釋220
第6章 YANG數(shù)據(jù)模型在行業(yè)中的發(fā)展221
6.1 導言221
6.2 起點:IETF221
6.3 在整個行業(yè)中擁抱YANG227
6.4 OpenConfig YANG模型231
6.5 需要行業(yè)協(xié)調234
6.6 互操作性測試235
6.7 為特定功能實現(xiàn)一個以上的YANG模型236
專家訪談238
與Carl Moberg的問答238
小結240
參考資料240
注釋240
第7章 自動化與數(shù)據(jù)模型、相關元數(shù)據(jù)及工具一樣好