当前位置: 首页 > news >正文

DHCP工作原理

DHCP报文类型

  1. DHCP Discover
    客户端广播发送DHCP discover报文消息, 客户端通过UDP68端口向网络上发送DHCP discover数据包(包含MAC地址和计算机名等信息).源为0.0.0.0, 目的为255.255.255.255
    discover等待时间默认为1秒, 1秒内没有得到回应, 客户机会将这一广播包重新发送4次(以2,4,8,16秒为间隔, 加上1-1000毫秒之间随机长度的时间). 如果没有得到DHCP server的回应. 客户端会从169.254.0.0/16这个地址段中选取一个IP地址. 并且每隔5分钟重新广播依次. 如果收到dhcp server的响应, 则继续IP租用过程.
  2. DHCP Offer
    服务器单播客户端提供IP地址
  3. DHCP Request
    客户端向服务器请求使用该IP地址
  4. DHCP ACK
    服务器确认客户端可以使用该地址, 这个时候客户端上IP地址开始生效

DHCP验证

  1. 直连情况下, client与server直连, 拓扑如下:

我们在client-1和server之间进行抓包, 结果如下:

  • client接入网络后, 会先发送一个dhcp discover广播包源为0.0.0.0目的为255.255.255.255
  • server收到广播包后, server会根据请求报文来自的接口所属网段进行IP地址分配, 并且会发出广播包确认分配的IP地址是否已经存在, 如果不存在就将该IP地址分配给client并将相关信息放入dhcp offer包中回复给client.(这里是单播包)
  • client收到回复之后, 会向dhcp server请求使用该IP地址. 此时还无法使用分配的IP地址, 所以发送的还是广播包(dhcp request中包含了offer包中提供的信息)
  • dhcp server收到request包之后, 会向client回复一个dhcp ack的单播包(包含了相关信息).
  • client收到dhcp server回复的dhcp ack包之后, 分配的IP地址就正式生效了.
  1. 当client和server不在同一vlan下的时候, 我们可以使用ip helper-address 将DHCP请求单播到server
  • client接入网络的时候, 还是会发送dhcp discover去请求IP, 由于和server不在一个vlan, 所以我们在client所在vlan的网关上配置了ip helper-address x.x.x.x. 网关收到dhcp discover的广播包之后会将其重新封装成一个单播包(源是网关地址, 目的是server地址)
  • server收到单播的广播包之后 根据客户端所在子网所在网络进行IP分配, 发送dhcp offer
  • client收到回复后 提出dhcp request 广播包
  • server收到后 返回dhcp ack包, 此时client分配的IP地址开始生效
  • client和switch之间的交互就可案例1中client和server交互式一样的, server的ip地址是在dhcp报文中进行体现的
  • switch和server之间就是单播包的交互, switch将收到的所有dhcp请求报文封装成单播包发送给server

DHCP配置

一般在cisco设备上的配置如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

ip dhcp excluded-address 192.168.1.200 192.168.1.255

ip dhcp excluded-address 192.168.100.200 192.168.100.255

ip dhcp pool test

 network 192.168.1.0 255.255.255.0

 default-router 192.168.1.254

 dns-server 192.168.1.254

ip dhcp pool vlan100

 network 192.168.100.0 255.255.255.0

 default-router 192.168.100.254

 dns-server 192.168.100.254

ip dhcp pool vlan1_tom

  host 10.1.1.50 255.255.255.0

  client-identifier 010010.3ab1.eac8

可以给pool指定一个地址端, 可以将某些地址排除在pool之外, 可以根据mac和IP进行绑定

可以配置租期等其他属性

DHCP冗余

一般情况下, 公司都会配置2台dhcp服务器进行冗余, 提高可用性. 但是在网络设备上,同时配置两台dhcp服务器进行冗余的方法没有碰到过.

也可以使用专门的dhcp服务器, 这种一般都会提供冗余的特性

或者在windows或者linux服务器上搭建dhcp服务也可以, 但是冗余的配置方法就不确定

相关文章:

  • Floyd 算法--多源最短路
  • 在 Elasticsearch 中扩展后期交互模型 - 第 2 部分 - 8.18
  • WRF/Chem 模式技术解读:为大气污染治理提供有力支撑
  • 【设计模式】常用的设计模式详解
  • C#Dictionary值拷贝还是引用
  • 项目篇:模拟实现高并发内存池(2)
  • MFC中CString类型是如何怎么转std::string的
  • 基于大模型的下颌前突畸形预测及治疗方案研究报告
  • Trick:vs编译的release中提示debug库找不到方案
  • 报错 - redis - Unit redis.service could not be found.
  • go安装lazydocker
  • MyBatis-Plus:告别手写 SQL 的高效之道
  • 软考-软件设计师-计算机网络
  • Kafka消息自定义序列化
  • Android <queries>声明的作用和配置方法
  • 【yolo】YOLO训练参数输入之模型输入尺寸
  • wordpress表单插件CF7调用方式
  • 启动方法jupyter(Anaconda)
  • 【设计模式】装饰模式
  • Apache Tomcat CVE-2025-24813 安全漏洞
  • 李在明正式登记参选下届韩国总统
  • 中日有关部门就日本水产品输华问进行第三次谈判,外交部回应
  • 涨知识|没想到吧,体育老师强调的运动恢复方法是错的?
  • 代理销售保险存在误导行为,农业银行重庆市分行相关负责人被罚款0.1万元
  • 江苏省人社厅党组书记、厅长王斌接受审查调查
  • 万达电影:股东杭州臻希拟减持不超1.3927%公司股份