首页 > 代码库 > dhcp 服务

dhcp 服务

      DHCP,全称是Dynamic Host Configuration Protocol,动态主机配置协议,工作在OSI的应用层,作用主要是帮助计算机从指定的DHCP服务器获取配置信息的协议。Dhcp采用client/server模式,客户端(端口号是68)请求,服务端(端口号是67)响应。

广播:

wKiom1PAo--BRuwdAAIfILk5dXk721.jpg

工作原理:

  1. DHCP客户端寻找服务器

    客户端向网络上广播dhcpdiscover包(内包含客户机的mac地址)寻找DHCP服务器,即向广播地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

  2. DHCP服务器响应客户端(linux系统是单播)

    DHCP服务器收到客户机的dhcpdiscover包后,从尚未出租的IP地址中挑选一个分配给DHCP客户机,其中使用ARP广播来确认该IP地址是否被占用,然后发送一个dhcpoffer广播包,内包含IP地址,dhcp服务器IP等内容。

  3. DHCP客户端发起请求

    客户机收到第一个dhcp服务器发送的dhcpdiscover包后,再以广播的形式发送一个dhcprequest包发给所有的dhcp服务器,内有一个DHCP服务器IP,通知所有DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。

  4. DHCP服务器发送配置完毕确认(linux系统是单播)
    DHCP服务器确认和客户端的租约关系。被选中的服务器再发一个dhcpack广播包确认此IP的发放。
    这个IP地址可以使用一半租期的时间,超过一半时间应续租,如果过了一半时间后找不到DHCP服务器的话,可以再使用四分之一时间,然后就过期了。用户就不能通过此IP地址进行通信了。

    另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。

优点:

  1. 减小管理员的工作量

  2. 减小输入错误的可能

  3. 避免ip冲突

  4. 提高了ip地址的利用率

DHCP服务器安装:

注意

  1. 不要用真实机作为dhcp服务器。

  2. 作为dhcp服务器的虚拟机要用host-only,否则会ip地址“满天飞”

1.安装软件:

软件包:dhcp-4.1.1-34.P1.el6.x86_64,两种方式安装


    1. rpm安装

      安装这个软件包不需要额外的依赖软件包

      $rpm -ivh dhcp-4.1.1-34.P1.el6.x86_64

    2. yum安装

     配置好相应的yum仓库

     $yum install dhcp -y

2.配置文件

      DHCP服务的配置文件默认是没有的,需要在/etc手工创建dhcpd.conf文件。但是幸运的是,安装dhcp服务时会为我们提供一个示例文件
$ cp /usr/share/doc/dhcp-3.0.1/dhcp.conf.sample /etc/dhcp/dhcpd.conf
在其基础上进行修改配置。

各个参数的作用:

subnet                                客户机获得的IP地址的网段

netmask                             客户机获得的IP地址的子网掩码

 

options domain-name                   为客户机指定DNS服务器名称

options domain-name-servers       为客户机指定DNS服务器IP地址

options  routers                          为客户机指定默认网关的IP地址

options  subnet-mask                  默认网关IP地址的子网掩码

 

range                        用于说明客户机所得到的IP地址的范围

default-lease-time       指定默认地址租约(秒为单位)

max-lease-time          指定最大地址租约(秒为单位)

 

host                   为特定的DHCP客户机提供IP网络参数

hardware            特定客户机的MAC地址

fixed-address      为特定客户机指定IP地址

这个参数的意思是计算机名为host、MAC地址为hardware的客户机永远使用fixed-address这个IP地址

示例:
1.$ cat /etc/dhcp/dhcpd.conf 

wKiom1PAn9exI_w1AACnHQTWYtg153.jpg

解释:

wKioL1PAnFCDCzaFAAHnVOCruXM271.jpg

注意:全局配置的优先级低于局部配置的优先级,对于同一个变量,如果局部和全局都有配置,则以局部变量为准。dns的记录可以写多个,以,隔开。

3.指定开放服务网络的接口

$ vim /etc/sysconfig/dhcpd

# Command line options here
DHCPDARGS=
这个文件主要是控制dhcp服务在服务器哪块网卡起作用的,因为服务器一般有多个网卡,但是不在每块网卡上都是用dhcp,那么就可以通过这个文件来控制,如果只有一块网卡,则不需要配置

4.启动DHCP服务

启动DHCP服务,使刚刚修改的配置生效。

如果启动失败,则配置文件有误,通过查看日志文件/var/log/messages来排错

启动DHCP服务有两种方法

1>service  dhcpd   start     启动DHCP服务

    service  dhcpd    stop     停止DHCP服务

    service  dhcpd   restart    重启DHCP服务

    or /etc/init.d/dhcpd start/stop/restart

注:service    ***    start/stop     启动/停止***服务,只有此次生效,关机或重启计算机后无效。

2>chkconfig    dhcpd    on     启动DHCP服务

    chkconfig    dhcpd    off     停止DHCP服务

注:chkconfig   ***    on/off      启动/停止***服务,只有重启计算机后才生效。

ps:检查dhcp服务端口

 $ netstat -nupl |grep dhcpd

5.配置客户机

两种方式:

   a.修改网卡配置文件

   BOOTPROTO=dhcp

   b.使用dhclient命令

   $ dhclient 网络接口

   $ dhclient -r 网络接口   释放已获取的IP

6.验证服务

  1. 客户端验证:

    1. ip地址:$ ifconfig

    2. 网关:$ cat /etc/sysconfig/network

    3. dns:$ cat /etc/resolv.conf

    注意:


    1. 如果想获得先前的静态ip地址,使用 $ ifdown 接口;ifup 接口

    2. 如果网关没有生效,是因为网卡配置文件ifcfg-ethx 已经配置,删除后重新获得动态ip地址即可生效

    3. 此服务不受防火墙影响

 b.服务器端验证:

    i.查看dhcp租约文件,记录哪些客户端和服务器申请了ip地址,对应使用情况(租用多久,租用了哪些ip,它们的使用者是谁)
    $ cat /var/lib/dhcp/dhcpd.leases

        starts :lease 开始租约时间

        ends : lease 结束租约时间

     注意:dhcp服务器和客户端租约建立的启动和到期时间的记录文件,仅在客户端申请IP地址之后才会有.

    ii.查看系统日志文件
    $ cat /var/log/messages

C_0004.gifDHCP配置参数说明(此为转载)

某些项目必须利用option设置,形式为option<参数代码><设置内容>

DHCP的ip分为静态ip和动态ip,如果设置静态ip需要知道要设置主机的MAC地址,#ping 目标主机ip,#arp –n查看。

parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户

Defaults-lease-time:默认租约时间,默认单位为秒

Max-lease-time:最大租约时间,客户端超过租约但尚未更新IP时,最长可以使用该IP的时间

ddns-update-style 配置DHCP-DNS 互动更新模式

default-lease-time 指定确省租赁时间的长度,单位是秒

hardware 指定网卡接口类型和MAC地址

server-name 通知DHCP客户服务器名称

get-lease-hostnames flag 检查客户端使用的IP地址

fixed-address ip 分配给客户端一个固定的地址

authritative 拒绝不正确的IP地址的要求

option(选项):用来配置DHCP可选参数,全部用option关键字作为开始

option routers:为客户端设定默认网关

option subnet-mask:为客户端设定子网掩码

option domain-name:为客户端指明DNS名字

option domain-name-servers:为客户端指明DNS服务器IP地址

option time-offset:为客户端设定和格林威治时间的偏移时间,单位是秒

option ntp-server:为客户端设定网络时间服务器IP地址

option host-name 为客户端指定主机名称。若客户端使用windows,不要选择host-name,即不要为其指定主机名称。

option broadcast-address 为客户端设定广播地址

declarations (声明):描述网络布局、提供客户的IP地址等

shared-network:告知是否一些子网络分享相同网络

subnet:描述一个IP地址是否属于该子网

range:起始IP 终止IP 提供动态分配IP 的范围

host:主机名称参考特别的主机

group:为一组参数提供声明

allow unknown-clients/deny unknown-client:是否动态分配IP给未知的使用者

allow bootp/deny bootp:是否响应激活查询

allow booting/deny booting:是否响应使用者查询

filename:开始启动文件的名称,应用于无盘工作站

next-server:设置服务器从引导文件中装如主机名,应用于无盘工作站。


本文出自 “爱武装一辈子” 博客,请务必保留此出处http://menglinux.blog.51cto.com/8733806/1437308