书籍作者:[美] 埃里克·周 | ISBN:9787519849900 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:5330 |
创建日期:2021-10-07 | 发布日期:2021-10-07 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书首先从Python的基本概述开始,介绍如何与遗留设备以及支持API的网络设备交互。了解如何利用高级Python包和框架来实现网络自动化任务、监控、管理和增强的网络安全性,然后介绍Azure和AWS云网络。最后,使用Jenkins实现持续集成,并使用测试工具验证网络。
本书适合希望使用Python和其他工具迎接网络挑战的IT专业人员和运维工程师。
目录
序一
序二
前言
第1章 TCP/IP协议簇和Python回顾 1
1.1 互联网概述 2
1.1.1 服务器、主机和网络组件 3
1.1.2 数据中心的兴起 3
1.2 OSI模型 6
1.3 客户-服务器模型 8
1.4 网络协议簇 8
1.4.1 传输控制协议 9
1.4.2 用户数据报协议 10
1.4.3 Internet协议 11
1.5 Python语言概述 13
1.5.1 Python版本 14
1.5.2 操作系统 15
1.5.3 运行Python程序 15
1.5.4 Python内置类型 16
1.5.5 Python操作符 22
1.5.6 Python控制流工具 23
1.5.7 Python函数 25
1.5.8 Python类 26
1.5.9 Python模块和包 26
1.6 小结 28
第2章 低层网络设备交互 29
2.1 CLI的挑战 30
2.2 构建虚拟实验室 31
2.2.1 物理设备 31
2.2.2 虚拟设备 31
2.2.3 CiscoVIRL 32
2.2.4 CiscoDevNe和dCloud 36
2.2.5 GNS3 37
2.3 PythonPexpect库 39
2.3.1 Python虚拟环境 39
2.3.2 Pexpect安装 40
2.3.3 Pexpect概述 41
2.3.4 第一个Pexpect程序 46
2.3.5 更多Pexpect特性 47
2.3.6 Pexpect和SSH 48
2.3.7 Pexpect示例集成 49
2.4 PythonParamiko库 51
2.4.1 Paramiko安装 51
2.4.2 Paramiko概述 52
2.4.3 第一个Paramiko程序 55
2.4.4 更多Paramiko特性 56
2.4.5 Paramiko示例集成 57
2.5 Netmiko库 59
2.6 Nornir框架 61
2.7 小结 64
第3章 API和意图驱动网络 65
3.1 基础设施即代码 66
3.1.1 意图驱动网络 66
3.1.2 屏幕抓取与API结构化输出 67
3.1.3 基础设施即代码的数据建模 70
3.1.4 YANG和NETCONF 71
3.2 CiscoAPI和ACI 72
3.2.1 CiscoNX-API 72
3.2.2 CiscoYANG模型 78
3.2.3 CiscoACI和APIC-EM 80
3.3 CiscoMeraki控制器 82
3.4 JuniperNetworks的PythonAPI 84
3.4.1 Juniper和NETCONF 84
3.4.2 面向开发人员的JuniperPyEZ 89
3.5 AristaPythonAPI 93
3.5.1 AristaeAPI管理 94
3.5.2 AristaPyeapi库 98
3.6 VyOS示例 103
3.7 其他库 104
3.8 小结 105
第4章 Python自动化框架:Ansible基础 106
4.1 Ansible:更具声明性的框架 107
4.2 一个简单的Ansible示例 108
4.2.1 控制节点安装 109
4.2.2 从源代码运行不同版本的Ansible 110
4.2.3 实验室设置 111
4.2.4 第一个Ansibleplaybook 111
4.3 Ansible的优点 115
4.3.1 无代理 116
4.3.2 幂等性 116
4.3.3 简单而且可扩展 116
4.3.4 网络供应商支持 117
4.4 Ansible架构 118
4.4.1 YAML 119
4.4.2 清单文件 120
4.4.3 变量 121
4.4.4 使用Jinja2模板 126
4.5 Ansible网络模块 126
4.5.1 本地连接和fact 126
4.5.2 provider参数 127
4.6 AnsibleCisco示例 129
4.7 Ansible2.8playbook示例 132
4.8 AnsibleJuniper示例 136
4.9 AnsibleArista示例 137
4.10 小结 138
第5章 Python自动化框架:进阶 140
5.1 实验室准备 140
5.2 Ansible条件 141
5.2.1 when子句 141
5.2.2 Ansible网络fact 144
5.2.3 网络模块条件 147
5.3 Ansible循环 149
5.3.1 标准循环 149
5.3.2 基于字典的循环 151
5.4 模板 154
5.4.1 Jinja2模板变量 156
5.4.2 Jinja2循环 157
5.4.3 Jinja2条件 157
5.5 组和主机变量 160
5.5.1 组变量 161
5.5.2 主机变量 162
5.6 AnsibleVault 163
5.7 Ansibleinclude和角色 165
5.7.1 Ansibleinclude语句 165
5.7.2 Ansible角色 167
5.8 编写你自己的自定义模块 171
5.8.1 第一个自定义模块 171
5.8.2 第二个自定义模块 174
5.9 小结 175
第6章 使用Python实现网络安全 176
6.1 实验室设置 176
6.2 PythonScapy 180
6.2.1 安装Scapy 181
6.2.2 交互式示例 182
6.2.3 使用Scapy捕获数据包 185
6.2.4 TCP端口扫描 186
6.2.5 ping收集 191
6.2.6 常见攻击 192
6.2.7 Scapy资源 193
6.3 访问列表 193
6.3.1 用Ansible实现访问列表 194
6.3.2 MAC访问列表 197
6.4 syslog搜索 199
6.5 其他工具 202
6.5.1 私有VLAN 202
6.5.2 用Python使用UFW 203
6.6 延伸阅读 204
6.7 小结 204
第7章 使用Python实现网络监控:第1部分 206
7.1 实验室设置 207
7.2 SNMP 207
7.2.1 设置 208
7.2.2 PySNMP 210
7.3 Python实现数据可视化 216
7.3.1 Matplotlib 217
7.3.2 Pygal 223
7.4 Python用于Cacti 227
7.4.1 安装 228
7.4.2 Python脚本作为输入源 229
7.5 小结 232
第8章 使用Python实现网络监控:第2部分 233
8.1 Graphviz 234
8.1.1 实验室设置 234
8.1.2 安装 236
8.1.3 Graphviz示例 236
8.1.4 PythonGraphviz示例 237
8.1.5 LLDP邻居绘图 238
8.2 基于流的监控 248
8.3 ntop流量监控 254
8.3.1 ntop的Python扩展 256
8.3.2 sFlow 260
8.4 小结 265
第9章 使用Python构建网络 Web服务 266
9.1 比较PythonWeb框架 267
9.2 Flask和实验室设置 269
9.3 Flask介绍 270
9.3.1 HTTPie客户 271
9.3.2 URL路由 273
9.3.3 URL变 量 274
9.3.4 URL生成 275
9.3.5 Jsonify返回 277
9.4 网络资源API 278
9.4.1 Flask-SQLAlchemy 278
9.4.2 网络内容API 280
9.4.3 设备API 283
9.4.4 设备IDAPI 286
9.5 网络动态操作 286
9.6 认证和授权 292
9.7 在容器中运行Flask 295
9.8 小结 298
第10章 AWS云网络 300
10.1 AWS设置 301
10.2 AWS网络概述 305
10.3 虚拟私有云 311
10.3.1 路由表和路由目标 315
10.3.2 用CloudFormation实现动画 317
10.3.3 安全组和网络ACL 321
10.3.4 弹性IP 323
10.3.5 NAT网关 325
10.4 DirectConnect和VPN 326
10.4.1 VPN网关 326
10.4.2 DirectConnect 326
10.5 网络伸缩服务 328
10.5.1 弹性负载均衡 328
10.5.2 Route53DNS服务 329
10.5.3 CloudFrontCDN服务 329
10.6 其他AWS网络服务 330
10.7 小结 330
第11章 Azure云网络 332
11.1 Azure和AWS网络服务比较 333
11.2 Azure设置 334
11.3 Azure管理和API 336
11.3.1 Azure服务原则 339
11.3.2 Python与PowerShell 341
11.4 Azure全球基础设施 341
11.5 Azure虚拟网络 343
11.5.1 互联网访问 344
11.5.2 网络资源创建 348
11.5.3 VNet服务端点 349
11.5.4 VNet对等连接 350
11.6 VNet路由 353
11.7 AzureVPN 360
11.8 AzureExpressRoute 363
11.9 Azure网络负载均衡器 364
11.10 其他Azure网络服务 365
11.11 小结 366
第12章 使用ElasticStack完成网络数据分析 367
12.1 ElasticStack是什么? 367
12.2 实验室拓扑 369
12.3 ElasticStack作为服务 373
12.4 第一个端到端示例 375
12.5 Elasticsearch与Python客户端交互 379
12.6 使用Logstash实现数据摄取 381
12.7 使用Beats实现数据摄取 383
12.8 使用Elasticsearch实现搜索 389
12.9 使用Kibana实现数据可视化 394
12.10 小结 398
第13章 使用Git 399
13.1 内容管理问题和Git 399
13.2 Git介绍 400
13.2.1 Git的好处 401
13.2.2 Git术语 402
13.2.3 Git和GitHub 402
13.3 设置Git 403
13.4 Git使用示例 405
13.5 Git分支 410
13.6 使用Python操作Git 420
13.6.1 GitPython 420
13.6.2 PyGitHub 421
13.7 自动化配置备份 423
13.8 使用Git协作 425
13.9 小结 426
第14章 使用Jenkins持续集成 427
14.1 传统变更管理过程 427
14.2 持续集成介绍 429
14.3 安装Jenkins 429
14.4 Jenkins示例 432
14.4.1 执行Python脚本的第一个作业 432
14.4.2 Jenkins插件 437
14.4.3 网络持续集成示例 439
14.5 使用Python操作Jenkins 446
14.6 网络的持续集成 448
14.7 小结 448
第15章 网络测试驱动开发 449
15.1 测试驱动开发概述 449
15.2 拓扑作为代码 451
15.2.1 Python的unittest模块 456
15.2.2 关于Python测试 460
15.2.3 pytest示例 461
15.3 编写网络测试 464
15.3.1 测试可达性 464
15.3.2 测试网络延迟 466
15.3.3 测试安全性 467
15.3.4 测试事务 467
15.3.5 测试网络配置 468
15.3.6 测试Ansible 468
15.4 pytest与Jenkins集成 469
15.5 pyATS和Genie 473
15.6 小结 477