描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302507611
为保证零基础读者能轻松学习Linux运维,《Linux系统管理与自动化运维》用一定篇幅讲解了Linux平台的基本使用,因此即便是Linux系统零基础的读者,亦可选用本书作为Linux运维的入门教材。
二、循序渐进,通俗易懂
在知识配置上,从实际需求入手,选取运维人员的知识技能;在内容安排上,从学习认知的规律入手,由Linux基础到运维入门与进阶;在知识讲解上,为理论讲解配置图示,分阶段配置巩固实例,降低读者的理解难度,提高读者的实践能力。
三、注重实战,可操作性强
为了提高读者的兴趣和动力,教材前期的讲解都配备可操作的示例,读者可参考示例实践巩固所学知识,即学即用,时有所得。教材后期的内容从企业的实际需求出发,将Linux运维与多种软件结合,并结合企业常见情境设置经典案例,强化实践能力。
四、配套数字资源丰富
提供9个精美教学PPT、1000道测试题、长达30小时的教学视频。
本书分为9章: 第1章介绍了Linux的背景、开发环境、网络配置等知识;第2章讲解了Linux系统的基本命令与常用工具;第3、4章讲解了Shell编程的基本语法、内核的编译与管理;第5章对Linux环境中常见的网络服务进行介绍;第6~9章讲解了Linux环境下实现集中化、自动化运维的方式,并对网络安全和虚拟化计时进行了讲解。本书中的每个章节都以理论与案例结合的模式,在理论知识后通过切实可行的案例帮助读者在学习的同时,实践、巩固所学知识。
本书附有配套视频、源代码、习题、教学课件等资源。同时,为了帮助初学者更好地学习本书中的内容,还提供了在线答疑,希望得到更多读者的关注。
本书既可作为高等院校本、专科计算机相关专业的Linux课程专用教材,也可以作为Linux系统管理的培训教材,是一本非常适合Linux技术人员的教材。
第1章Linux系统简介与环境搭建1
1.1Linux系统简介1
1.1.1Linux系统的起源与发展1
1.1.2GNU与GPL2
1.1.3Linux系统版本2
1.1.4Linux系统的应用领域4
1.2安装Linux系统4
1.2.1安装虚拟机软件4
1.2.2下载CentOS5
1.2.3安装CentOS6
1.3Linux系统启动流程21
1.4网络配置23
1.4.1网络模式23
1.4.2模式更改25
1.4.3网络配置27
1.4.4访问测试29
1.5目录结构31
1.6远程终端访问32
1.7SFTP远程文件管理35
1.8本章小结36
1.9本章习题36
第2章Linux命令与工具39
2.1Linux命令格式39
2.2用户与用户组管理40
2.2.1用户管理40
2.2.2用户组管理43
2.2.3用户切换46
2.3文件管理49
2.3.1文件操作49目录Linux系统管理与自动化运维2.3.2查看文件53
2.3.3文件搜索54
2.3.4权限管理56
2.3.5压缩解压59
2.4存储管理62
2.4.1磁盘分区62
2.4.2格式化67
2.4.3挂载68
2.4.4LVM逻辑卷管理70
2.4.5RAID磁盘阵列73
2.4.6创建RAID75
2.5进程管理77
2.5.1进程状态77
2.5.2进程管理命令78
2.6服务管理84
2.7软件包管理87
2.7.1RPM软件包管理87
2.7.2YUM软件包管理90
2.7.3YUM源管理93
2.8文本编辑器94
2.9本章小结98
2.10本章习题98
第3章Shell100
3.1Shell概述100
3.1.1Shell的概念100
3.1.2Shell的分类101
3.1.3Shell的使用技巧103
3.2Shell中的变量106
3.2.1本地变量106
3.2.2环境变量107
3.2.3位置变量110
3.2.4特殊变量111
3.3Shell中的符号112
3.3.1引号112
3.3.2通配符114
3.3.3连接符115
3.4正则表达式116
3.4.1正则表达式的概念116
3.4.2元字符116
3.5文本处理工具119
3.5.1grep119
3.5.2sed122
3.5.3awk126
3.6Shell脚本131
3.6.1判断结构131
3.6.2循环结构135
3.6.3break与continue139
3.6.4Shell脚本的基本元素与执行方式140
3.7脚本运维实例141
3.7.1模拟用户登录141
3.7.2监控系统运行情况142
3.7.3备份MySQL数据库144
3.8本章小结148
3.9本章习题149
第4章内核编译与管理151
4.1Linux内核151
4.1.1内核概述151
4.1.2内核的开发与更新152
4.1.3内核版本152
4.2内核的编译安装153
4.2.1获取内核源码153
4.2.2编译与安装156
4.3内核模块管理159
4.3.1内核模块概述159
4.3.2查看内核模块162
4.3.3加载与卸载164
4.3.4修改内核参数166
4.4本章小结167
4.5本章习题167
第5章网络服务170
5.1计算机网络基础170
5.1.1协议与体系结构171
5.1.2数据传输流程172
5.1.3IP地址与端口号173
5.1.4子网掩码175
5.1.5协议与服务176
5.2DHCP服务176
5.2.1DHCP常用术语176
5.2.2DHCP的工作流程177
5.2.3安装配置DHCP178
5.3DNS服务182
5.3.1DNS简介182
5.3.2安装DNS187
5.3.3BIND配置文件详解189
5.3.4部署主从DNS服务器192
5.4电子邮件服务196
5.4.1电子邮件服务概述196
5.4.2电子邮件协议197
5.4.3基于Postfix的邮件发送199
5.4.4基于Dovecot的邮件收取201
5.5FTP服务205
5.5.1FTP概述206
5.5.2VSFTP简介206
5.5.3配置匿名FTP服务器210
5.5.4禁止指定用户登录214
5.6本章小结216
5.7本章习题216
第6章集中化运维工具——Ansible和SaltStack218
6.1运维概述218
6.1.1运维的概念218
6.1.2传统的运维面临的问题219
6.2Ansible220
6.2.1Ansible简介220
6.2.2YAML简介221
6.2.3Ansible的安装223
6.2.4配置SSH无密码登录223
6.2.5主机目录225
6.2.6Ansible的常用模块226
6.2.7playbook234
6.2.8playbook的基本语法235
6.2.9role238
6.3SaltStack241
6.3.1SaltStack简介241
6.3.2SaltStack的安装配置242
6.3.3远程命令245
6.3.4模块方法247
6.3.5grains组件252
6.3.6pillar256
6.3.7state257
6.3.8部署LAMP环境264
6.4本章小结267
6.5本章习题268
第7章监控系统270
7.1监控系统简介270
7.2监控软件简介272
7.3Zabbix的安装与配置275
7.3.1Web环境搭建275
7.3.2Server端安装配置281
7.3.3Agent端安装配置288
7.3.4连通性测试289
7.4如何使用Zabbix290
7.4.1创建Zabbix用户290
7.4.2添加Host291
7.4.3配置Item295
7.4.4创建Trigger300
7.4.5设置Action303
7.5数据可视化310
7.5.1图表的使用310
7.5.2分屏的实现313
7.6Zabbix中的模板318
7.6.1新建Template318
7.6.2关联模板320
7.7Zabbix中的宏321
7.8本章小结323
7.9本章习题324
第8章网络安全与防火墙325
8.1网络安全325
8.1.1网络安全简介325
8.1.2威胁网络安全的因素326
8.2网络攻击与防御327
8.2.1常见的网络攻击类型327
8.2.2常用的防御措施331
8.3防火墙332
8.3.1防火墙概述332
8.3.2防火墙的分类334
8.3.3防火墙技术334
8.4IDS337
8.4.1IDS概述337
8.4.2IDS分类338
8.5IPS339
8.6iptables340
8.6.1iptables简介340
8.6.2iptables状态检测342
8.6.3iptables的规则编写343
8.7firewalld345
8.7.1firewalld简介346
8.7.2命令行管理方式347
8.7.3图形界面管理方式349
8.8本章小结351
8.9本章习题351
第9章KVM虚拟化技术354
9.1虚拟化简介354
9.1.1虚拟化概述354
9.1.2软件虚拟化和硬件虚拟化355
9.1.3半虚拟化与全虚拟化356
9.1.4主流虚拟化产品357
9.2KVM虚拟化原理与架构360
9.2.1系统虚拟化原理360
9.2.2KVM虚拟化原理与架构361
9.3搭建KVM虚拟化环境362
9.3.1硬件环境要求362
9.3.2KVM的安装配置363
9.4KVM核心配置368
9.4.1CPU配置中的基本概念368
9.4.2CPU配置370
9.4.3内存虚拟化374
9.4.4内存配置374
9.5Libvirt375
9.5.1Libvirt概述376
9.5.2Libvirt域的XML配置文件377
9.5.3virsh379
9.5.4virtmanager382
9.6本章小结385
9.7本章习题385
江苏传智播客教育科技股份有限公司(简称传智播客)是一家致力于培养高素质软件开发人才的科技公司,“黑马程序员”是传智播客旗下高端IT教育品牌。
“黑马程序员”的学员多为大学毕业后,想从事IT行业,但各方面条件还不成熟的年轻人。“黑马程序员”的学员筛选制度非常严格,包括了严格的技术测试、自学能力测试,还包括性格测试、压力测试、品德测试等。百里挑一的残酷筛选制度确保学员质量,并降低企业的用人风险。
自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研三个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,有针对性地出版了计算机系列教材60多册,制作教学视频数十套,发表各类技术文章数百篇。
“黑马程序员”不仅斥资研发IT系列教材,还为高校师生提供以下配套学习资源与服务。
为大学生提供的配套服务
1. 请登录在线平台: http://yx.boxuegu.com,免费获取海量学习资源,还有专业老师在线为您答疑解惑。
2. 针对高校学生在学习过程中存在的压力等问题,我们还面向大学生量身打造了IT技术女神——“播妞”,可提供教材配套源码和习题答案以及更多IT其它干货资源,同学们快来添加吧!“播妞”微信: 208695827、“播妞”QQ: 3231342131。
“播妞”微信
“播妞”QQ
为教师提供的配套服务
针对高校教学,“黑马程序员”为IT系列教材精心设计了“教案 授课资源 考试系统 题库 教学辅助案例”的系列教学资源,高校老师请登录在线平台: http://yx.boxuegu.com或关注码大牛老师微信/QQ: 2011168841,获取配套资源,也可以扫描下方二维码,加入专为IT教师打造的师资服务平台——“教学好助手”,获取教师教学辅助资源的相关动态。
前言Linux系统管理与自动化运维
前言
前些年,由于运维行业技术要求相对较低,为了节省开支,部分企业选择由开发人员兼顾运维岗位,运维行业逐渐没落。随着云服务的发展,运维对工作人员的专业程度要求越来越高,运维不再是普通开发人员可以兼任的岗位,IT行业对专业运维人员的需求逐渐增加,运维再次成为IT行业中可与开发比肩的、必不可少的分支,掌握专业运维知识的人员也成为IT职场中备受青睐的稀缺人才。
然而,黑马程序员在近些年的观察和研究中发现: 面临就业的高校学子虽然已经学习了编程语言与操作系统等的相关课程,但缺乏动手能力,难以将理论联系实践,这皆因他们所用教材的体系结构不够系统,或者知识不够全面,或者讲解的知识较深奥,以至于学生难以掌握切实可用的技能。
针对这种现象,黑马程序员决定推出一本更符合学生实际需求的教材。为保障学生在学习的过程中能学有所得,在学习之后能学以致用,黑马程序员经过大量调研,推出了Linux运维课程中的初级教材——《Linux系统管理与自动化运维》。
为什么要学习本书
Linux操作系统自诞生至今,逐步发展并日渐完善,因其开源、安全、稳定等特性,成为众多企业与政府部门搭建服务器的平台,此外,Linux在移动应用与嵌入式开发领域也被广泛应用,因此,Linux系统的使用与Linux环境的维护成为众多计算机从业人员需要掌握的技能。
本书是由黑马程序员编写的Linux系统管理与运维的入门书籍,主要涵盖Linux常用命令、Shell编程基础、内核、网络服务原理与服务器配置、常用运维工具、网络安全以及虚拟化技术等知识。在环境选择上,本书选用符合企业需求的常用工具搭建运维环境;在内容安排上,本书从Linux系统基础入手,先引领读者熟悉Linux系统,掌握Linux系统的使用方法,再对网络服务、运维工具、网络安全等进阶内容进行介绍;在讲解方式上,本书将理论与实践相结合,为大多知识点配备相应案例,保证读者在掌握理论知识的同时强化动手能力。
如何使用本书
本书以与企业中所用环境Red Hat Enterprise Linux较为接近的Linux版本——CentOS 7.3为开发环境,并选用各企业常用且适用的批量运维工具Ansible、SaltStack,系统监控工具Zabbix实现Linux系统的日常维护。本书中涉及的命令、语法与工具都配备了具体的案例,旨在让读者了解并掌握Linux系统的管理与维护。
若本书用于课堂教学,建议教师在讲解理论知识后,先引导学生自主动手实现教材中提供的案例,培养学生思考问题、分析问题、解决问题的能力,以帮助学生更深刻地理解、掌握相应知识。
若读者为自主学习者,则建议读者勤思考、勤练习、勤总结,尽量完成并熟练掌握教材中配备的案例,并通过章节配套测试题进行自我检测,查漏补缺。
前言Linux系统管理与自动化运维本书分为9章,每章的大体内容如下。
第1章首先介绍了Linux系统的背景,包括Linux的起源、发展、GNU与GPL、Linux系统版本、应用领域;其次介绍了Linux环境搭建过程、Linux系统启动流程;再次介绍了VMware虚拟网络配置、目录结构;后介绍了Linux的远程终端访问和远程文件管理。通过本章的学习,读者可对Linux系统的背景有所了解,并能顺利搭建Linux环境、配置网络,掌握Linux的远程终端访问方式及远程文件的管理。
第2章讲解了Linux系统中的基本命令与开发工具,其中命令分为与用户、文件、存储、进程、服务、软件包相关的命令,开发工具主要是Vi编辑器。掌握本章所讲知识,可提高Linux系统使用的效率。
第3章讲解了与Shell相关的知识,包括Shell概述、Shell中的变量及符号、正则表达式、文本处理工具以及Shell脚本基础语法等。
第4章讲解了Linux内核编译与管理等知识,主要包括Linux内核简介、内核的编译安装、内核模块的管理等。
第5章先对计算机网络基础知识进行了介绍,然后讲解了Linux系统中常见网络服务的原理与安装配置,包括DHCP服务、DNS服务、电子邮件服务以及FTP服务。
第6章陈述了运维的意义,并对企业中常用的集中化运维工具——Ansible和SaltStack的安装与使用方法进行了介绍。
第7章讲解了监控系统的架构、常见监控软件,并介绍了如何在Linux系统中通过监控软件Zabbix监控设备环境。
第8章讲解了与网络安全相关的知识,包括网络安全的定义、常见的网络攻击与防御方式、防火墙、IDS、IPS等,后对CentOS系统中使用的防火墙工具——iptables、firewalld的使用方式进行了介绍。
第9章主要讲解了与KVM虚拟化技术相关的知识,包括虚拟化简介、KVM虚拟化原理与架构、如何搭建KVM虚拟化环境、KVM核心配置以及KVM管理工具——Libvirt。
读者若不能完全理解教材中所讲知识,可登录博学谷平台,配合平台中的教学视频进行学习。此外,读者在学习的过程中,务必要勤于练习,确保真正掌握所学知识。若在学习的过程中遇到无法解决的困难,建议读者不要纠结于此,继续往后学习,或可豁然开朗。
致谢
本书的编写和整理工作由传智播客教育科技股份有限公司完成,主要参与人员有吕春林、高美云、薛蒙蒙、郑瑶瑶等,全体人员在近一年的编写过程中付出了辛勤的努力,在此一并表示衷心的感谢。
意见反馈
尽管我们尽了的努力,但书中难免会有不妥之处,欢迎各界专家和读者朋友们提出宝贵意见,我们将不胜感激。您在阅读本书时,如发现任何问题或有不认同之处可以通过电子邮件与我们取得联系。
请发送电子邮件至: [email protected]。
黑马程序员
2018年3月于北京
了解计算机网络基础知识
掌握DHCP服务原理
掌握DNS服务原理
理解电子邮件服务原理
熟悉电子邮件服务器的搭建方法
掌握FTP服务原理当今社会是信息化社会,信息的传播离不开网络,随着计算机与因特网的发展和普及,网络已渗入到社会生活的各行各业,大到操作系统,小到手机应用,都与网络息息相关,因此,Linux系统中网络服务的搭建与配置是运维人员必须掌握的重点技能。本章主要对Linux系统中常用的几种网络服务的原理与配置方法进行讲解,由于网络服务的介绍会涉及与网络相关的知识,在讲解网络服务之前先对计算机网络的基础知识进行讲解。
5.1计算机网络基础
计算机网络(network)是继电信网络、有线电视网络之后出现的大型网络。在计算机领域中,网络由若干个节点和连接这些节点的链路组成,网络中的节点可以是计算机、交换机、路由等。如图51(a)所示,是一个简单的计算机网络模型。
图51网络与互联网
此外,计算机网络之间可以相互连接,组成更大的网络,如图51(b)所示,这种网络被称为互联网(internet)。互联网中为知名的是起源于美国的因特网(Internet),因特网是当今世界上的国际性网络。
根据网络的覆盖范围,网络可分为广域网(Wide Area Network,WAN)和局域网(Local Area Network,LAN)。局域网覆盖的范围较小,通常为一个城市或一个小型区域(如公司或学校);广域网覆盖的范围从几十公里到几千公里,可连接多个城市和国家,形成国际性的远程网络。
5.1.1协议与体系结构
网络通信是一个复杂的过程,为了保证通信能顺利进行,且目标主机能获取到准确、有效的数据,数据的封装必须遵循一系列事先约定好的规则,数据的传递与接收也要符合既定的流程。
人们把事先约定好的、为进行网络中的数据交换而建立的规则称为协议(protocol)。协议由如下几个要素组成。
语法,即数据与控制信息的结构或格式。
语义,即需要发出何种控制信息,完成何种动作以及做出何种响应。
第5章网络服务Linux系统管理与自动化运维 同步,即事件实现顺序的详细说明。
复杂通信过程中的各项操作可能会出现各种各样的结果,如果只为其制定一组协议,那么这组协议必定会非常复杂。因此,人们基于计算机通信的流程,设计了包含多个层次的体系结构,意图将一次通信过程划分为多个阶段,为每个阶段的操作制定不同的规则。
较为常见的体系结构有OSI(Open System Interconnect,开放式系统互联模型)和TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议模型)。
OSI由国家标准协会ISO制定,共分为7层,由上而下依次为应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,虽然OSI由ISO制定,但其实用性较差,并未得到广泛应用。
在OSI诞生之际,因特网已实现了全世界的基本覆盖,因此市面上应用广泛的体系结构为因特网中使用的TCP/IP体系结构。该结构包含4层,即应用层、传输层、网际层和网络接口层。
相比之下,OSI体系结构侧重于功能的层次划分,而TCP/IP侧重于网络设备间的数据传递,比OSI模型更为精简,也更加灵活。这两种体系结构间存在对应关系,其对应关系及各层常用的协议如图52所示。
图52体系结构与常用协议
除OSI和TCP/IP体系结构外,人们还提出了一种5层体系结构。这种体系结构由上而下依次为应用层、传输层、网络层、数据链路层和物理层,各层的功能分别如下。
应用层: 为应用进程提供服务。该层的协议定义应用程序使用互联网的规则。
传输层: 应用进程提供连接服务,实现两端进程的会话。该层的协议定义进程的通信规则。
网络层: 为分组交换网上的不同主机提供通信服务。该层的协议定义应用程序封装数据的格式,以及数据包的转发机制。
数据链路层: 该层从网络层获取的IP数据报组装成帧,在网络节点之间以帧为单位传输数据。该层的协议定义了帧的格式。
物理层: 物理层以比特为单位传输数据,对应网络中的硬件设备。该层对网络设备的特性进行规范,以保证物理设备能互相连接并正常使用。
这种5层的体系结构一般用于帮助人们理解计算机网络中各层之间的关系,并不作为一种真正的网络结构,读者只需了解即可。
5.1.2数据传输流程
数据由应用程序产生,若应用程序A要发送一组数据给应用程序B,则数据在传输过程中的变化如图53所示。
图53数据传输过程
图53中的5、4、3、2、1依次表示5层体系结构中的应用层、传输层、网络层、链路层、物理层。由图53可知,当两个应用程序进行通信,发送端进程A发送数据给进程B时,数据在传输过程中将会发生以下变化。
(1) 来自应用程序A的数据首先递达应用层,经应用层协议在其头部添加相应的控制信息后,该数据被传向传输层。
(2) 传输层接收到来自应用层的信息,经TCP/UDP协议添加TCP或UDP后,作为数据段或数据报被传送到网络层。
(3) 网络层接收到来自传输层的数据段或数据报,为其添加IP并封装为IP数据报,传送到链路层。
(4) 链路层接收到来自网络层的IP数据报,在其头尾分别添加头、尾控制信息,封装成帧数据,传递到物理层。
(5) 物理层接收到来自链路层的帧数据,将其转化为由0、1代码组成比特流,传送到物理传输媒介。
(6) 物理传输媒介中的比特流经路由转发,递达应用程序B所在的物理传输媒介中,之后TCP/IP协议簇中的协议先将比特流格式的数据转换为数据帧,并依次去除链路层、网络层、传输层和应用层添加的头部控制信息,后将实际的数据递送给应用程序B。至此,两个进程成功通过网络实现数据传递。
5.1.3IP地址与端口号
进行网络通信的对象实质上是网络中的进程,但一个网络中可能有许多台主机,每台主机中的进程也不,那么发送方是如何正确地确定接收方呢?在计算机网络中,人们常用IP地址标识一台主机,使用端口号标识网络中的一个进程。
1. IP地址
IP(Internet Protocol)是一种网络层协议。网络体系结构与各种协议规范了计算机通信的流程,但在通信之前,发送数据的主机应能明确接收方主机的地址。计算机网络中使用IP地址作为网络中一台主机的标识。
目前常见的IP地址有IPv4和IPv6两个版本,其中IPv4是广泛使用的版本,IPv6是版本。虽然IPv6是日后计算机IP地址的发展趋势,但目前普及率仍然较低,因此本书主要对IPv4进行讲解。
IPv4版本的IP地址由4个字段和3个分割字段的“.”组成,每个字段的取值范围为0~255,即0~28。如127.0.0.1就是一个标准的IPv4格式的地址,使用这种方式表示的地址称为“点分十进制”地址。IP地址中的字段也可以使用二进制表示,如127.0.0.1也可表示为11111111.00000000.00000000.00000001,这个地址是本机回送地址(Loopback Address),可用于网卡在本机内部的访问。
IPv4地址共分为5类,依次为A类IP地址、B类IP地址、C类IP地址、D类IP地址和E类IP地址。其中A、B、C类IP地址在逻辑上又分为两个部分: 部分标识网络,第二部分标识网络中的主机。如IP地址192.168.43.34,该地址的前3个字段标识网络号为192.168.43.0,后一个字段34标识该网络中的主机。不同网络中多台主机的IP具体如图54所示。
图54IP地址图示
由图54可知,处于同一网络中的主机由后一个字段区分。
如图54所示的IP地址都是C类IP地址,IP地址根据取值范围分类,具体如图55所示。
图55IP地址的分类
网络号相同的IP地址处于同一个网段,不同类别的IP地址其取值范围和可用IP数量也不相同,下面分别对各类IP地址的取值范围及可用IP数量进行说明。
1) A类地址
A类IP地址由1字节的网络号和3字节的主机号组成,网络号的位必须是0。A类IP地址的范围为1.0.0.1~126.255.255.254,可用A类网络共有126(27-2)个;每个网络的可用IP地址有224-2,即1 677 214个。
2) B类地址
B类IP地址由2字节的网络号和2字节的主机号组成,网络号的位必须是10。B类IP地址的范围为128.1.0.1~191.255.255.254,可用B类网络有16 384(214-2)个,每个网络的可用IP地址有216-2,即65 534个。
3) C类地址
C类IP地址由3字节的网络号和1字节的主机号组成,网络号的位必须是110。C类IP地址的范围为192.0.1.1~223.255.255.254。每个C类网络中可用IP地址有254(28-2)个。
4) D类地址
D类IP地址不分网络号和主机号,它固定以1110开头,取值范围为224.0.0.1~239255.255.254。D类IP地址并不指向特定的网络,目前这一类地址被用在多播中。
5) E类地址
E类地址不分网络号和主机号,它固定以11110开头,取值范围为240.0.0.1~255.255.255.254。E类IP地址仅在实验和开发中使用。
A、B、C类IP地址每个网络号中的可用IP地址总是2n-2(n为某类IP地址的网络号位数),这是因为主机号从0开始,但个编号0与网络号一起表示网络号(如C类IP地址的个网络号为127.0.0.0),后一个编号255与网络号一起作为广播地址存在(如C类IP地址的个广播地址为127.0.0.255)。
此外,每个网段中都有一部分IP地址是供给局域网使用的,这类IP地址也称为私有地址,它们的范围如下:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
由于使用4个字段表示的IP地址难以阅读和记忆,人们发明了域名系统,域名系统中的每个域名都对应一个IP地址,即使用域名或者与域名对应的IP地址可以访问网络上的同一台主机。例如,使用域名www.baidu.com或者IP地址202.108.22.5都能访问百度的主机。
2. 端口号
IP地址只能确定网络中的主机,要确定主机中的进程,还需用到端口号(port)。在计算机中,端口号是主机进程的标识,因此一个进程在向另一个进程发送数据时,要使用“IP地址 端口号”确定网络中的一个进程。
端口号的取值为65 535,其中0~1024号端口一般是由系统进程占用,用户可到www.iana.com查看由国际因特网地址分配委员会维护的官方已分配的端口列表。用户在配置自己的服务器时,可以选择一个大于1024、小于65 535的端口号对其进行标记,但要注意选择空闲端口号,避免与其他服务器产生冲突。
5.1.4子网掩码
子网掩码又称为地址掩码,它用于划分IP地址中的网络号与主机号,网络号所占的位用1标识,主机号所占的位用0标识,因为A、B、C类IP地址网络号和主机号的位置是确定的,所以子网掩码的取值也是确定的,分别如下。
(1) 255.0.0.0,等同于11111111.00000000.00000000.00000000,用于匹配A类地址。
(2) 255.255.0.0,等同于11111111. 11111111. 00000000. 00000000,用于匹配B类地址。
(3) 255.255.255.0,等同于11111111. 11111111. 11111111. 00000000,用于匹配C类地址。
子网掩码通常应用于网络搭建中,申请到网络号之后,用户可利用子网掩码将该网络号标识的网络划分为多个子网,假设申请到了一个C类网络,网络号为192.93.54.a,这个网络中的可用IP地址有254个,若想将这个网络划分为4个子网,则可将子网掩码第三个字段的前两位设置为1,得到子网掩码11111111.11111111.11000000.00000000,即255.255.192.0。此时得到的4个子网的IP地址取值范围介绍如下。
网络号: 192.93.54.0;IP范围: 192.93.54.1~192.93.54.62。
网络号: 192.93.54.64;IP范围: 192.193.54.65~192.93.54.126。
网络号: 192.93.54.128;IP范围: 192.193.54.129~192.93.54.190。
网络号: 192.93.54.192;IP范围: 192.193.54.193~192.93.54.254。
5.1.5协议与服务
服务是应用程序的一种,这种应用程序一般在后台运行,用于执行指定的系统功能,以支持其他程序(尤其是底层程序)的运行。系统的正常运行离不开各种各样的服务,而服务的运行又离不开协议。
服务与协议息息相关,在协议的控制下, 两个对等实体间的通信使得本层能够向上一层提供服务,而要实现本层的协议,还需要使用下一层提供的服务。形象地说,协议是“水平的”,用于规定一次通信中处于同一层的两个对等实体的通信规则;而服务是“垂直的”,本层服务协助的是当前实体的上层服务。
对工作在网络中的主机而言,配置与网络相关的服务必不可少,之后将对Linux系统中与网络相关的几种服务进行讲解。
5.2DHCP服务
DHCP即动态主机配置协议,是Dynamic Host Configuration Protocol的缩写。DHCP服务分为服务器和客户端两部分,其中服务器的功能为集中管理与IP相关的网络设置数据,处理客户端的DHCP请求,客户端的功能为使用服务器分配的IP配置网络。
DHCP服务的主要功能是动态分配IP地址,它可以缓解IP地址不足这一问题。本节将对DHCP的常用术语、工作流程与配置方法进行讲解。
5.2.1DHCP常用术语
DHCP服务常用的术语有DHCP服务器、DHCP客户机、DHCP中继代理、作用域、超级作用域、排除范围、地址池、租约、保留等,下面分别对这些术语进行简单介绍。
1. DHCP服务器
DHCP服务器是用于提供网络设置参数给DHCP客户机的Internet主机,用于配置DHCP服务器的主机必须使用静态IP地址,配置子网掩码与默认网关。
2. DHCP客户机
DHCP客户机是通过DHCP服务获取网络配置参数的Internet主机。若网络中存在DHCP服务器,则开启DHCP服务的客户机在接入网络后可获得由DHCP服务器动态分配的IP地址。
3. DHCP中继代理
DHCP中继代理是在DHCP客户机和服务器之间转发DHCP消息的主机或路由器。
4. 作用域
作用域指使用DHCP服务的网络中可用物理IP地址的集合,通常情况下,作用域被设置为网络上的一个子网。DHCP服务器只能为DHCP客户端分配存在于作用域中的空闲IP地址。
5. 超级作用域
超级作用域是DHCP服务的一种管理功能,可用于物理子网上多个逻辑IP子网作用域的管理性分组,即将多个作用域组合为单个管理实体进行统一管理。
6. 排除范围
排除范围用于限定从DHCP服务作用域内排除的有限IP地址集合。排除范围中的IP地址为预留地址,这些地址通常预留给一些需要固定IP的设备(如服务器、可网管交换机等)使用。当DHCP服务动态为计算机分配IP时,普通设备不会获取到排除范围中的IP地址。
7. 地址池
在定义了DHCP服务的作用域,并设置排除范围后,剩余的可用IP地址集合称为地址池,DHCP服务器可获取地址池中的IP地址分配给网络上的DHCP客户机。
8. 租约
DHCP的前身是BOOTP(Bootstrap Protocol,引导程序协议),与BOOTP相比,DHCP新增了“租约”的概念。租约是指DHCP服务器分配IP地址时,为DHCP客户机指定的客户机使用IP地址的时间长度。
若超过租约时间,客户机应通过服务器更新IP地址租约,否则DHCP服务器将回收该客户机占用的IP地址。若地址池富足,DHCP服务器中会保存IP地址与主机MAC地址的映射列表中的此条记录,此时客户机若申请IP地址,则仍可获取之前使用的IP;但若地址池不足,这个IP地址将会被租给其他主机。
9. 保留
保留是DHCP服务器的一种功能,使用该功能可使子网中的某个硬件设备始终使用相同的IP地址。
5.2.2DHCP的工作流程
在一个配置了DHCP服务器的网络中,若有新加入的客户机需要获取IP地址,则其过程如下。
(1) 客户机通过广播发送dhcpdiscover报文寻找DHCP服务器。dhcpdiscover中包含源地址、目的地址、端口号和客户机的MAC地址,其中源地址为0.0.0.0,目的地址为255.255.255.255,端口号为67(67为DHCP服务器的默认端口),由于客户机此时还没有获取到IP地址,网络中的DHCP服务器通过MAC地址来识别该主机。
(2) 服务器为客户机提供IP租约地址。服务器监听到客户端发送的dhcpdiscover报文后,会从地址池中选择前面的空闲IP,连同一些TCP/IP设置信息生成dhcpoffer报文一起返回给客户机。
(3) 客户端接收IP租约信息。客户端可能会收到网络上多台DHCP服务器返回的租约信息,但通常会挑选先递达的租约信息来完善自己的网络配置信息,同时客户机还会再次通过广播向网络发送dhcprequest报文,通知所有DHCP服务器它将接收哪台服务器提供的IP地址。
若客户端检测到服务器返回的租约信息中包含的IP地址已被占用,则会向发出此条租约信息的服务器发送dhcpdecline报文,拒绝接收响应租约,并重新发送dhcpdiscover报文寻找DHCP服务器。
(4) 租约确认。若客户机成功接收租约,则DHCP服务器会在接收到客户机发送的dhcprequest报文后,向客户机发送回应信息dhcpack,确认租约正式生效,这也意味着一次DHCP工作正式完成。
5.2.3安装配置DHCP
在安装DHCP前可先使用rpm命令查看系统中已有的DHCP软件包,具体命令如下: [root@localhost ~]#rpm -qa | grep dhcp
以上命令的输出结果如下:dhcp-common-4.2.5-47.el7.centos.x86_64
dhcp-libs-4.2.5-47.el7.centos.x86_64
由rpm命令的输出结果可知,系统中尚未安装DHCP软件包,此时可使用yum命令为系统安装DHCP软件包,具体命令如下:[root@localhost ~]#yum -y install dhcp
再次使用rpm查看DHCP软件包列表,输出结果如下:dhcp-common-4.2.5-47.el7.centos.x86_64
dhcp-libs-4.2.5-47.el7.centos.x86_64
dhcp-4.2.5-47.el7.centos.x86_64
DHCP服务安装完成后需要进一步对其进行配置。DHCP服务的配置文件为/etc/dhcp/dhcpd.conf,初始时该文件中不存在配置信息,使用cat命令查看其中内容,具体如下所示:[root@localhost ~]#cat /etc/dhcp/dhcpd.conf
#
#DHCP Server Configuration file.
#see /usr/share/doc/dhcp/dhcpd.conf.example
#see dhcpd.conf(5) man page
#
以上打印的是DHCP配置文件的说明信息,该信息表明用户可参照系统给出的模板来配置dhcpd.conf文件。当前系统中DHCP服务软件包版本为4.2.5,因此模板的路径为/usr/share/doc/dhcp4.2.5/dhcpd.conf.example,模板中的有效内容如下:option domain – name “example.org”;
option domain – name – servers ns1.example.org, ns2.example.org;
default – lease – time 600;
max – lease – time 7200;
log – facility local7;
subnet 10.152.187.0 netmask 255.255.255.0 {
}
subnet 10.254.239.0 netmask 255.255.255.224 {
range 10.254.239.10 10.254.239.20;
option routers rtr – 239 – 0 – 1.example.org, rtr – 239 – 0 – 2.example.org;
}
subnet 10.254.239.32 netmask 255.255.255.224 {
range dynamic – bootp 10.254.239.40 10.254.239.60;
option broadcast – address 10.254.239.31;
option routers rtr – 239 – 32 – 1.example.org;
}
subnet 10.5.5.0 netmask 255.255.255.224 {
range 10.5.5.26 10.5.5.30;
option domain – name – servers ns1.internal.example.org;
option domain – name “internal.example.org”;
option routers 10.5.5.1;
option broadcast – address 10.5.5.31;
default – lease – time 600;
max – lease – time 7200;
}
host passacaglia{
hardware ethernet 0:0 : c0 : 5d : bd : 95;
filename “vmunix.passacaglia”;
server – name “toccata.fugue.com”;
}
host fantasia{
hardware ethernet 08:00 : 07 : 26 : c0 : a5;
fixed – address fantasia.fugue.com;
}
class “foo” {
match if substring(option vendor – class – identifier, 0, 4)=”SUNW”;
}
shared – network 224 – 29 {
subnet 10.17.224.0 netmask 255.255.255.0 {
option routers rtr – 224.example.org;
}
subnet 10.0.29.0 netmask 255.255.255.0 {
评论
还没有评论。