使用动态主机配置协议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的更多相关文章

  1. 【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件

    除了使用Linux的包管理机制进行软件的安装.更新和卸载,从源代码进行软件的安装也是非常常见的,开源软件提供了源代码包,开发者可以方便的通过源代码进行安装.从源码安装软件一般经过软件配置.编译软件.执 ...

  2. 【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户

    Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...

  3. 【转载】干货来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载七)LAMP集成安装

    学Linux做程序开发也好,做系统管理也好,做网络管理员也好,做系统运维也好,不会LAMP和LNMP,那就等于连皮毛都不会!本篇是文字版的LAMP集成安装,下次连载我们要介绍LNMP的文字版安装.有喜 ...

  4. 【转载】Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载六)Linux的网络配置

    本篇是Linux小白最佳实践第6篇,目的就是让白菜们了解Linux网络是如何配置的.Linux系统在服务器市场占有很大的份额,尤其在互连网时代,要使用计算机就离不开网络. 想每天能听到小妞的语音播报, ...

  5. 【转载】Linux小白福利:《超容易的Linux系统管理入门书》(三)在虚拟机上安装Linux

    本篇是Linux小白最佳实践第3篇,目的就是让白菜们自己动手安装个Linux玩玩.如果你是Linux小白,请务必亲自动手来安装.不想安装多个操作系统的,虚拟机是最佳选择,一台电脑上可以用虚拟机安装7. ...

  6. 【转载】应读者强烈要求给出《超容易的Linux系统管理入门书》一书的主要知识点

    刚开始了一篇连载,收到广大Linux爱好者的反馈,非常欣慰.大家对Linux学习感到很迷茫,不知道学哪些内容,如何学习? <超容易的Linux系统管理入门书>一书是腾讯Linux专家在腾讯 ...

  7. 【转载】应广大群众的要求,今天开始连载《超容易的Linux系统管理入门书》一书

    学习Linux容易嘛?我说超容易,你肯定不信.那学习Linux最好的学习方法是什么,就是脑子里面一直提问题,不停的提,时时刻刻提,如果你没有问题,那再容易的学习书你也看不懂. <超容易的Linu ...

  8. Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载五)Linux系统的对话方式

    本篇是Linux小白最佳实践第5篇,目的就是让白菜们了解Linux进程之间是如何对话的.之前连载的几篇,在微信上引起了很多的反响,有人也反映图多文字少,感觉没有干货.本篇选了大部分是实战讲解的&quo ...

  9. Linux学习入门-------------------------VMvare与镜像的安装与配置

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_39038465/article/d ...

随机推荐

  1. C# 添加类库依赖

  2. Python dictionary implementation

    Python dictionary implementation http://www.laurentluce.com/posts/python-dictionary-implementation/ ...

  3. Rating

    Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission ...

  4. Steps to disable DRLs with GM Tech2 scanner

    It is possible to get daytime running time disabled manually. But the problem can be easily settled ...

  5. html笔记01:顺序和无序列表

    <!DOCTYPE html> <html> <body> <li>Yellow <ul><li>Wet soil</li ...

  6. cx_Oracle安装说明

    简介 cx_Oracle是用python连接oracle的驱动模块,参考文章: [cx_Oracle文档](http://cx-oracle.sourceforge.net/html/index.ht ...

  7. JMS笔记(一)

    1.jms概念 Java Message Service为 Java程序提供一种访问企业消息系统的方法,JMS应用由JMS生产者.JMS Provider.JMS消费者构成 1.1. 一条Messag ...

  8. 给jdk写注释系列之jdk1.6容器(8)-TreeSet&NavigableMap&NavigableSet源码解析

    TreeSet是一个有序的Set集合. 既然是有序,那么它是靠什么来维持顺序的呢,回忆一下TreeMap中是怎么比较两个key大小的,是通过一个比较器Comparator对不对,不过遗憾的是,今天仍然 ...

  9. javaweb学习总结七(XML语言作用、语法)

    一:XML语言的概念以及作用 1:xml概念:extensible Markup language,可扩展行标记语言,因为html的语法比较混乱,不够严谨. 用html写的系统不好维护,所以w3c组织 ...

  10. [设计模式]<<设计模式之禅>>关于依赖倒置原则

    依赖倒置原则(Dependence Inversion Principle,DIP)这个名字看着有点别扭,“依赖”还“倒置”,这到底是什么意思?依赖倒置原则的原始定义是 High level modu ...