IS-IS缺省路由全解析:从ATT位到路由泄露的实战指南

发布时间:2026/10/20 15:30:04

IS-IS缺省路由全解析:从ATT位到路由泄露的实战指南 很多人一看到“IS-IS 缺省路由”这几个字第一反应是这不就是配一条 default 路由嘛静态路由里 /0 指一下就完事了。但真在 IS-IS 网络里动过手的人都知道IS-IS 的缺省路由是个“有脾气”的东西——它牵扯到 Level-1/Level-2 层次划分、路由器上的 ATT 位、路由泄露方向、防环控制甚至和 BGP 默认路由、静态默认路由的优先级博弈。稍微一个细节没想清楚全网路由表里要么干干净净一条缺省都没有要么就是两条缺省路由互指直接打环。这篇是 IS-IS 系列里专门聊缺省路由的一篇。我不打算只把命令贴一遍就完事而是把 IS-IS 缺省路由从“为什么需要”到“怎么自动产生”再到“手动注入怎么做”“跨区域怎么传”“出了问题怎么查”整个链路捋一遍最后给一个可以直接抄作业的实战部署思路。适合正在企业网、园区网、数据中心网里大面积铺 IS-IS 的同行也适合那些已经配好了 IS-IS 但发现某些区域路由表里“空空如也”的排障选手。1. 先说清楚IS-IS 缺省路由到底解决什么问题1.1 大型网络里的“全网兜底出口”是个真实痛点先还原一个真实组网场景。一个中型园区网核心层两台设备汇聚层有七八台接入层几十台全网跑 IS-IS。网络要上互联网出口在核心层接了两条运营商的专线。问题来了接入层和汇聚层的设备要不要知道通往互联网的明细路由当然不要。互联网路由几十万条让接入层交换机去维护既不现实也没必要。就算只维护到运营商的几条明细路由在割接、加链路、换运营商的时候也要全网跟着改运维量完全不可接受。所以标准做法是核心出口设备上有一条默认路由指向运营商然后通过某种方式告诉全网——“你们不需要知道外面长什么样把去外网的流量都交给我我统一转发”。这就是 IS-IS 缺省路由的核心价值在分层网络里提供一个全网的兜底出口让绝大多数设备只维护区域内部明细路由外部流量统一交给出口设备。它解决的不只是“少配几条路由”的问题而是把全网的路由规模和运维复杂度降了一个量级。生活里打个比方你出门去陌生城市不需要背下每一条街道只要知道“先上绕城高速”就行。缺省路由就是那条“绕城高速”出口设备就是“高速入口”。没有它你在陌生城市的每一条路都得自己找有了它大部分路都不用记直接往高速口开。1.2 IS-IS 缺省路由的两种生成路径IS-IS 里产生缺省路由本质上有两条路很多人只知道其中一条。第一条是“自动产生”靠的是 L1/L2 边界路由器在 LSP 里置位的 ATT 位。L1 区域里的路由器发现自己区域内有路由器宣告了 ATT 位就会自动生成一条指向它的缺省路由。这个机制是 IS-IS 协议自带的不需要你敲任何注入命令属于“白送”的缺省路由。第二条是“手动注入”靠的是 default-information-originate 这类命令在指定的 Level 级别下把缺省路由“发布”进 IS-IS 网络。这种方式更可控可以指定 cost、可以打 tag、可以加路由策略是现网里最常用的做法。这两条路不是互斥的实际网络里经常同时存在。但问题恰恰出在这里ATT 自动生成的缺省路由有时会和手动注入的缺省路由“打架”导致选路不符合预期。所以理解这两条路的原理和边界是玩转 IS-IS 缺省路由的第一步。2. 自动生成的缺省路由ATT 位机制全解析2.1 L1/L2 层次模型是理解 ATT 的前提IS-IS 和 OSPF 一个很大的区别就是它的层次模型是“物理上分 Level”的而不是像 OSPF 那样按区域划分。IS-IS 把路由器分成三种角色Level-1L1路由器、Level-2L2路由器、Level-1/2L1/L2路由器。L1 路由器只维护本区域内部的链路状态数据库它看不到区域外部的任何明细路由L2 路由器负责区域间的路由交换相当于骨干而 L1/L2 路由器是“骑墙派”同时维护 L1 和 L2 两套 LSDB起着区域间桥接的作用。这个设计和 OSPF 的骨干区域/普通区域有点像但有一个关键差异OSPF 的普通区域可以通过 ABR 学到骨干区域的明细路由默认可以学到除非做了过滤而 IS-IS 的 L1 区域默认是“闭塞”的——L1 路由器看不到 L2 里的任何路由哪怕是缺省路由。那 L1 路由器怎么访问外部网络呢答案就是 ATT 位。2.2 ATT 位是如何“自动”产生缺省路由的当 L1/L2 路由器发现自己有能力到达 L2 区域也就是和骨干有连接时它会在自己生成的 L1 LSP 里把 ATT 位置为 1。L1 区域内的其他路由器在做 SPF 计算时一旦发现某条 LSP 的 ATT 位等于 1就会认为“这台路由器能带我离开本区域”于是自动在路由表里生成一条缺省路由 0.0.0.0/0下一跳指向该 L1/L2 路由器在 L1 区域内的邻居。这条缺省路由是不需要任何手工配置的只要拓扑里有 L1/L2 边界路由器并且它和 L2 骨干建立了邻居关系ATT 机制就会自动工作。对于纯 L1 区域内部的小型接入网来说这是非常方便的设计——接入交换机不需要知道骨干长什么样只要跟着 ATT 走就行了。从我接触过的现网情况看ATT 机制在小型二层架构里很靠谱很多接入设备零配置就能获得出区域的能力。但到了中型以上网络ATT 自动生成的缺省路由就开始暴露问题了。2.3 ATT 机制容易踩的坑范围、开销与次优路径先说范围。ATT 位产生的缺省路由只存在于 L1 区域内部它不会进入 L2 骨干区域也不会传播到其他 L1 区域。也就是说如果全网都是 L1/L2 混合架构L2 骨干里的路由器是“享受”不到这个自动机制的——L2 路由器之间默认没有任何缺省路由需要手动注入。很多人在核心层跑纯 L2结果发现全网没有一条默认路由就是这个原因。再一个坑是开销。ATT 机制生成的缺省路由它的 cost 计算方式在不同厂商实现里差别不小。有些实现里这条缺省路由的 cost 等于 L1 路由器到该 L1/L2 边界路由器的 SPF 开销这是合理的但有些实现里它可能直接以 0 开销出现在路由表里或者显示成固定值。如果没搞清楚自己设备的实现方式很可能会误判选路。我建议在任何一张 ATT 依赖的网络里都去设备上实际查看一下缺省路由的 cost别凭经验猜。第三个坑是次优路径。如果一个 L1 区域里有多个 L1/L2 边界路由器而且它们都置位了 ATT那么 L1 区域内的路由器就可能学到多条指向不同边界的缺省路由。SPF 会选 cost 最小的那条但“最小”只是 L1 域内的最优不代表全局最优。比如 L1 内离边界 A 更近、离边界 B 更远但边界 A 的上行链路很拥塞、边界 B 的上行链路很空闲流量还是会老老实实从 A 出去。这就是典型的区域视野局限性。所以在规模稍大的网络里我个人的习惯是不依赖 ATT 自动生成的缺省路由而是把它关掉或者忽略改用下一节讲的手动注入方式让缺省路由的来源、开销、传播范围都处于可控状态。3. 手动注入缺省路由default-information-originate 实战3.1 命令是怎么工作的默认行为与 always 参数的区别手动注入缺省路由核心命令是 default-information-originate不同厂商拼写略有差异但概念一致。这条命令的作用是把一条缺省路由“注入”到当前设备的 IS-IS 进程中并随 LSP 在指定 Level 内传播。有一个非常关键、而且很多人第一次用都会踩的细节这条命令在不带任何参数时不会凭空产生缺省路由。它的默认行为是——只有在当前路由器自身路由表中已经存在一条缺省路由比如来自静态默认路由、BGP 默认路由、其他协议引入的默认路由时才会把这条缺省路由发布到 IS-IS 里。也就是说你只在出口路由器上敲了 default-information-originate但设备路由表里没有任何 /0 路由那全网是永远学不到缺省路由的。我见过不止一次有人在现网里配完命令后满怀期待地等路由结果 LSDB 里就是没有缺省路由最后排查半天才发现源头设备上压根没有默认路由可“发布”。如果你确实希望设备无条件对外发布缺省路由不管本地有没有 /0那就得加 always 参数。加了 always 之后设备不需要任何前提条件直接对外宣称“我是默认出口”。这个参数看起来很省事但风险也明显一旦这台设备本地根本没有真实出口全网流量照样会涌向它然后被黑洞掉。所以 always 不是不能用而是要在明确知道“这台就是出口”的前提下用。3.2 出口路由器注入缺省路由的标准配置以一个典型的出口路由器为例。核心层设备上有一条静态默认路由指向运营商网关同时全网跑 IS-IS希望把这条默认路由注入到 L2 骨干里。配置思路分三步。第一步确认静态默认路由存在且正常ip route-static 0.0.0.0 0.0.0.0 192.0.2.1第二步在 IS-IS 进程的 L2 级别下配置缺省路由发布isis 1 is-level level-2 default-information-originate注意这里我只写了 default-information-originate没有加 always因为它依赖的正是第一步里那条静态默认路由。只要静态默认路由在路由表里IS-IS 就会把 /0 注入到 L2 的 LSP 里。第三步验证。在核心设备上看 IS-IS 路由表里是否有 /0display isis route如果配置正确应该能看到一条 Level-2 的缺省路由。然后在远端 L2 路由器上再看一遍确认缺省路由已经传播过来了。这套配置是整个 IS-IS 缺省路由体系里最基础、也最核心的一个动作。后面所有复杂的玩法比如策略控制、路由泄露都是在这条命令的基础上加参数、加策略。3.3 用 route-policy 控制注入时机而不是无脑 always前面说默认行为依赖本地路由表里的 /0但这个“依赖”是可以被 route-policy 参数进一步控制的。default-information-originate 后面可以挂一条路由策略设备只有在匹配策略的情况下才会发布缺省路由。这个特性的实用价值在于当设备路由表里存在多条可作为默认出口的路由时你可以精确指定到底哪一条才算“有效的默认路由”。比如设备同时从 BGP 学到了一条默认路由、又从静态配置里有一条 /0你可以写一个策略只匹配来自某邻居、带有特定 tag 的默认路由只有它在路由表里存在时IS-IS 才对外发布缺省路由。否则就算本地有 /0IS-IS 也不发布。这么做的意义在哪里举个例子。某台设备配置了到运营商 A 的主用默认路由同时还有一条备份默认路由在另一个路由表里两条路由在不同状态下切换。如果只是傻傻地配 default-information-originate那么只要路由表里有任何一条 /0IS-IS 就会发布发布出去的可能是主用也可能备份完全不可控。但用 route-policy 精确匹配“当前生效的主用默认路由”就能保证对外发布的缺省路由始终跟随主备状态。从安全角度讲我强烈建议生产网络里不要裸配 always至少加一条 route-policy 做下兜底校验。永远把“这台设备真的有出口”这个前提显式化而不是靠运气。3.4 IPv6 环境下的 ::/0 注入差异现网里 IPv6 已经大量部署IS-IS 对 IPv6 的支持是通过扩展的地址族实现的。很多人在 IPv4 下配好了 default-information-originate以为 IPv6 也是同样操作结果发现 IPv6 路由表里啥都没有。原因很简单IPv6 的缺省路由发布需要在 IPv6 地址族视图下单独配置。以通用概念来说配置时要进入 IS-IS 进程的 IPv6 地址族然后同样使用 default-information-originate发布的前缀是 ::/0。命令的关键字可能在不同设备上略有不同但思路一致IPv4 和 IPv6 是两套独立的路由发布体系缺省路由要分别处理。还有一点容易漏IPv6 环境下如果要用 route-policy 控制注入策略里匹配的前缀条件也要写成 ::/0很多人习惯性复制 IPv4 的 /0 策略结果 IPv6 永远匹配不上。4. 路由泄露让缺省路由跨区域流动的关键操作4.1 为什么 L1 区域经常“看不到” L2 的缺省路由还记得前面说的 IS-IS 区域隔离特性吗L1 区域默认看不到 L2 区域的明细路由。即使 L2 骨干里已经有一条通过 default-information-originate 注入的缺省路由这条缺省路由默认也不会自动进入 L1 区域。这时候 L1 区域内的路由器能依赖的只有 ATT 位自动生成的缺省路由指向本区域的 L1/L2 边界。而边界路由器自己虽然能从 L2 学到缺省路由但它不会把这条 L2 缺省路由放进 L1 的 LSDB。结果就是L1 区域内的流量确实能通过 ATT 走出去但走到边界之后怎么选路、边界有没有真实出口L1 区域内的设备完全不掌握。如果边界路由器恰好就是出口那没问题ATT 够用。但如果出口在更上层的 L2 骨干里L1 区域内的设备就只能“盲人摸象”——先到边界至于边界之后往哪儿走那是边界路由器的内部事务。这种架构下L1 区域里的很多运维动作都不可控比如你想让 L1 区域内的某些流量优先走某一个远端出口根本没得选。4.2 配置方法与两种常用实现要让 L2 的缺省路由进入 L1 区域就需要做路由泄露。路由泄露的本质是打破 IS-IS 的层次隔离把某个 Level 的路由显式引入到另一个 Level。实现方式在不同设备上有差异但大体有两种思路。第一种在 L1/L2 边界路由器上把从 L2 学到的缺省路由泄露进 L1。命令形式上类似isis 1 import route isis level-2 into level-1如果命令支持带前缀过滤可以只泄露 /0避免把 L2 的明细路由也一股脑倒进 L1破坏区域隔离的意义。第二种在 L2 出口路由器上通过协议 import 的方式把缺省路由同时发布到 L2 和 L1。这种方式较少见因为出口路由器通常不在 L1 区域内部强行发布进 L1 需要它有 L1 邻居拓扑上不太符合常规。实际组网里90% 的场景用的是第一种L1/L2 边界转发把 L2 里那条缺省路由“放行”到 L1 区域。这样 L1 内部的设备就能直接看到 /0而不是只有一条 ATT 生成的“指向边界”的默认路由选路信息更完整。4.3 泄露之后的防环与过滤路由泄露最让人头疼的就是环路。想象一个场景L1/L2 边界路由器 A 把 L2 的缺省路由泄露进了 L1L1 区域内部路由器 B 学到了这条 /0。如果 B 恰好也是 L1/L2 边界比如处于 L1/L2 重叠区域它可能又把从 L1 学到的缺省路由反向泄露回 L2——虽然多数实现默认不会自动这么做但一旦配置了双向泄露策略环路随时可能出现。防环的思路不复杂核心就是“给缺省路由打标 边界过滤”。发布缺省路由的时候用 tag 给它打上一个特殊标记在做路由泄露或者接收过滤时只允许带这个标记的缺省路由进入特定方向其他方向的统统拒掉。举个例子出口路由器发布的缺省路由打上 tag 100L1/L2 边界只允许 tag 100 的路由从 L2 进入 L1而从 L1 向 L2 方向遇到带 tag 100 的缺省路由就直接丢弃。这样既能保证缺省路由单向流动又不会因为反向传播形成环路。关于 tag 的用法后面第 5 节还会展开这里先记住结论凡是涉及缺省路由跨 Level 传播务必设计 tag 过滤不要裸奔。5. 缺省路由的策略控制与选路细节5.1 多出口场景下的注入控制前面讲的基础配置是“只有一个出口”的简化场景。但现实网络里双出口甚至多出口非常常见比如一条运营商 A 专线、一条运营商 B 专线或者一条办公网出口、一条业务网出口。这种情况下缺省路由的注入就不能“一把梭”了。多出口场景下首先要回答一个问题全网设备应该学到几条缺省路由答案是通常只学一条或者多条但带有明确的优先级差异。如果全网设备同时看到两条等价缺省路由它们就会做负载分担把一半流量给 A 运营商、一半给 B 运营商——这在某些业务场景下是灾难比如涉及银行交易、视频会议这类对链路质量极其敏感的业务。控制方式主要是两类。一类是只在主出口上配置缺省路由发布备出口不发布故障时靠上层路由切换把默认路由“变”到备出口上另一类是主备出口都发布缺省路由但通过 cost 值区分主备让全网优先选主出口主出口挂了之后自动切到备出口。第二种方式更实用。具体做法主出口发布的缺省路由 cost 设为 10备出口设为 20全网设备收到两条 /0 后会优先选 cost 小的主出口。一旦主出口到 IS-IS 网络的连接中断注意不是公网中断而是 IS-IS 邻居中断主出口发布的缺省路由自动消失全网统一走备出口。这个设计的关键点在于cost 的差异要足够大但又不能大到影响其他路由的选路判断。5.2 用 Tag 做传播边界控制Tag 在 IS-IS 缺省路由里是个非常好用但经常被忽视的工具。它本质上是路由的一个附加属性可以理解为贴在路由上的一个“编号标签”。这个标签不会影响路由的 forwarding但可以在路由发布、接收、泄露的过程中被路由策略识别和匹配。实际使用中我经常用 tag 做三件事。第一标记缺省路由的来源。比如出口设备发布的缺省路由统一打 tag 100这样在任何一台设备上只要看到 tag 100 的 /0就知道它是从主出口来的。第二控制泄露方向。前面 4.3 里提到的防环就是在泄露点检查 tag只放行特定 tag 的缺省路由。第三做路由优先级判定。在某些设备实现里路由策略可以根据 tag 修改路由的 cost 或者 administrative distance从而影响选路。一个具体的配置思路出口设备上 default-information-originate 时带入 tagL1/L2 边界在泄露到 L1 时只放行 tag 匹配的缺省路由接入层设备如果需要区分主备出口可以在接收方向用策略给不同 tag 的缺省路由设置不同的 cost。整个流程下来缺省路由从产生到传播再到选路全程可控不会出现“不知道哪来的 /0 突然出现在路由表里”的情况。5.3 缺省路由的 Cost 怎么定才合理缺省路由的 cost 设置直接决定了全网流量的走向但这个 cost 并不是拍脑袋定的要结合整网的拓扑和 metric 风格来设计。IS-IS 的 metric 有两种窄度量narrow和宽度量wide。窄度量取值范围 0 到 63链路开销默认 10宽度量范围大得多支持更大的开销值。如果全网跑的是窄度量一条缺省路由的 cost 设置不宜超过几十这个量级否则叠加链路开销后可能出现不可达的假象如果跑宽度量cost 的余量就大很多可以设置出明显的优先级梯度。选路设计上我给一个常用的参考值。主出口缺省路由 cost 设置为 10备出口设置为 20正常情况下全网走主出口。如果主出口和备出口之间还有复杂的中间链路cost 还要叠加路径开销一起估算。判断标准很简单全网所有设备到主出口的缺省路由总 cost必须始终小于到备出口的总 cost同时这个差值要足够稳定不能因为某段链路的开销波动导致主备反复横跳。还有一个细节很多人忽略缺省路由的 cost 是“注入点设置的”但它传播到远端之后叠加了中间的链路开销。所以你在出口设备上设置 cost10 和 cost100对近端设备影响不大但对远端的接入设备影响是放大的。设置 cost 之前最好在离出口最远的设备上做一次测算确保远端选路符合预期。5.4 与静态默认路由、BGP 默认路由混用时的选路博弈实际网络里IS-IS 缺省路由很少是唯一的默认路由来源。设备上可能同时存在一条静态默认路由指向前一个运营商一条 BGP 学到的默认路由以及 IS-IS 注入的缺省路由。这时候谁说了算答案是看路由优先级管理距离。不同协议的路由优先级不同。静态路由通常优先级很高比如数值较小表示更可信BGP 默认路由优先级通常很低IS-IS 内部路由优先级居中。如果设备同时从三个来源学到 /0最终进路由表的只有优先级最高数值最小的那条。这个机制本身没问题但坑在于高优先级的默认路由不一定是你想让它生效的那条。比如设备有一条静态默认路由本来是给管理面用的结果它把 IS-IS 注入的 /0 挤掉了导致业务流量走了错误出口。排查这类问题时不要只看 IS-IS 配置要先把设备路由表里 /0 的“来源”和“优先级”看清楚再反向推导是哪条路由在“抢占”默认出口的位置。6. 常见问题与排查实录6.1 配了注入命令全网却学不到缺省路由这是排障里出现频率最高的问题。配置了 default-information-originate远端设备死活学不到 /0。排查思路按顺序走第一步在注入设备上确认本地路由表里有没有缺省路由。前面强调过不带 always 时这是发布的前提。本地没有 /0IS-IS 就不会发布这是 90% 的原因。第二步确认注入的是哪个 Level。如果全网跑的是 L2而你在 L1 级别下注入L2 骨干自然看不到。检查配置里的级别选项。第三步确认 LSP 里有没有缺省路由。在注入设备上查看 IS-IS LSDB看自己生成的 LSP 里是否包含 /0 的 TLVs。如果 LSP 里有说明发布侧没问题问题出在传播链路上。第四步检查中间设备的过滤策略。有些网络在区域边界做了路由过滤缺省路由可能被策略误伤。注意查 route-policy 里对 /0 前缀的 permit/deny 规则。这四步走完95% 的问题都能定位。剩下的 5%多半是 ATT 自动生成的缺省路由和手动注入的缺省路由在 LSDB 里表现不同被误判成“没生成”。6.2 L1 路由器同时学到多条缺省路由选路不合预期这个问题我前面提到过在接入层很常见。L1 区域内有多个 L1/L2 边界或者既有 ATT 自动缺省、又有从 L2 泄露下来的缺省路由L1 路由器的路由表里可能同时躺着两条以上 /0。选路到底选哪条取决于 cost 和路由优先级。如果两条 /0 的 cost 相同一些设备会做等价负载分担另一些设备会只留一条。如果选路结果不符合预期优先看这几项两条缺省路由的来源ATT 自动生成的还是泄露下来的、cost 分别是多少、优先级是否一致。针对这个问题的根治手段有两个方向。一个是减少缺省路由的“源头”。比如关闭不需要的 ATT 位自动生成能力或者只在单个边界做路由泄露让 L1 区域内只有一条 /0。另一个方向是接受多条 /0 的存在但通过 cost 把选路强制到期望路径上。两种思路我都用过网络规模小、结构简单时用前者规模大、需要冗余时用后者。6.3 缺省路由环路两个出口互指缺省路由环路是 IS-IS 网络里最危险的问题之一。经典场景设备 A 从设备 B 学到一条缺省路由设备 B 又从设备 A 学到一条缺省路由两个设备都把对方当作默认出口流量在 A、B 之间来回打转直到 TTL 耗尽。IS-IS 缺省路由环路最常见的原因是路由泄露配置双向放行了。前面 4.3 说的 tag 过滤就是专门用来防这个的。如果已经出现环路排查时要看哪些设备在“互相传递”缺省路由重点查 L1/L2 边界的泄露方向配置。定位手段上一是查 LSDB 里缺省路由在哪些 LSP 里出现顺着传播路径找到环路的两个节点二是用 traceroute 看流量在哪些设备之间循环三是检查所有涉及缺省路由的 route-policy看有没有把接收方向的 /0 又 leak 到另一个方向去。处理办法不复杂在环路节点上加过滤让缺省路由只能单向传播问题立刻消失。6.4 和静态默认路由、BGP 默认路由混用时谁说了算这个问题的本质是路由优先级博弈。设备上 IS-IS 缺省路由、静态默认路由、BGP 默认路由同时存在最终只有一条能进路由表。排查时的关键动作是查看路由表里 /0 的协议来源和优先级。如果发现 IS-IS 注入的缺省路由没有生效大概率是被静态默认路由或 BGP 默认路由“压住”了。处理方式有两种调整 IS-IS 缺省路由的优先级参数不同设备支持程度不同或者删掉/调整其他来源的默认路由。这里给一个实战建议缺省路由的来源尽量唯一。如果非要多来源并存一定要在设计阶段就把优先级和切换逻辑理清楚别等到故障了再在混乱的路由表里猜哪条在生效。我在前一家公司就吃过这个亏——设备上静态默认路由和 IS-IS 缺省路由并存割接时以为改 IS-IS 就行结果流量一直走静态那条设备重启后才暴露问题。7. 送一个完整实战中小型园区网的 IS-IS 缺省路由部署7.1 场景与需求双出口双核心虚构一个典型的中型园区网络核心层两台设备核心-1、核心-2各接一条运营商专线作为双出口汇聚层四台设备分别下挂若干接入交换机全网运行 IS-IS骨干区域跑 L2接入侧划在一个 L1 区域。需求如下全网设备只需要维护内部明细路由外部流量统一走核心出口正常情况下流量优先走核心-1 的运营商 A 出口核心-2 运营商 B 出口作为备份核心-1 到 IS-IS 骨干的连接中断时全网自动切换走核心-2 出口接入层 L1 区域必须能看到缺省路由不依赖 ATT 位“盲走”。这个需求在现网里非常典型覆盖了 IS-IS 缺省路由的全部核心知识点注入、cost 主备、泄露、tag 防环。7.2 配置要点与防环设计先在核心-1 和核心-2 上配置指向运营商的静态默认路由这是对外发布缺省路由的前提。核心-1主出口配置思路ip route-static 0.0.0.0 0.0.0.0 运营商A网关 isis 1 is-level level-2 default-information-originate route-policy MAIN-EXIT cost 10核心-2备出口配置思路ip route-static 0.0.0.0 0.0.0.0 运营商B网关 isis 1 is-level level-2 default-information-originate route-policy BACKUP-EXIT cost 20注意这里的 cost 设置主出口 10备出口 20。全网设备从 L2 骨干收到两条 /0 后优先选择 cost 为 10 的那条也就是核心-1。当核心-1 与 L2 骨干的邻居关系中断时它发布的缺省路由自动从 LSP 里消失全网只剩下核心-2 发布的 cost 为 20 的 /0自动切换完成。route-policy 的作用是校验本地路由表里的缺省路由是否符合发布条件具体内容因设备而异但逻辑上要匹配到那条指向运营商的静态默认路由避免引入其他不相关的 /0。然后是汇聚层的 L1/L2 边界处理。汇聚设备既跑 L2和核心互通又跑 L1和接入层互通需要把 L2 里的缺省路由泄露到 L1 区域。同时要给缺省路由打 tag 并做方向过滤防止 L1 区域内的缺省路由被反向泄露回 L2。isis 1 is-level level-1-2 import route isis level-2 into level-1 tag 100核心设备发布缺省路由时也打上 tag 100汇聚边界只放行带 tag 100 的 /0 进入 L1。这样就算 L1 区域内部出现了其他来源的 /0也不会反向污染 L2 骨干环路风险被按死在边界上。7.3 验证步骤与效果检查配置完成后验证要分三层做。第一层核心出口。在核心-1 上查看 IS-IS 路由表确认 L2 级别下有 /0cost 为 10核心-2 同样有 /0cost 为 20。第二层汇聚边界。在汇聚设备上查看 L2 路由表确认能看到两条 /0分别 cost 10 和 20再查看 L1 路由表确认 /0 已经通过泄露进入 L1且带上了 tag 100。第三层接入层。选一台最边缘的接入交换机查看路由表确认 /0 存在下一跳指向汇聚设备。这里要特别确认接入设备路由表里的 /0 是从 L2 泄露下来的那条而不是 ATT 自动生成的——如果 ATT 自动缺省和泄露缺省同时存在可能产生两条 /0需要按 6.2 的方法核对选路结果。功能验证方面做一个断点测试断开核心-1 到汇聚层的链路观察全网缺省路由是否在预期时间内切换到核心-2 的 /0。同时观察是否有短暂的双路径选路震荡如果有说明 cost 设置差距不够或者 LSDB 收敛时间偏长需要进一步调整。7.4 回看这套方案为什么稳这套方案的核心思路是把“缺省路由的产生、传播、选路”全部显式化不留任何“自动”的模糊空间。缺省路由只从两台核心设备产生通过 cost 区分主备汇聚边界只做单向泄露用 tag 控制传播边界接入层只依赖一条明确的 /0不依赖 ATT 的隐式行为。这套设计的好处是每个环节都可以单独验证、单独排障不会出现“全网都有路由但不知道为什么有”的玄学状态。后续如果要加第三个出口、调整主备切换逻辑也只需要改对应设备上的 cost 和策略影响面可控。我个人的习惯是在 IS-IS 缺省路由的设计里永远把“不可控”当作最大的敌人。ATT 机制虽然方便但在关键生产网络里我宁可多敲几条命令把行为钉死也不愿意依赖协议“顺便”给出的路由。这套实战方案用到的技术点单看每一个都不复杂但组合在一起之后覆盖了 IS-IS 缺省路由从产生到消费的完整链路。如果你正在规划一张新的 IS-IS 网络或者想把现网里的缺省路由行为理清楚按这个思路去设计大概率能少踩不少坑。
延伸阅读

更多相关文章

2026/10/20 15:30:04

别把LLM当万能:Skills才是AI应用的最小单元

2. 别把 LLM 当成一切:重新理解 AI 应用的最小单元过去一年我见过太多团队栽在同一个坑里:动不动就上复杂的 Agent 框架,又是多智能体编排,又是记忆系统,结果项目卡在调试阶段动弹不得。原因其实很简单——大家把大语言…

2026/10/20 15:30:03

2026年AI检测算法升级,降AI工具如何从词句替换走向语义级重建?

这两年在写作圈和学术圈里,降AI工具一直处于相当微妙的位置。一边是各种平台对AIGC痕迹的识别越来越紧,另一边是不少写作者确实需要借助工具来润色、梳理逻辑、降低机器感。2026年的算法升级消息放出来之后,我身边好几个做论文辅导、期刊投稿…

2026/10/20 15:25:03

从零搭建PPT自动生成工具:Python实战与架构设计

1. 从零搭建一个"PPT大师":为什么我要自己造这个轮子做技术分享、写项目复盘、给团队做培训,绕不开的一件事就是做PPT。我粗略算过,过去一年我至少做了四十多份演示文稿,平均每份从构思到定稿要花掉三到五个小时。最要命…

2026/10/20 16:30:36

DSP28335 XINTF外扩SRAM完整指南:从时序配置到CMD段分配

做DSP开发的人,迟早会撞上内存不够用的墙。28335虽然带浮点单元,可内部那块SARAM总共也就三十几K字,跑个FFT、存一组采集数据、塞个查找表,说满就满。这时候最顺手的解法就是走XINTF外扩SRAM。这个实验在普中DSP28335开发攻略里被…

2026/10/20 16:30:36

REA模型实战:告别状态字段地狱,用事件溯源重构订单系统

上个月做了一次代码走查,对象是一个跑了两年的订单履约系统。最让我坐不住的不是某个算法写得有多绕,而是orders表里那十几个状态字段:PENDING、PAID、SHIPPED、DELIVERED、CANCELED、REFUNDING、REFUNDED……每排查一个线上问题,…

2026/10/20 16:30:36

Spring Boot配置文件敏感信息加密:Jasypt集成与密钥管理

1. 为什么要给SpringBoot配置文件里的敏感信息加密先说一个我亲身经历的场景。某客户的测试环境数据库密码泄露了,排查了一圈,发现是开发同学为了方便,把生产库地址和密码直接写在了项目里,提交代码的时候连同仓库一起推到了内网G…

2026/10/20 16:30:36

高德地图JS API本地调试:安全密钥与白名单配置实战

前阵子帮一个朋友调他手里的地图项目,页面在浏览器里打开,地址一输入,点击查询,控制台直接甩出一排红字。我一看报错码,心里基本就有数了——典型的本地调geocoder.getLocation没配安全密钥。这个问题在社区里问的人特…

2026/10/20 16:25:35

双栈模拟队列:用堆栈实现FIFO行为的原理与工程实践

1. 项目概述:为什么用堆栈去“假装”队列?这题不是考代码,是考思维切换 “7-22 堆栈模拟队列 (25 分)(详解夹思路)”——这个标题一出来,很多刚学数据结构的同学第一反应是懵的:堆栈(Stack)是后…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑