You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
datacom/Datacom-MD/第十章:VRRP协议&DHCP协议.md

741 lines
40 KiB

<h1><center>VRRP协议&DHCP协议</center></h1>
> 作者:行癫
------
<h3>第一节VRRP原理与配置</h3>
<h4>VRRP技术概述</h4>
<h5>1.单网关面临的问题</h5>
当网关Router出现故障时本网段内以该设备为网关的主机都不能与Internet进行通信
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217112100632.png" alt="image-20220217112100632" style="zoom:80%;" />
<h5>2.VRRP概述</h5>
通过把几台路由设备联合组成一台虚拟的“路由设备”,使用一定的机制保证当主机的下一跳路由设备出现故障时,及时将业务切换到备份路由设备,从而保持通讯的连续性和可靠性
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217112216574.png" alt="image-20220217112216574" style="zoom:80%;" />
VRRP的运行结果是在局域网上提供一个虚拟路由器
**本例中:**
局域网中有两个路由器R1和R2R1端口IP地址为192.168.1.251/24R2端口IP地址为192.168.1.252/24
配置R1和R2关联到同一个虚拟路由器该虚拟路由器使用192.168.1.254做为端口IP地址
所有的PC使用192.168.1.254做为默认网关
<h5>3.VRRP的基本概念</h5>
![image-20220217112445292](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217112445292.png)
VRRP路由器运行VRRP协议的路由器如R1和R2。VRRP是配置在路由器的接口上的而且也是基于接口来工作的
VRID一个VRRP组VRRP Group由多台协同工作的路由器的接口组成使用相同的VRIDVirtual 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地址大小大者优先
<h5>4.VRRP报文格式</h5>
VRRP只有一种报文即Advertisement报文基于组播方式发送因此只能在同一个广播域传递。 Advertisement报文的目的组播地址为224.0.0.18
![image-20220217112804045](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217112804045.png)
VerVRRP目前有两个版本其中VRRPv2仅适用于IPv4网络VRRPv3适用于IPv4和IPv6两种网络
Virtual Rtr ID该报文所关联的虚拟路由器的标识
Priority发送该报文的VRRP路由器的优先级
Count IP Addrs该VRRP报文中所包含的虚拟IP地址的数量
Auth TypeVRRP支持三种认证类型不认证、纯文本密码认证、MD5方式认证对应值分别为0、1、2
Adver Int发送VRRP通告消息的间隔。默认为1秒
IP Address所关联的虚拟路由器的虚拟IP地址可以为多个
Authentication Data验证所需要的密码信息
<h5>5.VRRP定时器</h5>
**在VRRP协议工作过程中VRRP定义了两个定时器**
ADVER_INTERVAL定时器Master发送VRRP通告报文时间周期缺省值为1秒
MASTER_DOWN定时器Backup设备监听该定时器超时后会变为Master状态
**MASTER_DOWN定时器计算公式如下**
MASTER_DOWN =3* ADVER_INTERVAL+ Skew_time偏移时间
其中Skew_Time=256Priority/256
<h4>VRRP技术原理</h4>
<h5>1.VRRP状态机</h5>
VRRP协议状态机有三种状态Initialize初始状态、Master活动状态、Backup备份状态
![image-20220217113422113](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217113422113.png)
一个Startup事件可以由系统在VRRP配置完成后自动触发也可以是在已经配置VRRP的端口上底层链路由不可用变为可用而触发
<h5>2.VRRP协议状态</h5>
**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地址的大小
<h5>3.VRRP主备选举</h5>
![image-20220217115536234](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217115536234.png)
**VRRP优先级不相等时主备选举过程**
R1的接口VRRP优先级为200R2的接口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
<h5>4.VRRP主备切换</h5>
![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
<h5>5.VRRP主备回切</h5>
![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路由器失效
<h4>VRRP典型应用</h4>
<h5>1.VRRP负载分担</h5>
通过创建多个虚拟路由器每个物理路由器在不同的VRRP组中扮演不同的角色不同虚拟路由器的Virtual IP作为不同的内网网关地址可以实现流量转发负载分担
![image-20220217122032691](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217122032691.png)
<h5>2.VRRP监视上行端口</h5>
![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无法向外转发流量。但是由于主备不会发生切换导致出现流量黑洞
<h5>3.VRRP与BFD联动</h5>
通过配置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
<h5>4.VRRP与MSTP结合应用</h5>
![image-20220217122337190](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217122337190.png)
MSTP是将一个或多个VLAN映射到一个生成树的实例若干个VLAN共用一个生成树MSTP可以实现负载均衡
VRRP配置网关可以灵活根据网络拓扑变化而自动切换提高网络可靠性
VRRP+MSTP可以在实现负载分担的同时保证网络冗余备份
<h4>VRRP基本配置</h4>
<h5>1.VRRP常用配置命令</h5>
![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)
<h5>2.VRRP基础配置实例</h5>
![image-20220217122517090](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217122517090.png)
**配置要求:**
R1与R2组成一个VRRP备份组其中R1为MasterR2为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
```
<h3>第二节DHCP原理与配置</h3>
<h4>DHCP产生背景</h4>
<h5>1.手工配置网络参数存在的问题</h5>
**手工配置网络参数存在以下问题:**
灵活性差
容易出错
IP地址资源利用率低
工作量大
人员素质要求高
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217123435583.png" alt="image-20220217123435583" style="zoom:50%;" />
手工配置主机IP地址、网络掩码、网关地址、DNS服务器地址等网络参数时需要经过地址规划、地址分配、地址配置、地址维护等复杂的操作流程。这使地址分配灵活性差IP地址资源利用低同时较大的工作量导致配置容易出错对人员素质要求较高
<h5>2.DHCP的基本概念</h5>
DHCP是一种用于集中对用户IP地址进行动态管理和配置的协议
DHCP采用C/S(Client/Server客户端/服务器)通信模式协议报文基于UDP的方式进行交互采用67DHCP服务器和68DHCP客户端两个端口号正常工作时由客户端向服务器提出配置申请服务器返回为客户端分配的IP地址等相应的配置信息
**DHCP相对于手工配置有如下优点**
效率高
灵活性强
易于管理
![image-20220217123806278](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217123806278.png)
网络终端设备例如主机、打印机、笔记本电脑、手机和AP作为DHCP客户端向DHCP服务器请求分配相关网络参数。DHCP服务器响应DHCP客户端请求进行动态分配
<h4>DHCP工作原理与配置</h4>
<h5>1.DHCP客户端首次接入网络的工作原理</h5>
![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地址
<h5>2.DHCP报文格式</h5>
![image-20220217124317574](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217124317574.png)
**重要字段说明:**
Opop code)表示报文的类型取值为1或21客户端请求报服务器响应报文
Secsseconds由客户端填充表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数缺省值为3600s
Flags客户端请求服务器发送响应报文的形式只有最高位有意义其余15位置0。最高位为0时请求发送单播响应最高位为1时请求发送广播响应
Yiaddryour client ip address表示服务器分配给客户端的IP地址。当服务器进行DHCP响应时将分配给客户端的IP地址填入此字段
Siaddrserver ip addressDHCP服务器的IP地址
Chaddrclient hardware address客户端的MAC地址
OptionsDHCP通过此字段包含了服务器分配给终端的配置信息
Htype hardware type: 表示硬件地址的类型
Hlenhardware length: 表示硬件地址的长度
Hopshops: 表示当前DHCP报文经过的DHCP Relay数目。该字段由客户端设置为0每经过一个DHCP Relay时该字段加1。此字段的作用是限制DHCP报文所经过的DHCP Relay数目
Xid表示DHCP客户端选取的随机数使DHCP服务器的回复与DHCP客户端的报文相关联
Snameserver host name: 表示客户端获取配置信息的服务器名字。此字段由DHCP服务器填写是可选的。如果填写必须是一个以0结尾的字符串
Filefile name: 表示客户端启动DHCP相关配置的文件名。此字段由DHCP服务器填写随着DHCP地址分配的同时下发至客户端。本字段是可选的如果填写必须是一个以0结尾的字符串
<h5>3.Options预定义选项字段介绍</h5>
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%。 |
<h5>4.DHCP的消息类型</h5>
DHCP报文通过Options选项中的Type=53来表示DHCP的报文类型。如下图所示当Type=53Length=1Value取值从01到08分别表示不同的DHCP报文类型
![image-20220217124746972](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220217124746972.png)
1-DHCP DISCOVERDHCP客户端首次登录网络时进行DHCP交互过程发送的第一个消息用来寻找DHCP服务器
2-DHCP OFFERDHCP服务器用来响应DHCP DISCOVER消息此消息携带了各种配置信息
3-DHCP REQUESTDHCP客户端广播请求回应DHCP服务器OFFER消息DHCP客户端重启广播确认之前的IP地址等配置信息续租
4-DHCP DECLINE当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此消息来通知服务器
5-DHCP ACKDHCP服务器对客户端的DHCP REQUEST消息的确认响应消息
6-DHCP NAK服务器对客户端的DHCP REQUEST消息的拒绝响应消息
7-DHCP RELEASE客户端可通过发送此消息主动释放服务器分配给它的IP地址
8-DHCP INFORMDHCP客户端获取IP地址后如果需要向DHCP服务器获取更为详细的配置信息网关地址、DNS服务器地址则向DHCP服务器发送DHCP INFORM请求消息
<h5>5.Options自定义选项字段介绍</h5>
除了标准协议中规定的字段选项外还有部分选项内容没有统一规定统称为用户自定义选项例如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建立连接
<h5>6.Option 43应用举例</h5>
在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.2AP所在网络的网关地址为10.23.100.1AP通过DHCP的方式从IP地址池Huawei1中获取IP地址DHCP服务器通过option 43选项字段向AP通告AC的IP地址
<h5>7.DHCP地址续租</h5>
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%T1DHCP客户端会自动以单播的方式向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报文向服务器请求更新配置信息
<h5>8.DHCP客户端重用曾经使用过的地址</h5>
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地址如果没有租约记录则不响应
<h5>9.DHCP分配IP地址顺序</h5>
![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地址则进行分配否则报告错误
<h5>10.DHCP配置命令介绍</h5>
![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)
<h5>11.DHCP配置举例</h5>
![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地址无法使用
<h4>DHCP Relay工作原理与配置</h4>
<h5>1.什么是DHCP Relay</h5>
随着网络规模的不断扩大网络设备不断增多企业内不同的用户可能分布在不同的网段一台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)
<h5>2.DHCP Relay报文格式</h5>
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地址填入此字段
<h5>3.DHCP Relay工作原理</h5>
![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客户端
<h5>4.DHCP Relay配置命令</h5>
![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
<R1>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
<R2>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
<R2>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
……
```