DHCP服务概述

名称:DHCP  Dynamic  Host  Configuration Protocol

功能:DHCP是一个局域网的网络协议。使用UDP协议工作,主要有两个用途:

1、给内部网络或网络服务提供商自动分配IP地址,主机名,DNS服务器,域名

2、配合其他服务,实现集成化管理功能。如无人值守安装服务器

 

特点:C/S 模式   客户端/服务端    bs apache

自动分配IP地址,方便管理

DHCP不会同时租借相同的IP地址给两台主机;

DHCP管理员可以约束特定的计算机使用特定的IP地址

可以为每个DHCP作用域设置很多选项

客户机在不同子网间移动时不需要重新设置IP地址,每次都自动获取ip地址就可以了。

 

DHCP的缺点

当网络上存在多服务器时,一个DHCP服务器不能查出已被其他服务器租出去的IP地址;

DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP协议转发。

 

端口:

DHCP服务使用:端口67(bootps) 68(bootpc)

查看   vim/etc/services

wKioL1ekN-nyDVPVAACV1mwQNwc794.jpg

 

DHCP协议由 bootp 协议发展而来,是BOOTP的增强版本,bootps 代表服务端端口,bootpc代表客户端端口

bootp 协议:引导程序协议(bootp) 它可以让无盘工作站从一个中心服务器上获取IP地址,为局域网中的无盘工作站分配动态IP地址,并不需要每个用户去设置静态IP地址。

 

TOOTP有一个缺点:在设定前需事先获得客户端的硬件地址,而且 MAC地址与IP的对应是静态的。换而言之,BOOTP非常缺乏“动态性”, 若在有限的IP资源环境中,BOOTP的一一对应会造成非常可观的浪费

 

DHCP可以说是BOOTP的增强版本,它分为两个部分:一个是服务器端,而另一个是客户端。所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配下来的IP环境数据。比较BOOTP,DHCP透过“租约”的概念,有效且动态的分配客户端TCP/IP设定,而且 作为兼容考虑,DHCP也完全照顾了BOOTP Client 需求。

 

DHCP服务运行原理:

DHCP客户端向服务端请求IP地址过程

dhcp服务_第1张图片

discover

目标端口           源IP               目标IP

udp67            0.0.0.0             255.255.255.255

即  DHCP客户机寻找 DHCP服务器的过程。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的) 。  发送DHCP DISCOVER 发现信息来寻找DHCP服务器。即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了 TCP/IP 协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应

 

offer

目标端口           源IP                目标IP

68                dhcp服务器的ip    255.255.255.255

即 DHCP服务器提供IP地址的阶段。在网络中接收到DHCPDISCOVER 发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机。向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCPOFFER 提供信息

 

request

目标端口           源IP                目标IP

udp  67          0.0.0.0              255.255.255.255

即 DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCPOFER提供信息,则DHCP客户机只接受第一个收到的DHCPoffer提供信息,然后它就以广播方式回答一个DHCPREQUEST请求信息,该信息中包含它所选定的DHCP服务器请求IP地址的内容。之所以要以广播形式回答,是为了通知所有DHCP服务器,它将选择某台DHCP服务器所提供的IP地址。

 

ack

目标端口           源IP                目标IP

udp 68           服务器ip             255.255.255.255

即 DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCPREQUEST请求信息后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCPack确认信息。告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外 除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址

 

注意:客户端执行DHCP DISCOVER后 ,如果没有DHCP服务器响应客户端的请求,客户端会随机使用 169.254.0.0/16 网段中的一个IP地址配置本机地址。

 

169.254.0.0/16 是windows自动专有IP寻址范围,也就是在无法通过DHCP获取IP地址时,由系统自动分配的IP地址段。

 

早先的linux上并不会产生这条路由,现在有这条路由大概是为了和windows兼容。

[root@xuegod63 ~]#route -n     #查看路由表,netstat -rn也可以。

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.9.100.0     0.0.0.0         255.255.255.0   U    0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U    1002   0        0 eth0

0.0.0.0         192.9.100.1     0.0.0.0         UG   0      0        0 eth0

 

 

软件包安装

root@xuegod63 ~]# yuminstall dhcp -y

 

配置文件位置

/etc/dhcp/dhcpd.conf

 

[root@xuegod63 ~]# cat/etc/dhcp/dhcpd.conf

#

# DHCP ServerConfiguration file.

#   see /usr/share/doc/dhcp*/dhcpd.conf.sample

#   see 'man 5 dhcpd.conf'

 

[root@xuegod63 ~]# cp/etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak

 [root@xuegod63~]#cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample/etc/dhcp/dhcpd.conf

cp: overwrite`/etc/dhcp/dhcpd.conf'? y

 

当DHCP主程序包安装好后会自动生成主配置文件的范本文件

/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

而在/etc目录下回自动建立一个空白的dhcpd.conf 主配置文件。

现在我们将范本配置文件复制到/etc 目录下替换掉空白的dhcpd.conf主配置文件

 

 

服务启动关闭脚本,查看端口

/etc/init.d/dhcpd start

service dhcpd restart

 

开机启动

chkconfig  dhcpd on      #配置的服务要保证开机启动

1)chkconfig

运行级别3  自动加载dhcpd 服务

chkconfig --level 3dhcpd on

运行级别3  关闭自动加载dhcpd服务

chkconfig --level 3dhcpd off

 

 

修改配置文件实战

说明:

dhcp 范本配置文件内容包含了部分参数、声明以及选项的用法,其中注释部分可以放在任何位置,并以“#”号开头,当一行内容结束时,以“;”号结束,大括号所在行除外】

 

可以看出整个配置文件分成全局和局部两个部分。但并不容易看出那些属于参数,那些属于声明和选项

 

概念与协议:

作用域:可以分配IP的范围 subnet

地址池:可以分配给客户端的IP,range包括的IP

保留地址: 指定给某个客户端使用一个特定IP,通过host配置的

租约(时间): 客户端可以使用这个IP地址的时间

 

 

配置文件:/etc/http/httpd.conf    部分配置解释

#option  definitions common  to all supportednetworks...  定义全局配置,通用于所有支持的网络选项

option  domain-name “example.org”;  #为客户端指定所属的域

option  domain-name-servers  ns1.example.com.org,ns2.example.com.org; 为客户端指定DNS服务器地址

 

(3)default-lease-time 600;

作用:定义默认IP租约时间,以秒为单位的租约时间。

50%:续约。(续不上继续用)

87.5%:再次续约。(续不上找别人)

dhcp客户机除了在开机的时候发出DHCPREQUEST 请求之外,在租约期限一半的时候也会发出DHCPrequest,如果此时得不到DHCP服务器的确认的话,工作站还可以继续使用该IP;当租约起过了87.5%时,如果客户机仍然无法与当初的DHCP服务器联系上,它将与其他DHCP服务器通信。如果网络上再没有任何DHCP协议服务器运行时,该客户机必须停止使用该IP地址,并从新发送一个DHCPdiscover数据包 开始,再一次重复整个过程。要是您想退组,可以随时送出DHCPRELEASE命令解约,就算您的租约在前一秒钟才获得的。

 

(4)max-lease-time number7200;

作用:定义客户端IP租约时间的最大值,当客户端超过租约时间,却尚未更新IP时,最长可以使用该IP的时间;

 

例:

比如,机器在开机获得IP地址后,关机了。这时 当时间过了 default-lease-time 600秒后,没有机器向DHCP续约,DHCP会保留7200秒,保留此IP地址不用于分配给其他机器。当超过7200秒后,将不再保留此IP地址给此机器。

 

注意:(3)、(4)都是以秒为单位的租约时间,该项参数可以作用在全局配置中,也可以作用在局部配置中。

 

log-facility local7;           #定义日志类型为  local7

 

声明一般用来指定IP作用域,定义为客户端分配的IP 地址池等等

声明格式如下:

subnet 网络号 netmask 子网掩码{

选项或参数

}

 

例:

常见声明的使用 如下:

(1) subnet 网络号 netmask 子网掩码{......}

作用:定义作用域,指定子网

subnet 10.5.5.0 netmask255.255.255.224 {

  range 10.5.5.26 10.5.5.30;

  option domain-name-serversns1.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;

注意: 网络号必须与DHCP服务器的网络号相同

 

下面介绍一下每个选项的含义

(1) range 起始IP地址   结束IP地址

作用: 指定动态IP地址范围

注意:可以在subnet(子网)声明中指定多个range,但多个range所定义IP范围不能重复

 

常用选项介绍

选项通常用来配置DHCP客户端的可选参数,比如定义客户端的DNS地址,默认网关等。选项内容都是以option关键字开始。

 

常见选项使用如下:

(1)option  routers  IP地址

作用:为客户端指定默认网关

如:optionrouters 10.5.5.1

(3) option  domain-name-servers  IP 地址

作用:为客户端指定DNS服务器地址

注意:(1)、(2) 、(3)选项可以用在全局配置中,也可以用在局部配置中。

 

租约数据库文件

租约数据库文件用于保存一系列的租约声明,其中包含客户端的主机名、MAC地址、分配到的IP地址

以及IP地址的有效期等相关信息。这个数据库文件是可编辑的ASCII格式文本文件。每当发生租约变化的时候,都会在文件结尾添加新的租约记录。

DHCP 刚安装好后租约数据库文件 dhcpd.leases 是个空文件

/var/lib/dhcpd/dhcpd.leases

当DHCP服务正常运行后就可以使用cat 命令查看租约数据库文件内容了。

 

 

实例:

公司有60台计算机,IP地址段为192.168.0.1-192.168.0.254. 子网掩码是255.255.255.0,网关为192.168.0.1,192.   网段地址168.0.2-192.168.0.30给服务器配置,客户端可以使用的地址段为192.168.0.100-200,其余ip地址为保留地址。

 

实验环境:

我的虚拟机使用桥接模式是否可行? 不行,因为你的局域网中已经有dhcp服务器,这样你就很难让你的客户端从你的dhcp服务器获取地址。同时也会造成公司局域网中其他机器因为获取你的dhcp服务器分配的地址 而上不了网

 

虚拟机网卡置成vmnet4

client端 设置为自动获取ip地址

dhcp服务_第2张图片

客户端

dhcp服务_第3张图片

wKioL1ekOGvA1LrQAABhEyohQNM727.jpg


例2: ip地址绑定

在DHCP 中的IP地址绑定用于给客户端分配固定IP地址。比如服务器需要使用固定IP地址就可以使用IP地址绑定。通过MAC地址与IP地址的对应关系为指定的物理地址计算机分配固定IP地址。

整个配置过程需要用到host声明和hardware 、fixed-address参数。

 

(1) host 主机名{......}

作用:用于定义保留地址

(2)hardware 类型 硬件地址

作用:定义网络接口类型和硬件地址。常用类型为以太网(ethernet),地址为MAC地址。

(3)fixed-address IP地址

作用: 定义DHCP客户端指定的IP地址。

 

vim/etc/dhcp/dhcpd.conf    添加host字段

dhcp服务_第4张图片

在服务端重启dhcp服务

service dhcpd restart

 

在客户端重启网卡

service  network restart

dhcp服务_第5张图片