1. 简介
  2. 安装配置

一、简介

DHCP (Dynamic Host Configuration Protocol,动态主机管理协议)是一种基于UDP协议且仅限用于局域网的网络协议,主要用途是为局域网内部设备或网络供应商自动分配IP地址,通常会应用在大型的局域网环境中或局域网内存在比较多的移动办公设备,DHCP协议能够实现集中的管理、分配IP地址。

DHCP服务程序能够使局域网内的主机自动且动态的获取IP地址、子网掩码、网关地址以及DNS服务器地址等信息,且能够有效的提升地址使用率,提高配置效率,减少管理和维护成本。

工作原理

  1. DHCP Client以广播的方式发出DHCP Discover报文。
  2. DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。
  3. DHCP Client处理最先收到的DHCP Offer报文。DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。
  4. DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。
  5. DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。
  6. DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。

Client--> DHCP DISCOVER

DHCP OFFER <-- Server

Client--> DCHP REQUEST

DCHP ACK <-- Server

Client—获取正确的ip地址信息

Client--> DCHP RELEASE(租约到期释放申请的ip)

租约:即DHCP客户机能够使用动态分配到的IP地址的时间。

二、安装配置

  1. 安装

    # yum install dhcp

  2. 配置

    在/etc/dhcp/dhcpd.conf 下默认只有注释语句,需要参考下模板文件
    #mv /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf (此处我的dhcp版本为4.2.5,不同版本都有不同)

标准的DHCP配置文件包括全局配置参数、子网网段声明、地址配置选项以及地址配置参数:

host 配置具体mac地址主机的专用地址

全局配置参数用于定义整个配置文件的全局参数,而子网网段声明用于配置整个子网段的地址属性,具体参数有:

参数

作用

ddns-update-style 类型

定义DNS服务动态更新的类型,类型包括:
none(不支持动态更新),interim(互动更新模式)与ad-hoc(特殊更新模式)。

allow/ignore client-updates

允许/忽略客户机更新DNS记录。

default-lease-time 21600

默认超时时间。

max-lease-time 43200

最大超时时间。

option domain-name-servers 8.8.8.8

定义DNS服务器地址。

option domain-name "domain.org"

定义DNS域名。

range

定义用于分配的IP地址池。

option subnet-mask

定义客户机的子网掩码。

option routers

定义客户机的网关地址。

broadcase-address 广播地址

定义客户机的广播地址。

ntp-server IP地址

定义客户机的网络时间服务器(NTP)。

nis-servers IP地址

定义客户机的NIS域服务器的地址。

hardware 硬件类型 MAC地址

指定网卡接口的类型与MAC地址。

server-name 主机名

通知DHCP客户机服务器的主机名。

fixed-address IP地址

将某个固定IP地址分配给指定主机。

time-offset 偏移差

指定客户机与格林尼治时间的偏移差。

  1. 对配置文件按要求进行修改,我这里先实验host配置(host 配置具体mac地址主机的专用地址)修改如下:

    把客户端的mac地址填进去,另外把客户端的获取ip地址方式改为dhcp。

  2. 重启服务端dhcpd,并重启客户端network,查看客户端的ip:

    可以看到客户端获取成功。

  3. 再来实验子网网段声明的配置(配置参数如上步骤3)。此处调整虚拟机设置如下:

    客户端与服务端都要设置相同的(此选项为虚拟机特有虚拟网络,设置后都会在同一局域网中,减少冲突)。

  4. 重启服务端dhcpd,客户端network,可以看到客户端ip地址如下:

    此处可以看到获取成功。

    在服务端上查看/var/lib/dhcpd/dhcpd.leases~文件可知租用时间等信息:

    一般DHCP中继功能在日常工作使用较少,或由路由器负责中继功能,极少用Linux系统搭建,此处就不多讲。

Linux下DHCP服务安装配置的更多相关文章

  1. Linux下Kafka单机安装配置方法(图文)

    Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了 ...

  2. Linux 下Telnet 服务安装

    Linux 下Telnet 服务安装 注:以下所有命令均在root用户下执行. 命令测试在Linxu版本6.x下完成,部分命令不适用Linux 7.0以上 1.简介 默认情况下Linux只安装了Tel ...

  3. CentOS7下RabbitMQ服务安装配置

    参考文档: CentOS7下RabbitMQ服务安装配置 http://www.linuxidc.com/Linux/2016-03/129557.htm 在linux下安装配置rabbitMQ详细教 ...

  4. Linux下Kafka单机安装配置方法

    Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: •Kafka将消息以topi ...

  5. Linux下MongoDB服务安装

    Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...

  6. Linux 下编译并安装配置 Qt 4.53全过程

    最近准备做 Nokia 的 Symbian,Maemo 下触摸屏开发.考虑到程序的跨平台可移植性,最终选择使用 Qt 开发.相对来说,国内关于 Qt 相关文档并不算很多.作者将 Linux 下编译并安 ...

  7. Linux系统下DHCP服务安装部署和使用详解

    一.概述 DHCP :动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或 ...

  8. linux下DHCP服务原理总结

    DHCP(全称Dynamic host configuration protocol):动态主机配置协议DHCP工作在OSI的应用层,可以帮助计算机从指定的DHCP服务器获取配置信息的协议.(主要包括 ...

  9. linux 下ftp的安装配置 图文教程

    0.安装ftp的前置条件是关掉SElinux # vi /etc/selinux/config 修改 SELINUX=” disabled ” ,重启服务器.若相同,则跳过此步骤. 1. 可先查看是否 ...

随机推荐

  1. InheritParasitic.js

    // 寄生式继承 // 其基本思路是类似创建对象时的工厂模式,将继承过程封装在一个函数里,然后返回一个对象 function createObject(o){ var clone = Object.c ...

  2. 在Visualforce页面中使用Visual Flow

    在本文中,我们将通过一个示例说明如何将"流"(Visual Flow)用于Visualforce页面. 更全面的知识可以参考官方文档. 创建流 我们要创建一个流,它的作用是得到一个 ...

  3. 浅谈Arrays.asList()方法的使用

    首先,该方法是将数组转化为list.有以下几点需要注意: (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean) (2)该方法将数组与列表 ...

  4. CSS模糊效果及其兼容方法

    今天在整理IE滤镜时网站访问这里,居然找到模糊滤镜blur(),感觉太不可思议了,想不到IE居然会有这么多种滤镜效果,这基本上是模仿PS的.今天的重点是模糊滤镜 CSS模糊效果及其兼容方法 实例 兼容 ...

  5. 将 Windows 虚拟机从非托管磁盘转换为托管磁盘

    如果有使用非托管磁盘的现有 Windows 虚拟机 (VM),可通过 Azure 托管磁盘服务将 VM 转换为使用托管磁盘. 此过程会同时转换 OS 磁盘和任何附加的数据磁盘. 本文介绍如何使用 Az ...

  6. C#语言————选择结构

    int[] num = new int[] {23,76,54,87,51,12 }; //冒泡排序 for (int i = 0; i < num.Length - 1; i++) { for ...

  7. WTL汉化版

    基于 WTL90_4060 仅汉化了Windows部分,CE和Mobile未汉化 AppWizard和rc文件已全部汉化 如果不需要汉化则将所有的2052目录删除即可 如有问题可以给我留言 点我下载

  8. Elasticsearch一些常用操作和一些基础概念

    1.查看集群健康状态 [root@ELK-chaofeng01 ~]#curl -XGET http://172.16.0.51:9200/_cat/health?v epoch timestamp ...

  9. 一道题引发的self和super

    这个是那道题目,让写出输出的结果: 刚看到这一道题目的时候我的第一反应就是输出Son     Father.但是输出的结果是Son Son. 下面是解析:      我首先建立了两个类,一个Fathe ...

  10. Activiti工作流与BPMN2.0规范

    本章内容根据BPMN2.0规范的分类划分为以下部分: 1.启动与结束事件(event) 2.顺序流(Sequence Flow) 3.任务(Task) 4.网关(Gateway) 5.子流程(Subp ...