DHCP 分配地址过程文档格式.docx
- 文档编号:20976876
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:10
- 大小:49.43KB
DHCP 分配地址过程文档格式.docx
《DHCP 分配地址过程文档格式.docx》由会员分享,可在线阅读,更多相关《DHCP 分配地址过程文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
此广播报文采用传输层的UDP68号端口发送(封装的目的端口为UDP68号端口),经过网络层IP协议封装后,源IP地址为0.0.0.0(因为此时还没有分配IP地址),目的IP地址为255.255.255.255(有限广播IP地址)。
如下是一个DHCPDISCOVER报文封装的IP报头示例,可以看到
DestinationAddress(目的地址)是
255.255.255.255,而SourceAddress(源地址)是
0.0.0.0。
IP报头中的其它字段含义大家可以参见本书第7章7.3.4节相关内容。
IP:
ID=0x0;
Proto=UDP;
Len:
328
Version=4(0x4)
HeaderLength=20(0x14)
ServiceType=0(0x0)
Precedence=Routine
...0....=NormalDelay
....0...=NormalThroughput
.....0..=NormalReliability
TotalLength=328(0x148)
Identification=0(0x0)
FlagsSummary=0(0x0)
.......0=Lastfragmentindatagram
......0.=Mayfragmentdatagramifnecessary
FragmentOffset=0(0x0)bytes
TimetoLive=128(0x80)
Protocol=UDP-UserDatagram
!
---使用UDP传输层协议
Checksum=0x39A6
SourceAddress=0.0.0.0
---源IP地址为0.0.0.0
DestinationAddress=255.255.255.255
----目的IP地址为255.255.255.255
Data:
Numberofdatabytesremaining=308(0x0134)
【经验之谈】在以上DHCPDISCOVER报文中IP报头中的目的地址(DestinationAddress)是255.255.255.255这个有限广播地址。
这个有限广播地址就是代表任意一个IPv4子网的广播地址,当然是发送报文的主机所在的子网和DHCP服务器所在子网的广播地址,但因为此时DHCP客户端并不知道DHCP服务器所在的是哪个子网。
下面所有其它DHCP报文中的255.255.255.255地址的含义也是一样的。
至于IP报头中的源地址(SourceAddress),由于当前DHCP客户端主机并未分配具体的IP地址,所以只能用具有任意代表功能的0.0.0.0地址来表示了。
下面所有其它DHCP报文中指定的0.0.0.0地址的含义也是一样的。
因为此时,DHCP客户端没有分配到IP地址,也不知道DHCP服务器或DHCP中继的IP地址,所以在DHCPDISCOVER报文中Ciaddr(客户端IP地址)、Yiaddr(被分配的DHCP客户端IP地址)、Siaddr(下一个为DHCP客户端分配IP地址的DHCP服务器地址)、Giaddr(DHCP中继IP地址)这四个字段均为0.0.0.0,如下所示。
另外,从中可以看到,在CHADDR字段和DHCP选项中ClientIdentifier字段中都标识了DHCP客户端网卡MAC地址。
DHCP:
Discover
(xid=21274A1D)
OpCode
(op)
=1(0x1)
HardwareType
(htype)
=1(0x1)10MbEthernet
HardwareAddressLength(hlen)=6(0x6)
Hops
(hops)
=0(0x0)
TransactionID
(xid)
=556223005(0x21274A1D)
Seconds
(secs)
Flags
(flags)
=1(0x1)
!
---标志位置1,代表以广播方式发送
1...............=Broadcast
ClientIPAddress(ciaddr)=0.0.0.0
Your
IPAddress(yiaddr)=0.0.0.0
ServerIPAddress(siaddr)=0.0.0.0
Relay
IPAddress(giaddr)=0.0.0.0
ClientEthernetAddress(chaddr)=08002B2ED85E
ServerHostName
(sname)
=<
Blank>
BootFileName
(file)
MagicCookie=[OK]
OptionField
(options)
DHCPMessageType
=DHCPDiscover
---DHCP报文类型为DHCPDiscover
Client-identifier
=(Type:
1)08002b2ed85e
HostName
=JUMBO-WS
---DHCP服务器主机名
ParameterRequestList=(Length:
7)010f032c2e2f06
Endofthisoptionfield
(2)提供阶段:
即DHCP服务器向DHCP客户端提供预分配IP地址的阶段。
网络中的所有DHCP服务器接收到客户端的DHCPDISCOVER报文后,都会根据自己地址池中IP地址分配的优先次序选出一个IP地址,然后与其它参数一起通过传输层的UDP67号端口,在DHCPOFFER报文中以广播方式发送给客户端(目的端口是DHCP客户端的UDP68号端口)。
客户端通过封装在帧中的目的MAC地址(也就在DHCPDISCOVER报文中的CHADDR字段值)的比对来确定是否接收该帧。
但这样一来,理论上DHCP客户端可能会收到多个DHCPOFFER报文(当网络中存在多个DHCP服务器时),但DHCP客户端只接受第一个到来的DHCPOFFER报文。
DHCPOFFER报文经过IP协议封装后的源IP地址DHCP服务器自己的IP地址,目的地址仍是255.255.255.255广播地址,使用的协议仍为UDP。
下面是一个DHCPOFFER报文的IP报头示例。
ID=0x3C30;
Identification=15408(0x3C30)
Protocol=UDP-UserDatagram
Checksum=0x2FA8
SourceAddress=157.54.48.151
DestinationAddress=255.255.255.255
在DHCPOFFER报文中,Ciaddr字段值仍为0.0.0.0,因为客户端仍没有分配到IP地址;
Yiaddr字段已有值了,这是DHCP服务器为该客户端预分配的IP地址;
因为此时仍没有得到客户端确认,所以Siaddr字段值仍为0.0.0.0;
因为没有经过DHCP中继服务器,所以Giaddr字段值仍为0.0.0.0。
另外,在
DHCP可选项部分,可以看到由服务器随
IP
地址一起发送的各种选项。
在这种情况下,服务器发送的是子网掩码、默认网关(路由器)、租约时间、WINS
服务器地址(NetBIOS
名称服务)和
NetBIOS
节点类型。
下面是一个DHCPOFFER报文示例。
Offer
=2(0x2)
(flags)
1...............=
Broadcast
IPAddress(yiaddr)=157.54.50.5
ClientEthernetAddress(chaddr)=08002B2ED85E
=DHCPOffer
---DHCP报文类型为DHCPOffer
SubnetMask
=255.255.240.0
---所分配IP地址的子网掩码为255.255.240.0
RenewalTimeValue(T1)=8Days,
0:
00:
00
---想要继续租约原来分配的IP地址,则提出续约申请的期限为8天
RebindingTimeValue(T2)=14Days,
0:
---如果上次申请续约失败,再次申请绑定原来分配到的IP地址的期限为14天
IPAddressLeaseTime
=16Days,
---租约期限为16天,也就是DHCP客户端可使用此IP地址的最长时间为16天
ServerIdentifier
=157.54.48.151
---DHCP服务器的IP地址为157.54.48.151
Router
=157.54.48.1
---默认网关IP地址为157.54.48.1
NetBIOSNameService
=157.54.16.154
---DNS服务器IP地址为157.54.16.154
NetBIOSNodeType
=(Length:
1)04
(3)选择阶段:
即DHCP客户端选择IP地址的阶段。
如果有多台DHCP服务器向该客户端发来DHCPOFFER报文,客户端只接受第一个收到的DHCPOFFER报文,然后以广播方式发送DHCPREQUEST报文。
在该报文的“RequestedAddress”选项中包含DHCP服务器在DHCPOFFER报文中预分配的IP地址,对应的DHCP服务器IP地址等。
这样也就相当于同时告诉得其他DHCP服务器,它们可以释放已提供的地址,并将这些地址返回到可用地址池中。
在DHCPOFFER报文封装的IP协议头部中,客户端的
Source
Address仍然是
0.0.0.0,数据包的
Destination
仍然是
255.255.255.255。
但在DHCPOFFER报文中Ciaddr、Yiaddr、Siaddr、Giaddr
字段的地址均0.0.0.0,大家自己分析一下为什么,很简单的。
下面是一个DHCPOFEER报文头部和DHCPOFFER报文示例。
ID=0x100;
Identification=256(0x100)
Protocol=UDP-UserDatagram
Checksum=0x38A6
SourceAddress=0.0.0.0
Request
=DHCPRequest
=(Type:
RequestedAddress
=157.54.50.5
=157.54.48.151
=JUMBO-WS
(4)确认阶段:
即DHCP服务器确认分配级DHCP客户端IP地址的阶段。
某个DHCP服务器在收到DHCP客户端发来的DHCPREQUEST报文后,只有DHCP客户端选择的服务器会进行如下操作:
如果确认将地址分配给该客户端,则以广播方式返回DHCPACK报文;
否则返回DHCPNAK报文,表明地址不能分配给该客户端。
在DHCP
服务器发送的DHCPACK报文的IP协议头部,Source
Address是
DHCP
服务器IP地址,DestinationAddress仍然是广播地址255.255.255.255。
在DHCPACK报文中的Yiaddr字段包含要分配给客户端的IP地址,而Chaddr和DHCP:
ClientIdentifier字段是发出请求的客户端中网卡的MAC地址。
同时在选项部分也会在DHCPOFFER报文中把所分配的IP地址的子网掩码、默认网关、DNS服务器、租约期、续约时间等信息加上。
ID=0x3D30;
Identification=15664(0x3D30)
Checksum=0x2EA8
ACK
(xid=21274A1D)
Transactio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DHCP 分配地址过程 分配 地址 过程