前文我们了解了STP的端口状态、计时器以及端口状态切换和网络拓扑变化相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15140672.html;今天我们来聊一下DHCP相关话题;

  DHCP(Dynamic Host Configure Protocol,动态主机配置协议)是应用层协议,使用UDP封装,服务端工作在UDP的67号端口,客户端工作在68号端口;它是BOOTP(Bootstrap Protocol)协议发展而来;主要作用是动态分配TCP/IP信息(ip地址,子网掩码,网关,DNS等等),分配出去的信息是由一个时间使用期限,这个期限我们叫租期;我们知道在大型网络环境中,会有大量的主机和设备需要获取ip地址等网络参数;如果采用手工配置,工作量大且容易出错,导致ip地址冲突;使用DHCP来分配ip地址等网络参数,可以极大减少网络管理员的工作量,同时也用户手动配置网络参数时导致的ip地址冲突等问题;

  提示:主机A和主机B要动态获取ip地址等网络参数,首先它会向dhcp服务器发送ip地址分配的请求,服务收到请求,就分配ip地址,然后对应主机就会收到对应的ip地址等网络参数;

  DHCP系统组成

  提示:DHCP Client (客户端) ,需要动态获取ip地址的主机;DHCP Server(服务器)是能提供DHCP功能的服务器或网络设备;DHCP Relay (中继),一般为路由器或三层交换机等网络设备,中继设备的主要作用是arp代理和dhcp信息转发;

  DHCP报文结构

  先来看一个实验,如下拓扑主机A和主机B分别使用DHCP动态获取ip地址信息,我们抓包看看对应数据包长什么样?

  配置s1

sys
sys s1
vlan batch 10 20
int eth0/0/1
p l a
p d v 10
int eth0/0/2
p l a
p d v 20
int eth0/0/3
p l t
p t a v 10 20

  配置s2

sys
sys s2
vlan batch 10 20
dhcp en
int g0/0/1
p l t
p t a v 10 20
int vlanif 10
ip add 192.168.10.254 24
dhcp select interface
int vlanif 20
ip add 192.168.20.254 24
dhcp select interface

  在pc1上开启dhcp,并在pc1上抓包

  提示:可以看到在pc1开启dhcp以后,对应在pc上就能抓到4个DHCP的包;从上面的抓包信息可以看到,在pc1启动dhcp客户端时,首先它会发送DHCP discover包,该包的员源ip是0.0.0.0(原因是pc1目前没有ip地址)源端口是68,目标ip是255.255.255.255(全网广播),目标端口是67;这种类型的DHCP包主要作用是寻找DHCP服务端;如果有DHCP服务端收到此类消息,那么DHCP服务端会向该客户端发送DHCP offer类型的包,该包主要作用就是给客户端ip地址等网络参数信息;随后,客户端收到服务端的offer以后,又会广播发送dchp request类型的包,该类型包的主要作用是告诉其他服务端(可能不止一个服务端)有服务端给我发offer,你们发的offer我就不要了;除此之外,也告诉发offer服务端,我就要使用这个ip地址等网络信息;最后当服务端收到客户端发送的广播dhcp request包以后,服务端发送ACK,意思就是告诉客户端,服务端已经知晓这个事情,你把地址拿去使用吧;

  DHCP报文类型

  DHCP工作流程

  提示:首先客户端发送DHCP discover类型的包,作用就是寻找DHCP服务端;如果有服务端响应客户端,此时服务端就会发送DHCPoffer类型的包,就是告诉客户端,我是DHCP服务端,我这里有ip地址等等信息;如果没有服务端响应客户端,则客户端会一直发送DHCP discover类型的包;当服务端响应客户端并发送DHCP offer 以后,对应客户端收到服务端发送的offer,此时客户端会发送DHCP request类型的包,其目的是告诉其他dhcp服务端,有服务端给我发offer,你们就不要再发送offer给我了;其次就是告诉服务端,我要用这个ip地址等网络信息;如果其他dhcp服务端收到此类消息,一看报文里的dhcp server identifier 不是自己的ip地址,此时该服务端就不会再回应客户端;只有报文里的dhcp server identifier 是自己ip地址的服务端会发送ack,表示确认客户端信息;

  DHCP租期更新

  提示:DHCP动态获取的IP 地址等网络信息是有租期的,华为默认是1天;这个租期还剩下50%时,客户端会想服务端请求续租;如果服务端收到,此时服务端就会恢复一个ack,表示同意续租;此后,该客户端的租期就会向后延续对应租期的一半;

  实验:如下拓扑,我们把上述拓扑桥接在物理回环网卡上,然后把对应dhcp服务端租期修改为1分钟,在云上抓包,看看对应续租的过程

  桥接cloud1到本地loop网卡

  把s1的eth0/0/4口加入到vlan 20里

  修改DHCP服务端的租期为1分钟

  提示:租期最小单位是分钟,如果租期是day 0 hour 0 minute 0 表示无限期;

  验证:查看loop网卡的是否获取到ip地址,看看租期是多少?

  提示:可以看到对应物理loop网卡获取到对应的ip地址,并且租期也是一分钟;

  在云上抓包

  提示:可以看到在云上抓包,可以抓到很多dhcp requset和ack的包;这些包就是客户端向服务端申请续租的报文,每当租期还剩下租期的一半时,客户端就会向服务端发起续租请求,只有服务端回复确认ack,对应租期又会往后延期租期的一半;

  验证:再次查看loop网卡的租期情况

  提示:可以看到经过一段时间以后,租期结束时间从14:26:11变成了14:31:12,这意味着客户端续租了的;

  DHCP重绑定

  提示:如果在租期还剩下50%时,客户端向服务端发送续租请求,如果服务端没有响应,此时对于客户端来说,它的ip地址等网络信息还是可以正常使用的;如果租期还剩下租期的1/8时,如果此时还是没有服务端响应,此时客户端就会申请重新绑定ip地址;重新绑定ip地址,客户端又会发送dhcp discover报文,和最开始的流程一样;

  IP地址释放

  提示:如果ip租约到期前都没有服务端响应客户端的续租请求,客户端会停止使用此ip地址;如果DHCP客户端不再使用分配的ip地址,也可以主动向DHCP服务端发送DHCP RELEASE报文,告诉服务端释放该ip地址;这里注意一点主动释放ip地址是客户端告知服务端,让服务端做好记录对于ip地址已经释放,可再分配给其他客户端;服务端并不会发送什么报文给客户端;

  DHCP地址池(Pool)

  什么是地址池?所谓地址池就是所有能分配地址的集合;在DHCP中我们可以建立地址池,让DHCP客户端,在地址池中获取任意ip地址进行使用;

  提示:接口地址池的优先级高于全局地址池;默认接口地址池会把对应接口地址当作网关信息发送给客户端;全局地址池一般用于对应网关不是自己接口地址的场景,比如专用的DHCP服务器;

  DHCP配置命令

  1、全局开启dhcp功能

[s2]dhcp en
Info: The operation may take a few seconds. Please wait for a moment.done.
[s2]

  2、关联接口和接口地址池

  提示:DHCP必须在三层接口上关联地址池;

  3、配置接口地址池的DNS服务器地址

  提示:dns可以是多个;

  4、配置接口地址池的租期,默认1天

  提示:租期最小时长单位为秒;配置永不过期就是0天0小时0秒;

  5、配置接口地址池的排除地址范围

  提示:如果要排除一个范围的ip地址,必须前边开始地址小于后面结束地址;该命令可以运行多次,如果排除单个ip地址,直接后面接ip地址即可;

  6、创建全局地址池

  7、配置全局地址池的可分配的网段地址

  8、配置全局地址池的网关地址

  9、配置全局地址池的DNS服务器地址

  10、配置全局地址池下的租期,默认1天

  11、配置全局地址池下的排除地址范围

  12、关联接口和全局地址池

  提示:对应三层接口必须要有一个同dhcp分配地址里同网段的地址;否则对应三层接口起不来;

  13、查看地址池的属性

  提示:该命令用于查看一个设备上的所有地址池信息,不区分接口地址池和全局地址池;

  14、查看指定接口地址池信息

  查看指定全局地址池信息

  提示:不管是查看接口地址池还是全局地址池,后面都可以跟过滤条件,如下

  提示:如果后面接一个ip地址,是用于查询对应地址所属地址池相关信息;all表示显示对应地址池所有ip地址分配情况;expired用于过滤过期的ip地址,used用于过滤已经使用的ip地址;conflict用于过滤冲突的ip地址;

  15、在接口地址池下静态绑定ip地址

  提示:后面的mac地址必须是4位一组;这样绑定以后,对应mac地址的设备来拿ip,此时就会把对于ip地址分配出去况且没有租期限制;

  16、在全局地址池下静态绑定ip地址

HCNA Routing&Switching之DHCP服务的更多相关文章

  1. HCNA Routing&Switching之访问控制列表ACL

    前文我们了解了DHCP服务相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15147870.html:今天我们来聊一聊访问控制列表ACL: ACL(ac ...

  2. HCNP Routing&Switching之DHCP中继

    前文我们聊了下BFD相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16487842.html:今天来聊一聊DHCP中继相关话题: DHCP的作用 DH ...

  3. HCNP Routing&Switching之DHCP安全

    前文我们了解了MAC地址防漂移技术,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16632239.html:今天我们来了解下DHCP安全相关话题: 回顾DHC ...

  4. HCNA Routing&Switching之PPPoE协议

    前文我们了解了广域网中的HDLC和PPP协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15174240.html:今天我们来聊一聊PPPoE协议相 ...

  5. HCNA Routing&Switching之动态路由协议RIP

    前文我们了解了动态路由的基本概念,以及动态路由和静态路由的区别,优缺点,动态路由的分类,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14995317.html ...

  6. HCNA Routing&Switching之静态路由

    前文我们聊到了路由的相关概念和路由基础方面的话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14947897.html:今天我们聊聊静态路由相关话题: 回顾 ...

  7. HCNA Routing&Switching之路由基础

    在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表.路由器以及网关的相关术语:路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据:路由表就是多 ...

  8. HCNA Routing&Switching之地址转换技术NAT

    前文我们了解了包过滤工具ACL相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15156308.html:今天我们来聊一聊地址转换技术NAT相关话题: ...

  9. HCNA Routing&Switching之动态路由基本概念

    前文我们了解了静态路由的相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14965433.html:今天我们来聊一聊动态路由相关概念: 首先我们要清楚什 ...

随机推荐

  1. Devexpress-WPF初体验

    最近使用wpf devexpress做一个wpf小项目,中间遇到了一些问题,这里记录下,同时也跟大家分享分享 1.devexpress安装 devexpress提供了很多控件,特别是各种形式的数据列表 ...

  2. as3.0 Flex 图像处理

    as3.0 Flex 图像处理 已知的一些图像处理,主要是得到颜色过滤矩阵,不完整,大家一起来补充. //颜色转换数组,所有的0都是可调值public var colorArray:Array = [ ...

  3. C# 小知识点记录

    1.当计算数据有小数点时不要使用float和double类型的数据,使用这两个会计算不准确.使用decimal 2.如果使用decimal计算数据,遇到除不进的数据有很多小数点的时候,在计算结果后面接 ...

  4. Postgresql常见操作命令

    安装Postgresql 请查看我的另一篇博文: 博文连接:https://www.cnblogs.com/cndevops/p/14962745.html 连接Postgresql数据库 服务端连接 ...

  5. 19 shell代码块重定向

    代码块是由多条语句组成的一个整体,for.while.until循环或者if-else.case-in选择结构,或者由{ }包围起来的命令都可以称为代码块. 将重定向命令放在代码块的结尾处,就可以对代 ...

  6. bugku Crypto 下半部分wp

    1. 百度托马斯这个人居然还发明了一种轮转的加密法,发现原理是,他将很多行乱序的26个字母,插到一根柱子上,参考糖葫芦的样子,可以旋转每一行,设置自己要发送的明文后,向对方发送乱码的一列,对方只要将这 ...

  7. ArcnLinux安装基础配置(二)

    本文为对此ArchLinux安装使用教程网站中部分内容的总结和扩展补充,想看更详细的内容可以去此网站. 添加一个用户 useradd -m -G wheel -s /bin/bash cirry 设置 ...

  8. WORD2010

    WORD2010表格,利用公式计算第一行,将光标定位到第二行相应位置,点F4即可进行相应的运算,第三行,相应位置,再点F4,继续计算

  9. 检测当前手机正在运行的APP

    import re #一定要引入,否则不提示错误,但找不到目标def jiance(sjh): aakk="adb -s {0} shell dumpsys activity activit ...

  10. Mybatis order by 动态传参出现的一个小bug

    大家好,我是老三,一个平平无奇的CRUD仔. 今天,我正在愉快地CRUD,突然发现出现一个Bug,我们来看看是怎么回事吧! 问题由来 一个简单的需求,要求把和当前用户相关的数据置顶展示. 这里,我用了 ...