本書遵循網(wǎng)絡自動化運維工程師職業(yè)素養(yǎng)和專業(yè)技能的要求進行內容組織,采用“項目化教學”和“任務驅動”方式展開。本書分四篇,共計12個項目。內容覆蓋網(wǎng)絡自動化Python編程基礎、用于網(wǎng)絡自動化的Python模塊、用于配置與管理網(wǎng)絡的協(xié)議以及網(wǎng)絡自動化運維的常用工具;A篇共一個項目,項目1為Python編程基礎;部署實施篇共四個項目,項目2為使用telnetlib下發(fā)網(wǎng)絡配置;項目3為使用paramiko實現(xiàn)網(wǎng)絡自動化巡檢;項目4為使用 netmiko發(fā)現(xiàn)網(wǎng)絡拓撲;項目5為使用 PySNMP獲取網(wǎng)絡數(shù)據(jù);協(xié)議篇共三個項目,項目6為使用議NETCONF協(xié)議配置網(wǎng)絡;項目7為使用Telemetry實時監(jiān)控CPU和內存使用率;項目8為使用RESTCONF協(xié)議配置網(wǎng)絡;工具篇共四個項目,項目9為使用Ansible實現(xiàn)網(wǎng)絡自動化運維;項目10為使用Nornir收集網(wǎng)絡日志;項目11為使用scapy處理數(shù)據(jù)包;項目12為使用NMAP掃描網(wǎng)絡。
本書是一本介紹網(wǎng)絡自動化運維理論知識和應用技能的教材,既可作為高職或應用型本科電子信息類專業(yè)學生的教材,也可作為參加華為HCIP Datacom網(wǎng)絡自動化開發(fā)者認證的學習者的閱讀材料,還可以作為網(wǎng)絡架構師、網(wǎng)絡運維工程師、網(wǎng)絡運維開發(fā)工程師、網(wǎng)絡與系統(tǒng)管理工程師等從業(yè)人員的閱讀材料。
1.本書在編寫過程中遵循網(wǎng)絡工程師職業(yè)素養(yǎng)養(yǎng)成和專業(yè)技能積累的規(guī)律,突出職業(yè)能力、職業(yè)素養(yǎng)、工匠精神和質量意識培育。
2.本書主要介紹網(wǎng)絡自動化運維工程師所需的與自動化運維相關的網(wǎng)絡編程技能,從網(wǎng)絡工程師的角度出發(fā),將程序員編程的思維帶入網(wǎng)絡領域,幫助網(wǎng)絡工程師開啟網(wǎng)絡自動化運維編程的“大門”。
3.本書從實戰(zhàn)出發(fā)講解原理,采用來自企業(yè)的真實案例構建實戰(zhàn)場景,使用Python語言完成代碼實現(xiàn),結合實戰(zhàn)進行代碼解析,通過練習加深理解。
梁廣民,深圳職業(yè)技術大學教授,21年以來兢兢業(yè)業(yè)工作在教學第一線,教學方面,主持國家精品課程和國家精品資源共享課程《網(wǎng)絡互聯(lián)技術》建設,主持教育部網(wǎng)絡技術專業(yè)教學資源庫子項目《網(wǎng)絡設備安裝與調試》課程建設,主持廣東省教育廳教研項目《高職計算機類專業(yè)綜合改革》項目,主編出版教材19本,其中《網(wǎng)絡互聯(lián)技術》、《網(wǎng)絡系統(tǒng)建設與運維(高級)》和《網(wǎng)絡攻防案例教程》3本教材入選“職業(yè)教育國家規(guī)劃教材”。指導224名學生通過CCIE認證考試和80名同學通過HCIE認證考試,數(shù)量位居全國之首。指導學生獲得全國職業(yè)院校技能大賽《計算機網(wǎng)絡應用》和《網(wǎng)絡系統(tǒng)管理》一等獎。參與華為和中銳公司2項1+X標準制定。多年來為來自全國的2000多名教師進行網(wǎng)絡技術師資培訓?蒲蟹矫,主要從事大數(shù)據(jù)分析、自動駕駛、生物信息等領域的研究,主持市級、校級重點和企業(yè)橫向8項,參與廣東省自然科學基金3項,研究經(jīng)費達100多萬元,先后發(fā)表論文16篇,其中SCI收錄6篇,EI收錄4篇,中文核心期刊5篇。先后通過華為、思科等18個IT領域職業(yè)認證或講師認證。先后為衛(wèi)生部、國家電網(wǎng)、中國聯(lián)通、廣東發(fā)展銀行和廣東省稅務局員工進行網(wǎng)絡技術培訓。曾經(jīng)參與過中國銀行、國家電網(wǎng)和學校校園網(wǎng)等網(wǎng)絡升級和改造項目。
第 一篇 基礎篇 9
項目1 Python編程基礎 9
1.1 學習目標 9
1.2 任務陳述 9
1.3 知識準備 10
1.3.1 Python基礎 10
1.3.2 文件處理 15
1.3.3 網(wǎng)絡模塊 18
1.4 任務實施 24
1.4.1 創(chuàng)建文本文件 24
1.4.2 編寫Python代碼 24
1.4.3 運行Python代碼 26
1.5 任務總結 26
1.6 知識鞏固 26
第二篇 部署實施篇 27
項目2 使用telnetlib下發(fā)網(wǎng)絡配置 27
2.1 學習目標 27
2.2 任務陳述 28
2.3 知識準備 28
2.3.1 網(wǎng)絡自動化運維 28
2.3.2 SNMP協(xié)議 29
2.3.3 NTP協(xié)議 33
2.3.4 telnetlib模塊 34
2.4 任務實施 35
2.4.1 配置Telnet服務 36
2.4.2 配置NTP服務 36
2.4.3 編寫配置文件 37
2.4.4 編寫Python腳本 38
2.4.5 運行Python腳本 39
2.4.6 驗證結果 40
2.5 任務總結 42
2.6 知識鞏固 42
項目3 使用paramiko實現(xiàn)網(wǎng)絡自動化巡檢 43
3.1 學習目標 43
3.2 任務陳述 43
3.3 知識準備 43
3.3.1 網(wǎng)絡設備巡檢 43
3.3.2 paramiko模塊 44
3.4 任務實施 47
3.4.1 配置SSH服務端 48
3.4.2 編寫Python腳本 49
3.4.3 運行Python腳本 51
3.5 任務總結 53
3.6 知識鞏固 53
項目4 使用netmiko發(fā)現(xiàn)網(wǎng)絡拓撲 54
4.1 學習目標 54
4.2 任務陳述 54
4.3 知識準備 54
4.3.1 JSON數(shù)據(jù)格式 54
4.3.2 netmiko模塊 56
4.4 任務實施 58
4.4.1 配置SSH服務和LLDP 58
4.4.2 編寫Python腳本 60
4.4.3 運行Python腳本 63
4.4.4 查看拓撲圖 64
4.5 任務總結 64
4.6 知識鞏固 64
項目5 使用PySNMP獲取網(wǎng)絡數(shù)據(jù) 66
5.1 學習目標 66
5.2 任務陳述 66
5.3 知識準備 66
5.3.1 PySNMP模塊簡介 66
5.3.2 PySNMP使用方法 68
5.4 任務實施 72
5.4.1 配置設備SNMPv3 72
5.4.2 獲取OID 73
5.4.3 編寫腳本 73
5.4.4 運行腳本 75
5.5 任務總結 75
5.6 知識鞏固 75
第三篇 協(xié)議篇 77
項目6 使用NETCONF協(xié)議配置網(wǎng)絡 78
6.1 學習目標 78
6.2 任務陳述 78
6.3 知識準備 79
6.3. 1 XML數(shù)據(jù)格式 79
6.3.2 NETCONF協(xié)議基礎 84
6.3.3 NETCONF基本操作 89
6.3.4 NETCONF客戶端 90
6.3.5 設備上配置NETCONF 92
6.4 任務實施 94
6.4.1 設備上配置SSH服務 95
6.4.2 使能設備NETCONF功能 95
6.4.3 編寫Python腳本 96
6.4.4 運行Python腳本下發(fā)配置 111
6.4.5 驗證配置 113
6.5 任務總結 114
6.6 知識鞏固 114
項目7 使用Telemetry實時監(jiān)控CPU和內存使用率 116
7.1 學習目標 116
7.2 任務陳述 116
7.3知識準備 117
7.3.1 YANG建模語言 117
7.3.2 Telemetry技術原理 122
7.3.3 Telemetry數(shù)據(jù)訂閱 124
7.3.4 采樣數(shù)據(jù)與編碼格式 127
7.3.5 Proto文件 131
7.3.6 gRPC傳輸協(xié)議 136
7.3.7 配置設備側數(shù)據(jù)訂閱 137
7.4 任務實施 140
7.4.1 配置SSH密碼登錄 140
7.4.2 配置目標采集器 140
7.4.3 配置采樣路徑和過濾條件 141
7.4.4 配置訂閱 141
7.4.5 安裝grpcio-tools 141
7.4.6 創(chuàng)建PyCharm項目 141
7.4.7 編譯proto文件 143
7.4.8 編寫服務端Python腳本 145
7.4.9 運行Python腳本驗證結果 146
7.5 任務總結 147
7.6 知識鞏固 148
項目8 使用RESTCONF協(xié)議配置網(wǎng)絡 149
8.1 學習目標 149
8.2 任務陳述 149
8.3 知識準備 150
8.3.1 HTTP協(xié)議 150
8.3.2 RESTCONF基礎 155
8.3.3 配置RESTCONF 161
8.3.4 requests模塊 161
8.4 任務實施 162
8.4.1 配置SSH密碼登錄 163
8.4.2 配置RESTCONF 163
8.4.3 編寫Python腳本 164
8.4.4 運行Python腳本 170
8.4.5 驗證 171
8.5 任務總結 172
8.6 知識鞏固 172
第四篇 工具篇 173
項目9 使用Ansible實現(xiàn)網(wǎng)絡自動化運維 174
9.1 學習目標 174
9.2 任務陳述 174
9.3 知識準備 174
9.3.1 YAML配置文件語言 174
9.3.2 Ansible基礎 177
9.3.3 Ansible劇本 181
9.3.4 任務控制 182
9.4 任務實施 183
9.4.1 配置SSH服務端 184
9.4.2 創(chuàng)建資產(chǎn)文件 185
9.4.3 編寫收集信息的playbook 185
9.4.4 驗證執(zhí)行收集信息的playbook 186
9.4.5 編寫配置交換機的playbook 189
9.4.6 驗證執(zhí)行配置交換機的playbook 190
9.5 任務總結 192
9.6 知識鞏固 192
項目10 使用Nornir收集網(wǎng)絡日志 193
10.1 學習目標 193
10.2 任務陳述 193
10.3 知識準備 193
10.3.1 Nornir基礎 193
10.3.2 Nornir插件 200
10.4 任務實施 205
10.4.1 配置SSH服務 205
10.4.2 安裝配置Syslog日志服務器。 206
10.4.3 創(chuàng)建主機清單 206
10.4.4 編寫Python腳本 208
10.4.5 執(zhí)行Python腳本 208
10.4.6 服務器接收日志 209
10.5 任務總結 210
10.6 知識鞏固 210
項目11 使用scapy處理數(shù)據(jù)包 211
11.1 學習目標 211
11.2 任務陳述 211
11.3 知識準備 211
11.3.1 Scapy基礎 211
11.3.2 Scapy函數(shù) 221
11.5 任務實施 228
11.5.1 SYN掃描 228
11.5.2 ARP ping 228
11.5.3 ICMP ping 229
11.5.4 UDP ping 230
11.5 任務總結 232
11.6 知識鞏固 232
項目12 使用NMAP掃描網(wǎng)絡 233
12.1 學習目標 233
12.2 任務陳述 233
12.3 知識準備 233
12.3.1 NMAP基礎 233
12.3.2 主機發(fā)現(xiàn) 235
12.3.3 端口掃描 237
12.3.4 服務和版本探測 239
12.5.5 操作系統(tǒng)探測 240
12.5.6 Python中的nmap模塊 240
12.4 任務實施 241
12.5 任務總結 244
12.6 知識鞏固 245
參考資料 246