DHCP原理1-单个局域网出现多个DHCP服务器会发生什么

1. 背景

        DHCP全称是Dynamic Host Configuration Protocol。其协议标准是RFC1541(已被RFC2131取代),主要实现服务器向客户端动态分配IP地址(如IP地址、子网掩码、网关、DNS)和配置信息。其系统架构是标准的C/S架构。RFC2131标准是基于Bootstrap 协议 (BOOTP)。

TCP/IP协议4层模型

        DHCP是处于上图中的应用层,传输层使用了UDP,可以通过网络分析工具对此进行分析。客户端通过68端口发出广播请求,服务器通过67端口发送广播回应请求。

2. 消息格式

TCP/IP二进制协议帧结构

3. 通信流程

DHCP通信流程

         如上图所示,DHCP的流程分为4步:DHCPDISCOVER(发现)、DHCPOFFER(提供)、DHCPREQUEST(请求)、DHCPACK(确认)。

3.1. DHCPDISCOVER

        DHCP 客户端向范围内的所有可用 DHCP 服务器发送 DHCP 发现广播请求。客户端发送 DHCPDISCOVER 数据包,其UDP的目标地址为 255.255.255.255,源地址为 0.0.0.0。 DHCP 部分将数据包标识为发现数据包,并使用网卡的物理地址在两个位置标识客户端。

3.2. DHCPOFFER

        从 DHCP 服务器接收 DHCP 提供广播响应,提供可用的 IP 地址租约。收到DHCPDISCOVER阶段发送的数据包后,DHCP 服务器通过发送 DHCPOFFER 数据包进行响应,其源地址为DHCP服务器地址,目标地址为255.255.255.255,DHCP 部分将数据包标识为 Offer。

3.3. DHCPREQUEST

        DHCP 客户端广播请求在结束时要求提供 IP 地址租约和 DHCP 广播确认。客户端通过发送 DHCPREQUEST 来响应 DHCPOFFER。 在以下捕获的 IP 部分中,客户端的源地址仍为 0.0.0.0,数据包的目标地址仍为 255.255.255.255。 客户端保留 0.0.0.0,因为客户端尚未收到来自服务器的验证,可以开始使用提供的地址。 目标仍会广播,因为多个 DHCP 服务器可能已响应,并且可能保留对客户端提供的套餐的预留。 这让其他 DHCP 服务器知道他们可以释放其提供的地址并将其返回到其可用池。

3.4. DHCPACK

        DHCP 服务器使用 DHCPACK 响应 DHCPREQUEST,从而完成初始化周期。 源地址是 DHCP 服务器 IP 地址,目标地址仍为 255.255.255.255。

4. 多DHCP问题

        并不是同一网络出现多个DHCP服务器就一定存在问题,如为了增加网络的稳定性网络中设置了两个DHCP服务器,分别负责两段ip的分配保证分出去的ip不会出现冲突,当一个DHCP服务器出现异常后另外一个也可以正常工作;如为了方便特殊网络设备的管理,在DHCP基础上架设了一个私有的DHCP服务器,仅仅为特殊设备分配IP,并不为普通设备分配IP。当然一般情况下同一网络出现多DHCP会出现网络问题,要么是ip地址分配错误,要么是ip出现冲突。

        在中小型网络中多DHCP服务器冲突是一种常见的网络故障,在该网络情况下可能会出现一些网络设备可能会联网异常,使用wireshak或者tcpdump工具对网络中端口68或67上的UDP进行监听,然后对数据进行分析找到DHCP服务器的MAC地址。

5. 参考协议标准

RFC 编号

标题

说明

链接

RFC 1541

Dynamic Host Configuration Protocol (DHCP)

DHCP 早期版本规范

RFC 1541

RFC 2131

Dynamic Host Configuration Protocol (DHCP)

DHCP 核心规范,替代了 RFC 1541

RFC 2131

RFC 2132

DHCP Options and BOOTP Vendor Extensions

定义了 DHCP 选项和 BOOTP 扩展

RFC 2132

RFC 3315

Dynamic Host Configuration Protocol for IPv6 (DHCPv6)

适用于 IPv6 网络的 DHCP 协议

RFC 3315

RFC 3646

DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)

定义了在 IPv6 网络中传递 DNS 配置信息的选项

RFC 3646

RFC 6221

Lightweight DHCPv6 Relay Agent

定义了轻量级的 DHCPv6 中继代理

RFC 6221

       

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值