DHCP原理与配置(Linux)

目录

DHCP概念

使用DHCP的好处

DHCP的分配方式

DHCP租约过程

租约过程分4个步骤(全过程广播)

1. 客户机请求IP(Discover:发现;客户端广播 发送一个数据包,其他主机也能接收到,如果是没有安装DHCP服务的主机,只接收,不处理)

2. 服务器响应(Offer:提供)

3. 客户机选择IP(Request:请求; 优先选择收到第一个offer并广播给别的DHCP设备收回地址)

4. 服务器确定租约(ACK; 客户端得到地址)

重新登录

更新租约

DHCP动态配置主机地址

DHCP服务

可分配的地址信息主要包括

DHCP动态分配实验步骤

1.1

1.2

1.3

DHCP自动分配实验步骤

1.1

1.2


 

DHCP概念

DHCP(Dynamic Host Configuration Protocol;动态主机配置协议)

  • 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
  • 由Internet(IETF)工作任务小组设计开发

使用DHCP的好处

  1. 减少管理员的工作量
  2. 避免输入错误的可能
  3. 避免IP冲突
  4. 当更改IP地址段时,不需要重新配置每个用户的IP地址
  5. 提高了IP地址的利用率
  6. 方便客户端的配置

DHCP的分配方式

  • 自动分配
    • 分配一个IP地址后永久使用
    • 将指定IP地址和MAC地址绑定,永久分配
  • 手动分配
    • 由DHCP服务器管理员专门指定IP地址
  • 动态分配
    • 使用完后释放该IP,供其他主机使用

DHCP租约过程

  • 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程

租约过程分4个步骤(全过程广播)

1. 客户机请求IP(Discover:发现;客户端广播 发送一个数据包,其他主机也能接收到,如果是没有安装DHCP服务的主机,只接收,不处理)

当一个DHCP客户机启动时,客户机还没有IP地址,所以要通过DHCP获取一个合法的地址

此时DHCP客户机以广播形式向网络中所有主机发送一个DHCP Discover报文来寻找DHCP服务器

48d7d935dd3b4be0916889536c312e90.png

2. 服务器响应(Offer:提供)

DHCP服务器接收到来自客户机请求IP地址的报文时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机,如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的报文中,然后广播一则DHCP Offer报文

 

因为客户端还没有IP地址,通信不到,所以DHCP主机响应时还是以广播形式

4c0263c7e09746f79a59633ff0295e39.png

3. 客户机选择IP(Request:请求; 优先选择收到第一个offer并广播给别的DHCP设备收回地址)

客户端在收到 offer报文后,会向选定的DHCP服务器发送 request报文,确认使用服务器提供的IP地址和其他配置信息

如果客户机收到了多个OFFER报文,它会选择其中一个服务器并发送 request报文,再告诉其他DHCP服务器当前客户机已经选择了一个DHCP服务器。所以用广播的形式发送Request

aa7e55c469024a1b8e26c774f9c71192.png

4. 服务器确定租约(ACK; 客户端得到地址)

DHCP服务器接收到DHCP Request报文后,会广播发送DHCP ACK报文的向客户机确认,该报文包含有IP地址的有效租约和其他可配置信息

 

当客户机收到DHCP ACK报文后,配置IP地址,完成TCP/IP的初始化。此时,DHCP租约正式建立,客户端可以使用分配的IP地址和其他配置信息进行网络通信。

 525bff54f9f4413c9a1721e4e217a891.png

重新登录

  • DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover报文,而是直接发送包含前一次所分配IP地址的DHCP Request请求报文
  • 如果该IP地址仍然可用,DHCP服务器会发送ACK报文允许客户机继续使用当前IP地址
  • 如果该IP地址已被分配给其他客户机使用,DHCP服务器会发送NACK否认报文,客户机需要重新发送 Discover报文来重新分配IP地址

 b94af160ce3f4298953883621f16b5f4.png

更新租约

当DHCP服务器向客户机出租的IP地址租期到达50%时,就需要更新租约

  1. 客户机直接向提供租约的服务器发送DHCP Request报文(这个请求是直接发送给DHCP服务器的,而不是广播到整个网络),要求更新现有的地址租约
  2. 如果租约有效且IP地址可用,DHCP服务器会发送一个 DHCP ACK消息给DHCP客户端,该消息包含已分配的IP地址和其他配置信息,并更新租约的时间
  3. 如果DHCP客户端在租约时间达到一半时未能成功更新租约,当租约时间达到租约期限的87.5%时,DHCP客户端会进入重绑定状态。客户端会开始尝试与任何可用的DHCP服务器通信,以更新其租约。客户端会广播 DHCP Discover报文,并等待DHCP服务器的响应
  4. 如果DHCP客户端在租约终止前成功地从DHCP服务器接收到响应,它将更新其租约并继续使用当前的IP地址配置
  5. 如果客户端在租约终止前未能从任何DHCP服务器接收到响应,它将停止使用当前的IP地址,并开始执行初始的DHCP租约过程来重新获取IP地址和其他网络配置信息

DHCP动态配置主机地址

DHCP服务

  • 为大量客户机自动分配地址,集中管理
  • 减轻管理和维护成本,提高网络配置效率

可分配的地址信息主要包括

  1. 网卡的IP地址、子网掩码
  2. 对应的网络地址、广播信息
  3. 默认网关地址
  4. DNS服务器地址

DHCP动态分配实验步骤

1.1

安装软件包

abcedc45bcaa495a8d77df7aa8f17cdd.png

查看配置文件信息

ad6db0c366254d44a3ed0d2340e80abb.png

将配置文件替换为示例文件,修改其中的一些参数直接使用

02af4d1fc78a4a099c684b7aa8c8d1ae.png

1.2

修改dhcp配置文件

17542758aa64445d856b190b6e4ef8fc.png

↓该部分为该配置文件的全局配置参数

全局配置参数针对所有subnet,如果subnet写了相应参数,和全局参数不一致,优先按subnet的执行

659190d9ea874890b39ce5230676f484.png

配置subnet

4a6c0d84aea64db6a4244ebc737744ce.png

保存并退出vim编辑器

1.3

在另一台同一网段的虚拟机上,修改网卡配置文件

2e559d05c6ff47c6b42336592a568124.png

将BOOTPROTO选项改为dhcp,保存并退出

f2b20be5002f4da39e431a9a6bb81373.png

重启网络服务前后的对比

4a1e5556e325407bb506fa87d2457ead.png

通过/var/lib/dhcpd/dhcpd.leases文件查看dhcp的IP分配信息

04e221a69a044950949eb75e10c3a15d.png

DHCP自动分配实验步骤

1.1

修改dhcp配置文件

2d51615fef204d0f9e7c63a1bafbd4ab.png

在配置文件中找到一个host示例修改参数实现自动分配,这里的MAC地址使用另一个虚拟机,绑定的IP地址设置为地址池范围(100 ~ 200)之外的205

73b97097474945f69d144efd232e4771.png

重启相关服务

210fb1b985864961b882aeaeffade68d.png

1.2

来到另一台虚拟机

重启网络服务,查看网卡IP。已经变成了205

c7af571af6914423995d15392a0d1624.png

也可以使用dhclient命令来释放并获取地址

04dc4a47fda441688e4185ded9fc0f3b.png

 

相关推荐

最近更新

  1. 力扣第202题“快乐数”

    2024-06-11 23:38:03       0 阅读
  2. 利用STM32F103驱动舵机的指南(使用HAL库)

    2024-06-11 23:38:03       0 阅读
  3. web前端defer:深度解析与实用指南

    2024-06-11 23:38:03       0 阅读
  4. c语言如何进行文件错误检查

    2024-06-11 23:38:03       0 阅读
  5. C语言从头学18——类型的自动转换

    2024-06-11 23:38:03       0 阅读
  6. OpenCV之cv::Scalar

    2024-06-11 23:38:03       0 阅读
  7. python显示神经网络训练时的1batch数据

    2024-06-11 23:38:03       0 阅读

热门阅读

  1. RapidJosn

    RapidJosn

    2024-06-11 23:38:03      4 阅读
  2. C# —— 显示转换

    2024-06-11 23:38:03       3 阅读
  3. springboot接收byte[]字节

    2024-06-11 23:38:03       3 阅读
  4. 深度学习在老年痴呆检测中的应用:数据集综述

    2024-06-11 23:38:03       4 阅读
  5. C语言学习第四天

    2024-06-11 23:38:03       4 阅读
  6. shell脚本

    2024-06-11 23:38:03       2 阅读