概念

dhcp(Dynamic Host configuration Protocol,动态主机配置协议 )是一个局域网的网络协议,它主要是通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有DHCP服务器时,才会响应客户端的IP参数要求。

建立条件

  • 拥有真实物理网卡,或者连接广播域的真实物理网卡;
  • 该接口或者该物理网卡必须有一个合理的ip地址;

Firstinput firstoutput 先进先出的问题,所以有两台dhcp服务器时使用的是最先用最先配置的dhcp服务器

当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

DHCP有三种机制分配IP地址

  1. 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
  2. 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
  3. 手工分配方式(Manual
    Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

工作原理

DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机的68号端口。详细的交互过程如下图。

DHCP八种报文类型

  1. DHCP Discover
    DHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此就可以知道网络中存在的DHCP服务器的位置。
  2. DHCP Offer
    DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的ip地址,加上相应的租约期限和其他配置信息(网关,DNS服务器等),构造一个Offer报文,发送给客户,告知用户本服务器可以为其提供IP地址。(只是告诉client可以提供,是预分配,还需要client通过ARP检测该IP是否重复)
  3. DHCP Request
    DHCP客户端会收到很多Offer,所以必须在这些回应中选择一个。Client通常选择第一个回应Offer报文的服务器作为自己的目标服务器,并回应一个广播Request报文,通告选择的服务器。DHCP客户端成功获取IP地址后,在地址使用租期过去1/2时,会向DHCP服务器发送单播Request报文续延租期,如果没有收到DHCPACK报文,在租期过去3/4时,发送广播Request报文续延租期。
  4. DHCP ACK
    DHCP服务器收到Request报文后,根据Request报文中携带的用户MAC来查找有没有相应的续约记录,如果有则发送ACK报文作为回应,通知用户可以使用分配的ip地址。
  5. DHCP NAK
    如果DHCP服务器收到Request报文后,没有发现相应的租约记录或者由于某些原因无法正常分配ip地址,则发送ACK报文作为回应,通知用户无法分配合适的ip地址。
  6. DHCP Release
    当用户不在需要使用分配ip地址时,就会向DHCP服务器发送Release报文,告知服务器用户不再需要分配ip地址,DHCP服务器会释放被绑定的租约。
  7. DHCP Decline
    DHCP客户端收到DHCP服务器回应的ACK报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送Decline报文,通知服务器所分配的ip地址不可用。
  8. DHCP Inform
    DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,服务器收到该报文后,将根据租约进行查找,找到相应的配置信息后,发送ACK报文回应DHCP客户端(极少用到)。

动态分配

挂载

[root@redhat ~]# mount /dev/sr0 /mnt

安装DHCP包

注意8的版本需要在后面加-server

[root@redhat ~]# yum install dhcp-server

启动服务

[root@redhat ~]# systemctl start dhcpd

1、修改配置文件

示例文件 /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example

[root@redhat ~]# vim /etc/dhcp/dhcpd.conf//配置文件内容
subnet 192.168.12.0 netmask 255.255.255.0 {    //声明网段和掩码option domain-name-servers 114.114.114.114;     //指定DNSoption routers 192.168.12.2;    //指定网关range dynamic-bootp 192.168.12.140 192.168.12.150;  //指定地址池范围default-lease-time 3600;  //默认租约时间max-lease-time 7200;     //最大租约时间
}

1.2重启服务

   [root@redhat ~]# systemctl restart dhcpd

2、客户端

在虚拟网络编辑器中将dhcp分配关掉

2.1在客户端命令窗口输入dhclient命令使用动态主机配置协议动态的配置网络接口的网络参数

网络进程接口为51346

[root@localhost ~]# dhclient
dhclient(51346) is already running - exiting. This version of ISC DHCP is based on the release available
on ftp.isc.org.  Features have been added and other changes
have been made to the base software release in order to make
it work better with this distribution.Please report for this software via the CentOS Bugs Database:http://bugs.centos.org/exiting.

2.2关掉之前的网络接口

[root@localhost ~]# kill -9 51346

2.3再次declient动态获取IP

[root@localhost ~]# dhclient

2.4查看ip

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:4f:53:7d brd ff:ff:ff:ff:ff:ffinet 192.168.12.141/24 brd 192.168.12.255 scope global dynamic ens33valid_lft 3215sec preferred_lft 3215secinet6 fe80::fba6:88de:97e8:be1d/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:d0:41:23 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:d0:41:23 brd ff:ff:ff:ff:ff:ff

手工分配

1、修改配置文件

[root@redhat ~]# vim /etc/dhcp/dhcpd.conf
//配置文件内容
subnet 192.168.12.0 netmask 255.255.255.0 {option domain-name-servers 114.114.114.114;option routers 192.168.12.2;range dynamic-bootp 192.168.12.140 192.168.12.160;default-lease-time 3600;max-lease-time 7200;
}
host fantasia {hardware ethernet 00:0c:29:4f:53:7d;  //客户端硬件地址fixed-address 192.168.12.150;       //指定ip地址
}

1.2 重启服务

[root@redhat ~]# systemctl restart dhcpd

2、客户端

2.1 在客户端命令窗口输入dhclient命令使用动态主机配置协议动态的配置网络接口的网络参数

网络进程接口为51605

[root@localhost ~]# dhclient
dhclient(51605) is already running - exiting. This version of ISC DHCP is based on the release available
on ftp.isc.org.  Features have been added and other changes
have been made to the base software release in order to make
it work better with this distribution.Please report for this software via the CentOS Bugs Database:http://bugs.centos.org/exiting.

2.2 断开网络

[root@localhost ~]# kill -9 51605

2.3再次dhclient动态获取IP

[root@localhost ~]# dhclient

2.4再次查看ip

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.12.150  netmask 255.255.255.0  broadcast 192.168.12.255inet6 fe80::fba6:88de:97e8:be1d  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:4f:53:7d  txqueuelen 1000  (Ethernet)RX packets 3265  bytes 996836 (973.4 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 674  bytes 72295 (70.6 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Linux之DHCP服务及配置相关推荐

  1. Linux下DHCP服务的配置相关参数说明

    Linux下DHCP服务的配置相关参数说明 DHCP配置通常包括三部分:parameters.declarations.option. 1. parameters parameters用于说明DHCP ...

  2. linux下DHCP的安装配置

    今天在整理以前的资料的时候,看到了这篇过去积攒的资料,过程详细所以拿来给大家一块分享,同时我也在做,提高一下熟练度. [实验名称]Linux下DHCP服务的配置与安装 [实验拓扑] [实验目标] 了解 ...

  3. linux通过rpm安装dhcp,Linux下rpm安装DHCP服务及配置

    Linux下DHCP服务端的配置 [root@loaclhost /]mount /dev/hdc /hdc                //挂载光盘到/dev/ [root@loaclhost / ...

  4. Linux中DHCP原理与配置

    Linux中DHCP原理与配置 DHCP服务 DHCP服务 使用DHCP的好处 DHCP分配方式 DHCP的IP地址自动获取工作原理 DHCP的租约过程 1.客户端在网络中搜索服务器 2.服务器向客户 ...

  5. DHCP协议详解及DHCP服务的配置

    目录 一.DHCP概念 1.1.什么是DHCP 1.2.DHCP的作用 1.3.DHCP的好处 1.4.DHCP的架构 二.DHCP工作原理 三.DHCP种的租期 四.DHCP服务的配置 4.1.情况 ...

  6. 详解LINUX 的DHCP服务

         大家好!我是书记.今天我给大家带来的是Linux中的DHCP服务的详细讲解以及实现的具体的过程.     (1)     DHCP的概念:DHCP是进行IP地址等网络信息集中管理的 服务.在 ...

  7. linux 查询dhcp服务,查找局域网中的DHCP服务器

    某天,在xenserver中的某一台主机启动后发现IP地址是DHCP获得的,但是网段却是我从没有配置过的.想了很久都不记得自己曾经架过这么一台DHCP服务器.我要做的就是揪出它,看看是哪台机器在提供D ...

  8. DHCP服务的配置与使用

    在vmware中添加并打开window server 2003 链接:https://pan.baidu.com/s/1M0AHFe8M3932SUIh3vLwWA 密码:i3s7 1.实验目的 1. ...

  9. linux的dhcp服务

    DHCP的概念 DHCP(动态主机配置协议)是一个局域网的网络协议.指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码.默认情况下,DHCP作为Wind ...

  10. 思科设备中DHCP 服务的配置

    CSDN话题挑战赛第2期https://marketing.csdn.net/p/7b6697fd9dd3795a268d1a6f2fe75012 参赛话题:学习笔记https://activity. ...

最新文章

  1. 蓝桥杯 校门外面的树 (线段树,区间处理)
  2. wxWidgets:wxMouseCaptureChangedEvent类用法
  3. java 23种设计模式及具体例子 收藏有时间慢慢看
  4. vant toast loading 倒计时_日期倒计时软件哪个好 苹果日期倒计时软件推荐
  5. UI设计干货素材|滑动动效设计模板
  6. callback函数_Nodejs 源码解析 util.promisify 如何将 Callback 转为 Promise
  7. java js 打开摄像头_js调用网络摄像头
  8. 多个ai文件合并成pdf_AI打开多页PDF教程.pdf
  9. js基础知识总结大全
  10. 十月上旬百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题)
  11. button和submit的区别
  12. 11.2.0.3 RAC数据库m000进程报错ORA-04031错误的解决
  13. 使用 ffmpeg批量给图片加水印
  14. 一文搞懂JVM架构:微信抢红包实战案例
  15. python课堂教学_初中生初学python课堂教学感悟
  16. Oracle对象——视图之简单视图与视图约束
  17. IC卡与ID卡的区别
  18. win8服务器防火墙配置文件,Win8自带防火墙吗,Win8防火墙在哪里(适用于Win8.1)?
  19. Java图片添加水印功能
  20. Python爬虫:scrapy辅助功能实用函数

热门文章

  1. 吴恩达深度学习——深层神经网络
  2. 李宏毅机器学习——梯度下降
  3. Linux16.04与win10搭建samba服务器
  4. 重构:改善既有代码的设计 精彩书评二
  5. 1.3 jieba分词运用:词云、关键词抽取、TextRank、TF-IDF
  6. POJ读书笔记2.1 —— 鸡兔同笼
  7. Pytorch基本操作
  8. php计算数字的立方,玩疯了!这回是人类发现了把3写成3个整数立方和的第3种写法!...
  9. HTML5 — 知识篇总结《II》【HTML5大力支持的语义化思想与规范】
  10. PIE SDK导出图片