上传文件至 'Datacom-MD'

This commit is contained in:
diandian 2023-03-26 19:13:36 +08:00
parent c76adc99af
commit 251e1268d3
4 changed files with 3129 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,483 @@
<h1><center>PPP协议&PPPOE协议</center></h1>
> 作者:行癫
------
<h3>第一节:早期广域网技术概述</h3>
<h4>一:广域网技术</h4>
<h5>1.什么是广域网</h5>
广域网是连接不同地区局域网的网络,通常所覆盖的范围从几十公里到几千公里,他能连接多个地区、城市和国家,或横跨几个洲提供远距离通信,形成国际性的远程网络
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216094441380.png" alt="image-20220216094441380" style="zoom:50%;" />
<h5>2.广域网与局域网区别</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216094541854.png" alt="image-20220216094541854" style="zoom:50%;" />
局域网是一种覆盖地理区域比较小的计算机网络
广域网是一种通过租用ISP网络或者自建专用网络来构建的覆盖地理区域比较广的计算机网络
**广域网与局域网的区别主要体现在以下几个方面**
局域网带宽高但是传输距离短,无法满足广域网长距离传输
局域网设备通常是交换机,广域网设备大多都是路由器
局域网属于某一单位或者组织广域网服务大多由ISP提供
广域网与局域网一般仅在物理层和数据链路层采用不同的协议或技术,其他层次基本没有差异
银行、政府、军队、大型公司的专用网路也属于局域网且与Internet实现物理隔离
Internet只是广域网的一种小企业借用Internet作为广域网连接
<h5>3.早期广域网技术介绍</h5>
早期广域网与局域网的区别在于数据链路层和物理层的差异性在TCP/IP参考模型中其他各层无差异
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216100225306.png" alt="image-20220216100225306" style="zoom:50%;" />
<h5>4.广域网络设备角色介绍</h5>
广域网络设备基本角色有三种CECustomer Edge 用户边缘设备、PEProvider Edge 服务提供商边缘设备和PProvider 服务提供商设备)
CE用户端连接服务提供商的边缘设备CE连接一个或多个PE实现用户接入
PE服务提供商连接CE的边缘设备PE同时连接CE和P设备是重要的网络节点
P服务提供商不连接任何CE设备
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216100621668.png" alt="image-20220216100621668" style="zoom:50%;" />
<h5>5.早期广域网技术的应用</h5>
早期的广域网技术主要是针对不同的物理链路类型在数据链路层进行不同的二层封装在CE与PE之间常用的广域网封装协议有PPP/HDLC/FR等用于解决用户接入广域网的常居鲁传输问题在ISP内部常用的广域网协议主要是ATM它用于解决骨干网高速转发的问题
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216100951320.png" alt="image-20220216100951320" style="zoom:50%;" />
<h3>第二节PPP协议原理与配置</h3>
<h4>PPP协议原理</h4>
<h5>1.PPP协议概述</h5>
PPP点到点协议是一种常见的广域网数据链路层协议主要用于在全双工的链路上进行点到点的数据传输封装
PPP提供了安全认证协议族PAP密码验证协议和CHAP挑战握手认证协议
PPP协议具有良好的扩展性例如当需要在以太网链路上承载PPP协议时PPP可以扩展为PPPoE
PPP协议提供了LCP链路控制协议用于各种链路层参数的协商例如最大接收单元、认证模式等
PPP协议提供各种NCP网络控制协议。如IPCPIP控制协议用于各种网络层参数的协商更好地支持网络层协议
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216101849678.png" alt="image-20220216101849678" style="zoom:50%;" />
<h5>2.PPP链路建立流程</h5>
PPP链路的建立有三个阶段的协商过程链路层协商、认证协商可选和网络层协商
链路层协商通过LCP报文进行链路层协商建立链路层连接
认证协商(可选):通过链路建立阶段协商的认证方式进行链路认证
网络层协商通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216102337987.png" alt="image-20220216102337987" style="zoom:50%;" />
<h5>3.PPP链路接口状态机</h5>
PPP协商由链路两端的接口完成接口的状态表示了协议的协商阶段
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216102559769.png" alt="image-20220216102559769" style="zoom:80%;" />
通信双方开始建立PPP链路时先进入到Establish阶段
在Establish阶段进行LCP协商协商通信双方的MRUMaximum Receive Unit最大接收单元、认证方式和魔术字Magic Number等选项。协商成功后进入Opened状态表示底层链路已建立
如果配置了认证将进入Authenticate阶段。否则直接进入Network阶段
在Authenticate阶段会根据连接建立阶段协商的认证方式进行链路认证。认证方式有两种PAP和CHAP。如果认证成功进入Network阶段否则进入Terminate阶段拆除链路LCP状态转为Down
在Network阶段PPP链路进行NCP协商。通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。最常见的NCP协议是IPCP用来协商IP参数
在Terminate阶段如果所有的资源都被释放通信双方将回到Dead阶段
<h5>4.LCP报文格式</h5>
PPP报文可由Protocol字段标识不同类型的PPP报文例如当Protocol字段为0xC021时代表是LCP报文此时又由Code字段标识不同类型LCP报文
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216102928486.png" alt="image-20220216102928486" style="zoom:80%;" />
**PPP帧格式 **
Flag字段标识一个物理帧的起始和结束该字节为二进制序列011111100X7E
PPP帧的Address字段字节固定为11111111 0XFF是一个广播地址
PPP数据帧的Control字段默认为000000110X03表明为无序号帧
帧校验序列FCS字段是个16 bit的校验和用于检查PPP帧的完整性
Protocol字段用来说明PPP所封装的协议报文类型0XC021代表LCP报文0XC023代 表PAP报文0XC223代表CHAP报
Information字段包含Protocol字段中指定协议的内容该字段的最大长度被称为最大接收单元MRU缺省值为1500
**LCP报文携带的一些常见的配置参数有MRU、认证协议和魔术字**
在VRPVersatile Routing Platform通用路由平台平台上MRU参数使用接口上配置的MTUMaximum Transmission Unit最大传输单元值来表示
常用的PPP认证协议有PAP和CHAP一条PPP链路的两端可以使用不同的认证协议认证对端但是被认证方必须支持认证方要求使用的认证协议并正确配置用户名和密码等认证信息
LCP使用魔术字来检测链路环路和其他异常情况。魔术字是随机产生的一个数字随机机制需要保证两端产生相同魔术字的可能性几乎为0
<h5>5.LCP协商过程-正常协商</h5>
LCP协商由不同的LCP报文交互完成协商由任意一方发送Configure-Request报文发起如果对端接收此报文且参数匹配则通过回复Configure-Ack响应协商成功
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216103839475.png" alt="image-20220216103839475" style="zoom:80%;" />
R1和R2使用串行链路相连运行PPP协议。当物理层链路变为可用状态之后R1和R2使用LCP协商链路参数
本例中R1首先发送一个Configure-Request报文此报文中包含R1上配置的链路层参数。当R2收到此Configure-Request报文之后如果R2能识别并接受此报文中的所有参数则向R1回应一个Configure-Ack报文。同样的R2也需要向R1发送Configure-Request报文使R1检测R2上的参数是不是可接受的
R1在没有收到Configure-Ack报文的情况下会每隔3秒重传一次Configure-Request报文如果连续10次发送Configure-Request报文仍然没有收到Configure-Ack报文则认为对端不可用停止发送Configure-Request报文
<h5>6.LCP协商过程-参数不匹配</h5>
在LCP报文交互中出现LCP参数不匹配时接收方回复Configure-Nak响应告知对端修改参数然后重新协商
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216104304430.png" alt="image-20220216104304430" style="zoom:80%;" />
当R2收到R1发送的Configure-Request报文之后如果R2能识别此报文中携带的所有链路层参数但是认为部分或全部参数的取值不能接受即参数的取值协商不成功则R2需要向R1回应一个Configure-Nak报文
在这个Configure-Nak报文中只包含不能接受的链路层参数并且此报文所包含的链路层参数将被修改为R2上可以接受的取值或取值范围
在收到Configure-Nak报文之后R1需要根据此报文中的链路层参数重新选择本地配置的其他参数并重新发送一个Configure-Request
<h5>7.LCP协商过程-参数不识别</h5>
在LCP报文交互中出现LCP参数不识别接收方回复Configure-Reject响应告知对端删除不识别的参数然后重新协商
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216104758334.png" alt="image-20220216104758334" style="zoom:80%;" />
当R2收到R1发送的Configure-Request报文之后如果R2不能识别此报文中携带的部分或全部链路层参数则R2需要向R1回应一个Configure-Reject报文。在此Configure-Reject报文中只包含不能被识别的链路层参数
在收到Configure-Reject报文之后R1需要向R2重新发送一个Configure-Request报文在新的Configure-Request报文中不再包含不被对端R2识别的参数
<h5>8.PPP认证模式PAP</h5>
链路协商成功后进行认证协商认证协商有两种模式PAP和CHAP
PAP认证双方有两次握手协商报文以明文的形式在链路上传输
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216105600739.png" alt="image-20220216105600739" style="zoom:80%;" />
LCP协商完成后认证方要求被认证方使用PAP进行认证
PAP认证协议为两次握手认证协议密码以明文方式在链路上发送过程如下
被认证方将配置的用户名和密码信息使用Authenticate-Request报文以明文方式发送给认证方
认证方收到被认证方发送的用户名和密码信息之后根据本地配置的用户名和密码数据库检查用户名和密码信息是否匹配如果匹配则返回Authenticate-Ack报文表示认证成功。否则返回Authenticate-Nak报文表示认证失败
<h5>9.PPP认证模式-CHAP</h5>
CHAP认证双方有三次握手协商报文被加密后再在链路上传输
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216110540905.png" alt="image-20220216110540905" style="zoom:80%;" />
LCP协商完成后认证方要求被认证方使用CHAP进行认证
CHAP认证过程需要三次报文的交互。过程如下
认证方主动发起认证请求认证方向被认证方发送Challenge报文报文内包含随机数Random和ID
被认证方收到此Challenge报文之后进行一次加密运算运算公式为MD5{ ID随机数密码}意思是将Identifier、随机数和密码三部分连成一个字符串然后对此字符串做MD5运算得到一个16 Byte长的摘要信息然后将此摘要信息和端口上配置的CHAP用户名一起封装在Response报文中发回认证方
认证方接收到被认证方发送的Response报文之后按照其中的用户名在本地查找相应的密码信息得到密码信息之后进行一次加密运算运算方式和被认证方的加密运算方式相同然后将加密运算得到的摘要信息和Response报文中封装的摘要信息做比较相同则认证成功不相同则认证失败
使用CHAP认证方式时被认证方的密码是被加密后才进行传输的这样就极大的提高了安全性
<h5>10.NCP协商-静态IP地址协商</h5>
PPP认证协商后双方进入NCP协商阶段协商在数据链路上所传输的数据包的格式与类型以常见的IPCP协议为例他为分静态IP地址协商和动态IP地址协商
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216110927492.png" alt="image-20220216110927492" style="zoom:80%;" />
NCP主要用来建立和配置不同的网络层协议协商在该数据链路上所传输的数据包的格式与类型。常见的有IPCP等
**静态IP地址协商过程如下**
每一端都要发送Configure-Request报文在此报文中包含本地配置的IP地址
每一端接收到此Configure-Request报文之后检查其中的IP地址如果IP地址是一个合法的单播IP地址而且和本地配置的IP地址不同没有IP冲突则认为对端可以使用该地址回应一个Configure-Ack报文
<h5>11.NCP协商-动态IP地址协商</h5>
动态IP地址协商支持PPP链路一端为对端配置IP地址
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216111415722.png" alt="image-20220216111415722" style="zoom:80%;" />
R1向R2发送一个Configure-Request报文此报文中会包含一个IP地址0.0.0.0表示向对端请求IP地址
R2收到上述Configure-Request报文后认为其中包含的地址0.0.0.0不合法使用Configure-Nak回应一个新的IP地址10.1.1.1
R1收到此Configure-Nak报文之后更新本地IP地址并重新发送一个Configure Request报文包含新的IP地址10.1.1.1
R2收到Configure-Request报文后认为其中包含的IP地址为合法地址回应一个Configure-Ack报文
同时R2也要向R1发送Configure-Request报文请求使用地址10.1.1.2R1认为此地址合法回应Configure-Ack报文
<h4>PPP协议配置</h4>
<h5>1.PPP基本配置命令</h5>
![image-20220216111714694](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216111714694.png)
<h5>2.PAP认证配置命令</h5>
![image-20220216111810357](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216111810357.png)
<h5>3.CHAP认证配置命令</h5>
![image-20220216111919853](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216111919853.png)
<h5>4.配置举例-PAP认证</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216112135703.png" alt="image-20220216112135703" style="zoom:50%;" />
**实验要求:**
在R1与R2之间的PPP链路上启用PAP认证功能
在R1配置为认证方
将R2配置为被认证方
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216112329613.png" alt="image-20220216112329613" style="zoom:80%;" />
<h5>5.配置举例-CHAP认证</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216112439701.png" alt="image-20220216112439701" style="zoom:50%;" />
**实验要求:**
在R1与R2之间的PPP链路上启用CHAP认证功能
将R1配置为认证方
将R2配置为被认证方
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216112608226.png" alt="image-20220216112608226" style="zoom:80%;" />
<h3>第三节PPPoE原理与配置</h3>
<h4>PPPoE概述</h4>
<h5>1.什么时PPPoE</h5>
PPPoE以太网承载PPP协议是一种把PPP帧封装到以太网帧中的链路层协议PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入到服务器
PPPoE集中了PPP和Ethernet两个技术的优点即有以太网的组网灵活优势又可以利用PPP协议实现认证、计费等功能
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216113003768.png" alt="image-20220216113003768" style="zoom:50%;" />
<h5>2.PPPoE应用场景</h5>
PPPoE实现了在以太网上提供点到点的连接PPPoE客户端与PPPoE服务器端之间建立会话封装PPP数据报文为以太网上的主机提供接入服务实现用户控制和计费在企业网络与运行商网络中广泛应用
PPPoE的常见应用场景有家庭用户拨号上网、企业用户拨号上网等
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216113228048.png" alt="image-20220216113228048" style="zoom:80%;" />
<h5>3.PPPoE会话建立</h5>
PPPoE的会话建立有三个阶段PPPoE发现阶段、PPPoE会话阶段和PPPoE终结阶段
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216114905886.png" alt="image-20220216114905886" style="zoom:80%;" />
<h5>4.PPPoE报文</h5>
PPPoE会话的建立通过不同的PPPoE报文交互实现
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216115057158.png" alt="image-20220216115057158" style="zoom:80%;" />
DMAC表示目的设备的MAC地址通常为以太网单播目的地址或者以太网广播地址
SMAC表示源设备的以太网MAC地址
Eth-Type表示协议类型字段当值为0x8863时表示承载的是PPPoE发现阶段的报文。当值为0x8864时表示承载的是PPPoE会话阶段的报文
VER表示PPPoE版本号值为0x01
Type表示类型值为0x01
Code表示PPPoE报文类型不同取值标识不同的PPPoE报文类型
PPPoE会话ID与以太网SMAC和DMAC一起定义了一个PPPoE会话
Length表示PPPoE报文的长度
<h5>5.PPPoE发现阶段</h5>
PPPoE协议发现有四个步骤客户端发送请求、服务端响应请求、客户端确认响应和建立会话
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216115656976.png" alt="image-20220216115656976" style="zoom:80%;" />
PPPoE客户端在本地以太网中广播一个PADI报文此PADI报文中包含了客户端需要的服务信息
PADI报文的目的MAC地址是一个广播地址Code字段为0x09Session ID字段为0x0000
所有PPPoE服务器端收到PADI报文之后会将报文中所请求的服务与自己能够提供的服务进行比较
如果服务器端可以提供客户端请求的服务就会回复一个PADO**报文**
PADO报文的目的地址是发送PADI报文的客户端MAC地址Code字段为0x07Session ID字段为0x0000
客户端可能会收到多个PADO报文此时将选择最先收到的PADO报文对应的PPPoE服务器端并发送一个PADR报文给这个服务器端
PADR报文的目的地址是选中的服务器端的MAC地址Code字段为0x19Session ID字段为0x0000
PPPoE服务器端收到PADR报文后会生成一个唯一的Session ID来标识和PPPoE客户端的会话并发送PADS报文
PADS报文的目的地址是PPPoE客户端的MAC地址Code字段为0x65Session ID字段是PPPoE服务器端为本PPPoE会话产生的Session ID
会话建立成功后PPPoE客户端和服务器端进入PPPoE会话阶段
<h5>6.PPPoE会话阶段</h5>
PPPoE会话阶段会进行PPP协商分为LCP协商、认证协商、NCP协商三个阶段
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216120028193.png" alt="image-20220216120028193" style="zoom:80%;" />
**PPPoE会话阶段可分为两部分**
PPP协商阶段
PPP报文传输
**PPPoE Session上的PPP协商和普通的PPP协商方式一致分为LCP、认证、NCP三个阶段**
LCP阶段主要完成建立、配置和检测数据链路连接
LCP协商成功后开始进行认证认证协议类型由LCP协商结果决定
认证成功后PPP进入NCP阶段NCP是一个协议族用于配置不同的网络层协议常用的是IP控制协议IPCP它负责配置用户的IP地址和DNS服务器地址等
PPPoE Session的PPP协商成功后就可以承载PPP数据报文。在这一阶段传输的数据包中必须包含在发现阶段确定的Session ID并保持不变
<h5>8.PPPoE会话终结阶段</h5>
当PPPoE客户端希望关闭连接时会向PPPoE服务器端发送一个PADT报文用于关闭连接
同样如果PPPoE服务器端希望关闭连接时也会向PPPoE客户端发送一个PADT报文
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216120430002.png" alt="image-20220216120430002" style="zoom:80%;" />
在PADT报文中目的MAC地址为单播地址Session ID为希望关闭的连接的Session ID。一旦收到一个PADT报文之后连接随即关闭
<h5>PPPoE基础配置</h5>
<h5>1.PPPoE基础配置</h5>
![image-20220216120750332](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216120750332.png)
<h5>2.配置实例-PPPoE客户端</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216120822584.png" alt="image-20220216120822584" style="zoom:80%;" />
**实验要求:**
将R1设置为PPPoE客户端R2为PPPoE服务器端
在R1上配置PPPoE客户端拨号接口
在R1上配置PPPoE客户端拨号接口的认证功能
R1上的拨号接口获取PPPoE服务器端分配的IP地址
R1通过拨号接口可以访问服务器端
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216121013241.png" alt="image-20220216121013241" style="zoom:80%;" />
**PPPoE客户端配置包括三个步骤**
第一步配置一个拨号接口
**dialer-rule**命令用于进入Dialer-rule视图在该视图下可以通过拨号规则来配置发起PPPoE会话的条件
**interface dialer** *number*命令用来创建并进入Dialer接口
**dialer user** *user-name*命令用于配置对端用户名这个用户名必须与对端服务器上的PPP用户名相同
**dialer-group** *group-number*命令用来将接口置于一个拨号访问组
**dialer bundle** *number*命令用来指定Dialer接口使用的Dialer bundle。设备通过Dialer bundle将物理接口与拨号接口关联起来
注:必须确保命令**dialer-group**中的参数*group-number*和命令**dialer-rule**中的*dialer-rule-number*保持一致
第二步是在接口上将Dialer Bundle和接口绑定
**pppoe-client dial-bundle-number** *number*命令来实现Dialer Bundle和物理接口的绑定用来指定PPPoE会话对应的Dialer Bundle其中number是与PPPoE会话相对应的Dialer Bundle编号
第三步配置一条缺省静态路由该路由允许在路由表中没有相应匹配表项的流量都能通过拨号接口发起PPPoE会话
<h5>3.配置实例-PPPoE服务器端</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216121333431.png" alt="image-20220216121333431" style="zoom:80%;" />
**实验要求:**
在PPPoE服务器端上创建为客户端分配IP地址的地址池
PPPoE服务器端完成PPPoE客户端认证并分配合法的IP地址
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216121440189.png" alt="image-20220216121440189" style="zoom:80%;" />
**PPPoE服务器端配置**
**interface virtual-template**命令用来创建虚拟模板接口,或者进入一个已经创建的虚拟模板接口视图
**pppoe-server bind**命令用来配置PPPoE接入用户上线绑定的虚拟模板接口
<h5>4.验证配置</h5>
**查看拨号接口详细信息**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216121550850.png" alt="image-20220216121550850" style="zoom:80%;" />
**查看PPPoE-Client会话初始状态**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216121617502.png" alt="image-20220216121617502" style="zoom:80%;" />
**查看PPPoE-client会话建立状态信息**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220216121703292.png" alt="image-20220216121703292" style="zoom:80%;" />
**注意:**
**display interface dialer**[ **number** ]命令用于查看拨号接口的配置,便于定位拨号接口的故障
LCP opened, IPCP opened表示链路的状态完全正常
**display pppoe-client session summary**命令用于查看PPPoE客户端的PPPoE会话状态和统计信息
ID表示PPPoE会话IDBundle ID和Dialer ID的值与拨号参数配置有关
Intf表示客户端侧协商时的物理接口
State表示PPPoE会话的状态包括以下四种
IDLE表示当前会话状态为空闲
PADI表示PPPoE会话处于发现阶段并已经发送PADI报文
PADR表示PPPoE会话处于发现阶段并已经发送PADR报文
UP表示PPPoE会话建立成功

View File

@ -0,0 +1,759 @@
<h1><center>BGP边界网关协议</center></h1>
> 作者:行癫
------
<h3>第一节IS-IS原理与配置</h3>
<h4>IS-IS的基本概念</h4>
<h5>1.IS-IS概述</h5>
IS-IS是ISO定义的OSI协议栈中的CLNSConnectionLess Network Service无连接网络服务的一部分
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211093601896.png" alt="image-20220211093601896" style="zoom: 50%;" />
IS-IS是一种链路状态路由协议IS-IS与OSPF在许多方面非常相似例如运行IS-IS协议的直连设备之间通过发送Hello报文发现彼此然后建立邻接关系并交互链路状态信息
**CLNS由以下三个部分组成**
CLNP类似于TCP/IP中的IP协议 CLNP无连接网络协议
IS-IS类似于TCP/IP中的OSPF
ES-IS类似于TCP/IP中的ARPICMP等
ESEnd System终端系统类似于IP网络环境中的主机
ES-ISEnd System to Intermediate System终端系统到中间系统
<h5>2.NSAP</h5>
NSAPNetwork Service Access Point网络服务访问点是OSI协议栈中用于定位资源的地址主要用于提供网络层和上层应用之间的接口。NSAP包括IDP及DSP
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211094233141.png" alt="image-20220211094233141" style="zoom:80%;" />
IDPInitial Domian Part相当于IP地址中的主网络号。它是由ISO规定并由AFIAuthority and Format Identifier与IDIInitial Domain Identifier两部分组成。AFI表示地址分配机构和地址格式IDI用来标识域
DSPDomian Specific Part相当于IP地址中的子网号和主机地址。它由High Order DSP、System ID和SEL三个部分组成。High Order DSP用来分割区域System ID用来区分主机SELNSAP Selector用来指示服务类型
<h5>3.NET</h5>
NETNetwork Entity Title网络实体名称是OSI协议栈中设备的网络层信息主要用于路由计算由区域地址Area ID和System ID组成可以看作是特殊的NSAPSEL为00的NSAP
NET的长度与NSAP的相同最长为20Byte最短为8Byte
在IP网络中运行IS-IS时只需配置NET根据NET地址设备可以获取到Area ID以及System ID
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211094712423.png" alt="image-20220211094712423" style="zoom:80%;" />
Area ID由IDP和DSP中的High Order DSP组成既能够标识路由域也能够标识路由域中的区域。因此它们一起被称为区域地址相当于OSPF中的区域编号;一般情况下一个路由器只需要配置一个区域地址且同一区域中所有节点的区域地址都要相同。为了支持区域的平滑合并、分割及转换缺省情况下一个IS-IS进程下最多可配置3个区域地址
System ID用来在区域内唯一标识主机或路由器。在设备的实现中它的长度固定为6Byte
**NET的配置举例**
每台运行IS-IS的网络设备至少需拥有一个NET当然一台设备也可以同时配置多个NET但是这些NET的System ID必须相同
在华为的网络设备上System ID的长度总是固定的6Byte。在一个IS-IS路由域中设备的System ID必须唯一为了便于管理一般根据Router ID配置System ID
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211094903545.png" alt="image-20220211094903545" style="zoom:80%;" />
<h5>4.IS-IS和OSPF区域划分的区别</h5>
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211095208221.png" alt="image-20220211095208221" style="zoom:50%;" />
**IS-IS在自治系统内采用骨干区域与非骨干区域两级的分层结构**
Level-1路由器部署在非骨干区域
Level-2路由器和Level-1-2路由器部署在骨干区域
每一个非骨干区域都通过Level-1-2路由器与骨干区域相连
如图所示整个骨干区域不仅包括Area49.0002中的所有路由器还包括其它区域的Level2和Level-1-2路由器
**注意:**
在学习OSPF过程中我们已经体会到了多区域、层次化网络设计的好处。对于链路状态路由协议而言运行了该协议的设备会向网络中通告链路状态信息同时也收集网络中所泛洪的链路状态信息后加以存储并最终以这些信息为基础进行计算从而得到路由信息。如果不采用多区域部署的方式那么随着网络的规模逐渐增大网络中泛洪的链路状态信息势必会越来越多所有设备都将承受更重的负担路由计算机收敛将逐渐变得更加缓慢这也使得网络的扩展性变差
**以上拓扑结构图可以体现IS-IS与OSPF的不同点**
在IS-IS中每个路由器都只属于一个区域而在OSPF中一个路由器的不同接口可以属于不同的区域
在IS-IS中单个区域没有骨干与非骨干区域的概念而在OSPF中Area0被定义为骨干区域
在IS-IS中Level-1和Level-2级别的路由都采用SPF算法分别生成最短路径树SPTShortest Path Tree而在OSPF中只有在同一个区域内才使用SPF算法区域之间的路由需要通过骨干区域来转发
<h5>5.IS-IS路由器的分类</h5>
**Level-1路由器**
Level-1路由器例如图中的R1是一种IS-IS区域内部路由器它只与属于同一区域的Level-1和Level-1-2路由器形成邻接关系这种邻接关系称为Level-1邻接关系。Level-1路由器无法与Level-2路由器建立邻接关系
Level-1路由器只负责维护Level-1的链路状态数据库LSDB该LSDB只包含本区域的路由信息。值得一提的是Level-1路由器必须通过Level-1-2路由器接入IS-IS骨干区域从而访问其他区域
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211095933096.png" alt="image-20220211095933096" style="zoom:50%;" />
**Level-2路由器**
Level-2路由器例如图中的R4、R5、R6、R7是IS-IS骨干路由器它可以与同一或者不同区域的Level-2路由器或者Level-1-2路由器形成邻接关系。Level-2路由器维护一个Level-2的LSDB该LSDB包含整个IS-IS域的所有路由信息
所有Level-2级别即形成Level-2邻接关系的路由器组成路由域的骨干网负责在不同区域间通信。路由域中Level-2级别的路由器必须是物理连续的以保证骨干网的连续性
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211100042200.png" alt="image-20220211100042200" style="zoom:50%;" />
**Level-1-2路由器**
Level-1-2路由器与OSPF中的ABR非常相似它也是IS-IS骨干网络的组成部分
Level-1-2路由器维护两个LSDBLevel-1的LSDB用于区域内路由Level-2的LSDB用于区域间路由
同时属于Level-1和Level-2的路由器称为Level-1-2路由器例如图中的R2和R3它可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻接关系也可以与其他区域的Level-2和Level-1-2路由器形成Level-2的邻接关系。
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211100207249.png" alt="image-20220211100207249" style="zoom:50%;" />
注意:
在华为路由器上配置IS-IS时缺省时路由器全局Level为Level-1-2当然可以通过命令修改该设备的类型
<h5>6.IS-IS支持的网络类型</h5>
IS-IS会自动根据接口的数据链路层封装决定该接口的缺省网络类型 IS-IS支持两种类型的网络
广播Broadcast 如Ethernet
点到点P2P 如PPP、 HDLC等
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211100443150.png" alt="image-20220211100443150" style="zoom:50%;" />
<h5>7.IS-IS开销值</h5>
IS-IS使用Cost开销作为路由度量值Cost值越小则路径越优。IS-IS链路的Cost与设备的接口有关与OSPF类似每一个激活了IS-IS的接口都会维护接口Cost。然而与OSPF不同的是IS-IS接口的Cost在缺省情况下并不与接口带宽相关在实际部署时IS-IS也支持根据带宽调整Cost值无论接口带宽多大缺省时Cost为10
一条IS-IS路径的Cost等于本路由器到达目标网段沿途的所有链路的Cost总和
IS-IS有三种方式来确定接口的开销按照优先级由高到低分别是
接口开销:为单个接口设置开销
全局开销:为所有接口设置开销
自动计算开销:根据接口带宽自动计算开销
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211100625663.png" alt="image-20220211100625663" style="zoom:50%;" />
**narrow类型下使用的TLV**
128号TLVIP Internal Reachability TLV用来携带路由域内的IS-IS路由信息
130号TLVIP External Reachability TLV用来携带路由域外的IS-IS路由信息
2号TLV(IS Neighbors TLV):用来携带邻居信息
**wide类型下使用的TLV**
135号TLV(Extended IP Reachability TLV)用来替换原有的IP reachability TLV携带IS-IS路由信息它扩展了路由开销值的范围并可以携带sub TLV
22号TLVIS Extended Neighbors TLV用来携带邻居信息
<h5>8.IS-IS报文格式</h5>
IS-IS报文是直接封装在数据链路层的帧结构中的
PDUProtocol Data Unit协议数据单元可以分为两个部分报文头IS-IS Header和变长字段部分Variable Length Fields
其中IS-IS Header又可分为通用头部PDU Common Header和专用头部PDU Specific Header。对于所有PDU来说通用报头都是相同的但专用报头根据PDU类型不同而有所差别
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211101005940.png" alt="image-20220211101005940" style="zoom:80%;" />
**IS-IS通用头部详解**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211101025171.png" alt="image-20220211101025171" style="zoom:50%;" />
Intradomain Routing Protocol Discriminator域内路由选择协议鉴别符固定为0x83
Length IndicatorIS-IS头部的长度包括通用头部和专用头部以Byte为单位
Version/Protocol ID Extension版本/协议标识扩展固定为0x01
System ID LengthNSAP地址或NET中System ID区域的长度。值为0时表示System ID区域的长度为6Byte
RReserved保留固定为0
Version固定为0x01
Max.Areas支持的最大区域个数。设置为1254的整数表示该IS-IS进程实际所允许的最大区域地址数设置为0表示该IS-IS进程最大只支持3个区域地址数
**IS-IS报文类型概述**
IS-IS的PDU有4种类型IIH(IS-IS Hello)LSP Link State PDU链路状态报文CSNPComplete Sequence Number PDU全序列号报文PSNPPartial Sequence Number PDU部分序列号报文
IIH用于建立和维持邻接关系 广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH 广播网络中的Level-2 IS-IS路由器使用Level-2 LAN IIH 点到点网络中则使用P2P IIH
LSP用于交换链路状态信息。LSP分为两种Level-1 LSP、Level-2 LSP
SNP通过描述全部或部分链路数据库中的LSP来同步各LSDB从而维护LSDB的完整与同步。SNP包括CSNP和PSNP进一步又可分为Level-1 CSNP、 Level-2 CSNP、 Level-1 PSNP和Level-2 PSNP
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211101321605.png" alt="image-20220211101321605" style="zoom:50%;" />
<h5>9.IS-IS常见的TLV</h5>
TLV的含义是类型TYPE长度LENGTHVALUE。实际上是一个数据结构这个结构包含了这三个字段
使用TLV结构构建报文的好处是灵活性和扩展性好。采用TLV使得报文的整体结构固定增加新特性只需要增加新TLV即可不需要改变整个报文的整体结构
| **TLV** **Type** | **名称** | **PDU**类型 |
| ---------------- | ------------------------------------------------------------ | --------------- |
| 1 | Area Addresses 区域地址 | IIH、 LSP |
| 2 | IS NeighborsLSP 中间系统邻接 | LSP |
| 4 | Partition Designated Level2 IS 区域分段指定L2中间系统 | L2 LSP |
| 6 | IS NeighborsMAC Address 中间系统邻接 | LAN IIH |
| 7 | IS NeighborsSNPA Address 中间系统邻接 | LAN IIH |
| 8 | Padding 填充 | IIH |
| 9 | LSP Entries LSP条目 | SNP |
| 10 | Authentication Information 验证信息 | IIH、 LSP、 SNP |
| 128 | IP Internal Reachability Information IP内部可达性信息 | LSP |
| 129 | Protocols Supported 支持的协议 | IIH、 LSP |
| 130 | IP External Reachability Information IP外部可达性信息 | LSP |
| 131 | Inter-Domain Routing Protocol Information 域间路由选择协议信息 | L2 LSP |
| 132 | IP Interface Address IP接口地址 | IIH、 LSP |
<h4>IS-IS工作原理</h4>
<h5>1.邻接关系建立</h5>
**IS-IS按如下原则建立邻接关系**
只有同一层次的相邻路由器才有可能成为邻接
对于Level-1路由器来说Area ID必须一致
链路两端IS-IS接口的网络类型必须一致
链路两端IS-IS接口的地址必须处于同一网段默认情况下
由于IS-IS是直接运行在数据链路层上的协议并且最早设计是给CLNP使用的IS-IS邻接关系的形成与IP地址无关。但在实际的部署中在IP网络上运行IS-IS时需要检查对方的IP地址的。如果接口配置了从IP那么只要双方有某个IP主IP或者从IP在同一网段就能建立邻接不一定要主IP相同
**注意:**
通过将以太网接口模拟成点到点接口,可以建立点到点链路邻接关系
当链路两端IS-IS接口的地址不在同一网段时如果配置接口对接收的Hello报文不作IP地址检查也可以建立邻接关系
一般情况下一个接口只需配置一个主IP地址但在有些特殊情况下需要配置从IP地址。比如一台路由器通过一个接口连接了一个物理网络但该物理网络的计算机分别属于2个不同的网络为了使路由器与物理网络中的所有计算机通信就需要在该接口上配置一个主IP地址和一个从IP地址。路由器的每个三层接口可以配置多个IP地址其中一个为主IP地址其余为从IP地址每个三层接口最多可配置31个从IP地址
**IIH**
IIH报文用于建立和维持邻接关系广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH广播网络中的Level-2 IS-IS路由器使用Level-2 LAN IIH点到点网络中则使用P2P IIH
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211101919913.png" alt="image-20220211101919913" style="zoom:50%;" />
Reserved/Circuit Type表示路由器的类型01表示L110表示L211表示L1/L2
Source ID 发出Hello报文的路由器的System ID
Holding Time 保持时间。在此时间内如果没有收到邻接发来的Hello报文则中止已建立的邻接关系
Priority 选举DIS的优先级取值范围为0127。数值越大优先级越高。该字段只在广播网中的Hello消息(LAN IIH消息)携带点到点网络的Hello消息(P2P IIH消息)没有此字段也没有此字段之前的R保留位
LAN ID 包括DIS的System ID和伪节点ID。该字段只在广播网中的Hello消息(LAN IIH消息)携带点到点网络的Hello消息(P2P IIH消息)没有此字段
Local Circuit ID 本地链路ID。该字段只在点到点网络的Hello消息(P2P IIH消息)携带广播网中的Hello消息(LAN IIH消息)没有此字段
**广播网络中的邻接关系建立过程**
两台运行IS-IS的路由器在交互协议报文实现路由功能之前必须首先建立邻接关系。在不同类型的网络上IS-IS的邻接建立方式并不相同。在广播网络中使用三次握手建立邻接关系
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211102223215.png" alt="image-20220211102223215" style="zoom:50%;" />
**R1及R2通过千兆以太接口互联这两台直连的Level-1路由器建立邻接关系的过程如下**
在Down状态下R1组播发送Level-1 LAN IIH此报文中邻接列表为空
R2收到此报文后将邻接状态标识为Initial。然后R2再向R1回复Level-1 LAN IIH 此报文中标识R1为R2的邻接
R1收到此报文后将自己与R2的邻接状态标识为Up。然后R1再向R2发送一个标识R2为R1邻接的Level-1 LAN IIH
R2收到此报文后将自己与R1的邻接状态标识为Up。这样两个路由器成功建立了邻接关系
广播网络中需要选举DIS在邻接关系建立后路由器会等待两个Hello报文间隔再进行DIS的选举
**注意:**
Level-1 IIH和Level-2 IIH发送的组播地址分别为01-80-C2-00-00-14、01-80-C2-00-00-15
Down邻接关系的初始状态
Initial收到IIH但是报文中的邻接列表未包含路由器自身的System ID
UP收到IIS且邻接列表中包含路由器自身的System ID
**DIS与伪节点**
在广播网络中IS-IS需要在所有的路由器中选举一个路由器作为DISDesignated Intermediate System
DIS用来创建和更新伪节点Pseudonodes并负责生成伪节点的LSP用来描述这个网络上有哪些网络设备。伪节点是用来模拟广播网络的一个虚拟节点并非真实的路由器。在IS-IS中伪节点用DIS的System ID和Circuit ID非0值标识
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211102549292.png" alt="image-20220211102549292" style="zoom:50%;" />
**IS-IS中的DIS与OSPF中的DR**
Level-1和Level-2的DIS是分别选举的用户可以为不同级别的DIS选举设置不同的优先级
**DIS的选举规则如下**
DIS优先级数值最大的被选为DIS
如果优先级数值最大的路由器有多台则其中MAC地址最大的路由器会成为DIS
DIS发送Hello PDU的时间间隔是普通路由器的1/3这样可以确保DIS出现故障时能够被更快速地被发现
IS-IS中DIS与OSPF协议中DRDesignated Router的区别
在IS-IS广播网中优先级为0的路由器也参与DIS的选举而在OSPF中优先级为0的路由器则不参与DR的选举
在IS-IS广播网中当有新的路由器加入并符合成为DIS的条件时这个路由器会被选中成为新的DIS原有的伪节点被删除。此更改会引起一组新的LSP泛洪。而在OSPF中当一台新路由器加入后即使它的DR优先级值最大也不会立即成为该网段中的DR
在IS-IS广播网中同一网段上的同一级别的路由器之间都会形成邻接关系包括所有的非DIS路由器之间也会形成邻接关系。而在OSPF中路由器只与DR和BDR建立邻接关系
**点到点网络中的邻接关系建立过程**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211103015551.png" alt="image-20220211103015551" style="zoom: 50%;" />
点到点网络中邻接关系的建立使用两次握手方式只要路由器收到对端发来的Hello报文就单方面宣布邻接为Up状态建立邻接关系
两次握手机制存在明显的缺陷华为设备在点到点网络中使用IS-IS时默认使用三次握手建立邻接关系。此方式通过三次发送P2P IIH最终建立起邻接关系
<h5>2.链路状态数据库同步</h5>
**LSP**
IS-IS链路状态报文LSP用于交换链路状态信息。LSP分为两种Level1 LSP和Level2 LSP。Level1 LSP由Level-1路由器传送Level2 LSP由Level-2路由器传送Level-1-2路由器则可传送以上两种LSP
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211103254063.png" alt="image-20220211103254063" style="zoom:50%;" />
Remaining Lifetime : LSP的生存时间以秒为单位
LSP ID:由三部分组成System ID、伪节点ID和LSP分片后的编号
Sequence Number: LSP的序列号。在路由器启动时所发送的第一个LSP报文中的序列号为1以后当需要生成新的LSP时新LSP的序列号在前一个LSP序列号的基础上加1。更高的序列号意味着更新的LS
Checksum LSP的校验和
ATTAttachment由Level-1-2路由器产生用来指明始发路由器是否与其它区域相连。虽然此标志位也存在于Level-1和Level-2的LSP中但实际上此字段只和Level-1-2路由器始发的L1 LSP有关
OLLSDB Overload1bit过载标志位。设置了过载标志位的LSP虽然还会在网络中扩散但是在计算通过超载路由器的路由时不会被采用。即对路由器设置过载位后其它路由器在进行SPF计算时不会考虑这台路由器。当路由器内存不足时系统自动在发送的LSP报文中设置过载标志位
IS Type(2bit)生成LSP的路由器的类型。用来指明是Level-1还是Level-2路由器01表示Level-111表示Level-2
**IS-IS的LSDB**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211103406493.png" alt="image-20220211103406493" style="zoom:50%;" />
伪节点ID当该参数不为零时表示该LSP为伪节点生成
分片号当IS-IS要发布的链路状态协议数据报文PDUProtocol Data Unit中的信息量太大时IS-IS路由器将会生成多个LSP分片用来携带更多的IS-IS信息。分片号用来区分不同的LSP分片
**查看非伪节点的LSP**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211103730395.png" alt="image-20220211103730395" style="zoom:50%;" />
```shell
<R1> display isis lsdb 0100.0000.1001.00-00 verbose
Database information for ISIS(1)
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
--------------------------------------------------------------------------------------------------
0100.0000.1001.00-00* 0x0000000e 0x9a75 1072 113 0/0/0
SOURCE 0100.0000.1001.00
NLPID IPV4
AREA ADDR 49.0123
INTF ADDR 10.1.12.1 //描述接口信息
INTF ADDR 10.1.13.1
NBR ID 0100.0000.1001.01 COST: 10 //描述邻接关系
NBR ID 0100.0000.3003.01 COST: 10
IP-Internal 10.1.12.0 255.255.255.0 COST: 10
IP-Internal 10.1.13.0 255.255.255.0 COST: 10 //描述路由信息
IP-Internal 1.1.1.0 255.255.255.0 COST: 10
Total LSP(s): 1
```
AREA ADDR该LSP来源的区域号
INTF ADDR该LSP中描述的接口地址
NBR ID该LSP中描述的邻接信息
IP-Internal该LSP中描述的网段信息
**查看伪节点LSP**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211104152439.png" alt="image-20220211104152439" style="zoom:50%;" />
```shell
Database information for ISIS(1)
Level-1 Link State Database
LSPID Seq Num Checksum Holdtime Length ATT/P/OL
----------------------------------------------------------------------------------------------------
0100.0000.1001.01-00* 0x00000009 0xca36 431 55 0/0/0
SOURCE 0100.0000.1001.01
NLPID IPV4
NBR ID 0100.0000.1001.00 COST: 0 //描述该广播网络中所有IS-IS路由器
NBR ID 0100.0000.2002.00 COST: 0 //伪节点到达其他路由器的Cost值为0
Total LSP(s): 1
*(In TLV)-Leaking Route, *(By LSPID)-Self LSP, +-Self LSP(Extended),
ATT-Attached, P-Partition, OL-Overload
```
注意:
在伪节点LSP中只包含邻接信息而不包含路由信息
**CSNP**
CSNP包含该设备LSDB中所有的LSP摘要路由器通过交互 CSNP来判断是否需要同步LSDB
在广播网络上CSNP由DIS定期发送缺省的发送周期为10秒
在点到点网络上CSNP只在第一次建立邻接关系时发送
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211104912304.png" alt="image-20220211104912304" style="zoom:50%;" />
Source ID发出CSNP报文的路由器的System ID
Start LSPCSNP报文中第一个LSP的ID值
End LSP IDCSNP报文中最后一个LSP的ID值
**PSNP**
PSNP只包含部分LSP的摘要信息与CSNP不同
当发现LSDB不同步时PSNP来请求邻居发送新的LSP
在点到的网络中当收到LSP时使用PSNP对收到的LSP进行确认
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211105617365.png" alt="image-20220211105617365" style="zoom:50%;" />
Source ID发出PSNP报文的路由器的System ID
**广播网络中LSP的同步过程**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211105731435.png" alt="image-20220211105731435" style="zoom:50%;" />
新加入的路由器R3首先发送IIH报文与该广播域中的路由器建立邻接关系。建立邻接关系之后R3等待LSP刷新定时器超时然后将自己的LSP发往组播地址Level-101-80-C2-00-00-14Level-201-80-C2-00-00-15。这样网络上所有的邻接都将收到该LSP
该网段中的DIS会把收到R3的LSP加入到LSDB中并等待CSNP报文定时器超时并发送CSNP报文
R3收到DIS发来的CSNP报文对比自己的LSDB数据库然后向DIS发送PSNP报文请求自己没有的LSP
DIS收到该PSNP报文请求后向R3发送对应的LSP进行LSDB的同步
**点到点网络中LSP的同步过程**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211113216373.png" alt="image-20220211113216373" style="zoom:50%;" />
R1先与R2建立邻接关系
建立邻接关系之后R1与R2会先发送CSNP给对端设备。如果对端的LSDB与CSNP没有同步则发送PSNP请求索取相应的LSP
假设R2向R1索取相应的LSP
R1发送R2请求的LSP的同时启动LSP重传定时器并等待R2发送的PSNP作为收到LSP的确认
如果在接口LSP重传定时器超时后R1没有收到R2发送的PSNP报文作为应答
则R1重新发送该LSP
R2收到LSP后发送PSNP进行确认
**LSP的处理机制**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211113408264.png" alt="image-20220211113408264" style="zoom:50%;" />
IS-IS通过交互LSP实现链路状态数据库同步路由器收到LSP后按照以下原则处理
若收到的LSP比本地LSP的更优或者本地没有收到的LSP
在广播网络中将其加入数据库并组播发送新的LSP
在点到点网络中将其加入数据库并发送PSNP报文来确认收到此LSP之后将这新的LSP发送给除了发送该LSP的邻居以外的邻居
若收到的LSP和本地LSP无法比较出优劣则不处理该LSP
**LSP产生的原因IS-IS路由域内的所有路由器都会产生LSP以下事件会触发一个新的LSP**
邻接Up或Down
IS-IS相关接口Up或Down
引入的IP路由发生变化
区域间的IP路由发生变化
接口被赋了新的metric值
周期性更新刷新间隔15min
<h4>IS-IS的基本配置</h4>
<h5>1.IS-IS协议的基本配置</h5>
![image-20220211113919644](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211113919644.png)
![image-20220211113928679](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211113928679.png)
![image-20220211113937273](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211113937273.png)
<h5>2.IS-IS配置</h5>
![image-20220211115036282](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211115036282.png)
**组网需求**
如图所示现网中有5台路由器。用户希望在这5台路由器实现网络互联并且因为R1性能相对较低所以还要使这台路由器处理相对较少的数据信息。同时用户希望R1可以选择最优路径访问192.168.10.0/24和192.168.20.0/24网段。
**配置思路**
在各路由器上配置IS-IS基本功能实现网络互联。其中配置R1为Level-1路由器可以使这台路由器维护相对少量的数据信息。同时配置R2和R3为Level-1/2路由器与R4和R5这两台Level-2路由器互联
**R1R1的路由器等级需要设置为Level1**
```shell
[R1] isis 1
[R1-isis-1] is-level level-1
[R1-isis-1] network-entity 49.0001.0010.0100.1001.00
[R1-isis-1] quit
[R1] interface gigabitethernet 0/0/0
[R1-GigabitEthernet0/0/0] isis enable 1
[R1-GigabitEthernet0/0/0] interface gigabitethernet 0/0/1
[R1-GigabitEthernet0/0/1] isis enable 1
```
**R2和R3R2、R3的路由器等级需要设置为Level1/2**
```shell
[R2] isis 1
[R2-isis-1] is-level level-1-2
[R2-isis-1] network-entity 49.0001.0020.0200.2002.00
[R2-isis-1] quit
[R2] interface gigabitethernet 0/0/0
[R2-GigabitEthernet0/0/0] isis enable 1
[R2-GigabitEthernet0/0/0] interface gigabitethernet 0/0/1
[R2-GigabitEthernet0/0/1] isis enable 1
[R3] isis 1
[R3-isis-1] is-level level-1-2
[R3-isis-1] network-entity 49.0001.0030.0300.3003.00
[R3-isis-1] quit
[R3] interface gigabitethernet 0/0/0
[R3-GigabitEthernet0/0/0] isis enable 1
[R3-GigabitEthernet0/0/0] interface gigabitethernet 0/0/1
[R3-GigabitEthernet0/0/1] isis enable 1
```
**R4和R5R4、R5的路由器等级需要设置为Level2**
```shel
[R4] isis 1
[R4-isis-1] is-level level-2
[R4-isis-1] network-entity 49.0002.0040.0400.4004.00
[R4-isis-1] quit
[R4] interface gigabitethernet 0/0/0
[R4-GigabitEthernet0/0/0] isis enable 1
[R4-GigabitEthernet0/0/0] interface gigabitethernet 0/0/1
[R4-GigabitEthernet0/0/1] isis enable 1
[R4-GigabitEthernet0/0/1] interface gigabitethernet 0/0/2
[R4-GigabitEthernet0/0/2] isis enable 1
[R5] isis 1
[R5-isis-1] is-level level-2
[R5-isis-1] network-entity 49.0002.0050.0500.5005.00
[R5-isis-1] quit
[R5] interface gigabitethernet 0/0/0
[R5-GigabitEthernet0/0/0] isis enable 1
[R5-GigabitEthernet0/0/0] interface gigabitethernet 0/0/1
[R5-GigabitEthernet0/0/1] isis enable 1
[R5-GigabitEthernet0/0/1] interface gigabitethernet 0/0/2
[R5-GigabitEthernet0/0/2] isis enable 1
```
**配置验证 (查看设备的IS-IS邻接表)**
R4路由器建立Level-2的邻接关系
```shell
<R4> display isis peer
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
0020.0200.2002 GE0/0/0 0040.0400.4004.01 Up 25s L2 64
0050.0500.5005 GE0/0/1 0050.0500.5005.01 Up 13s L2 64
```
R1路由器建立Level-1的邻接关系
```
<R1> display isis peer
Peer information for ISIS(1)
System Id Interface Circuit Id State HoldTime Type PRI
0020.0200.2002 GE0/0/0 0010.0100.1001.01 Up 29s L1 64
0030.0300.3003 GE0/0/1 0030.0300.3003.01 Up 9s L1 64
```
System Id字段描述邻接的系统ID
Interface字段描述通过该路由器哪个端口与邻接建立邻接关系
Type描述与该邻接的邻接关系类型
PRI描述该邻接对应端口的DIS优先级
**配置验证 (查看设备的IS-IS路由表)**
```shell
<R1> display isis route
Route information for ISIS(1)
ISIS(1) Level-1 Forwarding Table
IPV4 Destination IntCost ExtCost ExitInterface NextHop
0.0.0.0/0 10 NULL GE0/0/0 10.1.12.2
GE0/0/1 10.1.13.3
10.1.24.0/24 20 NULL GE0/0/0 10.1.12.2
10.1.13.0/24 10 NULL GE0/0/1 Direct
10.1.12.0/24 10 NULL GE0/0/0 Direct
10.1.35.0/24 20 NULL GE0/0/1 10.1.13.3
```
R1路由表中存在区域内的明细路由以及两条等价的默认路由
**配置验证 (查看设备的IS-IS路由表) **
```shell
<R3>display isis route
Route information for ISIS(1)
-----------------------------
ISIS(1) Level-1 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
0.0.0.0/0 20 NULL
10.1.24.0/24 30 NULL GE0/0/0 10.1.13.1 A/-/L/-
10.1.13.0/24 10 NULL GE0/0/0 Direct D/-/L/-
10.1.12.0/24 20 NULL GE0/0/0 10.1.13.1 A/-/L/-
10.1.35.0/24 10 NULL GE0/0/1 Direct D/-/L/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
……
……
ISIS(1) Level-2 Forwarding Table
--------------------------------
IPV4 Destination IntCost ExtCost ExitInterface NextHop Flags
-------------------------------------------------------------------------------
10.1.24.0/24 30 NULL
10.1.13.0/24 10 NULL GE0/0/0 Direct D/-/L/-
10.1.12.0/24 40 NULL
192.168.20.0/24 20 NULL GE0/0/1 10.1.35.5 A/-/-/-
10.1.45.0/24 20 NULL GE0/0/1 10.1.35.5 A/-/-/-
192.168.10.0/24 30 NULL GE0/0/1 10.1.35.5 A/-/-/-
10.1.35.0/24 10 NULL GE0/0/1 Direct D/-/L/-
Flags: D-Direct, A-Added to URT, L-Advertised in LSPs, S-IGP Shortcut,
U-Up/Down Bit Set
```
R3作为Level-1-2路由器路由表中存在Level-1及Level-2路由
**路由渗透配置**
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211141853150.png" alt="image-20220211141853150" style="zoom:50%;" />
**R2**
```shell
[R2] ip ip-prefix 1 permit 192.168.10.0 24
[R2] isis 1
[R2-isis-1] import-route isis level-2 into level-1 filter-policy ip-prefix 1
```
**R3**
```shell
[R3] ip ip-prefix 1 permit 192.168.20.0 24
[R3] isis 1
[R3-isis-1] import-route isis level-2 into level-1 filter-policy ip-prefix 1
```
**路由渗透验证**
通过查看R1的路由表我们可以看到新增了两条明细路由192.168.10.0/24以及192.168.20.0/24两条路由的开销值均为30当有数据包经由R1到达这两个网段时不会产生次优路径
<img src="https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211142104848.png" alt="image-20220211142104848" style="zoom:50%;" />
```shell
<R1> display ip routing-table protocol isis
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : ISIS
Destinations : 5 Routes : 6
ISIS routing table status : <Active>
Destinations : 5 Routes : 6
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 ISIS-L1 15 10 D 10.1.12.2 GigabitEthernet0/0/0
ISIS-L1 15 10 D 10.1.13.3 GigabitEthernet0/0/1
192.168.10.0/2 ISIS-L1 15 30 D 10.1.12.2 GigabitEthernet0/0/0
192.168.20.0/2 ISIS-L1 15 30 D 10.1.13.3 GigabitEthernet0/0/1
10.1.24.0/24 ISIS-L1 15 20 D 10.1.12.2 GigabitEthernet0/0/0
10.1.35.0/24 ISIS-L1 15 20 D 10.1.13.3 GigabitEthernet0/0/1
```
<h5>3.IS-IS认证的分类</h5>
IS-IS认证是基于网络安全性的要求而实现的一种认证手段通过在IS-IS报文中增加认证字段对报文进行认证。当本地路由器接收到远端路由器发送过来的IS-IS报文如果发现认证密码不匹配则将收到的报文进行丢弃达到自我保护的目的
**根据报文的种类,认证可以分为以下三类:**
接口认证在接口视图下配置对Level-1和Level-2的Hello报文进行认证
区域认证在IS-IS进程视图下配置对Level-1的CSNP、PSNP和LSP报文进行认证
路由域认证在IS-IS进程视图下配置对Level-2的CSNP、PSNP和LSP报文进行认证
**根据报文的认证方式,可以分为以下四类:**
简单认证:将配置的密码直接加入报文中,这种加密方式安全性较其他两种方式低
MD5认证通过将配置的密码进行MD5算法加密之后再加入报文中提高密码的安全性
Keychian认证通过配置随时间变化的密码链表来进一步提升网络的安全性
HMAC-SHA256认证通过将配置的密码进行HMAC-SHA256算法加密之后再加入报文中提高密码的安全性
<h5>4.IS-IS认证详解</h5>
**接口认证**
Hello报文使用的认证密码保存在接口下发送带认证TLV的认证报文互相连接的路由器接口必须配置相同的口令
**区域认证**
区域内的每一台L1路由器都必须使用相同的认证模式和具有共同的钥匙串
**路由域认证**
IS-IS域内的每一台L2和L1/L2类型的路由器都必须使用相同模式的认证并使用共同的钥匙串
对于区域和路由域认证可以设置为SNP和LSP分开认证
本地发送的LSP报文和SNP报文都携带认证TLV对收到的LSP报文和SNP报文都进行认证检查
本地发送的LSP报文携带认证TLV对收到的LSP报文进行认证检查发送的SNP报文携带认证TLV但不对收到的SNP报文进行检查
本地发送的LSP报文携带认证TLV对收到的LSP报文进行认证检查发送的SNP报文不携带认证TLV也不对收到的SNP报文进行认证检查
本地发送的LSP报文和SNP报文都携带认证TLV对收到的LSP报文和SNP报文都不进行认证检查
<h5>5.IS-IS认证的配置</h5>
![image-20220211144826405](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211144826405.png)
![image-20220211144835706](https://xingdian-image.oss-cn-beijing.aliyuncs.com/xingdian-image/image-20220211144835706.png)

View File

@ -0,0 +1,740 @@
<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
……
```