VRRP协议&DHCP协议

> 作者:行癫 ------

第一节:VRRP原理与配置

一:VRRP技术概述

1.单网关面临的问题
​ 当网关Router出现故障时,本网段内以该设备为网关的主机都不能与Internet进行通信 image-20220217112100632
2.VRRP概述
​ 通过把几台路由设备联合组成一台虚拟的“路由设备”,使用一定的机制保证当主机的下一跳路由设备出现故障时,及时将业务切换到备份路由设备,从而保持通讯的连续性和可靠性 image-20220217112216574 ​ VRRP的运行结果是在局域网上提供一个虚拟路由器 **本例中:** ​ 局域网中有两个路由器R1和R2,R1端口IP地址为192.168.1.251/24,R2端口IP地址为192.168.1.252/24 ​ 配置R1和R2关联到同一个虚拟路由器,该虚拟路由器使用192.168.1.254做为端口IP地址 ​ 所有的PC使用192.168.1.254做为默认网关
3.VRRP的基本概念
![image-20220217112445292](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217112445292.png) ​ VRRP路由器:运行VRRP协议的路由器,如R1和R2。VRRP是配置在路由器的接口上的,而且也是基于接口来工作的 ​ VRID:一个VRRP组(VRRP Group)由多台协同工作的路由器(的接口)组成,使用相同的VRID(Virtual Router Identifier,虚拟路由器标识符)进行标识。属于同一个VRRP组的路由器之间交互VRRP协议报文并产生一台虚拟“路由器”。一个VRRP组中只能出现一台Master路由器 ![image-20220217112530455](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217112530455.png) ​ 虚拟路由器:VRRP为每一个组抽象出一台虚拟“路由器”(Virtual Router),该路由器并非真实存在的物理设备,而是由VRRP虚拟出来的逻辑设备。一个VRRP组只会产生一台虚拟路由器 ​ 虚拟IP地址及虚拟MAC地址:虚拟路由器拥有自己的IP地址以及MAC地址,其中IP地址由网络管理员在配置VRRP时指定,一台虚拟路由器可以有一个或多个IP地址,通常情况下用户使用该地址作为网关地址。而虚拟MAC地址的格式是“0000-5e00-01xx”,其中xx为VRID ![image-20220217112646355](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217112646355.png) ​ Master路由器:“Master路由器”在一个VRRP组中承担报文转发任务。在每一个VRRP组中,只有Master路由器才会响应针对虚拟IP地址的ARP Request。Master路由器会以一定的时间间隔周期性地发送VRRP报文,以便通知同一个VRRP组中的Backup路由器关于自己的存活情况 ​ Backup路由器:也被称为备份路由器。Backup路由器将会实时侦听Master路由器发送出来的VRRP报文,它随时准备接替Master路由器的工作 ​ Priority:优先级值是选举Master路由器和Backup路由器的依据,优先级取值范围0-255,值越大越优先,值相等则比较接口IP地址大小,大者优先
4.VRRP报文格式
​ VRRP只有一种报文,即Advertisement报文,基于组播方式发送,因此只能在同一个广播域传递。 Advertisement报文的目的组播地址为224.0.0.18 ![image-20220217112804045](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217112804045.png) ​ Ver:VRRP目前有两个版本,其中VRRPv2仅适用于IPv4网络,VRRPv3适用于IPv4和IPv6两种网络 ​ Virtual Rtr ID:该报文所关联的虚拟路由器的标识 ​ Priority:发送该报文的VRRP路由器的优先级 ​ Count IP Addrs:该VRRP报文中所包含的虚拟IP地址的数量 ​ Auth Type:VRRP支持三种认证类型:不认证、纯文本密码认证、MD5方式认证,对应值分别为0、1、2 ​ Adver Int:发送VRRP通告消息的间隔。默认为1秒 ​ IP Address:所关联的虚拟路由器的虚拟IP地址,可以为多个 ​ Authentication Data:验证所需要的密码信息
5.VRRP定时器
**在VRRP协议工作过程中,VRRP定义了两个定时器:** ​ ADVER_INTERVAL定时器:Master发送VRRP通告报文时间周期,缺省值为1秒 ​ MASTER_DOWN定时器:Backup设备监听该定时器超时后,会变为Master状态 **MASTER_DOWN定时器计算公式如下:** ​ MASTER_DOWN =(3* ADVER_INTERVAL)+ Skew_time(偏移时间) ​ 其中,Skew_Time=(256–Priority)/256

二:VRRP技术原理

1.VRRP状态机
​ VRRP协议状态机有三种状态:Initialize(初始状态)、Master(活动状态)、Backup(备份状态) ![image-20220217113422113](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217113422113.png) ​ 一个Startup事件可以由系统在VRRP配置完成后自动触发,也可以是在已经配置VRRP的端口上,底层链路由不可用变为可用而触发
2.VRRP协议状态
**Master状态** ​ 定期(ADVER_INTERVAL)发送VRRP报文 ​ 以虚拟MAC地址响应对虚拟IP地址的ARP请求 ​ 转发目的MAC地址为虚拟MAC地址的IP报文 ​ 默认允许ping通虚拟IP地址 ​ 当多台设备同时为Master时,若设备收到与自己优先级相同的报文时,会进一步比较IP地址的大小。如果收到报文的源IP地址比自己大,则切换到Backup状态,否则保持Master状态 **Backup状态** ​ 接收Master设备发送的VRRP报文,判断Master设备的状态是否正常 ​ 对虚拟IP地址的ARP请求,不做响应 ​ 丢弃目的MAC地址为虚拟MAC地址的IP报文 ​ 丢弃目的IP地址为虚拟IP地址的IP报文 ​ 如果收到优先级和自己相同或者比自己优先级大的报文时,重置MASTER_DOWN定时器,不进一步比较IP地址的大小
3.VRRP主备选举
![image-20220217115536234](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217115536234.png) **VRRP优先级不相等时主备选举过程** ​ R1的接口VRRP优先级为200,R2的接口VRRP优先级为100,两台设备完成初始化后首先切换至Backup状态 ​ R1与R2根据各自MASTER_DOWN定时器超时时间由Backup切换到Master状态,所以R1比R2更快切换至Master状态 ​ R1和R2通过相互发送VRRP报文进行Master选举,优先级高的被选举为Master设备,因此R1被选为Master路由器 ​ R1被选举为Master路由器后,立即发送免费ARP报文将虚拟MAC地址通告给与它连接的设备和主机 **注意:** ​ 初始创建VRRP的设备工作在Initialize状态,收到接口Up的消息后,若此设备的优先级小于255,则会先切换至Backup状态,等待MASTER_DOWN定时器超时后再切换至Master状态 ​ 如果优先级高的设备先启动,优先级低的设备后启动,则优先级高的设备先进入Master状态,优先级低的设备收到高优先级的VRRP通告报文,自己仍处于Backup状态 ​ 如果优先级低的先启动,优先级高的后启动,则优先级低的先由Backup状态切换为Master状态,优先级高的设备收到优先级低的VRRP通告报文,重新进行选举,将优先级高的设备切换为Master状态 ![image-20220217115756324](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217115756324.png) **VRRP优先级相等时主备选举过程** ​ R1与R2的GE0/0/0接口VRRP优先级都是200,两台设备完成初始化后首先切换至Backup状态 ​ 由于优先级相同,R1与R2的MASTER_DOWN定时器超时后,同时由Backup状态切换至Master状态 ​ R1与R2交换VRRP报文,优先级一样,通过比较接口IP地址选举Master路由器,由于R2的接口IP地址大于R1的接口IP地址,因此R2被选举为Master路由器 ​ R2被选举为Master路由器后,立即发送免费ARP报文将虚拟MAC地址通告给与它连接的设备和主机 **注意:** ​ 初始创建VRRP的设备工作在Initialize状态,收到接口Up的消息后,若此设备的优先级小于255,则会先切换至Backup状态,等待MASTER_DOWN定时器超时后再切换至Master状态 ​ 如果优先级高的设备先启动,优先级低的设备后启动,则优先级高的设备先进入Master状态,优先级低的设备收到高优先级的VRRP通告报文,自己仍处于Backup状态 ​ 如果优先级低的先启动,优先级高的后启动,则优先级低的先由Backup状态切换为Master状态,优先级高的设备收到优先级低的VRRP通告报文,重新进行选举,将优先级高的设备切换为Master状态 ![image-20220217115927007](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217115927007.png) ​ 当路由器接口被配置为VRRP的IP地址拥有者时(接口IP地址与Virtual IP相同),路由器无需等待任何定时器超时,可以直接切换至Master状态 **配置为IP地址拥有者时主备选举过程** ​ R1与R2的GE0/0/0接口VRRP优先级都采用默认配置(默认为100),但是R1的GE0/0/0接口IP地址与Virtual IP地址相同 ​ R1的GE0/0/0接口直接切换至Master状态,R1成为Master路由器 **注意:** 通常情况下,VRRP路由器的接口IP地址不会与虚拟路由器的IP地址重叠,也就是说我们会为虚拟路由器单独规划一个IP地址,而不会使用某台路由器的接口IP地址。当然也存在一个特殊的情况,例如在某些网络中IP地址资源比较紧缺,那么也有可能会将某台路由器的接口IP地址用于虚拟路由器,此时该路由器将无条件成为Master ​ 无法手动将VRRP接口优先级配置为255,当接口IP地址为IP地址拥有者时,优先级自动成为255
4.VRRP主备切换
![image-20220217121520762](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217121520762.png) ​ 当Master设备主动放弃Master地位(如Master设备退出备份组)时,会发送优先级为0的通告报文,用来使Backup设备快速切换成Master设备,而不用等到MASTER_DOWN定时器超时。这个切换的时间称为Skew_time ​ 当Master设备发生网络故障而不能发送通告报文的时候,Backup设备并不能立即知道其工作状况。等到MASTER_DOWN定时器超时后,才会认为Master设备无法正常工作,从而将状态切换为Master
5.VRRP主备回切
![image-20220217121652083](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217121652083.png) ​ 正常情况下,由Master设备负责转发用户报文,如图所示,所有用户流量通过R1到达Internet。 ​ 当R1出现故障时,网络会重新进行VRRP主备选举,如图所示,此时R2会成为新的Master设备负责转发用户报文 ![image-20220217121718659](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217121718659.png) ​ 当R1从故障恢复后,网络将重新进行VRRP主备选举,由于R1的优先级大于R2,所以R1又重新成为新的Master设备负责转发用户报文 **VRRP抢占模式(Preempt Mode) :** ​ 抢占模式(默认激活):如果Backup路由器激活了抢占功能,那么当它发现Master路由器的优先级比自己更低时,它将立即切换至Master状态,成为新的Master路由器 ​ 非抢占模式:如果Backup路由器没有激活抢占功能,那么即使它发现Master路由器的优先级比自己更低,也只能依然保持Backup状态,直到Master路由器失效

三:VRRP典型应用

1.VRRP负载分担
​ 通过创建多个虚拟路由器,每个物理路由器在不同的VRRP组中扮演不同的角色,不同虚拟路由器的Virtual IP作为不同的内网网关地址可以实现流量转发负载分担 ![image-20220217122032691](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217122032691.png)
2.VRRP监视上行端口
![image-20220217122102582](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217122102582.png) ​ VRRP可监视(Track)上行端口状态,当设备感知上行端口或者链路发生故障时,可主动降低VRRP优先级,从而保证上行链路正常的Backup设备能够通过选举切换为Master状态,指导报文转发 ​ 如果用户未配置VRRP监视上行端口,则当VRRP备份组中的Master设备R1的上行接口或者链路出现故障时,VRRP备份组无法感知,Master无法向外转发流量。但是由于主备不会发生切换,导致出现流量黑洞
3.VRRP与BFD联动
​ 通过配置VRRP与BFD联动,当Backup设备通过BFD感知故障发生之后,不再等待Master_Down_Timer计时器超时而会在BFD检测周期结束后立即切换VRRP状态,此时可以实现毫秒级的主备切换 ![image-20220217122229747](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217122229747.png) ​ 当VRRP备份组之间的链路出现故障时,由于此时VRRP报文无法正常交互,Backup设备需要等待Master_Down_Timer计时器超时后才会切换为Master设备,在等待切换期间内,业务流量仍会发往Master设备,此时会造成业务流量丢失 ​ 通过在Master设备和Backup设备之间建立BFD会话并与VRRP备份组进行绑定,由BFD机制快速检测VRRP备份组之间的通信故障,并在出现故障时及时通知VRRP备份组进行主备切换,从而大大减少应用中断时间 ​ 在普通BFD联动中,VRRP备份组会根据BFD会话的状态进行优先级调整,并根据调整后的优先级判断是否进行主备切换。在实际应用中,通常Master设备配置延时抢占,而Backup设备配置立即抢占,当Backup设备检测到BFD会话状态出现DOWN后,通过增加自身优先级大于Master优先级实现快速切换,当故障排除,BFD会话状态出现UP时,新的Master通过减小自己的优先级,发送vrrp通告报文,经过延迟时间后再次切换为Backup
4.VRRP与MSTP结合应用
![image-20220217122337190](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217122337190.png) ​ MSTP是将一个或多个VLAN映射到一个生成树的实例,若干个VLAN共用一个生成树,MSTP可以实现负载均衡 ​ VRRP配置网关可以灵活根据网络拓扑变化而自动切换,提高网络可靠性 ​ VRRP+MSTP可以在实现负载分担的同时保证网络冗余备份

四:VRRP基本配置

1.VRRP常用配置命令
![image-20220217122434589](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217122434589.png) ![image-20220217122444533](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217122444533.png)
2.VRRP基础配置实例
![image-20220217122517090](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217122517090.png) **配置要求:** ​ R1与R2组成一个VRRP备份组,其中R1为Master,R2为Backup ​ Master设备故障恢复时采用抢占模式,抢占延时10秒 ​ Master设备监视上行接口状态实现VRRP主备自动切换 **配置:** ```shell [R1] interface GigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0] ip address 192.168.1.253 24 [R1-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254 [R1-GigabitEthernet0/0/0] vrrp vrid 1 priority 120 [R1-GigabitEthernet0/0/0] vrrp vrid 1 preempt-mode timer delay 10 [R1-GigabitEthernet0/0/0] vrrp vrid 1 track interface GigabitEthernet0/0/1 reduced 30 ``` ```shell [R2] interface GigabitEthernet0/0/0 [R2-GigabitEthernet0/0/0] ip address 192.168.1.252 24 [R2-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254 [R2-GigabitEthernet0/0/0] vrrp vrid 1 priority 110 ``` **VRRP基础配置验证** ```shell [R1]display vrrp GigabitEthernet0/0/0 | Virtual Router 1 #VRRP组ID为 1 State : Master #本设备在组中状态为Master Virtual IP : 192.168.1.254 Master IP : 192.168.1.253 PriorityRun : 120 #接口在本VRRP组中优先级为120 PriorityConfig : 120 MasterPriority : 120 Preempt : YES Delay Time : 10 s #开启抢占模式,且延迟时间为10秒 TimerRun : 1 s TimerConfig : 1 s Auth type : NONE Virtual MAC : 0000-5e00-0101 Check TTL : YES Config type : normal-vrrp Track IF : GigabitEthernet0/0/1 Priority reduced : 30 IF state : UP ``` ```shell [R2]display vrrp GigabitEthernet0/0/0 | Virtual Router 1 State : Backup #本设备在组中状态为Backup Virtual IP : 192.168.1.254 Master IP : 192.168.1.253 PriorityRun : 110 #接口在本VRRP组中优先级为110 PriorityConfig : 110 MasterPriority : 120 Preempt : YES Delay Time : 0 s #开启抢占模式,延迟时间为0秒 TimerRun : 1 s TimerConfig : 1 s Auth type : NONE Virtual MAC : 0000-5e00-0101 Check TTL : YES Config type : normal-vrrp ```

第二节:DHCP原理与配置

一:DHCP产生背景

1.手工配置网络参数存在的问题
**手工配置网络参数存在以下问题:** ​ 灵活性差 ​ 容易出错 ​ IP地址资源利用率低 ​ 工作量大 ​ 人员素质要求高 image-20220217123435583 ​ 手工配置主机IP地址、网络掩码、网关地址、DNS服务器地址等网络参数时,需要经过地址规划、地址分配、地址配置、地址维护等复杂的操作流程。这使地址分配灵活性差,IP地址资源利用低,同时较大的工作量导致配置容易出错,对人员素质要求较高
2.DHCP的基本概念
​ DHCP是一种用于集中对用户IP地址进行动态管理和配置的协议 ​ DHCP采用C/S(Client/Server,客户端/服务器)通信模式,协议报文基于UDP的方式进行交互,采用67(DHCP服务器)和68(DHCP客户端)两个端口号:正常工作时由客户端向服务器提出配置申请;服务器返回为客户端分配的IP地址等相应的配置信息 **DHCP相对于手工配置有如下优点:** ​ 效率高 ​ 灵活性强 ​ 易于管理 ![image-20220217123806278](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217123806278.png) ​ 网络终端设备,例如主机、打印机、笔记本电脑、手机和AP,作为DHCP客户端,向DHCP服务器请求分配相关网络参数。DHCP服务器响应DHCP客户端请求进行动态分配

二:DHCP工作原理与配置

1.DHCP客户端首次接入网络的工作原理
![image-20220217124043112](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217124043112.png) **发现阶段,即DHCP客户端发现DHCP服务器的阶段** ​ DHCP客户端发送DHCP DISCOVER报文来发现DHCP服务器。DHCP DISCOVER报文中携带了客户端的MAC地址、需要请求的参数列表选项、广播标志位等信息 **提供阶段,即DHCP服务器提供网络配置信息的阶段** ​ 服务器接收到DHCP DISCOVER报文后,选择跟接收DHCP DISCOVER报文接口的IP地址处于同一网段的地址池,并且从中选择一个可用的IP地址,然后通过DHCP OFFER报文发送给DHCP客户端 **选择阶段,即DHCP客户端选择IP地址的阶段** ​ 如果有多个DHCP服务器向DHCP客户端回应DHCP OFFER报文,则DHCP客户端一般只接收第一个收到的DHCP OFFER报文,然后以广播方式发送DHCP REQUEST报文,该报文中包含客户端想选择的DHCP服务器标识符和客户端IP地址 **确认阶段,即DHCP服务器确认所分配IP地址的阶段** ​ DHCP客户端收到DHCP ACK报文,会广播发送免费ARP报文,探测本网段是否有其他终端使用服务器分配的IP地址
2.DHCP报文格式
![image-20220217124317574](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217124317574.png) **重要字段说明:** ​ Op(op code):表示报文的类型,取值为1或2,1:客户端请求报;服务器响应报文 ​ Secs(seconds):由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数,缺省值为3600s ​ Flags:客户端请求服务器发送响应报文的形式,只有最高位有意义,其余15位置0。最高位为0时请求发送单播响应,最高位为1时请求发送广播响应 ​ Yiaddr(your client ip address):表示服务器分配给客户端的IP地址。当服务器进行DHCP响应时,将分配给客户端的IP地址填入此字段 ​ Siaddr(server ip address):DHCP服务器的IP地址 ​ Chaddr(client hardware address):客户端的MAC地址 ​ Options:DHCP通过此字段包含了服务器分配给终端的配置信息 ​ Htype (hardware type): 表示硬件地址的类型 ​ Hlen(hardware length): 表示硬件地址的长度 ​ Hops(hops): 表示当前DHCP报文经过的DHCP Relay数目。该字段由客户端设置为0,每经过一个DHCP Relay时,该字段加1。此字段的作用是限制DHCP报文所经过的DHCP Relay数目 ​ Xid:表示DHCP客户端选取的随机数,使DHCP服务器的回复与DHCP客户端的报文相关联 ​ Sname(server host name): 表示客户端获取配置信息的服务器名字。此字段由DHCP服务器填写,是可选的。如果填写,必须是一个以0结尾的字符串 ​ File(file name): 表示客户端启动DHCP相关配置的文件名。此字段由DHCP服务器填写,随着DHCP地址分配的同时下发至客户端。本字段是可选的,如果填写,必须是一个以0结尾的字符串
3.Options预定义选项字段介绍
​ DHCP报文中Options字段为可变长度字段,最多为312Byte,此字段包含了DHCP报文类型,服务器分配给终端的配置信息,如网关IP地址,DNS服务器的IP地址,客户端可以使用IP地址的有效租期等信息 ​ Options字段由Type、Length和Value三部分组成。其中Type字段取值范围1~255。常见的Options如下表所示: | **Type** | **Length (**Byte) | **Value** | **作用** | | -------- | ----------------- | ---------------------- | ------------------------------------------------------------ | | 1 | 4 | Subnet Mask | 设置子网掩码选项。 | | 3 | 4 | Router(网关) | 设置网关地址选项。 | | 50 | 4 | Requested IP Address | 设置请求IP地址选项。 | | 51 | 4 | IP Address Lease Time | 设置IP地址租约时间选项。 | | 53 | 1 | Message Type | 设置DHCP消息类型。 | | 54 | 4 | DHCP Server Identifier | 设置服务器标识。 | | 55 | 9 | Parameter Request List | 设置请求选项列表。客户端利用该选项指明需要从服务器获取哪些网络配置参数。 | | 58 | 4 | Rebinding Time Value | 设置续约T1时间,一般是租期时间的50%。 | | 59 | 4 | Renewal Time Value | 设置续约T2时间。一般是租期时间的87.5%。 |
4.DHCP的消息类型
​ DHCP报文通过Options选项中的Type=53来表示DHCP的报文类型。如下图所示,当Type=53,Length=1,Value取值从01到08分别表示不同的DHCP报文类型 ![image-20220217124746972](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217124746972.png) ​ 1-DHCP DISCOVER:DHCP客户端首次登录网络时进行DHCP交互过程发送的第一个消息,用来寻找DHCP服务器 ​ 2-DHCP OFFER:DHCP服务器用来响应DHCP DISCOVER消息,此消息携带了各种配置信息 ​ 3-DHCP REQUEST:DHCP客户端广播请求回应DHCP服务器OFFER消息;DHCP客户端重启广播确认之前的IP地址等配置信息;续租 ​ 4-DHCP DECLINE:当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此消息来通知服务器 ​ 5-DHCP ACK:DHCP服务器对客户端的DHCP REQUEST消息的确认响应消息 ​ 6-DHCP NAK:服务器对客户端的DHCP REQUEST消息的拒绝响应消息 ​ 7-DHCP RELEASE:客户端可通过发送此消息主动释放服务器分配给它的IP地址 ​ 8-DHCP INFORM:DHCP客户端获取IP地址后,如果需要向DHCP服务器获取更为详细的配置信息(网关地址、DNS服务器地址),则向DHCP服务器发送DHCP INFORM请求消息
5.Options自定义选项字段介绍
​ 除了标准协议中规定的字段选项外,还有部分选项内容没有统一规定,统称为用户自定义选项,例如Option 82和Option 43 **Option 82称为中继代理信息选项** ​ Option 82中可以包含最多255个Sub-Option,若定义了Option 82,至少要定义一个Sub-Option ​ DHCP中继或DHCP Snooping设备接收到DHCP客户端发送给DHCP服务器的请求报文后,在该报文中添加Option 82,并转发给DHCP服务器。管理员可以从Option 82中获得DHCP客户端的信息,例如DHCP客户端所连接交换机端口的VLAN ID、二层端口号、中继设备的MAC地址等 **Option 43称为厂商特定信息选项** ​ DHCP服务器和DHCP客户端通过Option 43交换厂商特定的信息。当DHCP服务器接收到请求Option 43信息的DHCP请求报文(Option 55中带有Option 43参数)后,将在回复报文中携带Option 43,为DHCP客户端分配厂商指定的信息 ​ 在WLAN组网中,AP作为DHCP客户端,DHCP服务器可以为AP指定AC的IP地址,以方便AP与AC建立连接
6.Option 43应用举例
​ 在WLAN三层组网中,当AP上线时,需要获取AC的IP地址,并与AC之间建立CAPWAP隧道 ​ AP的IP地址通过DHCP服务器分配,当AC的IP地址与AP不在同一个广播域,AP无法通过广播的方式获取AC的IP地址,则CAPWAP隧道无法建立成功 ​ AP通过DHCP报文中的Option 43选项字段获取AC的IP地址,当AP获取AC的IP地址后,可以进一步完成CAPWAP隧道的建立,从而实现AP上线 ![image-20220217125113943](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217125113943.png) ​ AC的IP地址是10.23.101.2,AP所在网络的网关地址为10.23.100.1,AP通过DHCP的方式从IP地址池Huawei1中获取IP地址,DHCP服务器通过option 43选项字段向AP通告AC的IP地址
7.DHCP地址续租
​ DHCP服务器给每个分配给客户端的IP地址定义一个使用期限,该使用期限被称为租期。在租期到期前,DHCP客户端如果仍需要使用该IP地址,可以请求延长租期;如果不需要,可以主动释放该IP地址。在没有其他空闲地址可用的情况下,DHCP服务器会把客户端主动释放的IP地址分配给其他客户端 ​ DHCP客户端根据IP地址的剩余租期的不同而产生不同形式的续租请求 ![image-20220217125204549](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217125204549.png) ​ 当租期达到50%(T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功 ​ 当租期达到87.5%(T2)时,如果仍未收到DHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功 ​ 如果租期时间到时都没有收到服务器的回应,客户端停止使用此IP地址,重新发送DHCP DISCOVER报文请求新的IP地址 **注意:** ​ DHCP客户端无论在T1还是T2时刻发送DHCP REQUEST报文后,如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址 ​ 客户端在租期时间到之前,如果用户不想使用分配的IP地址(例如客户端网络位置需要变更),会触发DHCP客户端向DHCP服务器发送DHCP RELEASE报文,通知DHCP服务器释放IP地址的租期。DHCP服务器会保留这个DHCP客户端的配置信息,将IP地址列为曾经分配过的IP地址中,以便后续重新分配给该客户端或其他客户端。客户端可以通过发送DHCP INFORM报文向服务器请求更新配置信息
8.DHCP客户端重用曾经使用过的地址
​ DHCP客户端非首次接入网络时,可以重用曾经使用过的地址。例如,网络中的主机作为DHCP客户端,在关机再开机的过程中,需要重新获取相关网络参数,则可以请求分配曾经使用过的IP地址 ![image-20220217125352553](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217125352553.png) **选择阶段** ​ 客户端广播发送包含前一次分配的IP地址的DHCP REQUEST报文,报文中的Option 50(请求的IP地址选项)字段填入曾经使用过的IP地址 **确认阶段** ​ DHCP服务器收到DHCP REQUEST报文后,根据DHCP REQUEST报文中携带的MAC地址来查找有没有相应的租约记录。如果有则返回DHCP ACK报文,通知DHCP客户端可以继续使用这个IP地址,如果没有租约记录,则不响应
9.DHCP分配IP地址顺序
![image-20220217125501440](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217125501440.png) ​ DHCP服务器的数据库中与客户端MAC地址静态绑定的IP地址 ​ 客户端以前曾经使用过的IP地址,即客户端发送的请求报文中请求IP地址选项的地址 ​ 在DHCP地址池中,顺序查找可供分配的空闲IP地址,最先找到的IP地址 ​ 如果在DHCP地址池中未找到可供分配的空闲IP地址,则依次查询超过租期、发生冲突的IP地址,如果找到可用的IP地址,则进行分配,否则报告错误
10.DHCP配置命令介绍
![image-20220217125626917](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217125626917.png) ![image-20220217125637087](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217125637087.png)
11.DHCP配置举例
![image-20220217125710904](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217125710904.png) **实验要求:** ​ 采用基于全局地址池的方式为PC1分配IP地址 **配置:** ```shell [R1]DHCP enable [R1]ip pool HW [R1-ip-pool-HW]gateway-list 192.168.1.1 [R1-ip-pool-HW]network 192.168.1.0 mask 24 [R1-ip-pool-HW]excluded-ip-address 192.168.1.200 192.168.1.254 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]DHCP select global #选择全局地址池 ``` ![image-20220217125806756](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217125806756.png) **实验要求:** ​ 采用基于接口地址池的方式为PC2和PC3分配IP地址,且PC3获取固定的IP地址 **配置:** ```shell [R1]interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1]ip address 192.168.2.1 24 [R1-GigabitEthernet0/0/1]DHCP select interface #选择接口地址池 [R1-GigabitEthernet0/0/1]DHCP server excluded-ip-address 192.168.2.254 [R1-GigabitEthernet0/0/1]DHCP server static-bind ip-address 192.168.2.2 mac-address 00e0-fc00-00aa #为PC3分配固定的IP地址 ``` **DHCP配置结果** ```sheell [R1]display ip pool Pool-name : HW Gateway-0 : 192.168.1.1 Mask : 255.255.255.0 IP address Statistic Total: 253 Used: 2 Idle: 198 Expired: 0 Conflict: 0 Disable: 55 ``` ```shell PC3>ipconfig IPv4 address......................: 192.168.2.2 Subnet mask.......................: 255.255.255.0 Gateway...........................: 192.168.2.1 Physical address..................: 54-89-98-86-2B-F4 ``` **根据IP地址的使用情况,地址池中的IP地址可以分为多种状态:** ​ Used:表示此IP地址已使用 ​ Idle:表示此IP地址处于空闲状态 ​ Expired:表示此IP地址租期已过,处于空闲状态 ​ Conflict:表示此IP地址与网络上其他地址冲突 ​ Disable:表示此IP地址无法使用

三:DHCP Relay工作原理与配置

1.什么是DHCP Relay
​ 随着网络规模的不断扩大,网络设备不断增多,企业内不同的用户可能分布在不同的网段,一台DHCP服务器在正常情况下无法满足多个网段的地址分配需求。如果还需要通过DHCP服务器分配IP地址,则需要跨网段发送DHCP报文 ​ DHCP Relay即DHCP中继,它是为解决DHCP服务器和DHCP客户端不在同一个广播域而提出的,提供了对DHCP广播报文的中继转发功能,能够把DHCP客户端的广播报文“透明地”传送到其它广播域的DHCP服务器上,同样也能够把DHCP服务器端的应答报文“透明地”传送到其它广播域的DHCP客户端 ![image-20220217130157591](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217130157591.png)
2.DHCP Relay报文格式
​ DHCP Relay主要负责转发DHCP客户端与DHCP服务器之间的DHCP报文,所以DHCP Relay的报文格式只是把DHCP的报文部分字段做了相应的修改,报文格式没有发生变化 ![image-20220217130233633](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217130233633.png) ​ Hops:表示当前的DHCP报文经过的DHCP中继的数目。该字段由客户端或服务器设置为0,每经过一个DHCP中继时,该字段加1 ​ Giaddr(gateway ip address):表示第一个DHCP中继的IP地址。当客户端发出DHCP请求时,第一个DHCP中继在将DHCP请求报文转发给DHCP服务器时,会把自己的IP地址填入此字段
3.DHCP Relay工作原理
![image-20220217130334223](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217130334223.png) **有中继场景时DHCP客户端首次接入网络的工作原理:** ​ 发现阶段:DHCP中继接收到DHCP客户端广播发送的DHCP DISCOVER报文后,通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继 ​ 提供阶段:DHCP服务器根据DHCP DISCOVER报文中的Giaddr字段选择地址池为客户端分配相关网络参数,DHCP中继收到DHCP OFFER报文后,以单播或广播方式发送给DHCP Client ​ 选择阶段:中继接收到来自客户端的DHCP REQUEST报文的处理过程同“发现阶段” ​ 确认阶段:中继接收到来自服务器的DHCP ACK报文的处理过程同“提供阶段” **注意:** DHCP中继收到DHCP DISCOVER报文后,处理规则为: ​ 检查DHCP报文中的Hops字段,如果大于16,则丢弃DHCP报文;否则,将Hops字段加1(表明经过一次DHCP中继),并继续下面的操作 ​ 检查DHCP报文中的Giaddr字段。如果是0,将Giaddr字段设置为接收DHCP DISCOVER报文的接口IP地址。如果不是0,则不修改该字段,继续下面的操作 ​ 将DHCP报文的目的IP地址改为DHCP服务器或下一跳中继的IP地址,源地址改为中继连接客户端的接口地址,通过路由转发将DHCP报文单播发送到DHCP服务器或下一跳中继 DHCP服务器接收到DHCP DISCOVER报文后,选择与报文中Giaddr字段为同一网段的地址池,并为客户端分配IP地址等参数,然后向Giaddr字段标识的DHCP中继单播发送DHCP OFFER报文,DHCP中继收到DHCP OFFER报文后,会进行如下处理: ​ 检查报文中的Giaddr字段,如果不是接口的地址,则丢弃该报文;否则,继续下面的操作 ​ DHCP中继检查报文的广播标志位。如果广播标志位为1,则将DHCP OFFER报文广播发送给DHCP客户端;否则将DHCP OFFER报文单播发送给DHCP客户端
4.DHCP Relay配置命令
![image-20220217130627512](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217130627512.png) **DHCP Relay配置举例** ![image-20220217130652029](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217130652029.png) **配置要求:** ​ R1通过DHCP获取IP地址 ​ R2的GE0/0/0接口开启DHCP Relay功能,并且指定DHCP Server的IP地址为10.1.1.2 ​ R3创建地址池名字为”HW-1”,地址范围为192.168.10/24,网关为192.168.1.1 **配置:** ```shell [R1]interface GigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0]ip address DHCP-alloc [R1-GigabitEthernet0/0/0]quit ``` ```shell [R2]DHCP server group HW [R2-DHCP-server-group-HW]DHCP-server 10.1.1.2 [R2-DHCP-server-group-HW]quit [R2]interface GigabitEthernet 0/0/1 [R2-GigabitEthernet0/0/1]ip address 10.1.1.1 24 [R2-GigabitEthernet0/0/1]quit [R2]interface GigabitEthernet 0/0/0 [R2-GigabitEthernet0/0/0]ip address 192.168.1.1 24 [R2-GigabitEthernet0/0/0]DHCP select relay [R2-GigabitEthernet0/0/0]DHCP relay server-select HW [R2-GigabitEthernet0/0/0]quit ``` ```shell [R3]ip pool HW-1 [R3-ip-pool-HW-1]network 192.168.1.0 mask 24 [R3-ip-pool-HW-1]gateway-list 192.168.1.1 [R3-ip-pool-HW-1]quit [R3]interface GigabitEthernet 0/0/1 [R3-GigabitEthernet0/0/1]ip address 10.1.1.2 24 [R3-GigabitEthernet0/0/1]DHCP select global [R3-GigabitEthernet0/0/1]quit [R3]ip route-static 192.168.1.0 255.255.255.0 10.1.1.1 ``` **DHCP Relay配置验证** ​ 查看R1的GE0/0/0接口获取到的IP地址信息: ```shell display DHCP client DHCP client lease information on interface GigabitEthernet0/0/0 : Current machine state : Bound Internet address assigned via : DHCP Physical address : 00e0-fce6-4691 IP address : 192.168.1.254 Subnet mask : 255.255.255.0 Gateway ip address : 192.168.1.1 DHCP server : 10.1.1.2 …… ``` ​ 查看R2 DHCP Relay信息: ```shell display DHCP relay all DHCP relay agent running information of interfaceGigabitEthernet0/0/0 : Server group name : HW Gateway address in use : 192.168.1.1 display DHCP relay statistics The statistics of DHCP RELAY: DHCP packets received from clients : 2 DHCP packets sent to clients : 2 DHCP packets received from servers : 2 DHCP packets sent to servers : 2 …… ```