码迷,mamicode.com
首页 > 其他好文 > 详细

DHCP服务

时间:2017-09-29 00:11:47      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:linux   dhcp   服务器   


DHCP服务概述:

名称:DHCP - Dynamic Host Configuration Protocol 动态主机配置协议

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


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

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


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

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

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

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

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

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


DHCP的缺点:

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

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


端口:

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

例:查看

#vim /etc/services

技术分享



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


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


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


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


DHCP服务运行原理:


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


技术分享


-----DHCP DISCOVER------>  udp        目标端口67    源IP:0.0.0.0    目的IP:255.255.255.255

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


<------DHCP OFFER---------   udp     目标端口68     源IP是DHCP服务器的IP 目的IP:255.255.255.0

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


------DHCP REQUEST------>   udp      目标端口67    源IP:0.0.0.0    目的IP:255.255.255.255

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


<------DHCP ACK-----------   udp      目标端口68    源IP:服务器的IP    目标IP:255.255.255.255

#即DHCP服务器确认所以工的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP REQUEST请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ACK 确认信息,告诉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兼容。

技术分享





安装DHCP:

[root@www ~]# yum install dhcp

技术分享


配置文件位置:

/etc/dhcp/dhcpd.conf

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

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

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

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

[root@www ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y


服务启动关闭脚本两种方式:

[root@www ~]# /etc/init.d/dhcpd start
正在启动 dhcpd:                                           [失败]
[root@www ~]# service dhcpd start
正在启动 dhcpd:                                           [失败]

由于刚安装的DHCP程序,是没有办法直接启动的,所以报错了。


设置DHCP开机启动:

[root@www ~]# chkconfig dhcpd on
[root@www ~]# chkconfig --list dhcpd
dhcpd          	0:关闭	1:关闭	2:启用	3:启用	4:启用	5:启用	6:关闭

如果想改变启动级别,比如说设置只在init 5 下启动,关闭2、3、4级别。

[root@www ~]# chkconfig --level 234 dhcpd off
[root@www ~]# chkconfig --list dhcpd
dhcpd          	0:关闭	1:关闭	2:关闭	3:关闭	4:关闭	5:启用	6:关闭


    修改配置文件

说明:

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


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


协议与概念:

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

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

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

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


配置文件详解:

# option definitions common to all supported networks...    #定义全局配置,同用与所有支持的网络选项。
option domain-name "example.org";                           #为客户端指定所属的域
option domain-name-servers ns1.example.org, ns2.example.org;        #为客户端指定DNS服务器地址

default-lease-time 600;            #默认组约时间 单位秒

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

50%:续约,续不上继续用

87.5%:再次续约,续不上寻找其他DHCP服务器(老子不租了= =)

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


max-lease-time 7200;               #最大租约时间 单位秒

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

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


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


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

声明格式如下:

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

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

如:

技术分享

注意:网络号必须与DHCP服务器的网络号相同。否则会报错


下面介绍以下每项的含义:

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

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

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

    

   常用选项介绍

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

常见选项使用如下:

    (1)    option routers IP 地址

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

如:option  routes 10.5.5.1

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

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

   

租约数据库文件

租约数据库文件用于保存一系列的租约声明,其中包含客户端的主机名、MAC地址、分配到的IP、以及IP地址的有效期等相关信息。这个数据库文件是可编辑的ASCII格式文本文件。每当发生租约变化的时候,都会在文件结尾添加新的租约记录。DHCP刚安装好后足月数据库文件dhcpd.leases是个空文件/var/lib/dhcpd/dhcpd.leases     当DHCP服务正常运行后就可以使用cat命令查看租约数据库文件内容了。


实例:

公司有60台计算机,IP 地址段为192.168.2.1-192.168.2.254,子网掩码是255.255.255.0,网关为192.168.2.1,192.168.2.150-192.168.2.200网段地址给服务器配置,客户端可以使用的地址段为192.168.2.150-192.168.2.200,其余剩下的IP地址为保留地址。

subnet 192.168.2.0 netmask 255.255.255.0 {        #默认网段
  range 192.168.2.150 192.168.2.200;              #起始地址与结束地址
  option domain-name-servers 192.168.2.1;         #DNS地址 
  option domain-name "internal.example.org";
  option routers 192.168.2.1;                     #默认网关
  option broadcast-address 192.168.2.255;         #默认广播地址
  default-lease-time 600;                         
  max-lease-time 7200;
}


 实例:IP 地址绑定

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

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


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

作用:用于定义保留地址。

(2)hardware 类型 硬件地址

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

(3)fixed-addreee IP 地址

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


在subnet字段中添加以下行,和subnet配合使用

host test {
         hardware ethernet XX:XX:XX:XX:XX:XX:;
        fixed-address 192.168.2.66;
}


技术分享

本文出自 “PooV的博客” 博客,请务必保留此出处http://xyhms.blog.51cto.com/12505169/1969427

DHCP服务

标签:linux   dhcp   服务器   

原文地址:http://xyhms.blog.51cto.com/12505169/1969427

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!