OpenWrt之DHCP(动态主机配置协议)

DHCP简介

在TCP/IP网络上,每台主机在访问网络及其资源之前,都必须进行基本的网络信息配置,包含IP地址、子网掩码、默认网关和DNS等。在大型网络中,如果每台终端主机的地址的都有不同的使用者来分配,那么就很容易出现地址相同的情况。对于经常移动的终端,重新配置可能需要很长时间,并且容易出错,如果IP配置错误将会导致不能访问网络。因此需要一种机制来简化主机IP地址的配置。动态主机配置协议DHCP应运而生。

采用DHCP的好处在于减少了网络管理员和用户的的负担。这将可以减少手工配置IP的地址导致的地址冲突,以及网关地址或DNS地址错误导致的不能访问网络的问题。

DHCP原理

  • DHCP服务器拥有一个IP地址服务池,当任何启用DHCP的 客户机连接到网络时,可从服务器哪里租借一个IP地址。不再使用的IP地址自动回收到地址池中,供再次分配使用。

  • DHCP保证同一时刻的任何IP地址只能分给一个客户使用。当DHCP客户机重新启动时,应配置为相同的IP地址。在DHCP服务器重启的情况吓,也应当给每一个客户机分配不同的IP地址,并且和手动分配的IP地址共存。这就要求DHCP服务器对已分配的地址进行保存,并且在客户端不使用时进行回收。

  • DHCP是一种动态的向网络终端提供配置参数的协议。在终端提出申请之后,DHCP服务器可以向终端提供IP地址及子网掩码、网关和DNS服务器地址等参数。

  • DHCP协议基于UDP协议,客户端的端口号是68,服务器的端口号是67。这样可以非常方便地区分是请求还是响应。

DHCP报文

DHCP的请求和应答封装在UDP报文中。

IP层在请求IP地址时采用链路层广播,链路层广播地址为"FF:FF:FF:FF:FF:FF"。网络层目的IP使用广播地址"255:255:255:255",源地址采用0.0.0.0,这是因为请求时自身没有IP地址,并且不知道服务器的IP地址。

报文内容格式如下图:

报文类型 字段为1表示请求,为2表示应答。

硬件类型 为1表示以太网。

硬件地址长度 以太网的硬件地址长为6字节。

跳数 字段由客户端设置为0 ,如果和DHCP服务器 之间有中继活动的话将被修改。

事务ID 是一个由客户端设置并由服务器返回的4字节整数。客户机使用它对请求和应答进行匹配。对于每个请求客户端首先将该字段设置为一个随机数。

秒数 客户端段开始进行DHCP请求时,将秒数字段设置为一个时间值。服务器能够看到这个时间值,备用服务器在等待时间超过这个时间值后才会响应客户的请求,这意味着备用服务器接管DHCP服务。

flag是保留值,设置为0。

客户端地址字段 填0,如果上次成功配置过IP地址,它将写到"客户端IP地址"字段。

服务器返回应答时将客户的IP地址写入你的(客户端)IP地址字段。

并将自身IP地址填写到 服务器IP地址 字段,在同一网络 中继IP地址填0。

客户端MAC地址 字段填写网卡硬件地址,不足部分填0。

服务器主机名 字段由服务器来填写,通常为0。

引导文件名 字段用于填充TFTP下载文件全路径,通常用于无盘启动工作站。选项字段用于扩展,但实际上有一些选项在终端接入互联网时是必须的。这些包含DNS地址、网关地址和子网掩码等。

可选字段 部分均以TLV(类型-长度-值)来表示。

子网掩码选项用于指定客户端的子网掩码。子网掩码的类型码为1,长度为4字节。

路有选项指定了客户端子网的下一跳地址。如果有多个,路由器将按照优先顺序排列,一般为路由器自身IP地址。类型码为3,长度为4的倍数。

域名服务器选项用于将名字服务器提供给 客户端,并且以优先顺序给出,选项代码为6,最长度为4字节,并且是4的倍数。

DHCP工作流程

DHCP通常由客户端发起广播请求,服务器收到请求后在配置文件中查询,如果符合要求则向客户端提供服务。

DHCP配置IP服务的报文流程。

客户端在以太网上广播"DHCP Discover"报文来发现DHCP服务器。

IP为10.0.2.2的服务器收到广播请求后,向客户端回应请求,发出单播"DHCP Offer"报文,并且目的IP为10.0.2.15。

客户端再次以广播形式发出"DHCP Request"报文。这是因为客户端可能受到多个服务器"DHCP Offer"报文,客户端会根据报文的内容来选择一个给予响应,采用广播形式可以让多个服务器均可收到。

当服务器收到"DHCP Request"报文后,服务器在将客户端的MAC地址同分配的IP地址绑定后,将IP信息(IP、掩码、网关地址和DNS等)发送客户机。

客户机收到"DHCP ACK"报文后,将IP信息设置到主机系统上。这时IP设置就完成了,客户机就可以是用IP来访问网络了。

OpenWrt之DHCP(动态主机配置协议)相关推荐

  1. dhcp动态主机配置协议

    dhcp简介:         动态主机设置协议(Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,计算机网络应用层协议. ...

  2. 自动为计算机配置ip的协议,电脑自动获取IP地址----DHCP动态主机配置协议

    电脑主机要接入网络中就需要有三层IP地址,静态IP地址采用的是管理员手工配置的配置方式,这种方式在设备较少的情况下可以很好控制地址的分配,但是在设备较多的情况下手工配置的方式变得繁琐,而且当分出去的地 ...

  3. IP地址荷官——DHCP(动态主机配置协议)简介

    文章目录 IP地址荷官--DHCP(动态主机配置协议) 前言 一.什么是DHCP? 二.DHCP的优势 三.DHCP的配置原理 DHCP分配的三种模式 DHCP地址池 DHCP配置特殊应用场景 四.D ...

  4. 动态主机配置协议服务器不能提供,计算机网络基础课程—动态主机配置协议(Dhcp)...

    原标题:计算机网络基础课程-动态主机配置协议(Dhcp) DHCP(RFC 2131,2132)是对BOOTP的扩展,这种扩展体现在两个方面: 能在一个DHCP消息中为客户提供所有的网络配置信息,如I ...

  5. 域名系统DNS、文件传送协议FTP、动态主机配置协议DHCP、远程登录协议TELNET、电子邮件协议(SMTP/POP3/IMAP)、常用端口

    1.DNS域名系统 Domain Name System DNS 是一个分布式数据库,提供了主机名和 IP 地址之间相互转换的服务. 这里的分布式数据库是指,每个站点只保留它自己的那部分数据. 域名具 ...

  6. 网际协议:动态主机配置协议(DHCP)和NAT

    一.DHCP 某组织一旦获得了一块地址,它就可以为本组织内的主机与路由器接口逐个分配IP地址. 主机地址可以手动配置,但是这项任务目前通常更多的是使用动态主机配置协议(DHCP). DHCP允许一个主 ...

  7. 计算机网络实验(华为eNSP模拟器)——第八章 动态主机配置协议(DHCP)

    目录 前言 一.DHCP的定义 二.接口模式的 DHCP 命令 (1)开启DHCP配置功能 (2)开启接口的DHCP功能 (3)设置排除地址 (4)设置地址池ip租用有效期 (5)设置DNS地址 (6 ...

  8. 动态主机配置协议DHCP

    动态主机配置协议----DHCP协议(Dynamic Host Configure Protocol)允许新加入网络的计算机快速.动态地获取IP地址. DHCP的工作过程如下: ①只要有新计算机连到网 ...

  9. 动态主机配置协议(DHCP)

    什么是DHCP DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client).DHCP通 ...

最新文章

  1. [Java基础] sort方法--------排序的那些事
  2. CTR深度学习模型之 DIN(Deep Interest Network) 的理解与例子
  3. mysql aes密钥大于16位_aes秘钥限制问题解决办法
  4. Wordpress 修改 mysql 插件_史上最详细的WordPress安装教程(三):安装php 5.6及fpm、pdo、mysql等插件...
  5. 伤感网络验证系统_网络攻防演练中弱密码安全治理的几点建议
  6. 再谈如何以最简单的方法将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式
  7. elasticsearch入门(三)
  8. SoapUI中文乱码
  9. Wi-Fi 无线网二维码生成 API 接口
  10. 洛谷P1640 [SCOI2010]连续攻击游戏(二分图)
  11. js根据name值获取元素
  12. 做一个Java程序员,数学一定要好吗?
  13. 空间统计说历史:罗马七丘的空间分析(一)
  14. 项庄舞剑意在沛公:深度分析3B大战背后秘密
  15. 孙溟㠭书画《野狐禅》
  16. CSS 中文字号、磅和像素对照关系
  17. 自己的双系统XP32 + UBUNTU11 500G硬盘分区方案
  18. 安卓APP(3)——安卓布局控件
  19. i 标签设置背景图片作 icon的问题
  20. 64页PPT讲透区块链核心技术在行业的应用

热门文章

  1. 时间字段加一秒_Mysql自动加1秒的问题
  2. 滴滴出行 DoKit 2.0 - 泛前端开发者的百宝箱
  3. 查看自己本机的ip地址、DNS服务器地址
  4. 2019ROS暑期学校之如故如新
  5. python多张图片生成ppt_天呐,还能这么玩!用 Python 生成动态 PPT
  6. 源码深度解析系列之 Spring IOC
  7. Docker 容器操作 1
  8. 凑个热闹,发布一下Consolas和雅黑的混合字体
  9. Altium Sesigner 测量距离后留下的距离图标如何删除的问题解决
  10. 哈工大软件构造Lab2