将所有的图片放在一个Markdown中太傻逼了, 超过了200张图片, 因而本篇博客再单独记录MPLS与网管的相关内容, 同时努力不再采用图片格式, 而是用Plain Text展示相关实验内容.
不过比较怠惰, MPLS VPN只是结合着教材上做了一下实验, 没有进行记录; 网管则是觉得过于傻逼, 加上ensp也没有网管软件, 很多报文都没法复现, 直接跳过不管.
MPLS基础
MPLS体系结构
MPLS网路的基本组成单元为LSR(Label Switching Router), 由LSR组成的网络叫做MPLS域. 位于区域边缘与其他用户网络连接的LSR叫做边缘LSR, 在区域内部的则称为核心LSR. 分组打上标签上沿着一系列LSR的路径成为LSP(Labe Switched Path), 其中入口LSR为Ingress, 出口LSR交Egress.
在Ingress节点, 根据进入网络的分组的**特征(一般为IP前缀或者主机名称等)**划分为FEC(Forwarding Equivalence Class, 转发等价类), 相同的FEC分组在MPLS域内的LSP相同. LSR为FEC分组分配短而定长的标签, 然后从相应的接口进行转发.
LSP沿途的所有LSR上都建立了输入输出标签的映射表, 表项元素为下一跳标签转发表项(Next Hop Label Forwading Entry, NHLFE). 对于接收到的标签分组, LSR查询该表找到对应的NHLFE, 替换标签后转发. 这个过程称为ILM(Incoming Label Map, 输入标签映射).
MPLS在Ingress处指定特定分组的FEC, 后续LSR只需要查表即可转发, 比网络层的转发要简单得多, 提高了转发速度.
MPLS标签
标签用于标识一个FEC.
标签在分组中处于二层与三层之间的位置, 其报文结构有4个域:
-
Label: 标签值(20bits)
-
Exp: 保留(3bit)
-
S: 标记是否为最底层的标签(1bit)
-
TTL: 与IP分组的TTL意义相同(8bit)
MPLS标签可以无限嵌套, 靠近二层首部的标签叫外层标签或栈顶标签, 靠近IP首部的标签称为栈底MPLS标签或内层MPLS标签。
MPLS标签分发方式
有两种方式: 下游自主标签分发与下游按需标签分发.
-
下游自主方式DU. 对于一个特定的FEC, LSR无需从上游获得标签请求消息即进行标签分配与分发.
-
下游按需方式DoD. 对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发。
MPLS标签分配方式
MPLS中标签分配由下游LSR做出, 下游LSR随后将通告给上游LSR. 标签分配也有两种方式:
-
独立标签分配控制方式: 本地LSR可以自主地分配一个标签绑定到某个FEC,并通告给上游LSR,而无需等待下游的标签。
-
有序标签分配控制方式:对于LSR上某个FEC的标签映射,只有当该LSR已经具有此FEC下一跳的标签映射消息、或者该LSR就是此FEC的出节点时,该LSR才可以向上游发送此FEC的标签映射。
MPLS标签保持方式
分为两种:
-
自由标签保持方式: 对于从邻居LSR收到的标签映射, 无论邻居LSR是不是自己的下一跳都保留. 当网络拓扑变化后, LSP可以快速重建.
-
保守标签保持方式: 对于从邻居LSR收到的标签映射, 只有当邻居LSR是自己的下一跳时才保留. 这种方式节省了内存和标签空间, 通常和DoD方式一起, 用于标签空间有限的LSR.
LDP标签分发协议
LSP的建立本质上是对FEC和标签进行绑定, 并将这种绑定关系通告给LSP上所有的LSR的过程. 该过程由LDP(Label Distribution Protocol, 标签分发协议) 实现.
LDP用于在一对标记的转发上下游LSR之间分发FEC-Label映射信息的协议, 上下游LSR被称为标记分发对等体. 为了保证分发的可靠性, LDP采用TCP传输服务.
下面展示了LDP消息一览:
LDP PDU
LDP消息不直接承载在UDP中, 而是封装在LDP PDU(协议数据单元)头部后, 一个LDP PDU可以包含多个不同的LDP信息.
LDP PDU头部的结构如下:
Hello消息
报文结构如下:
其内容为:
-
第一个Bit通常叫做U比特, 用于指示接收者在不能识别该类型(即随后的15bit域)下的处理方法: 0则向发送者发送错误通告, 1则安静地忽略该消息
-
随后跟15bit的类型域, 这里
0x0100
就代表Hello信息. -
Length指示后续报文的长度.
-
Message ID 用于给Hello编号, 以便于在其他消息(如错误通告)中指示当前消息.
-
Common Hello Parameters TLV包含Hello消息中必须包含的那些TLV信息. 事实上, 整个Hello消息也可以看作是一个TLV, 其Value中又有一些TLV罢了; 而随后的Optional Parameters则是可选的TLV信息.
下面介绍Common Hello Parameters TLV
的结构:
-
U比特指示如何处理该条TLV; 第二个Bit称为F比特, 仅在U比特为1时启用; 如果F=0则未知的TLV不会进一步转发, 如果F=1则未知的TLV也会随着包含它的消息一并转发.
-
随后的14bit指示TLV类型, Length指示后续报文的长度, Hold Time指示接收者应当保持Hello记录的时长.
-
最后的T比特指示邻居发现机制, T=1表示使用拓展邻居发现机制, T=0表示链路发现机制; R比特标识是否接收者要向发送者回应目标Hello.
Initialization消息
具体考察Initialization Message
的报文结构:
可以看到该结构与Hello消息十分相似, 下面再继续探讨Common Session Parames TLV
的结构:
前几个字段与Hello Paramters类似, 需要关注的是:
-
A比特指示标记分发方式, A=0代表DU方式, A=1代表DoD方式
-
D比特代表是否使能基于路径向量的环路检测功能, 如果使能检测功能, 则PVLim中进一步指示路径向量的最大长度.
-
Max PDU Length 指示建议的最大PDU长度
-
随后跟6字节的标识符, 但是教材中仅给出了4字节的Identifier, 在实际的报文中还有2字节的命名空间.
KeepAlive消息
KeepAlive的报文比较简单, 只有一个通用的消息头. 当没有其他消息要传输时, 就发一个KeepAlive来证实自己的存在.
Address消息
Address TLV中包含了发送方的所有端口IP地址.
Label Mapping消息
Label Mapping消息的报文结构如下:
主要介绍其中的FEC TLV以及Label TLV, 它们表示了发送方发布的标记与FEC之间的映射.
FEC TLV结构如下:
FEC Element由三种可能的类型:
Label FEC也有三种可能的类型:
这里使用的是通用标记, 其结构为:
最后介绍几个可选参数:
-
Label Request Message ID TLV. 当这个Map消息是用于响应某个Label Request消息时, 他就应该包含该字段用于说明Request消息的消息ID. 不过在DU分发方式下, Label Mapping无需Request来触发.
-
Hop Count TLV和Path Vector TLV. 用于环路检测, 其结构为:
在一个网络中, LSR从下游收到Label Mapping后, 有可能会触发其再向该LSR的上游发送Mapping, 为了防止该过程在路由环路等情况下无限重复, 采用了环路检测机制.
-
一种方式就是通过Hop Count. 每经过一个LSR后HC就加一, 当LSR收到一个HC大于预先定义的最大值后就认为出现了环路从而丢弃该消息
-
另一种是Path Vector, 通过TLV中加入的路径上的所有LSR ID信息, 检查自己是否存在其中, 来判断是否发生环路.
-
Label Request
Label Release
LSP的建立过程
下面结合LDP消息说明LSP建立的整个过程.
LDP发现
每个LSR必须有一个标识符用以区分, LDP使用一个4字节的LSR ID用以标识不同的LSR. 同时, 由于同一个LSR可能存在于不同的标记空间(如ATM交换机中每个接口的VCI), 因而LDP再使用2字节的无符号整数标识标记空间. 总共使用这6个字节来形成LDP标识符, 作为一个独立的标记分发对等体.
LDP有两种邻居发现机制:
-
基本发现机制:发现直连链路的LSR. 通过目的地址为
224.0.0.2
(所有路由器)的组播地址、UDP目的端口为指示包含LDP用的646以及承载在UDP报文中的Hello信息向所有路由器声明自己的存在. -
扩展发现机制:用于发现非直连链路的LSR. 同样采用目的端口为646的UDP报文,、不过目的地址为手工配置的特定LSR地址、承载的Hello报文来声明自己的存在.
这两种机制使用Hello信息基本一样.
LDP会话建立与维护
当一个LSR发现新的邻接关系后就会检查是否已经有一个TCP连接在为其服务, 如果没有则建立一个新的会话, 标识TCP连接为Hello邻接体服务.
建立TCP连接的第一步是确定双方的IP. 本端IP决定于是否在Hello选项中向对端通告过地址, 如果通告过则使用该地址, 不然则使用Hello报文的源IP地址; 对端IP的确定也是类似的.
随后, 协议规定地址的大的那一方作为TCP建立的主动方, 另一方为被动方, 二者发起三次握手建立TCP连接.
建立连接后, 双方将开始会话初始化过程. 主动方向被动方发送Initialization Message, 如果接收方认为建议的参数可以接收就也用一个初始化消息回应, 否则就发出错误通知并终止连接. 当主动方接收到接收方的初始化消息, 再次检查对方建议的参数是否可以接收, 可以则回应一个KeepAlive消息, 否则也是错误通知并终止连接. 任何一方收到KeepAlive后则认为LDP对话已经处理Operation状态了.
由以上过程可知, 连接建立过程中总是主动负责, 被动方消极等待. 为了避免双方参数不兼容导致主动方反复尝试建立连接, 其尝试连接的时间间隔是指数规律增长的. 这也导致一个问题, 被动方可能再很长时间内都必须等待主动方进行连接, 因而其在Hello报文中通过声明新的配置序列号来解决这个问题.
MPLS标记分发和管理
对于逐跳路由应用来说, 通常采用独立LSP控制方式+DU分发方式, 下面以此为例进行说明.
在这样的前提下, 一旦LDP发现了一个新的FEC, 就可以为其分配标记, 并使用Label Mapping消息将其分发给LDP对等体(不过当然除了下一跳路由器). 此外由Label Mapping消息的结构可知, 一个Label可以与多个FEC绑定.
当Engress发现一个新的主机路由后,并且该路由不属于任何现有的FEC, 则尝试为其建立一个新的FEC, 并主动向上游发出标签映射消息.
当上游LSR收到Label Mapping消息后:
-
首先检查环路信息, 若产生环路, 则向消息发送者发送一个Label Release消息声明不使用对端发来的标记映射.
-
检查消息中的FEC的下一跳是否是消息发送者的某个地址, 如果不是的话, 再根据保守模式还是自由模式决定是否要保存该映射关系. LDP在此之前已经通过Address消息通告自身所拥有所有端口地址, 这样Mapping消息接收方就可以对端口情况进行检查.
-
如果一切都好, LSR就会根据该消息修改标记转发表, 然后再向上游LSR发送自己对于该FEC的标签映射消息.
-
一直向上发送直到Ingress. 如果该LSR是Ingress, 会建立FTN表, 不然建立ILM表.
MPLS实验
MPLS实验拓扑
给出如当下的拓扑结构图, 全网配置OSPF互通.
在R1上配置如下:
1[R1]mpls lsr-id 1.1.1.1
2[R1]mpls
3[R1-mpls]lsp-trigger all
4[R1]mpls ldp
5[R1]inter g0/0/1
6# 在相应接口上启用MPLS与LDP
7[R1-GigabitEthernet0/0/1]mpls
8[R1-GigabitEthernet0/0/1]mpls ldp
R2,R3的配置同理; 这里与书本上不同, R2也配置为lsp-trigger all
.
配置完成后R1,R2,R3构成MPLS域.
MPLS实验标签转发表
通过dis mpls lsp
查看标签转发表:
1[R1-GigabitEthernet0/0/1]dis mpls lsp
2-------------------------------------------------------------------------------
3 LSP Information: LDP LSP
4-------------------------------------------------------------------------------
5FEC In/Out Label In/Out IF Vrf Name
63.3.3.3/32 NULL/1035 -/GE0/0/1
73.3.3.3/32 1025/1035 -/GE0/0/1
82.2.2.2/32 NULL/3 -/GE0/0/1
92.2.2.2/32 1026/3 -/GE0/0/1
10200.0.1.0/24 NULL/3 -/GE0/0/1
11200.0.1.0/24 1027/3 -/GE0/0/1
12200.0.0.0/24 NULL/1036 -/GE0/0/1
13200.0.0.0/24 1028/1036 -/GE0/0/1
1410.0.0.1/32 1029/NULL -/-
151.1.1.1/32 3/NULL -/-
16100.0.0.0/24 3/NULL -/-
17200.0.2.0/24 3/NULL -/-
1810.0.1.1/32 NULL/1040 -/GE0/0/1
1910.0.1.1/32 1030/1040 -/GE0/0/1
20
21
22[R2-GigabitEthernet0/0/1]dis mpls lsp
23-------------------------------------------------------------------------------
24 LSP Information: LDP LSP
25-------------------------------------------------------------------------------
26FEC In/Out Label In/Out IF Vrf Name
273.3.3.3/32 1035/3 -/GE0/0/1
282.2.2.2/32 3/NULL -/-
29200.0.1.0/24 3/NULL -/-
30200.0.2.0/24 3/NULL -/-
31200.0.0.0/24 1036/3 -/GE0/0/1
3210.0.0.1/32 NULL/1029 -/GE0/0/0
3310.0.0.1/32 1037/1029 -/GE0/0/0
341.1.1.1/32 NULL/3 -/GE0/0/0
351.1.1.1/32 1038/3 -/GE0/0/0
36100.0.0.0/24 NULL/3 -/GE0/0/0
37100.0.0.0/24 1039/3 -/GE0/0/0
383.3.3.3/32 NULL/3 -/GE0/0/1
39200.0.0.0/24 NULL/3 -/GE0/0/1
4010.0.1.1/32 NULL/1029 -/GE0/0/1
4110.0.1.1/32 1040/1029 -/GE0/0/1
42
43[R3-GigabitEthernet0/0/1]dis mpls lsp
44-------------------------------------------------------------------------------
45 LSP Information: LDP LSP
46-------------------------------------------------------------------------------
47FEC In/Out Label In/Out IF Vrf Name
481.1.1.1/32 NULL/1038 -/GE0/0/1
491.1.1.1/32 1024/1038 -/GE0/0/1
502.2.2.2/32 NULL/3 -/GE0/0/1
512.2.2.2/32 1025/3 -/GE0/0/1
5210.0.0.1/32 NULL/1037 -/GE0/0/1
5310.0.0.1/32 1026/1037 -/GE0/0/1
54100.0.0.0/24 NULL/1039 -/GE0/0/1
55100.0.0.0/24 1027/1039 -/GE0/0/1
56200.0.2.0/24 NULL/3 -/GE0/0/1
57200.0.2.0/24 1028/3 -/GE0/0/1
583.3.3.3/32 3/NULL -/-
59200.0.0.0/24 3/NULL -/-
60200.0.1.0/24 3/NULL -/-
6110.0.1.1/32 1029/NULL -/-
比预料的多了一些, 而且几乎对每个FEC都多了一套标签变换规则… 比如在R1上, FEC3.3.3.3
对应的转发, 预想的是只有NULL/1035
, 但是却多出来一个1025/1035
, 疑惑的是此时R1应该已经是Ingress了? 为何还会出现其余的入标签, 怀疑是标签的分发方式或者是环路或是标签保持方案等原因…
由于华为默认采用Libre标签保持+有序分配+DU分发的方案, 所以猜测表项中存了一些无用的内容.. 为了验证猜想, 尝试去修改label-retention
, 但是把?
按遍也没有找到相关的指令, 上网查阅后好像也在暗示华为的设备不能修改该属性(可能跟设备版本也有关系, 但是不想深究了);
又有说当分配方式为DU时标签保持模式为Libre, DoD时为Conservative, 因而尝试将3台路由器的相应端口的标签分发模式改为DuD:
1[R3-GigabitEthernet0/0/1]dis this
2[V200R003C00]
3#
4interface GigabitEthernet0/0/1
5 ip address 200.0.1.2 255.255.255.0
6 mpls
7 mpls ldp
8 mpls ldp advertisement dod
9#
10return
不过此时查看ldp的情况, 仍然显示为libre的保持规则, 看来可能确实无法修改.
1<R3>dis mpls ldp
2
3 LDP Global Information
4 ------------------------------------------------------------------------------
5 Protocol Version : V1 Neighbor Liveness : 600 Sec
6 Graceful Restart : Off FT Reconnect Timer : 0 Sec
7 MTU Signaling : On Recovery Timer : 300 Sec
8 Capability-Announcement : Off Longest-match : Off
9 P2MP Capability : Off
10
11 LDP Instance Information
12 ------------------------------------------------------------------------------
13 Instance ID : 0 VPN-Instance :
14 Instance Status : Active LSR ID : 3.3.3.3
15 Loop Detection : Off Path Vector Limit : 32
16 Label Distribution Mode : Ordered Label Retention Mode : Liberal
17 Instance Deleting State : No Instance Reseting State : No
18 Graceful-Delete : Off Graceful-Delete Timer : 5 Sec
19 ------------------------------------------------------------------------------
但是好消息是, 经过DoD的分发方式, 所有的lsp表项确实就干净了:
1<R1>dis mpls lsp
2-------------------------------------------------------------------------------
3 LSP Information: LDP LSP
4-------------------------------------------------------------------------------
5FEC In/Out Label In/Out IF Vrf Name
61.1.1.1/32 3/NULL -/-
710.0.0.1/32 1042/NULL -/-
8100.0.0.0/24 3/NULL -/-
93.3.3.3/32 NULL/1040 -/GE0/0/1
1010.0.1.1/32 NULL/1041 -/GE0/0/1
112.2.2.2/32 NULL/3 -/GE0/0/1
12200.0.0.0/24 NULL/1042 -/GE0/0/1
13200.0.1.0/24 NULL/3 -/GE0/0/1
14
15<R2>dis mpls lsp
16-------------------------------------------------------------------------------
17 LSP Information: LDP LSP
18-------------------------------------------------------------------------------
19FEC In/Out Label In/Out IF Vrf Name
201.1.1.1/32 NULL/3 -/GE0/0/0
2110.0.0.1/32 NULL/1042 -/GE0/0/0
22100.0.0.0/24 NULL/3 -/GE0/0/0
231.1.1.1/32 1037/3 -/GE0/0/0
2410.0.0.1/32 1038/1042 -/GE0/0/0
252.2.2.2/32 3/NULL -/-
26200.0.2.0/24 3/NULL -/-
27200.0.1.0/24 3/NULL -/-
28100.0.0.0/24 1039/3 -/GE0/0/0
293.3.3.3/32 NULL/3 -/GE0/0/1
303.3.3.3/32 1040/3 -/GE0/0/1
3110.0.1.1/32 NULL/1037 -/GE0/0/1
3210.0.1.1/32 1041/1037 -/GE0/0/1
33200.0.0.0/24 NULL/3 -/GE0/0/1
34200.0.0.0/24 1042/3 -/GE0/0/1
35
36<R3>dis mpls lsp
37-------------------------------------------------------------------------------
38 LSP Information: LDP LSP
39-------------------------------------------------------------------------------
40FEC In/Out Label In/Out IF Vrf Name
413.3.3.3/32 3/NULL -/-
4210.0.1.1/32 1037/NULL -/-
43200.0.0.0/24 3/NULL -/-
441.1.1.1/32 NULL/1037 -/GE0/0/1
4510.0.0.1/32 NULL/1038 -/GE0/0/1
462.2.2.2/32 NULL/3 -/GE0/0/1
47200.0.2.0/24 NULL/3 -/GE0/0/1
48100.0.0.0/24 NULL/1039 -/GE0/0/1
感觉上认为, 应该是华为路由器存储了一些无用的消息; 但具体原理不想深究了.
要注意, 3号标签是特殊的隐型标签, 最后一跳路由器和倒数第二跳路由器会彼此绑定该标签, 但是并不会实际压入/弹出该标签, 倒数第二跳路由器在转发前就会将标签弹出.
MPLS实验LDP与LSP建立
在链路R2-R3之间抓取报文. 进入R3的G0/0/1端口执行shutdown
, 等待充分时间后再undo shutdown
, 随后观察截取的报文.
undo后可以观察到, 200.0.1.1
和200.0.1.2
还是会周期的发送ldp hello, 但是不会再进一步了, 只有当OSPF协议填充完成后, 才会开始建立TCP连接并开始LDP会话建立过程. 这也是比较奇怪, 按道理哪怕没有OSPF的话R2,R3之间可能也能构成LDP会话.
当OSPF填充完成后, 将建立LDP会话. 这是涉及的LDP消息一览:
首先建立TCP连接, 能看到3次握手.
抓一条hello报文看一下:
可以看到其中还有个一些Optional KLV, 用于指示IPV4地址和声明配置序列号.
随后是双方互相发送Initialization消息, 并发送KeepAlive同意商议的参数.
给出一个实际的初始化消息报文, 可以与上述的理论分析相互映照.
由于一个PDU中可以有多条消息, 因而接收方不仅回复了一条初始化消息, 连带着KeepAlive也一并回复了, 下面是KeepAlive的报文结构:
随后双方均发送Address通告自己所有的端口地址, 该报文也可能和其他LDP消息存在于同一个PDU中:
然后可以看到Label Mapping消息交换映射关系, 这是Label Mapping 报文的大致结构:
事实上最后还是要研究一下DoD的情况, 以及一个个结合报文进一步探讨为什么DoD会比较干净, 但是算了, 留坑有缘相见.
MPLS VPN
传统VPN使用二层或三层的隧道协议, 这里主要关注BGP/MPLS组建的VPN.
VPN由若干Site组成, 一个Site可以同时属于多个VPN. 在MPLS VPN模型中, 有3个组成部分:
-
Custom Edge设备. 用户网络的边缘设备, 有接口与ISP连接, CE感觉不到VPN的存在.
-
Provider Edge设备. 运营商边缘设备, 与用户CE相连. 在MPLS网络中, 对VPN的处理全部发生在PE上.
-
Provider路由器. 运营商骨干路由器, 不与CE相连, PR需要支持MPLS.
再介绍一些MPLS VPN的相关属性:
-
VPN-Instance. PE负责维护VPN-Instance与VPN的关联关系, 其中包含标签转发表, IP路由表, 绑定的接口以及其他管理信息. 实际网络中每一个Site对应一个单独的VPN-Instance.
-
VPN-IPv4. PE之间使用BGP来发布VPN路由, 使用新的地址簇VPN-IPv4地址: 一共有12个字节, 开始8个字节路由分辨符(Route Distinguisher, RD), 再跟4个字节的IPv4地址. 服务商可以独立分配RD, 但是要把它们的AS也作为RD的一部分以保证其全局唯一.
-
VPN Target. 该属性标识了可以使用该路由的站点集合, 与这些Site相连的PE路由器都会接收到具有这种属性的路由. 事实上PE路由器存在2个VPN Target属性的集合, 一个用于附加到从某个Site接收的路由上, 称为Export Targets; 另一个用于决定哪些路由可以引入到此Site的路由表, 称为Import Targets
BGP/MPLS VPN实验原理
BGP/MPLS VPN的主要原理是利用BGP在骨干网传播VPN的私网路由信息, 再用MPLS转发VPN业务流.
VRF(Virtual routing and forwarding, 虚拟路由转发)
咕了.
考试
上面的组网配置成功后就有60分了…
第一个20分是在r1-r3之间截获报文, 给出一条pim bootstrap的报文, 说明rp信息发布过程.. 送
第二个20分写出禁止rpt向spt切换的命令… 也算送… 但是它要求画出此SPT和RPT… 我不知道咋理解, 直接把禁止切换前的SPT和禁止切换后的RPT全部展示了. SPT很好画, 比较坑的是禁止切换后的SPT+RPT… 如果我没理解错其结构与此前的SPT完全一致.
正常来说, 如果通过spt+rpt的pim-sm路由方式, PCA->PCB的报文应该先从PCA发往R1再到R3, R3再通过PCB汇报上来的RPT进行转发. 不过由于OSPF cost的设置, 可以看到PCB到R3的最短路径是从S1->R2->R1->R3的… 感觉稍微有点坑, 电脑果然比我聪明.. 最开始一直没看出来是这样还以为自己配错了…
但是随之而来有个问题, PCA通过SPT发往R3和R3发往PCB共享了一条链路(R1-R3), 它会怎么处理?? 我不知道, 只能如实写在答卷纸上我的猜测: 由于有一条链路重复, 所以pim会自动让报文从R1不用再经过R3, 直接向PCB发送…
下面展示一下切换前和切换后6台路由器的pim routing-table
, 可以看到禁止切换后, 不与SPT相关的四台设备(R2, S1, S2, R4)的SPT
标志均已消失, 可能可以认为这是成功配置的一个信号.
未使用spt-switch-threhold inifity
之前, 自动切换到SPT, 路由表如下:
使用指令后(在答卷上我写的是只要在接收端DR处设置即可, 但事实上当时以为自己不知道那里配错了因为拓扑结构没有变化, 所以在所有设备上都启用了该指令… emmm不过应该是没有影响的 下面是所有都启用了该指令后的路由表截图)
这一小步坑了1个小时.. 不过考卷总体感觉非常简单… 前面95%的内容1h就能完成, 最后一个地方稍微有一点坑.