前面介绍了IPv4地址和IPv6地址,但是一个主机是如何获取IP地址的呢?本文就介绍一个中动态获取IP地址的协议——DHCP协议。
本文内容
1 两种配置方式
给一个主机分配IP地址有两种方式:静态配置和动态配置。
(1) 静态配置:是指系统管理员通过手工配置路由器和主机的IP地址。静态配置需要配置项目包括:
(1) IP地址。
(2) 子网掩码。
(3) 默认路由器的IP地址,也称默认网关。即当子网内数据报要发送出去离开子网时,应将它送到哪个接口上进行转发出去。对于下图,路由器接入子网的接口的IP地址223.1.1.4就是该子网中所有主机的默认网关。
(4) DNS服务器名称与IP地址。
很显然,手工配置方式在主机数量太大或者经常有新的主机(如酒店、商场等场合)加入的情况下工作量大。
(2) 动态配置:即动态主机配置协议DHCP(Dynamic Host Configuration Protocol),它允许主机自动获取(被分配一个IP地址),由于它具有能将主机连接进一个网络的网关相关方面的能力,故它又称即插即用协议(plug-and-play protocol)
2 DHCP协议
DHCP协议是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP协议,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址。
DHCP协议机制允许主机加入新的网络和获取IP地址而不用手工参与,它具有以下特点:
(1) 即插即用,即自动分配IP地址。
(2) 允许地址重用。当一个主机申请一个IP地址时,DHCP服务器会从当前可用的地址池中分配任意一个地址给它,当主机离开时,其地址会被收回到这个地址池中,等待再次被分配。
(3) 临时性。DHCP协议分配给的IP地址是临时的,只能在一段有限的时间内使用这个分配的IP地址。DHCP协议称这段时间为租用期。当然,DHCP协议支持地址续租,即在租用期过了一半时,主机会发送请求报文要求更新租用期。
(4) 支持移动用户加入网络。
3 DHCP工作原理
src:源地址。
dest:目的地址。
yiaddr:表示"你的因特网地址",指示被分配给该请求IP地址的主机的地址。
transaction ID:事务ID。
67、68:UDP服务器和客户端端口。
(1) 主机广播DHCP发现报文(DHCP discover message)。
一台新主机首先就是要发现一个要与其交互的DHCP服务,因为主机不知道DHCP服务器在什么地方,所以发送的是广播报文,即目的地址是2555.255.255.255,此时主机还没有自己的IP地址,因此将IP数据报的源IP地址设为全为0表示本主机,即0.0.0.0。这样,本地网络中所有的主机都能接收到这个广播报文,但是普通主机不会响应这个报文,因为不是发给它们的,所以只有DHCP服务才对这个广播报文进行回答。
(2) DHCP服务器广播DHCP提供报文(DHCP offer message)。
凡是收到的发现报文的DHCP服务都会以广播形式响应DHCP提供报文,这里使用广播是因为客户主机还没有IP地址,提供报文中就有DHCP服务器拟分配给客户主机的IP地址,如上图所示,DHCP服务器拟分配给主机的IP地址为233.1.2.4,同时还包括了网络掩码、IP地址的租用期等。
(3) 主机广播请求DHCP请求报文(DHCPrequest message)
客户主机从一个或多个DHCP服务器中选择一个,并向所选择的DHCP服务器发送DHCP请求报文进行响应,回显配置参数。这里使用广播是因为由于主机已经选择了其中一个,其中DHCP服务器收到这个请求报文就知道了主机已经选择过了,就可以把之前拟分配给主机的IP地址回收,等待下一次分配。
(4) DHCP服务器广播DHCP确认报文(DHCP ACK message)
DHCP服务器接收到主机发送的请求报文后,会发送DHCP ACK报文进行响应,一旦主机接收到DHCP ACK后,主机就可以使用被分配的IP地址了。这种状态叫已绑定状态。
整个过程可以用下面通俗的话帮助理解:
主机:这里有没有DHCP服务器啊?
DHCP服务器:有,有,有!(同时发送拟分配的IP地址)
主机:我选一个给我的IP地址了啊。
DHCP服务器(被选中的):好的。
4 小结
本文完