DHCP协议

DHCP(动态主机配置协议)是一种用于自动分配和管理网络设备IP地址的协议。它基于BOOTP,增加了网络地址的动态分配功能。DHCP通过客户端-服务器交互,包括DHCPDISCOVER、DHCPOFFER、DHCPREQUEST和DHCPACK等消息,实现网络地址的分配、续租和释放。协议设计目标包括避免手动配置、避免地址冲突、支持多服务器和客户端的灵活选择。在客户端-服务器交互中,客户端可以选择重用之前分配的网络地址,服务器则根据请求和地址池状态进行响应。
摘要由CSDN通过智能技术生成

DHCP协议——RFC2131

1 Introduction

DHCP协议,即Dynamic Host Configuration Protocol,动态主机配置协议,主要是为了解决动态主机 配置问题,DHCP提供了一个在TCP/IP网络中传递配置信息给主机的框架。DHCP基于BOOTP开发,增加了可重用网络地址的自动分配功能和额外的配置选项。DHCP可以捕获BOOTP中继器的动作,并且DHCP设备可以BOOTP设备互操作。

1.1 相关协议

对于动态主机配置问题的解决,已有几种网络协议和相关的机制在工作。RARP协议明确的处理网络地址发现的问题,并包括一套自动IP地址分配机制。TFTP提供了将一个小的简单文件从boot服务器传输的问题。ICMP协议通过“ICMP重定向”消息提供了额外路由器的通知主机。ICMP同样可以通过“ICMP掩码请求”消息提供子网掩码信息。主机可以通过ICMP路由发现机制来定位路由器。
一般网络中会有数种协议参与解决动态主机的配置问题,DHCP协议主要用于在配置的初始化过程中,在后面的工作中,一般只在地址续期或重新分配时再次使用。

1.2 设计目标

RFC2131对DHCP协议的设计提出几点目标,这也是DHCP协议所具备的基本功能:

  • DHCP应该是一个机制,而不是策略
  • 客户端无需手动配置参数
  • 网络无需为客户端手动配置桉树
  • DHCP应该无需再每个子网都配置DHCP服务器
  • DHCP客户端必须随时准备接收一个参数配置请求的多个响应
  • DHCP必须和静态配置的、不参与的主机以及已存在的网络协议实现共存
  • DHCP必须可以与RFC 951RFC 1542所定义的BOOTP中继代理行为交互操作
  • DHCP必须为已存在的BOOTP客户端提供服务

因此,DHCP必须:

  • 确保任何指定的网络地址在同一时间,只能被不超过一个的DHCP客户端使用
  • 在客户端重启后,保持DHCP客户端配置参数不变,只要可能的情况下,对每个请求,DHCP客户端都应该被分配一样的配置参数
  • 在服务器重启后,保持DHCP客户端配置参数不变,只要可能的情况下,DHCP客户端应该被分配同样的配置参数,而不管DHCP机制的重启
  • 允许对新客户端配置参数的自动分配,来避免手动配置
  • 对于指定客户端,支持固定或永久的配置的分配

1.3 术语

1.4 资料引用

RFC 2131
RFC 951
RFC 1542

2 Summary

从客户端的角度看来,DHCP是BOOTP机制的一个扩展,这导致已在的BOOTP客户端可以和DHCP服务器直接相互操作,而不需对客户端的初始化软件进行任何修改。RFC 1542详细描述了BOOTP设备和DHCP客户端及服务器之间的交互。在RFC 2131中,提供了一些新的可选的处理,用于优化DHCP客户端和服务器之间的交互操作。
图1给出了DHCP消息的格式,表1描述了消息中的每个字段。

Format of a DHCP message

FIELD OCTETS DESCRIPTION
op 1 Message op code / message type. 1 = BOOTREQUEST, 2 = BOOTREPLY
htype 1 Hardware address type, see ARP section in “Assigned Numbers” RFC; e.g., ’1’ = 10mb ethernet.
hlen 1 Hardware address length (e.g. ’6’ for 10mb ethernet).
hops 1 Client sets to zero, optionally used by relay agents when booting via a relay agent.
xid 4 Transaction ID, a random number chosen by the client, used by the client and server to associate messages and responses between a client and a server.
secs 2 Filled in by client, seconds elapsed since client began address acquisition or renewal process.
flags 2 Flags (see figure 2).
ciaddr 4 Client IP address; only filled in if client is in BOUND, RENEW or REBINDING state and can respond to ARP requests.
yiaddr 4 ’your’ (client) IP address.
siaddr 4 IP address of next server to use in bootstrap; returned in DHCPOFFER, DHCPACK by server.
giaddr 4 Relay agent IP address, used in booting via a relay agent.
chaddr 16 Client hardware address.
sname 64 Optional server host name, null terminated string.
file 128 Boot file name, null terminated string; “generic” name or null in DHCPDISCOVER, fully qualified directory-path name in DHCPOFFER.
options var Optional parameters field. See the options documents for a list of defined options.

目前,‘option’字段的长度是可变的,但长度至少在312字节,这一要求表明,一个DHCP客户端必须能够接受一个长度达576字节的消息,这是一个IP主机必须能接收的最小IP数据报长度。DHCP客户端可以通过’maximum DHCP message size’选项协商使用更大的DHCP消息报文。这一选择字段可能在后续扩展进‘filt’和‘sname’字段。
在一个客户端使用DHCP用于初始化配置的情况下,DHCP需要对客户端TCP/IP软件进行创造性的运用,并对RFC 1211进行自由的解释。在IP地址配置之前,TCP/IP软件应该接受和转发任何客户端接收到的IP报文给IP层;在TCP/IP软件被配置之前,DHCP服务器和BOOTP中继器肯恩无法传送DHCP消息给那些无法接收硬件广播数据报的终端。针对这些终端,DHCP使用‘flags’字段,如下图2所示,最左边的bit被定义为BROADCAST(B)标志位,该位语义的讨论稍后展开。其他位必须被客户端设为0并且被服务器和中继器忽略。

Format of the ’flags’ field

2.1 配置参数仓库

DHCP提供的第一个服务,是为网络客户端提供永久的网络参数仓库。该仓库的模式是,DHCP服务为每个客户端存储一个key-value入口,这里的key是一个唯一标志,这里的value包含这个客户端的配置参数。
比如,key可能是一对(IP-subnet-number,hardware-address),允许在不同的子网内连续或同时使用一个硬件地址,并且允许使用非全球唯一的硬件地址。同时,key可能是一对(IP-subnet-number,hostname),允许服务器去智能的给那些已经移动到别的子网或变动了硬件地址的客户端分配地址。根据协议定义,除非客户端使用‘client identifier’字段明确支持一个标识符,key应是(IP-subnet-number,hardware-address)对。客户端可以向DHCP服务请求重新获取配置参数。客户端对接配置参数仓库的接口包含两部分,发给服务器的请求配置参数的协议消息和来自服务器的携带配置参数的响应。

2.2 网络地址的动态配置

为客户端临时的或永久的分配网络地址,是DHCP提供的第二个服务。该服务的基本机制是:客户端请求在一定周期时间内使用某个网络地址。这种分配机制确保在请求的时间内,不会重复分配该地址,并且尽力在每次指定客户端请求地址时,都分配同样的网络地址,在DHCP协议中,该周期被称为租期(lease)。客户端可以通过后续的请求来延长租期,也可以在不需要地址时通过发送消息来释放地址给服务器。客户端可以通过请求一个无限的租期来获取一个永久的地址分配。但是即使分配了永久地址,服务器可能选择给出一个很长但是非无穷的租期,来允许对客户端已经退出这一事实进行探测。
在一些环境中,由于可用地址耗尽,有必要对网络地址进行重新分配。此时,分配机制会重用那些租期已经时效的地址。服务器应该利用参数信息仓库中任何可用信息,去选择一个可重用的地址。比如,服务器可能会选择最近最少被分配的地址。作为一种相容性检测,分配服务器应该在分配地址之前对重用地址进行探测,比如使用ICMPecho请求,而客户端应该探测新接收到的地址,比如使用ARP。

2.3 DHCP和BOOTP的区别

DHCP和BOOTP有两个主要的区别:

  1. DHCP定义的机制中,客户端在有限的周期内分配一个网络地址,并允许对不同客户端分配一系列的网络地址。
  2. DHCP提供的机制中,客户端获取所有它所需要的IP配置参数来进行操作。

此外,DHCP在术语上引入了一个小的改动来表明一个字段的意义,BOOTP中定义的“vendor extension”供应商扩展,在DHCP中被定义为option,类似的标签数据项也被重新命名为option。

3 客户端-服务器协议

DHCP使用BOOTP消息格式(RFC 951),每一个从客户端发送到服务器的DHCP消息的‘op’字段办好BOOTREQUEST,BOOTREPLY在每一个从服务器发送到客户端的DHCP消息中的‘op’字段使用。
DHCP消息的‘options’字段的前四个字节分别包含四个十进制数值99,130,83和99,该字段的余下部分由一系列被称为‘options’的打了标签的参数组成。RFC 1497中所有列出的供应商扩展‘vender extension’也是DHCP选项。RFC 1533给出了DHCP使用的一套完整的选项定义。
目前,一些选项已经被定义。一个特殊的option——DHCP消息类型选项——必须被包含在每一个DHCP消息中。这个option定义了DHCP消息的类型。其他选项的允许、需要、或不被允许都依赖于该DHCP消息类型。

摘要 DHCPv6使DHCP服务器能够传递配置参数(如IPv6网络地址)给IPv6节点。它提供(可重复使用的)网络地址自动分配能力,增加了配置灵活性。本协议是“IPv6无状态地址自动配置”(RFC2462)的有状态等价物,能够用于独立获得配置参数或与后者一起获得配置参数。 目录 第1章 引言和综述 1-1 协议和寻址 1-2 涉及2个消息的客户端-服务器交换 1-3 涉及4个消息的客户端-服务器交换 第2章 要求 第3章 背景 第4章 术语 4-1 IPv6术语 4-2 DHCP术语 第5章 DHCP常量 5-1 多播地址 5-2 UDP端口 5-3 DHCP消息类型 5-4 状态代码 5-5 发送和重复发送参数 5-6 时间值和作为时间值的“Infinity”表示法 第6章 客户端/服务器消息格式 第7章 中继代理/服务器消息格式 7-1 Relay-forward消息 7-2 Relay-reply消息 第8章 域名的表示法及应用 第9章 DHCP唯一标识符(DUID) 9-1 DUIC内容 9-2 基于链路层地址加时间的DUID[DUID-LLT] 9-3 根据企业编号由供应商分配的DUID[DUID-EN] 9-4 基于链路层地址的DUID[DUID-LL] 第10章 身份关联 第11章 选择分配给IA的地址 第12章 管理临时地址 第13章 客户端消息发送 第14章 客户端初始消息交换的可靠性 第15章 消息合法性检测 15-1 Transaction IDs使用 15-2 Solicit消息 15-3 Advertise消息 15-4 Request信息 15-5 Confirm消息 15-6 Renew消息 15-7 Rebind消息 15-8 Decline消息 15-9 Release消息 15-10 Reply消息 15-11 Reconfigure消息 15-12 Information-reques消息 15-13 Relay-forward消息 15-14 Relay-reply消息 第16章 客户端源地址和接口选择 第17章 DHCP服务器请求 17-1 客户端行为 17-1-1 Solicit消息生成 17-1-2 Solicit消息发送 17-1-3 Advertise消息接收 17-1-4 Reply消息接收 17-2 服务器行为 17-2-1 Solicit消息接收 17-2-2 Advertise信息生成和发送 17-2-3 Reply消息生成和发送 第18章 DHCP客户端-发起的配置交换 18-1 客户端行为 18-1-1 Request消息生成和发送 18-1-2 Confirm消息生成和发送 18-1-3 Renew消息生成和发送 18-1-4 Rebind消息生成和发送 18-1-5 Information-request消息生成和发送 18-1-6 Release消息生成和发送 18-1-7 Decline消息生成和发送 18-1-8 Reply消息接收 18-2 服务器行为 18-2-1 Request消息接收 18-2-2 Confirm消息接收 18-2-3 Renew消息接收 18-2-4 Rebind消息接收 18-2-5 Information-request消息接收 18-2-6 Release消息接收 18-2-7 Decline消息接收 18-2-8 Reply消息发送 第19章 DHCP服务器发起的配置交换 19-1 服务器行为 19-1-1 Reconfigure消息生成和发送 19-1-2 Reconfigure消息超时或重新发送 19-2 Renew消息接收 19-3 Information-request消息接收 19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值