DHCP原理详解

DHCP原理详解

一. DHCP协议概述

连接到Internet的计算机需要在发送或接收数据报前,知道其IP地址和其他信息,如网关地址、使用的子网掩码和域名服务器的地址。常用的地址分配方式有2种:

  • 1、手动配置ip地址、网关、DNS等信息。
  • 2、使用DHCP协议动态分配ip地址、网关、DNS等。

在以下场合通常利用 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 服务器来完成 IP地址分配:

  • 1、网络规模较大,手工配置需要很大的工作量,并难以对整个网络进行集中管理。
  • 2、网络中主机数目大于该网络支持的 IP 地址数量,无法给每个主机分配一个固定的 IP 地址,且对同时接入网络的用户数目也有限制(比如,Internet 接入服务提供商即属于这种情况),大量用户必须通过 DHCP 服务动态获取IP 地址。
  • 3、网络中只有少数主机需要固定的IP 地址,大多数主机没有固定 IP 地址的需求。

在启动 DHCP功能时,才打开 DHCP使用的 UDP 67和 UDP 68端口。

二. DHCP的基本概念
DHCP Server

DHCP服务的提供者,通过 DHCP 报文与 DHCP客户端交互,为各种类型的客户端分配合适的IP 地址,并可以根据需要为客户端分配其它网络参数。

DHCP Client

客户端是整个DHCP过程的触发者和驱动者,通过 DHCP 报文和DHCP 服务器交互,得到 IP 地址和其他网络参数。

DHCP Relay

DHCP报文的中继转发者。它在处于不同网段间的DHCP 客户端和服务器之间承担中继服务,解决了DHCP 客户端和 DHCP 服务器必须位于同一网段的问题。

三.DHCP工作过程
DHCP Server-Client模式
1、动态分配地址过程

DHCP 客户端从DHCP 服务器动态获取 IP 地址,主要通过四个阶段进行:

DHCP原理详解_第1张图片

  • 1 发现阶段:DHCP客户端寻找DHCP 服务器的阶段。客户端以广播方式发送 DISCOVER 报文。
  • 2 提供阶段:DHCP服务器提供 IP 地址的阶段。DHCP 服务器接收到客户端的DISCOVER 报文后,根据 IP 地址分配的优先次序选出一个IP地址,与其他参数一起通过OFFER报文发送给客户端。
  • 3 选择阶段:DHCP客户端选择IP地址的阶段。如果有多台DHCP 服务器向该客户端发来OFFER报文 ,客户端只接受第一个收到的OFFER 报文,然后以广播方式发送 REQUEST 报文,该报文中包含DHCP 服务器在OFFER 报文中分配的 IP 地址。同时该报文中包含Option 54(服务器标识选项),即它选择的DHCP服务器的IP地址信息。
  • 4 确认阶段:DHCP服务器确认IP 地址的阶段。DHCP 服务器收到DHCP 客户端发来的 REQUEST 报文后,只有DHCP 客户端选择的服务器会进行如下操作:如果确认地址分配给该客户端,则返回 ACK 报文;否则将返回NAK 报文,表明地址不能分配给该客户端。客户端收到服务器返回的ACK 确认报文后,会以广播的方式发送ARP 报文(目的地址是被分配到的地址)进行地址探测,如果在规定的时间内没有收到回应,客户端才使用此地址。
2、复用之前地址过程

DHCP客户端每次重新登录网络时,不需要再发送DISCOVER报文,而是直接发送包含前一次分配的IP地址的REQUEST请求报文,即报文中的Option 50 (请求的IP地址选项)字段填入曾经使用过的IP地址。DHCP服务器收到这一报文后,判断DHCP客户端是否可以使用请求的地址。

  • 如果地址可用,则执行如下过程:

DHCP原理详解_第2张图片
如果地址不可用,则重新执行discover过程:

DHCP原理详解_第3张图片

3、更新ip地址租约

如果采用动态地址分配策略,则 DHCP 服务器分配给客户端的 IP 地址有一定的租借期限,当租借期满后服务器会收回该 IP 地址。

  • 1、IP 租约期限达到一半(T1)时,DHCP 客户端会自动以单播的方式,向 DHCP 服务器发送 REQUEST 报文,请求更新 IP 地址租约。如果收到 ACK 报文,则租约更新成功;如果收到 NAK 报文,则重新发起申请过程。
  • 2、到达租约期限的 87.5%(T2)时,如果仍未收到 DHCP 服务器的应答,DHCP 客户端会自动向 DHCP 服务器发送更新其 IP 租约的广播报文。如果收到ACK 报文,则租约更新成功;如果收到NAK 报文,则重新发起申请过程。 如图8所示,为租约达到87.5%,广播发送REQUEST报文后,收到DHCP服务器回应的ACK报文,租约更新成功的情况。

更新租约成功流程:

DHCP原理详解_第4张图片

4、客户端主动释放地址

DHCP客户端不再使用分配的IP地址时,会主动向DHCP服务器发送RELEASE报文,通知DHCP服务器释放IP地址的租约。DHCP服务器会保留这个DHCP客户端的配置信息,以便该客户端重新申请地址时,重用这些参数。

DHCP Server-Relay-Client模式

原始的DHCP协议要求客户端和服务器只能在同一个子网内,不可以跨网段工作。因此,为进行动态主机配置需要在所有网段上都设置一个DHCP服务器,这显然是不经济的。 DHCP中继(DHCP Relay)的引入解决了这一问题,它在处于不同网段间的DHCP客户端和服务器之间承担中继服务,将DHCP协议报文跨网段中继到目的DHCP服务器,于是不同网络上的DHCP客户端可以共同使用一个DHCP服务器。

DHCP中继的工作过程如图所示:
DHCP原理详解_第5张图片

DHCP option82

option 82是 DHCP报文中的中继代理信息选项(Relay Agent Information option)。是 DHCP报文中 option内容的一部分。option 82中可以包含最多255个sub-option, 若定义了option 82,至少要定义一个 sub-option。目前 option 82中常用 sub-option 1、sub-option2。

  • sub-option 1:代理电路 ID(即Circuit ID)子项。子选项通常在 DHCP 中继设备上配置,定义了在传输报文的时候要携带 DHCP 客户端所连接端口的端口信息。通常 sub-option 1 与 sub-option 2 子选项要共同使用来标识 DHCP源端的信息。
  • sub-option 2:代理远程 ID(即Remote ID)子项。该子选项也通常在 DHCP中继设备上配置,定义了在传输报文的时候要携带中继设备的 MAC地址信息。通常与 sub-option 1子选项要共同使用来标识 DHCP源端的信息。

DHCP中继支持 option 82时的工作机制如下图所示:
DHCP原理详解_第6张图片
1、DHCP Relay收到Client请求报文,若报文中没有option82,则 DHCP中继设备将 option 82选项添加到报文中后转发给 DHCP服务器;若报文中已有option82,处理策略有4种,分别是丢弃、保持、移除、替换。

  • DROP丢弃:直接丢弃报文。
  • KEEP保持:持报文原有的 option 82,然后将报文发给服务器。
  • REMOVE移除:移除option 82,然后将报文发给服务器。
  • REPLACE替换:用中继设备本身的option 82项替代报文中原有的option 82,然后将报文发给服务器。

2、DHCP服务器收到 DHCP中继设备转发的 DHCP请求报文后,将记录报文中option选项所携带的信息,然后将携带 DHCP配置信息以及 option 82信息的报文发给 DHCP中继。

3、DHCP中继收到 DHCP服务器的返回报文后,需要判断option82选项是否为本设备添加,如果是则剥离报文中的 option 82信息,然后将带有 DHCP配置信息的报文转发给 DHCP客户端;否则,直接将包转发给用户。

四、DHCP option

DHCP 利用 Option 字段传递控制信息和网络配置参数,实现地址的动态分配,为客户端提供更加丰富的网络配置信息。DHCP选项格式如图所示:

1、常用option选项
选项 含义
Option 3 路由器选项,用来指定为客户端分配的网关地址。
Option 6 DNS 服务器选项,用来指定为客户端分配的 DNS 服务器地址。
Option 51 IP 地址租约选项。
Option 53 DHCP 消息类型选项,标识 DHCP 消息的类型。
Option 55 请求参数列表选项。客户端利用该选项指明需要从服务器获取哪些网络配置参数。该选项内容为客户端请求的参数对应的选项值。
Option 66 TFTP 服务器名选项,用来指定为客户端分配的TFTP 服务器的域名。
Option 67 启动文件名选项,用来指定为客户端分配的启动文件名。
Option 150 TFTP 服务器地址选项,用来指定为客户端分配的TFTP 服务器的地址。
Option 121 无分类路由选项。该选项中包含一组无分类静态路由(即目的地址的掩码为任意值,可以通过掩码来划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。
Option 33 静态路由选项。该选项中包含一组有分类静态路由(即目的地址的掩码固定为自然掩码,不能划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。如果存在 Option 121,则忽略该选项。
2、自定义option选项

1、中继代理信息选项(Option 82)

option 82是 DHCP报文中的中继代理信息选项(Relay Agent Information option)。

2、厂商特定信息选项(Option 43)

Option 43 称为厂商特定信息选项。DHCP 服务器和 DHCP 客户端通过 Option 43 交换厂商特定的信息。当DHCP 服务器接收到请求 Option 43 信息的 DHCP 请求报文(Option 55 中带有43 参数)后,将在回复报文中携带 Option 43,为DHCP 客户端分配厂商指定的信息。

五、典型应用组网
DHCP Server

DHCP原理详解_第7张图片

DHCP Relay

DHCP原理详解_第8张图片

六、参考文档
  • RFC2131:Dynamic Host Configuration Protocol
  • RFC2132:DHCP options and BOOTP Vendor Extensions
  • RFC1542:Clarifications and Extensions for the Bootstrap Protocol
  • RFC3046:DHCP Relay Agent Information option
  • RFC5969:IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) – Protocol Specification

你可能感兴趣的:(网络协议,网络,服务器,linux,网络协议,DHCP)