【转载】茶叶蛋干货!《超容易的Linux系统管理入门书》(连载十)进行动态主机配置DHCP
使用动态主机配置协议DHCP(Dynamic Host Configuration Protocol)则可以避免网络参数变化后一些繁琐的配置,客户端可以从DHCP服务端检索相关信息并完成相关网络配置,在系统重启后依然可以工作。DHCP基于C/S模式,主要用于大型网络。DHCP提供一种动态指定IP地址和相关网络配置参数的机制。本节主要介绍DHCP的工作原理及DHCP服务端与DHCP客户端的部署过程。
想每天能听到小妞的语音播报,想学更多学校里和书本上学不到的IT技术或技能,欢迎关注微信公众号:xiniubook2008。或加微博:我的图书我做主,关注与论坛的一些活动,免费获书。
12.3.1 DHCP的工作原理
动态主机配置协议(DHCP)是用来自动给客户端器分配TCP/IP信息的网络协议,如IP地址、网关、子网掩码等信息。每个DHCP客户端通过广播连接到区域内的DHCP服务器,该服务器会相应请求返回包括IP地址、网关和其他网络配置信息。DHCP的请求过程如图12.3所示。
图12.3 DHCP请求过程
客户端请求IP地址和配置参数的过程有以下几个步骤:
(1)客户端需要寻求网络IP地址和其他网络参数,然后向网络中广播,客户端发出的请求名称叫DHCPDISCOVER。如广播网络中有可以分配IP地址的服务器,服务器会返回相应应答,告诉客户端可以分配,服务器返回包的名称叫DHCPOFFER,包内包含可用的IP地址和参数。
(2)如果客户在发出DHCPOFFER包后一段时间内没有接收到响应,会重新发送请求,如广播区域内有多于一台的DHCP服务器,由客户端决定使用哪个。
(3)当客户端选定了某个目标服务器后,会广播DHCPREQUEST包,用以通知选定的DHCP服务器和未选定的DHCP服务器。
(4)服务端收到DHCPREQUEST后会检查收到的包,如果包内的地址和所提供的地址一致,证明现在客户端接收了是自己提供的地址,如果不是,则说明自己提供的地址未被采纳。如被选定的服务器在接收到DHCPREQUEST包以后,因为某些原因可能不能向客户端提供这个IP 地址或参数,可以向客户端发送DHCPNAK包。
(5)客户端在收到包后,检查内部的IP地址和租用时间,如发现有问题,则发包拒绝这个地址,然后重新发送DHCPDISCOVER包。如无问题,就接受这个配置参数。
12.3.2 配置DHCP服务器
本节主要介绍DHCP服务器的配置过程,包含安装,配置文件设置,服务器启动等步骤。
1.软件安装
DHCP服务依赖的软件可以从rpm包安装或从源码进行安装,本节以rpm包为例说明DHCP服务的安装过程,如示例12-14所示。
【示例12-14】
#确认当前系统是否安装相应软件包
[root@CentOS~]# rpm -qa|grep dhcp
dhcp-4.1.1-34.P1.el6.centos.x86_64
dhcp-common-4.1.1-34.P1.el6.centos.x86_64
#如使用rpm安装,使用如下命令
[root@CentOSPackages]# rpm -ivh dhcp-4.1.1-34.P1.el6.centos.x86_64.rpm
经过上面的设置,DHCP服务已经安装完毕,主要的文件如下:
q /etc/dhcp/dhcpd.conf为DHCP主配置文件。
q /etc/init.d/dhcpd DHCP服务起停脚本。
2.编辑配置文件/etc//dhcpd.conf
要配置DHCP服务器,需修改配置文件/etc/dhcp/dhcpd.conf。如果不存在则创建该文件。本示例实现的功能为当前网络内的服务器分配指定IP段的IP地址,并设置过期时间为2天。配置文件如下。
【示例12-15】
[root@CentOSPackages]# cat -n /etc/dhcp/dhcpd.conf
1 #定义所支持的DNS动态更新类型。none:表示不支持动态更新,interim:表示DNS互动更新模式,ad-hoc:表示特殊DNS更新模式
2 ddns-update-style ad-hoc;
3 #指定接收DHCP请求的网卡的子网地址,注意不是本机的IP地址。netmask为子网掩码
4 subnet 192.168.19.0 netmask255.255.255.0{
5 #指定缺省网关
6 option routers 192.168.19.1;
7 #指定缺省子网掩码
8 option subnet-mask 255.255.255.0;
9 #指定最大租用周期
10 max-lease-time 172800 ;
11 #此DHCP服务分配的IP地址范围
12 range 192.168.19.230 192.168.19.240;
13 }
以上示例文件列出了一个子网的声明,包括routers缺省网关、subnet-mask子网掩码和max-lease-time最大租用周期,单位是秒。配置文件的更多选项更多可以参考“man dhcpd.conf”获取更多帮助信息。
【示例12-16】
[root@CentOSPackages]# /etc/init.d/dhcpd start
Starting dhcpd: [ OK ]
如启动失败可以参考屏幕输出定位错误内容,或查看/var/log/messages的内容,然后参考dhcpd.conf的帮助文档。
12.3.3 配置DHCP客户端
当服务端启动成功后,客户端需要做以下配置以便自动获取IP地址。客户端网卡配置如示例12-17所示。
【示例12-17】
[root@CentOS~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
HWADDR=00:0c:29:be:db:d5
TYPE=Ethernet
UUID=363f47a9-dfb8-4c5a-bedf-3f060cf99eab
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
如需使用DHCP服务, BOOTPROTO=dhcp表示将当前主机的网络IP地址设置为自动获取方式。测试过程如示例12-18所示。
【示例12-18】
[root@CentOS~]# service network restart
Shutting down interface eth1: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth1:
Determining IP information for eth1... done. [ OK ]
#启动成功后确认成功获取到指定IP段的IP地址。
[root@CentOS~]# ifconfig
eth1 Link encap:Ethernet HWaddr00:0C:29:BE:DB:D5
inet addr:192.168.19.230 Bcast:192.168.19.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:febe:dbd5/64Scope:Link
UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXpackets:573 errors:0 dropped:0 overruns:0 frame:0
TXpackets:482 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RXbytes:59482 (58.0 KiB) TX bytes:67044(65.4 KiB)
客户端配置为自动获取IP地址,然后重启网络接口,启动成功后使用ifconfig查看成功获取到IP地址。
注意:本节介绍了DHCP的基本功能,DHCP包含其他更多的功能,如需了解可参考DHCP的帮助文档或其他资料。
喜欢可以购买《超容易的Linux系统管理入门书》,京东、当当、亚马逊均有销售。
http://item.jd.com/11403348.html
http://product.dangdang.com/23418126.html
【转载】茶叶蛋干货!《超容易的Linux系统管理入门书》(连载十)进行动态主机配置DHCP的更多相关文章
- 【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件
除了使用Linux的包管理机制进行软件的安装.更新和卸载,从源代码进行软件的安装也是非常常见的,开源软件提供了源代码包,开发者可以方便的通过源代码进行安装.从源码安装软件一般经过软件配置.编译软件.执 ...
- 【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户
Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...
- 【转载】干货来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载七)LAMP集成安装
学Linux做程序开发也好,做系统管理也好,做网络管理员也好,做系统运维也好,不会LAMP和LNMP,那就等于连皮毛都不会!本篇是文字版的LAMP集成安装,下次连载我们要介绍LNMP的文字版安装.有喜 ...
- 【转载】Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载六)Linux的网络配置
本篇是Linux小白最佳实践第6篇,目的就是让白菜们了解Linux网络是如何配置的.Linux系统在服务器市场占有很大的份额,尤其在互连网时代,要使用计算机就离不开网络. 想每天能听到小妞的语音播报, ...
- 【转载】Linux小白福利:《超容易的Linux系统管理入门书》(三)在虚拟机上安装Linux
本篇是Linux小白最佳实践第3篇,目的就是让白菜们自己动手安装个Linux玩玩.如果你是Linux小白,请务必亲自动手来安装.不想安装多个操作系统的,虚拟机是最佳选择,一台电脑上可以用虚拟机安装7. ...
- 【转载】应读者强烈要求给出《超容易的Linux系统管理入门书》一书的主要知识点
刚开始了一篇连载,收到广大Linux爱好者的反馈,非常欣慰.大家对Linux学习感到很迷茫,不知道学哪些内容,如何学习? <超容易的Linux系统管理入门书>一书是腾讯Linux专家在腾讯 ...
- 【转载】应广大群众的要求,今天开始连载《超容易的Linux系统管理入门书》一书
学习Linux容易嘛?我说超容易,你肯定不信.那学习Linux最好的学习方法是什么,就是脑子里面一直提问题,不停的提,时时刻刻提,如果你没有问题,那再容易的学习书你也看不懂. <超容易的Linu ...
- Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载五)Linux系统的对话方式
本篇是Linux小白最佳实践第5篇,目的就是让白菜们了解Linux进程之间是如何对话的.之前连载的几篇,在微信上引起了很多的反响,有人也反映图多文字少,感觉没有干货.本篇选了大部分是实战讲解的&quo ...
- Linux学习入门-------------------------VMvare与镜像的安装与配置
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_39038465/article/d ...
随机推荐
- C# 制作外挂常用的API
C#做外挂的常用API,本人用了很久,基本没发现问题 using System; using System.Collections.Generic; using System.Text; using ...
- webqq 获得好友列表hash算法 获得最新hash的方法
webqq获得好友列表的hash算法,大约每一个月中旬会变动一次.知道怎么获得他就能够了. js文件路径 http://web.qstatic.com/webqqpic/pubapps/0/50/eq ...
- Android 实现书籍翻页效果----升级篇
自从之前发布了<Android 实现书籍翻页效果----完结篇 >之后,收到了很多朋友给我留言,前段时间由于事情较多,博客写得太匆忙很多细节地方没有描述清楚.所以不少人对其中的地方有不少不 ...
- python selenium自动化(一)点击页面链接测试
需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回到原始页面. 要完成这个需求就必须实现3点: 1. 找 ...
- 高并发网络编程之epoll详解
select.poll和epoll的区别 在linux没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序.在大数据.高并发.集群等一些名词 ...
- java_有返回值线程_提前加载例子
package com.demo.test3; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionE ...
- php生成excel或php生成csv
一.php生成excel 使用phpexcel类文件生成 二.php生成csv <?php$action ="make";if ($action=='make'){ $fp ...
- 使用js对中文进行gbk编码
使用js对中文进行gbk编码 分类: JS/JQUERY2013-02-09 11:29 436人阅读 评论(0) 收藏 举报 最近遇到一个问题,需要通过js来从一个utf-8编码的页面传递一个含中文 ...
- oracle索引、 管理权限和角色
索引 1 单列索引create index 索引名 on 表名(列名): 2复合索引在同一张表上可以有多个索引,但是要求列的组合必须不同.create index 索引名 on 表名(列名1, 列名2 ...
- iOS搜索框
在iOS8以前搜索框是作为一个控件添加到TableViewController中, 有系统自带的搜索变量self.searchDisplayController 遵守一个搜索显示的协议<UISe ...