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