H12-821第71-80题条件变化拆解:从协议机制到排障复盘

发布时间:2026/10/27 17:05:00
H12-821第71-80题条件变化拆解:从协议机制到排障复盘

先说个我自己的观察:带“题解析”三个字的文章,绝大多数写得像答案速查表,A对B错,翻完就忘。可 H12-821 这门考试真正卡人的地方,从来不是记不住某条属性排在选路第几位,而是题干里换了个条件,你就不知道自己背的那条还成不成立。我前段时间陪一位同事复盘第71到80题这一段的错题,翻来覆去看下来,发现这十道题几乎每道都埋了一个“条件变化”的钩子,你按套路背下来的结论,在这里往往会翻车。这篇文章就把这十道题当成十个小型排障现场来拆:每道题先讲清楚它在考什么,再把选项背后的机制掰开,然后补上真实配置里踩过的坑,最后给你几条能直接拿去复盘的判断方法。不管你是刚刷完前面七十题想继续往下推的备考人,还是已经拿证但想回头把基础缝一遍的老手,下面这些内容应该都能对得上你的胃口。

1. 第71题:OSPFv3与OSPFv2的差异,别被“差不多”三个字骗了

1.1 题干还原与选项拆解

这道题是我见过错得最冤的一道,因为大部分人对 OSPFv3 的印象停留在“就是把 OSPFv2 换成 IPv6 地址”,觉得既然是升级版,那肯定是“处处更好、功能更多”。题目偏偏就是拿这个心理做文章。

题干大致是这样的:关于 OSPFv3 与 OSPFv2 的差异,以下说法正确的有(多选),选项如下:

  • A. OSPFv3 报文头中不再包含认证字段,认证功能交由 IPsec 完成
  • B. OSPFv3 的 Router ID 仍然是 32 位,格式与 IPv4 地址相同
  • C. OSPFv3 的 Hello 报文以链路本地地址为源地址,因此必须手工配置该地址
  • D. OSPFv3 新增了 Link-LSA 和 Intra-Area-Prefix-LSA 两类 LSA
  • E. 同一物理接口可以同时属于多个 OSPFv3 区域

正确答案是 A、B、D。C 和 E 都是典型的“听起来很合理”的干扰项。

先看 C。OSPFv3 的接口确实会使用链路本地地址作为 Hello 报文的源地址,这一点没错;错在后半句的“必须手工配置”。真实设备上,只要接口使能了 IPv6,链路本地地址会自动生成,格式是FE80::加上由接口标识推导出的部分。你压根不需要为 OSPFv3 专门配一个FE80::地址,除非你有非常特殊的排障需求。这个干扰项的杀伤力在于,前半句是对的,很多人读到“链路本地地址”就点头了,根本没看完后面那半句。

再看 E。OSPFv3 确实支持“多实例”,也就是一个设备上可以跑多个 OSPFv3 进程,每个进程独立维护 LSDB,接口按“进程 + 区域”的方式归属。但“接口同时属于多个区域”这件事,OSPFv2 和 OSPFv3 都是不允许的。一个接口在同一个进程内只能属于一个区域,这是链路状态协议的基本约束,否则 LSDB 就乱了。

1.2 这两条差异背后的设计逻辑

如果你只记住 A、B、D 是对的,下次换个问法照样会错。我更建议你把“为什么”想明白。

为什么 OSPFv3 要把认证字段拿掉?OSPFv2 的报文头里有个 8 字节的认证字段,支持明文和 MD5 两种方式。这套机制是 IPv4 时代自己造轮子。到了 IPv6,IPsec 已经是协议栈自带的能力,AH 和 ESP 都能提供完整的报文完整性校验和对端认证,比协议自己再做一层更标准、更省事。所以 OSPFv3 干脆把认证甩给 IPsec,报文头从 24 字节变成 16 字节。你在真机上做 OSPFv3 认证时,用的是 IPsec 配置而不是authentication-mode这类命令,原因就在这里。

为什么 LSA 类型要动刀子?OSPFv2 的 Router-LSA(Type 1)和 Network-LSA(Type 2)里同时塞了两类信息:拓扑信息和前缀信息。这种“一锅端”的做法在 IPv4 单一地址族下没问题,一旦要支持多地址族就非常难受。OSPFv3 做了个很聪明的拆分:拓扑信息由 Router-LSA 和 Network-LSA 承载,前缀信息则由新增的 Link-LSA(Type 8)和 Intra-Area-Prefix-LSA(Type 9)承载。这么一来,拓扑计算和前缀宣告解耦了,将来加新地址族,只要加对应的前缀 LSA,拓扑部分完全不用动。这个设计思路和后来很多协议的做法是一致的,理解了这一层,第 8、9 类 LSA 的用途你就不用死记了。

1.3 从这道题延伸出去的实操提醒

我在实际配置 OSPFv3 时遇到过一个问题:两台设备 IPv6 通了、OSPFv3 进程也在跑,但邻居起不来。排查半天发现是 Router ID 没配。OSPFv3 虽然是给 IPv6 用的,但它不靠 IPv6 地址来生成 Router ID,规定必须手工指定一个 32 位的值,写法仍然是点分十进制(比如1.1.1.1)。如果不手工配,设备会尝试用其他接口的 IPv4 地址来凑,凑不出来就不启用协议。

提示:做 OSPFv3 实验时,第一步就把router-id敲上去,能省掉你至少半小时的“为什么邻居不 Up”的困惑。

另外,OSPFv3 的接口在使能方式上也和 v2 不一样。OSPFv2 是在接口下用network命令或者接口视图里挂进区域;OSPFv3 通常直接在接口视图下使能协议,然后由进程内的区域视图统一管理接口归属。这种“接口使能、区域绑定”的分离设计,和多实例的思路是一脉相承的,配的时候别在接口下死找network命令。

2. 第72题:Level-1-2 路由器身上那些“默认不做”的事

2.1 题干与判断依据

第72题的题眼在于“默认”两个字。题目给的场景是:某网络运行 IS-IS,R1 被配置为 Level-1-2 路由器,问关于它的行为描述哪些正确。

  • A. R1 会向 Level-1 区域发送 ATT 比特置位的 LSP
  • B. 默认情况下 R1 会把 Level-2 路由泄露到 Level-1 区域
  • C. R1 需要维护 Level-1 和 Level-2 两份 LSDB
  • D. 默认情况下 Level-1 路由不会被泄露到 Level-2
  • E. 当 R1 的邻居为 Level-1-2 类型时,R1 与该邻居会同时建立 Level-1 和 Level-2 两个邻接关系

答案是 A、C、D、E。B 是错的,而且错得非常有代表性。

先解释 A。Level-1-2 路由器同时挂在两个层次上,它知道去往其他区域的出口在哪。为了让 Level-1 区域内的路由器能找到出口,它会生成 Level-1 LSP 并把自己 LSP 中的 ATT(Attachment)比特置位。Level-1 路由器看到这个比特,就知道“这台设备能通往外边”,于是在自己的路由表里生成一条默认路由指向它。这是 IS-IS 的经典设计:Level-1 路由器不需要知道外部明细,跟着默认路由走就行。

C 就更好理解了。两个层次就意味着两套拓扑数据库,Level-1 的 LSDB 描述本区域,Level-2 的 LSDB 描述骨干。两份数据库是独立的,SPF 也是分开算的。

D 和 B 是一对。IS-IS 的层次化设计原则是“下层不知道上层细节,上层不主动下灌”。Level-2 路由默认不会泄露到 Level-1,Level-1 明细路由默认也不会泄露到 Level-2。要打破这个默认行为,必须显式配置路由泄露(route leak),通常配合路由策略做精确控制。

2.2 为什么“默认不泄露”是合理设计

很多人第一次看到 B 是错的,会觉得奇怪:Level-1-2 路由器既然两边都连着,顺手把明细同步过去不是更方便?

这恰恰是层次化路由的价值所在。Level-1 区域的设备通常是接入层和汇聚层,数量多、性能一般、LSDB 越小越好。如果把 Level-2 骨干区域的全部明细都灌进来,Level-1 的 LSDB 会急剧膨胀,SPF 计算压力陡增,链路抖动带来的收敛风暴也会蔓延到整个接入层。所以协议设计上选择了“默认路由兜底 + 按需泄露”的方案,把复杂度留在骨干。

但反过来,路由泄露在某些场景下又是必须的。典型的就是双出口或者多区域互访时需要做最优路径选择,只有默认路由会导致选路次优。这时候用import-route配合route-policy做定向泄露,只放少量聚合后的前缀进去,既能打通路径,又不至于把 LSDB 撑爆。

2.3 E 选项里的坑与邻接类型的判断

E 说的是:如果邻居也是 Level-1-2 类型,两台设备之间会同时建立 Level-1 和 Level-2 两个邻接。这个描述是对的。同一对接口上,两个层次各自维护独立的邻接状态机,你display isis peer会看到同一条链路出现两行记录,一行 Level-1,一行 Level-2。

这里容易混的是:并不是所有邻居组合都会建立双邻接。Level-1 和 Level-2 之间是不能直接建邻接的,Level-1-2 与 Level-1 只会建 Level-1 邻接,与 Level-2 只建 Level-2 邻接。只有两端都支持同一层次,才能在该层次上建邻接。

我见过一次真实的排障:两台设备互连,一端配了is-level level-1,另一端配了is-level level-2,结果邻居一直 Down。排查时先看物理层、再看二层协议、再查 PDU 类型,最后才发现是层次不匹配。display isis interface verbose能直接看到接口的层次和邻接状态,这个命令比单纯的display isis peer信息量大得多。

本地层次邻居层次L1 邻接L2 邻接
L1L1建立不建立
L1L1-2建立不建立
L2L2不建立建立
L2L1-2不建立建立
L1-2L1-2建立建立
L1L2不建立不建立

这张表建议直接背下来,比记任何文字描述都管用。第72题如果你心里有这张表,A、C、D、E 四个选项几乎是秒选。

3. 第73、74题:BGP 选路和 MPLS 标签,两块钱最容易“背混”的分

3.1 第73题:选路原则的排序题怎么破

第73题是典型的排序型题目,题干给出若干属性,要求按 BGP 选路优先级从高到低排列。题库里这种题的变体很多,但核心顺序是固定的:

  1. 优选 Weight 值最大的路由(本地有效,不传给邻居)
  2. 优选 Local_Preference 值最大的路由
  3. 优选本地始发的路由(network或import-route产生的)
  4. 优选 AS_Path 最短的路由
  5. 优选 Origin 属性优先级高的路由(IGP > EGP > Incomplete)
  6. 优选 MED 值最小的路由
  7. 优选从 EBGP 邻居学到的路由
  8. 优选到 Next_Hop 的 IGP 度量值最小的路由
  9. 优选 Cluster_List 最短的路由
  10. 优选 Router ID 最小的路由
  11. 优选对等体地址最小的路由

这十一条硬背容易乱,我当时的做法是分组理解。前三项都跟“本机意志”有关:Weight 是我自己说了算、Local_Preference 是我这个自治系统说了算、本地始发说明这路由本身就在我这儿,优先级自然最高。中间四项看路径本身的质量:路径越短越好、来源越可靠越好、外部度量越小越好。后四项看邻居关系:EBGP 优于 IBGP(因为 EBGP 路由可信度高)、IGP 开销小说明出口近、Cluster_List 短说明反射次数少、Router ID 和地址的比较纯粹是打破平局的兜底规则。

第73题的一个变体是问 MED 的比较条件。这里有个高频坑:MED 只有在两条路由来自同一个相邻 AS、且都是 EBGP 接收的情况下才会做比较。如果来自不同 AS,MED 默认不比较,直接从第 7 条往下走。这个限制来自deterministic-med的默认行为,很多人想当然地以为 MED 是全局比较的,结果选项一选就错。

3.2 第74题:标签操作到底发生在哪个平面

第74题考 MPLS 的标签操作与隐式空标签,选项如下:

  • A. 标签的压入和交换由控制平面完成
  • B. 隐式空标签的值为 3,用于倒数第二跳弹出
  • C. 显式空标签的值为 0,可用于保留 QoS 信息
  • D. 标签栈可以有多层,设备转发时只查看栈顶标签
  • E. PHP(次末跳弹出)只能在倒数第一跳路由器上开启

正确答案是 B、C、D。

A 错在“控制平面”。控制平面(路由协议、LDP 或 SR 的信令)负责的是分配标签、建立标签转发表,也就是“告诉设备怎么转”。真正执行压标签、换标签、弹标签的是转发平面。这个区分看着像咬文嚼字,实际排障时很关键:你发现标签转发表有、但流量不通,那是转发平面的事;你发现标签转发表压根没生成,那是控制平面的事。两条排查路径完全不同。

E 错在“只能在倒数第一跳”。PHP 的本质是让倒数第二跳把标签弹掉,这样最后一跳收到的就是纯 IP 报文,减少一跳设备的标签查表开销。这个动作发生在倒数第二跳,而不是最后一跳。如果题目说“在倒数第二跳执行”,那就是对的。

B 和 C 是关于特殊标签值的,这两个数字必须记死:

标签值名称行为
0显式空标签(IPv4)弹出标签后按 IPv4 转发,报文仍带标签字段
3隐式空标签直接弹出标签,最后一跳收不到标签
1路由器报警标签保留
2路由器报警标签(IPv6)保留

显式空标签在部分场景下会被保留,目的是让最后一跳设备仍能通过标签中的 EXP 位做 QoS 处理。隐式空则彻底弹掉,牺牲了最后一跳的 QoS 依据,换取更干净的转发。这两种行为的选择取决于设备的能力和配置,考试里就是考你知不知道它们对应哪个数字。

3.3 这两道题背后的“平面思维”

我建议把“控制平面 / 转发平面”这个划分当成一把尺子,去量所有网络协议题。BGP 选路是控制平面的决策,决定“我信哪条路径”;MPLS 标签转发是转发平面的动作,决定“报文怎么走”。同一件事在两个平面上有不同的表现形式,题目也喜欢在这里做手脚。

举个实际例子。你做 BGP 路由反射,客户端从反射器收到路由,控制平面上这条路由的 Next_Hop、AS_Path、Cluster_List 都是完整的;但转发平面上,报文到底走哪条物理链路,取决于到达 Next_Hop 的 IGP 路由。所以第 8 条选路原则“优选到 Next_Hop 的 IGP 度量值最小”本质上是在说:控制平面的决策受转发平面拓扑的影响。这种跨层的关联,是这门考试里最值钱的理解。

4. 第75题:PIM-SM 里那些“看着像但不是”的表述

4.1 共享树与最短路径树的切换逻辑

第75题围绕 PIM-SM 的工作机制,选项大致是:

  • A. 最后一跳路由器在收到第一个来自源的组播数据后,会向源发起 SPT 加入
  • B. RP 是 RPT 的根,理论上(*,G)表项在 RP 上一定存在
  • C. DR 选举先比较优先级,优先级相同再比较接口 IP 地址,大者当选
  • D. PIM-SM 中所有组播流量必须经过 RP 转发
  • E. RPF 检查失败的组播报文会被丢弃,并向上游发送剪枝

正确答案是 A、B、C。D 和 E 都有问题。

D 错得很明显。PIM-SM 的默认行为是:源的第一个组播报文经 RP 沿共享树(RPT)下发,接收端 DR 收到之后,发现走 RP 的路径不是最优,就会触发 RPT 到 SPT 的切换。切换完成后,流量直接从源沿最短路径树(SPT)走到接收者,完全绕开 RP。所以说“所有流量必须经过 RP”只在切换发生前成立,切换后就变了。

E 的说法需要更细致的辨析。RPF 检查失败,报文确实被丢弃,这一点没错。但它不会“向上游发送剪枝”。剪枝是针对已经存在的(S,G)或(*,G)表项,向上游发 PIM Prune 告诉对方“别再给我发了”。RPF 检查失败是“这个报文来路不对”,直接丢包,不产生信令。这两个动作的目的和触发条件完全不同。

4.2 DR 选举在 PIM-SM 里的真实作用

C 选项描述的是 DR 选举规则,这个规则本身没错:优先级高者当选,优先级相同比 IP 地址,大者当选。但很多人只记住了规则,不知道 DR 是干什么的,遇到改问“DR 的作用”就懵了。

PIM-SM 里的 DR 有两个关键职责。第一,在共享网段上,只有 DR 才负责向上游发起加入、向 RP 注册源。如果网段里有两台路由器都收到 IGMP 报告,没有 DR 机制就会重复建树、重复注册。第二,DR 负责向下游转发组播流量,非 DR 设备只维护状态但不转发数据。这两条职责决定了 DR 选举必须稳定,所以优先级默认值 1,只有在需要人为干预主备时才去改。

我踩过一个坑:源端 DR 和接收端 DR 是两台不同的设备,因为优先级配得不一致。表面上看组播是通的,但路径绕了一大圈,时延明显偏高。后来统一了优先级配置,路径立刻就直了。这类问题在纯理论题里体现不出来,但实际组网里非常常见。

4.3 组播题的通用判断方法

组播这部分抽象程度高,我个人的经验是抓三个锚点:树、角色、方向。

  • 树:是 RPT 还是 SPT?RPT 的根是 RP,SPT 的根是源。
  • 角色:RP、BSR、DR、IGMP 查询器,每个角色各管一摊事。
  • 方向:加入是朝根方向走(*,G)朝 RP,(S,G)朝源;剪枝是反方向发。

拿到一道题,先判断它在说哪棵树、哪个角色、哪个方向,大部分干扰项就不攻自破了。比如 D 选项说“所有流量必须经过 RP”,你先问“哪棵树”,SPT 的根是源不是 RP,直接排除。

5. 第76题:QoS 的“拥塞管理”和“拥塞避免”,一字之差

5.1 选项辨析与常见混淆点

第76题的选项设计得很典型:

  • A. PQ(优先队列)采用绝对优先调度,可能导致低优先级队列饿死
  • B. WFQ 按权重分配带宽,权重越大获得的带宽越多
  • C. WRED 属于拥塞管理技术,在队列满之前主动丢包
  • D. LLQ 为时延敏感业务提供低时延保障
  • E. 令牌桶只能用于流量监管,不能用于流量整形

正确答案是 A、B、D。

C 错在“拥塞管理”。WRED 属于拥塞避免技术。拥塞管理和拥塞避免的分界线是“队列是否已经满了”:队列满的时候怎么调度、怎么丢,是拥塞管理(PQ、WFQ、CBQ、LLQ 这一族);在队列满之前就提前丢一些包,避免真的拥塞,是拥塞避免(WRED、尾丢弃也算这一类里的基础手段)。这个分类必须分清,题目特别喜欢在这个词上做文章。

E 错在“只能用于监管”。令牌桶这套机制既可以用在流量监管(CAR),也可以用在流量整形(GTS 或者队列上的 shaping)。区别在于对超额流量的处理方式:监管是直接丢弃或者降级重标记,整形是把超额流量缓存起来等令牌,不丢包但增加时延。同一个桶,两种用法,说“只能”就错了。

5.2 双桶双速率的颜色标记怎么算

第76题还有一个变体,考的是双桶双速率(trTCM)下的流量颜色判定。这块很多人背了结论但不会算,我把它讲透。

双桶双速率的两个参数是 CIR(承诺信息速率)、CBS(承诺突发尺寸)、PIR(峰值信息速率)、PBS(峰值突发尺寸)。到达的报文先跟 P 桶比,再跟 C 桶比:

判定顺序条件颜色处理方式(典型)
第一步报文长度 > P 桶剩余令牌红色丢弃
第二步报文长度 ≤ P 桶但 > C 桶黄色降级转发
第三步报文长度 ≤ C 桶绿色正常转发

这里的关键是判定顺序不能颠倒。先比 P 桶再比 C 桶,因为 P 桶的速率更高、令牌更充裕,先过滤掉超出峰值的那部分,再用 C 桶区分承诺内和承诺外。如果把顺序换过来,黄色流量可能被误判成红色,标记结果就全错了。

实测中有个细节容易被忽略:令牌桶是持续注水的,令牌按速率均匀添加,桶满了就溢出丢弃。所以短时间的突发流量如果不超过 CBS 和 PBS,是完全可以无损伤通过的。这也是为什么做 QoS 规划时要先测业务的实际突发特征,光看平均速率定 CBS 往往不够。

5.3 队列调度的选型经验

真机组网里选队列调度方式,我的经验是按业务类型分:

  • 语音、信令这类对时延和抖动极敏感的,用 LLQ,给它一个保底的带宽上限,既保证优先又防止它把带宽全占满。
  • 视频会议这类容忍少量丢包但怕抖动的,放 CBQ 的独立带宽队列,给足带宽配额。
  • 普通数据业务放 WFQ,按流的权重公平分配剩余带宽。
  • 后台备份、日志上传这类能等但占带宽的,放最低优先级队列,甚至可以配合流量整形限速。

PQ 虽然简单,但绝对优先的特性在拥塞时会让低优先级队列彻底饿死,生产环境我基本不用纯 PQ,只在实验环境验证功能时用一下。

6. 第77、78题:IPv6 与 VXLAN,新考点里最考验基本功的两块

6.1 第77题:IPv6 地址体系的几个硬数字

第77题考 IPv6 地址类型,选项如下:

  • A. 2000::/3 是全球单播地址的分配范围
  • B. FE80::/10 是链路本地地址范围
  • C. FF00::/8 是组播地址范围
  • D. 被请求节点组播地址的前缀是 FF02::1:FF00:0/104
  • E. IPv6 地址必须手工配置,不支持自动获取

正确答案是 A、B、C、D。E 错得很直白,IPv6 的地址配置方式比 IPv4 还丰富,有无状态自动配置(SLAAC)、有状态 DHCPv6、还有两者结合的 DHCPv6-PD 等。

四个正确选项里,D 那个前缀最容易记错。被请求节点组播地址的长度是 104 位前缀加 24 位接口标识的低 24 位,写法就是FF02::1:FF00:0/104。它的作用是替代 IPv4 里的 ARP 广播,把地址解析从“广播给所有人”变成“组播给关心的人”。这个设计对减少广播风暴的效果非常明显。

还有一个隐藏考点:SLAAC 要求接口地址的前缀长度必须是 /64。如果路由器通告的前缀不是 /64,终端可能无法正常生成地址。这个规则在实际部署里经常被忽略,尤其是从 IPv4 习惯带过来的工程师,觉得 /56、/48 也能用,结果终端拿到前缀后不生效,排查起来很费劲。

6.2 第78题:VXLAN 的几个关键标识

第78题围绕 VXLAN 展开:

  • A. VNI 长度为 24 位,可支持约 1600 万个租户标识
  • B. VTEP 之间的封装外层使用 UDP,目的端口默认为 4789
  • C. BGP EVPN 的 Type 3 路由用于发布 MAC/IP 信息
  • D. Type 2 路由用于发布 MAC/IP 可达性信息
  • E. 分布式网关场景下,每台 VTEP 都可以作为网关

正确答案是 A、B、D、E。C 是错的,Type 3 是 Inclusive Multicast Route,用于发布 VTEP 的隧道端点信息和组播成员关系,用来建立 BUM 流量的转发路径。Type 2 才是 MAC/IP 通告路由,Type 5 是 IP 前缀路由。

VNI 是 24 位这个数字要记牢,因为它直接决定了租户规模上限。12 位的 VLAN 只有 4094 个可用,VXLAN 一下子就把它推到 1600 万级,这是数据中心场景必须用 VXLAN 的根本原因之一。

6.3 分布式网关为什么成了主流

E 选项提到分布式网关,这个点值得展开。传统集中式网关的做法是所有 VTEP 的流量都汇聚到一台(或一对)网关设备做三层转发,网关设备成了瓶颈,东西向流量绕行严重。分布式网关把三层网关功能下沉到每台 VTEP,跨子网流量在第一跳 VTEP 上就完成路由,然后直接隧道转发到对端 VTEP。这样路径短、时延低、网关设备不再是单点。

但分布式网关也带来新的复杂度:每台 VTEP 上都要有完整的子网网关配置,配置量大;主机路由需要在 VTEP 之间同步,靠的就是 EVPN 的 Type 2 路由。这也是为什么分布式网关几乎和 EVPN 绑在一起,没有 EVPN 做控制面同步,纯数据面的分布式网关维护成本极高。

我做过一个小规模的对比测试,同一套拓扑,集中式网关下东西向流量的平均时延比分布式网关高出接近一倍,跨 VTEP 的流量尤其明显。这个差距在虚机迁移、分布式存储这类场景里是能直接感知到的。

7. 第79、80题:路由策略的边界与 VRRP 的选举细节

7.1 第79题:filter-policy 与 route-policy 的分工

第79题考路由策略工具的区别:

  • A. filter-policy 只能过滤路由,不能修改路由属性
  • B. route-policy 既可以匹配路由,也可以通过 apply 子句修改属性
  • C. prefix-list 比 ACL 更精确,可以匹配掩码长度
  • D. 在 BGP 中,import 方向过滤的是从邻居接收到的路由
  • E. filter-policy 对本地始发的路由同样生效

正确答案是 A、B、C、D。E 需要仔细辨析——filter-policy 的定位是“过滤路由信息”,对本地通过import-route引入的路由,它并不能起到过滤作用,因为那些路由是本机产生的,不经过邻居方向的收发流程。这也是为什么引入路由要做过滤时,得用 route-policy 配合import-route命令来实现,光靠 filter-policy 不够。

这四个正确选项里,A 和 B 的对比最有价值。filter-policy 是纯粹的过滤器,匹配上就丢或留,没有修改能力。route-policy 则是一套完整的策略框架,由 node 组成,每个 node 里有 if-match 条件和 apply 动作,既能过滤也能改属性,还能控制匹配到之后是继续往下走还是直接结束。搞清楚这个定位差异,选择工具时就不会用错。

C 选项说的 prefix-list 优势确实存在。ACL 匹配的是地址范围,配个rule permit source 10.0.0.0 0.255.255.255能匹配一大堆前缀,但没法表达“只匹配掩码长度在 24 到 28 之间的”这种需求。prefix-list 天生支持“地址 + 掩码长度”两个维度的匹配,做精确路由过滤时是首选。

7.2 第80题:VRRP 的选举顺序与常见误配

第80题的选项:

  • A. VRRP 优先级范围是 0 到 255,默认值是 100
  • B. 选举时先比较优先级,优先级相同再比较接口 IP 地址,大者成为 Master
  • C. VRRPv2 使用组播地址 224.0.0.18 发送通告报文
  • D. 抢占默认开启,抢占延时默认为 0
  • E. Master 周期性发送通告报文,默认间隔为 1 秒

这几个选项都是对的,但这道题的价值不在答案,在于每个数字背后的含义。

优先级 0 和 255 是两个特殊值。0 表示设备主动放弃 Master 地位,通常用于接口故障时的快速切换;255 是保留给 IP 地址拥有者的,如果虚拟 IP 和某台设备的接口 IP 相同,那台设备的优先级自动变成 255,保证它一定是 Master。这个机制叫“IP 地址拥有者优先”,考试里经常单独拿出来考。

抢占默认开启、延时为 0,这个默认值在实际网络里其实有风险。如果链路频繁抖动,Master 反复切换会导致业务闪断。生产环境我一般会把抢占延时配上,比如 30 秒,让链路稳定一段时间后再切回来,避免震荡。

C 选项的组播地址 224.0.0.18 是 VRRPv2 专用的,VRRPv3 用的是 224.0.0.18(IPv4)和 FF02::12(IPv6)。地址记混了,抓包分析时就会看错流量。

7.3 这两道题共同的“边界思维”

第79和80题看似不相关,其实都在考同一个能力:知道工具的边界在哪里。filter-policy 能做什么、不能做什么;VRRP 的默认值在什么场景下需要改。这种“边界意识”比记住具体命令重要得多,因为命令可以查文档,边界判断错了,配出来的东西就是错的,而且往往要等到出故障才发现。

我个人的习惯是,每学一个特性,都在纸上写两列:左边写“它能解决什么问题”,右边写“它在什么条件下会失效”。右边那一列往往才是排障时的关键线索。

8. 把这十道题串起来:一套可以反复用的复盘方法

刷题刷到这个阶段,最容易出现的问题是“题题会做,合起来就乱”。我的建议是别再按题号顺序复盘,改成按知识点聚类。第71、72题归到 IGP 的地址族与层次化;第73、74题归到路径控制与转发平面;第75、76题归到组播与服务质量;第77、78题归到地址体系与隧道封装;第79、80题归到策略工具与高可用。五个聚类,每类做一张对照表,把“协议默认行为”“可配置项”“常见误配”三栏填满。

第二件事是把错题按“错因”分类,而不是按知识点。我自己的错题本分了四类:概念混淆(比如拥塞管理 vs 拥塞避免)、条件漏读(比如题干里的“默认”两个字没看见)、数值记错(比如标签值 0 和 3 搞反)、机制理解偏差(比如以为 RPF 失败会发剪枝)。前两类靠精读题干能解决,后两类只能靠动手实验。数值记错这类,做一次抓包实验比看十遍书管用。

第三件事是给每道题找一个“反向问法”。比如第74题问“PHP 在哪一跳执行”,你就反问自己“如果不是在那一跳执行会怎样”;第75题问“SPT 切换的触发条件”,你就反问“如果不切换,流量走哪里”。能自己把反向问题答出来,说明这个知识点是真懂了,而不是靠选项排除法蒙对的。

最后说一句实在话。第71到80题这一段,覆盖的知识密度比前面七十题明显要高,因为它开始从“单个协议怎么配”转向“多个机制怎么配合”。这时候如果还停留在背答案的阶段,后面的题只会越刷越吃力。把每道题当成一次小型的排障推演,先想清楚现象、再推导原因、最后落到配置和验证命令上,这套流程走顺了,剩下的题量就不是负担了。我自己当年卡在第75题组播切换那里整整两天,最后是靠在一台设备上抓了三次包、对比了(*,G)和(S,G)表项的变化才彻底想通,那种想通之后的感觉,比做对十道题都值。