CCNA图文-27-DHCP协议实例详解

  • A+
所属分类:网络运维
摘要

本文主要介绍DHCP(Dynamic Host Configuration Protocol,动态主机分配协议)的工作过程;文章后半部分会实例演示如何在Cisco路由器上配置DHCP、如何配置DHCP中继服务。

 

文章目录

1.DHCP工作过程

DHCP工作流程如下:

CCNA图文-27-DHCP协议实例详解

DHCP客户端(PC1)被配置成自动获取IP,R1上面配置了DHCP服务,当PC1启动连接网络时,通过下面的步骤来从DHCP服务端(R1)上获取IP:

1)PC1通过网卡向外广播DHCP Discover信息,该数据包的目的MAC是广播MAC地址(FFFFFFFFFFFF),源MAC地址是PC1的网卡MAC地址;该数据包的目的IP是255.255.255.255,源IP是0.0.0.0;DHCP使用UDP协议,该数据包的目的UDP端口是67(DHCP服务端使用的UDP端口),源UDP端口是68(客户端使用的UDP端口)。

2)R1收到PC1的DHCP Discover广播包,比如上图中R1的Fa0/0接口配置的IP地址是192.168.1.1/24,R1从Fa0/0接口接收到PC1的DHCP Discover广播包后,它在本地的DHCP配置中寻找可以和自己Fa0/0匹配的地址池(192.168.1.0/24这个子网的地址池),如果配置了这个地址池,R1查找这个地址池中还可以使用的IP地址;这里假设192.168.1.100是可用的,R1在提供租用地址之前首先会发送一个ARP查询包,查询192.168.1.100在网络上有没有被使用,如果收到应答,表明这个IP已经被使用,R1在地址池中换一个地址再发送ARP查询,直到找到没有ARP回复的那个IP地址。

3)R1向PC1发送DHCP Offer信息,其中包括这个没被使用的IP地址,DHCP Offer包仍然是一个广播包,目的MAC是广播MAC地址,源MAC是R1的Fa0/0的MAC地址,目的IP是255.255.255.255,源IP是192.168.1.1,目的端口是UDP68,源端口是UDP67。

4)在上面几步中,如果PC1发送的DHCP Discover广播没有DHCP服务端回复,PC1将无法获得IP地址,PC1会每隔一段时间发送一次DHCP Discover,在没有请求到IP地址的这段时间里,Windows主机会被临时分配一个属于169.254.0.0/16的本地地址。

5)接着上面的第三步,PC1收到R1发回的DHCP Offer信息,PC1马上发送DHCP Request包,表示自己将使用R1所提供的IP地址;该数据包还是一个广播包,目的MAC是广播MAC,源MAC是PC1的网卡MAC,目的IP是255.255.255.255,源IP是0.0.0.0,传输层的目的UDP端口是67,源UDP端口是68。DHCP Request中包含了要选择的DHCP服务器(R1的Fa0/0接口)的IP地址以及客户端(PC1)将要使用的IP地址。

6)R1收到PC1发来的DHCP Request信息后,马上发送DHCP Ack确认信息,该确认信息也是以广播发送的(和第三步中的包头差不多,这里就不描述了)。DHCP Ack中包含了一些其他选项,比如子网掩码、默认网关、DNS地址、租约期限、域名等。

7)PC1收到DHCP Ack后,利用其中的信息配置自己的TCP/IP属性,然后广播一个ARP Reply包,这个包的目的是通知其他设备,该IP地址已经被使用。

2.DHCP配置实例

a.思科路由器如何配置DHCP

在GNS3中搭建下面的拓扑,PC1-2为vpcs模拟两台真实计算机,R1是c3640路由,接口连线与IP如下图所示,在R1上配置DHCP服务,让PC1-2分别获取到自己网段的IP地址:

CCNA图文-27-DHCP协议实例详解

完成后,打开PC1-2的终端,使用自动获取IP命令:

本来这一部分想用GNS3+VMware中的PC来模拟,但考虑到实验的复杂度和描述难度,就使用vpcs代替了。

b.思科路由器如何配置DHCP中继

如下图所示,R1的f1/0连接到一台vpcs,R1是DHCP中继服务器,R2是DHCP服务器,R1负责将vpcs发来的DHCP广播请求以单播的形式发给DHCP服务器R2:

CCNA图文-27-DHCP协议实例详解

R1配置:

R2配置:

PC1上通过DHCP获取IP:

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: