网络专业人员书库 NetDevOps入门与实践
作者: 余欣 著
出版时间:2018年版
内容简介
网络运维自动化资深专家撰写,8位专家联袂推荐,网络工程师转型必备指南。以场景与实践驱动,涵盖NetDevOps理念、常用工具、编程基础、网络运维常用Python模块与网络设备的数据处理等,注重实用性与友好性,全书分为5篇,共计14章内容。 概念篇(第1~2章),阐述NetDevOps是什么、怎么做、技术框架,使读者能清晰了解NetDevOps能给他们带来什么,从何入手,如何开展NetDevOps工作。 基础篇(第3~6章),介绍如何构建NetDevOps的工作环境以及在这些环境中的常用工具,提高读者在日常维护的工作效率与准确度。 提高篇(第7~9章),讲解Linux环境编程、Python脚本编程、常用数据结构,学习开发一些在运维或者网络规划中能够使用的关键技能。 实践篇(第10~12章),采用案例的形式,带领读者掌握网络自动化运维、网络设计与规划中应对高频场景的技术与技巧,主要是网络数据的批处理,提高处理效率。 案例篇(第13~14章),通过3个典型案例来巩固提高NetDevOps相关知识和技能,更具体、更实用。
目录
目录 Contents
本书赞誉
前言
第一篇 概念篇
第1章 NetDevOps理念与要义2
1.1 从SDN开始说起2
1.1.1 OpenFlow打开了新的一扇窗3
1.1.2 简单聊聊SDN控制器4
1.1.3 NFV5
1.1.4 云和SDN6
1.1.5 SD-WAN8
1.2 NetDevOps,你需要知道的事8
1.2.1 什么是NetDevOps8
1.2.2 NetDevOps适用环境9
1.2.3 为什么我们需要NetDevOps10
1.2.4 NetDevOps需要什么样的人10
1.3 小结11
第2章 如何开始NetDevOps12
2.1 文档内容与版本管理12
2.1.1 版本管理的重要性13
2.1.2 需要管理哪些文档 13
2.1.3 如何实施版本管理14
2.1.4 版本管理的工具16
2.2 编程语言的选择17
2.2.1 程序语言的选择17
2.2.2 数据描述语言的选择18
2.3 自动化工具的选择22
2.3.1 Ansible22
2.3.2 Puppet23
2.3.3 Chef23
2.3.4 SaltStack24
2.3.5 如何选择24
2.4 网络设备的编程接口25
2.4.1 网络设备接口的分类25
2.4.2 网络设备编程接口的特征27
2.5 小结29
第二篇 基础篇
第3章 认识命令行工具32
3.1 用screen实现终端的会话管理33
3.1.1 安装screen34
3.1.2 screen基本语法34
3.1.3 screen基本操作35
3.1.4 定制你的screen36
3.1.5 用screen连接串口36
3.1.6 管理screen的日志38
3.1.7 多人共享一个会话38
3.2 用Telnet和SSH管理设备39
3.2.1 Telnet39
3.2.2 SSH介绍40
3.2.3 SSH的基本使用40
3.2.4 利用SSH远程执行命令42
3.2.5 SSH客户端常用配置44
3.2.6 使用密钥登录设备45
3.2.7 使用scp进行文件传输47
3.2.8 利用SSH 端口隧道转发功能48
3.2.9 利用SSH做Socket代理50
3.3 小结50
第4章 Linux下的一些常用工具52
4.1 SNMP53
4.1.1 SNMP简介53
4.1.2 常见设备的SNMP配置54
4.1.3 SNMP工具56
4.2 网络可达性检测工具58
4.2.1 Nmap59
4.2.2 Nping62
4.2.3 iPerf63
4.2.4 Fping64
4.3 MTR65
4.4 其他工具66
4.4.1 watch66
4.4.2 Wget68
4.4.3 CURL68
4.5 小结69
第5章 处理网络设备输出的文本70
5.1 正则表达式基础70
5.1.1 正则表达式到底是什么71
5.1.2 单字符的匹配71
5.1.3 多字符的匹配与次数匹配75
5.1.4 在网络设备上的正则表达式77
5.2 使用grep进行搜索与获取信息78
5.2.1 什么是grep78
5.2.2 命令选项的解释78
5.2.3 匹配控制80
5.2.4 输出结果控制81
5.2.5 输入控制83
5.3 使用awk进行文本处理84
5.3.1 认识一下awk84
5.3.2 awk的执行方式与语法84
5.3.3 截取部分信息85
5.3.4 使用内置变量86
5.3.5 对特定内容进行统计分析86
5.3.6 多文件操作88
5.4 使用sed 进行文本编辑89
5.4.1 什么是sed89
5.4.2 sed语法简介89
5.4.3 删除文件中的指定信息90
5.4.4 在文件中进行查找替换91
5.4.5 在文件中插入内容92
5.5 文本编辑工具vi和vim92
5.5.1 vi和vim简介92
5.5.2 vim编辑器的模式93
5.6 小结97
第6章 常用基础服务搭建99
6.1 Docker基础100
6.1.1 什么是Docker100
6.1.2 Docker的基本概念101
6.1.3 Docker的运行环境104
6.1.4 启动Docker镜像105
6.1.5 构建Docker镜像106
6.2 TFTP服务器110
6.2.1 定制一个TFTP服务镜像111
6.2.2 启动一个TFTP服务器的容器112
6.2.3 服务的检查112
6.3 DNS 服务器113
6.3.1 构建DNS镜像113
6.3.2 启动和配置DNS114
6.3.3 用DNS记录设备的接口与IP的对应关系115
6.4 搭建DHCP服务器118
6.4.1 构建DHCP镜像119
6.4.2 启动和配置DHCP服务120
6.5 小结121
第三篇 提高篇
第7章 Linux编程基础124
7.1 Bash编程基础124
7.2 第一个Bash程序125
7.3 变量126
7.4 数组128
7.4.1 定义数组128
7.4.2 数组取值129
7.4.3 获取数组的长度129
7.4.4 截取数组的内容130
7.4.5 替换元素中的内容130
7.4.6 删除数组中的元素或者数组130
7.5 运算符131
7.5.1 算术运算符131
7.5.2 位运算符132
7.5.3 自增/自减运算136
7.6 测试136
......