既然充当服务器,我们在路由器上,开启dhcp服务,并建立两个地址池。
然后,在接口上,启用dhcp。
接下来,给路由器的0口和1口,分别配置上地址。
再来PC这边看。
已经获得了地址。
先回答一个疑问,这台DHCP服务器有两个地址池,10段和20段,那么当他收到1个dhcp请求,如何判断应该从哪个地址池分地址?
答案是,根据他收到dhcp请求的接口,哪个接口收到的,就去拿个和该接口相同网段的地址发下去。
一开始为什么不发地址,因为接口没地址啊,接口没地址就无法判断从哪个池下发地址啊。
点击了解更多技术资料和免费学习视频,加入讨论群:662736393
技术交流,添加 企鹅 :167748928
再来分析DHCP获得地址时的四个过程。
现在拿右边的全新PC来看,打开抓包工具wireshark。
可以看出,PC获取地址总共做了7个动作,分别来看。
因为pc这时候还没ip,所以源ip是4个0,
pc这时候也不知道dhcp服务器的ip,所以目标ip是广播,4个255,
mac地址的话,源mac是pc自己,目标mac也是广播,
捕获的dhcp discover报文
offer报文可以通过单播来发送,使用单播可以减少网络中报文的数量,提高网络的性能
但是等等,不是说PC还没地址吗,单播必须写明确的地址,写什么地址??
PC是没有ip地址,但是PC有mac地址啊,写明mac地址,这样单播报文就可以正常送达了
捕获的dhcp offer报文。
因为在网络中可能不止存在一台dhcp服务器,所以PC机也是可能从多个服务器中都获得地址的,就像咱们在找工作的时候,可能多家公司都发来了offer,咱们需要回应别人的offer,才算确定接受了这个岗位。
所以PC收到offer后,也是一样的,再像服务器发一个request,表示接受这个地址。
request包的目标地址是广播,也是告诉其他服务器,pc已经心有所属了。
捕获的dhcp request报文。
确认这个地址分配给了PC,这个就比较好理解了,无需做太多说明。
这个步骤,其实和dhcp没有太大关系了,主要是PC机测试一下,自己刚拿到的新地址,在网络中是不是独一无二的,有没有冲突。
连发3个无故arp,用来检测网络中是否还存在相同的地址,如果没收到回应就正常,收到回应的话,会找dhcp服务器再申请个新的。
技术资料加 qq167748928 好友免费分享:
更多网络技术公开课,腾讯课堂搜“ 众元教育 ”,戳 免费公开课 ,可直接听课哦!
一DHCP服务的自动IP地址分配原理 DHCP使用客户端/服务器(Client/Server)模型。网络管理员建立一个或多个维护TCP/IP配置信息,并将其提供给客户端的DHCP服务器。服务器数据库包含以下信息。 网络上所有客户端的有效配置参数。 在指派到客户端的地址池中维护的有效IP地址,以及用于手动指派的保留地址。 服务器提供的租约持续时间。 通过在网络上安装和配置DHCP服务器,启用DHCP的客户端可在每次启动并加入网络时动态地获得其IP地址和相关配置参数。DHCP服务器以地址租约的形式将该配置提供给发出请求的客户端。 在以下3种情况下,DHCP客户机将申请一个新的IP地址。 计算机第一次以DHCP客户机的身份启动。 DHCP客户机的IP地址因某种原因(如租约期到了,或断开连接了)已经被服务器收回,并提供给其他DHCP客户机使用。 DHCP客户机自行释放已经租用的IP地址,要求使用一个新的IP地址。 DHCP客户机申请一个新的IP地址的总体过程如图6所示。其具体的过程如下。 (1)DHCP客户机设置为"自动获得IP地址"后,因为还没有IP地址与其绑定,此时称为处于"未绑定状态"。这时的DHCP客户机只能提供有限的通信能力,如可以发送和广播消息,但因为没有自己的IP地址,所以自己无法发送单播的消息。 (2)DHCP客户机试图从DHCP服务器那里"租借"到一个IP地址,这时DHCP客户机进入"初始化状态"。这个未绑定IP地址的DHCP客户机会向网络上发出一个源IP地址为广播地址0.0.0.0的DHCP探索消息,寻找看哪个DHCP服务器可以为它分配一个IP地址。 (3)子网络上的所有DHCP服务器收到这个探索消息。各DHCP服务器确定自己是否有权为该客户机分配一个IP地址。 (4)确定有权为对应客户机提供DHCP服务后,DHCP服务器开始响应,并向网络广播一个DHCP提供消息,包含了未租借的IP地址信息以及相关的配置参数。 (5)DHCP客户机会评价收到的DHCP服务器提供的消息并进行两种选择。一是认为该服务器提供的对IP地址的使用约定(称为"租约")可以接受,就发送一个请求消息,该消息中指定了自己选定的IP地址并请求服务器提供该租约。还有一种选择是拒绝服务器的条件,发送一个拒绝消息,然后继续从第(1)步开始执行。 (6)DHCP服务器在收到确认消息后,根据当前IP地址的使用情况以及相关配置选项,对允许提供DHCP服务的客户机发送一个确认消息,其中包含了所分配的IP地址及相关DHCP配置选项。 (7)客户机在收到DHCP服务器的消息后,绑定该IP地址,进入"绑定状态"。这样客户机就有了自己的IP地址,就可以在网络上进行通信了。 二DHCP中继代理原理 在大型的网络中,可能会存在多个子网。DHCP客户机通过网络广播消息获得DHCP服务器的响应后得到IP地址。但广播消息是不能跨越子网的。因此,如果DHCP客户机和服务器在不同的子网内,客户机还能不能向服务器申请IP地址呢?这就要用到DHCP中继代理。DHCP中继代理实际上是一种软件技术,安装了DHCP中继代理的计算机称为DHCP中继代理服务器,它承担不同子网间的DHCP客户机和服务器的通信任务。 中继代理是在不同子网上的客户端和服务器之间中转DHCP/BOOTP消息的小程序。根据征求意见文档(RFC),DHCP/BOOTP中继代理是DHCP和BOOTP标准和功能的一部分。 1.路由器的DHCP/BOOTP中继代理支持 在TCP/IP网络中,路由器用于连接称做"子网"的不同物理网段上使用的硬件和软件,并在每个子网之间转发IP数据包。要在多个子网上支持和使用DHCP服务,连接每个子网的路由器应具有在RFC 1542中描述的DHCP/BOOTP中继代理功能。 要符合RFC 1542并提供中继代理支持,每个路由器必须能识别BOOTP和DHCP协议消息并相应处理(中转)这些消息。由于路由器将DHCP消息解释为BOOTP消息(例如,通过相同的UDP端口编号发送,并包含共享消息结构的UDP消息),具有BOOTP中继代理能力的路由器可中转网络上发送的DHCP数据包和任何BOOTP数据包。 如果路由器不能作为DHCP/BOOTP中继代理运行,则每个子网都必须有在该子网上作为中继代理运行的DHCP服务器或另一台计算机。如果配置路由器支持DHCP/BOOTP中继不可行或不可能,您可以通过安装DHCP中继代理服务来配置运行Windows NT Server 4.0或更高版本的计算机充当中继代理。 在大多数情况下,路由器支持DHCP/ BOOTP中继。如果您的路由器不支持,则应与路由器制造商或供应商联系以查明是否有软件或固件升级提供对该功能的支持。 2.中继代理的工作原理 中继代理将它连接的其中一个物理接口(如网卡)上广播的DHCP/BOOTP消息中转到其他物理接口连至的其他远程子网。图7显示了子网2上的客户端C是如何从子网1上的DHCP服务器1获得DHCP地址租约的。具体过程如下。 (1)DHCP客户端C使用众所周知的UDP服务器67号端口在子网2上以"用户数据报协议(UDP)"的数据报广播DHCP/BOOTP查找消息(DHCPDISCOVER)。67号UDP端口是BOOTP和DHCP服务器通信所保留和共享的。 (2)中继代理,在DHCP/BOOTP允许中继的路由器的情况下,检测DHCP/BOOTP消息头中的网关IP地址字段。如果该字段有IP地址0.0.0.0,代理文件会在其中填入中继代理或路由器的IP地址,然后将消息转发到DHCP服务器1所在的远程子网1。 (3)远程子网1上的DHCP服务器1收到此消息时,它会为该DHCP服务器可用于提供IP地址租约的DHCP作用域检查其网关IP地址字段。 (4)如果DHCP服务器1有多个DHCP作用域,网关IP地址字段(GIADDR)中的地址会标识将从哪个DHCP作用域提供IP地址租约。 例如,如果网关IP地址(GIADDR)字段有10.0.0.2的IP地址,DHCP服务器会检查其可用的地址作用域集中是否有与包含作为主机的网关地址匹配的地址作用域范围。在这种情况下,DHCP服务器将对10.0.0.1和10.0.0.254之间的地址作用域进行检查。如果存在匹配的作用域,则DHCP服务器从匹配的作用域中选择可用地址以便在对客户端的IP地址租约提供响应时使用。 (5)当DHCP服务器1收到DHCPDISCOVER消息时,它会处理IP地址租约(DHCPOFFER)并将其直接发送给在网关IP地址(GIADDR)字段中标识的中继代理。 (6)路由器然后将地址租约(DHCPOFFER)转发给DHCP客户端。此时客户端的IP地址仍旧无人知道,所以它必须在本地子网上广播。同样,根据RFC 1542,DHCPREQUEST消息从客户端中转发服务器,而DHCPACK消息从服务器转发到客户端。记得采纳啊
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)