目录
一,DHCP
1.1,DHCP作用
1.2,DHCP地址池
1.3,DHCP报文类型
1.4,DHCP工作原理
对DHCP工作原理的思考:
1.5,DHCP租期更新
1.6,DHCP重绑定
1.7,IP地址释放
二,DHCP实验
2.1,网络拓扑图如下:
2.2,实验要求
2.3,各部分之间的配置
补充:
DHCP(Dynamic Host Configuration Protocol, 动态主机配置协议 )通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率,可以减少管理员的工作量,避免用户手工配置网络参数时造成的地址冲突。
地址池分为两种:
全局地址池:在系统视图下配置的地址池
接口地址池:在接口模式下配置的地址池
二者的区别如下:
1,全局地址池可以供其它任何的接口地址dhcp调用..也就是说全局地址池就是一个公共水管,都可以从上面接水.
2,接口地址池就是指定了特定的接口才能分配到这部分的IP地址.这个是私用的.
3,全局地址池,可以指定IP做网关地址
4,接口地址池用接口IP做网关,不可以指定其它IP做网关。
5,还有就是如果下面有设备做dhcp中继的话,只能用全局地址池。
6,全局地址池可以供其它任何的接口地址dhcp调用 接口的只能本接口用
报文类型 含义
DHCP DISCOVER 客户端用来寻找DHCP服务器
DHCP OFFER DHCP服务器用来相应DHCP DISCOVER报文,此报文携带了各种配置信息
DHCP REQUEST 客户端请求配置确认,或者续借租期
DHCP ACK 服务器对REQUEST报文的确认响应
DHCP NAK 服务器对REQUEST报文的拒绝响应
DHCP RELEASE 客户端要释放地址时用来通知服务器
1,客户机向服务器发送广播,请求IP地址。
2,服务器发送offer报文,微软的操作系统发送广播,思科华为的硬件设备发送单播。
3,客户机发送报文来确认,表示客户机决定使用服务器提供的这个IP地址。
4,服务器发送确认报文,表示客户机可以使用此IP地址。
1,客户机为什么要发送广播来请求IP地址,客户机发送请求时,其发送的报文二层三层又是如何封装的?
要回答这个问题,首先,我们可以抓discover的报文来看看,如下:
由上图,我们可以看到,在发送discover报文的时候,二层的d-mac使用的是全f的广播mac地址,第一,这是为了让网络中的DHCP SERVER收到我们的请求;第二,因为我们本来也不知道DHCP SERVER的mac地址,所以我们无法精确的找到他们,只能告诉他们我们在找他们,然后让他们来找我们。可以看到三层使用的是UDP协议使得IP地址的请求和发放更加快速,三层的s-ip使用的是0.0.0.0,用来临时进行通信,也用于标识client还没有ip。
2,客户机收到IP地址之后,为什么还要发送报文告诉服务器呢,而且为什么不是单播而是广播呢?
发送这个广播报文。一,是为了告诉提供IP的服务器,我要使用这个IP了,让提供这个IP的服务器将被租用的IP正式标记为被租用;二,是为了让提供IP的其他DHCP服务器知道我没有使用他们的IP,并且让其他的DHCP服务器不要再发送offer。(offer里面含有IP信息)
3,客户机所收到的DHCP OFFER报文里面除了IP信息还有什么?
这个问题我们可以通过查看offer报文来回答,如下:
由上图,我们可以看到,offer报文提供给了我们,IP地址10.1.1.254,子网掩码,网关IP,域名解析服务器的IP,还有租用IP的时间,我们主机接收到这些信息并且配置好之后就可以开始对外网通信了!
IP租约期限到达50%时,DHCP客户端会请求更新IP地址租约,华为默认的地址租期是一天。
DHCP客户端在租约期限到达87.5%时,还没有收到服务器响应,会申请重绑定IP
服务器没有响应可能的两个原因:1.报文丢失,2.环路。
1,如果IP租约到期前都没有收到服务器响应,客户端就停止使用此IP地址
2,如果DHCP客户端不再使用分配的IP地址,也可以主动向DHCP服务器发送DHCP RELEASE 报文,释放该IP地址。
1,左边的R2路由器使用接口模式配置DHCP,右边的路由器R3使用全局模式配置DHCP服务。
2,交换与路由器之间使用的连链路是trunk,与pc之间使用的是access链路类型。
3,具体信息请看上图。
pc配置:
将所有的pc获取IP的方式设置为DHCP。
交换机配置(其实做这个实验也可以不用配置交换机,只是我想配置一下vlan练一下手而已):
首先我们要先创建需要的vlan号,这里我们需要vlan 10 20 30。
配置交换机的g0/0/2接口如下图:
1,配置接口的链路类型——port link-type access 。
2,配置接口的vlan——port default vlan 10。
g0/0/3和g0/0/4接口的配置就不在此展示了,和配置g0/0/2接口同理,只是vlan号不同而已,接下来我们展示g0/0/1接口的配置:
1,配置接口的链路类型为trunk口——port link-type trunk
2,配置接口允许通过的vlan号——port trunk allow-pass vlan all,,我们这里就配置允许通过所有的vlan号。
如果你看不懂交换机的配置并且想了解交换机的知识,可以看看我写的这篇关于交换机的博客,里面有详细的交换和vlan知识。http://t.csdn.cn/mJjcahttp://t.csdn.cn/mJjca
路由器R2的配置:
最开始,我们手动在路由器上开启DHCP服务。
1,首先分别创建三个虚拟子接口用于分割不同的vlan,我这里创建了g0/0/0.1,g0/0/0.2,g0/0/0.3分别用于接收vlan10 20 30的数据这里只展现g0/0/0.1的配置。
2,为虚拟接口配置IP地址,这个IP地址后面也是这个vlan下的主机的网关。
3,配置接受哪个vlan的数据,这里是接受vlan20的数据。
4,配置地址池模式为接口模式。
5,配置dns服务器的信息。
6,设置IP地址的租期,默认租期是一天。
7,开启arp转发服务。
配置完成之后我们可以查看一下各个pc上的ip信息。
pc3
pc4
以上都是我们在路由器上配置上DHCP服务之后,在pc上得到的数据,这些数据都是我们在路由器上预先配置好的,比如说:pc所得到的dns:8.8.8.8。
路由器R3的配置:在这里与上面不同的是我们要做全局模式的地址池
1,首先开启DHCP服务。
2,创建全局的地址池。
3,配置地址池的网关信息。
4,配置地址池的dns服务器信息。
5,配置地址池可分配的ip地址信息。
6,进入接口。
7,选择全局模式——dhcp select global 。
之后,查看pc6的ip信息。
可以看到pc6上面已经拿到了DHCP服务器下发的IP地址信息。
2.4,实验后的思考
主机从DHCP服务器拿到IP地址的具体流程和细节?
我们在如下位置抓包,看看主机从DHCP服务器拿到IP地址的具体流程。
如下就是主机拿到IP地址的具体流程:
一开始主机发送Didcover报文给整个网络的所有机器,然后DHCP服务器以单播的方式向主机发送offer报文提供IP地址和其他信息。主机接收到offer报文之后并没有马上使用offer提供的IP信息,而是仍然以0.0.0.0为源IP,以255.255.255.255为目标IP发送Request报文,一,是为了告诉提供IP的服务器,我要使用这个IP了,让提供这个IP的服务器将被租用的IP正式标记为被租用;二,是为了让提供IP的其他DHCP服务器知道我没有使用他们的IP,并且让其他的DHCP服务器不要再发送offer。之后主机还是不可以使用这个IP,因为要等DHCP服务器发送ack报文之后才可以正式使用。总之,主机要在收到ack报文之后才会开始使用DHCP服务器提供的IP。
DHCP协议所使用的报文四层使用的是UDP协议而不是TCP协议,client使用68号端口,server使用的是67号端口。
最后
本篇博客对DHCP协议和DHCP实验的介绍就到这里了,如果本篇博客对你有帮助的话请点赞收藏支持一下,谢谢!答应我!不要白嫖好吗?哈哈哈!咱们下篇博客见。