IS-IS中间系统到中间系统这个协议在很多网络工程师眼里属于“既熟悉又陌生”的存在。熟悉是因为它和OSPF一样都是链路状态协议在大型网络中出镜率极高陌生是因为它的配置语法、NET地址、区域分级这些概念跟OSPF的路由器ID、进程号、区域号完全是两套逻辑初学时总觉得别扭。尤其是“路由控制”这件事不少人以为IS-IS就是配好邻居、宣告网段就完事真到了需要控制选路、做路由策略、处理路由泄露的时候才发现里面坑不少。这篇文章不打算讲教科书上那些大而全的理论而是围绕我在华为设备上做IS-IS配置和路由控制实验的实际过程把核心原理拆开揉碎再配上一套可以直接照抄的实验步骤。无论你是刚接触IS-IS的初学者还是被区域间选路问题折磨过的老手相信都能从里面找到点有用的东西。1. 先搞懂IS-IS的“行政区划”区域结构的本质要理解IS-IS的路由控制第一步不是急着敲命令而是把它的区域模型搞清楚。IS-IS和OSPF最大的区别之一就是它的区域划分方式和路由器角色绑定得更紧密。1.1 Level-1、Level-2与Level-1-2的角色定位IS-IS把路由器分成三种角色Level-1L1、Level-2L2和Level-1-2L1/2。我用一个行政划分来类比假设一个城市分为若干个区区里有街道街道里有社区。Level-1路由器就像“社区网格员”它只掌握自己所在街道区域内部的详细路况知道哪条路通到哪个小区门口。Level-2路由器就像“市级交通指挥中心”它掌握整个城市的主干路网知道从一个区到另一个区该怎么走但不会去记每个小区内部的细枝末节。Level-1-2路由器就像“区级交通枢纽”它既要维护自己区内的详细路况Level-1链路状态数据库也要和市级主干网交换路况Level-2链路状态数据库。这个设计的精妙之处在于Level-1路由器只需要维护本区域的链路状态数据库不需要接收全网所有路由器的详细信息。这在大规模网络中意味着什么意味着协议开销、内存占用、CPU计算量都被大幅削减。IS-IS能支撑成百上千台路由器的骨干网络靠的就是这套分级机制。所以IS-IS的路由控制第一课就是明确每台设备在区域中的角色。如果全网都在做Level-2那等于放弃了IS-IS最大的优势如果该做Level-1-2的设备只配了Level-1那区域间路由就会断流。注意华为设备上IS-IS进程默认级别是Level-1-2。如果你只打算让两台路由器建立Level-2邻居关系必须显式指定is-level level-2否则两边都是L1/2三五台设备没问题设备一多L2区域的链路状态库会被L1信息污染路由计算和收敛都会变慢。1.2 NET地址IS-IS设备的大脑门牌号IS-IS不像OSPF那样用Router ID加区域号来标识设备而是用一个NETNetwork Entity Title地址来标识。NET地址的格式是49.0001.0000.0000.0001.00拆开来看49AFI权威和格式标识符相当于地址族标识一般固定为49代表私有地址域。0001区域地址Area Address这就是区域的“编号”。同一Level-1区域内的所有路由器这一节必须完全一致。0000.0000.0001System ID相当于设备的身份标识区域内必须唯一。00NSEL选择符固定为00代表设备本身。这个格式看起来一串数字很唬人实际上核心就三个变量区域地址、System ID、NSEL。配置NET地址时有几个实操中的常见坑我单独列一下第一System ID长度必须凑满6字节12个十六进制字符不够前面补0。比如路由器编号是1写成0000.0000.0001而不是1或01。第二区域地址和System ID的边界是点分四段的中间位置配置错误会直接导致邻居建立失败。我见过有人把49.0001.0000.0000.0001.00写成了49.0001.0000.0001.0000.00肉眼几乎看不出来结果两台设备死活建不了邻居排查半天才发现是NET地址里的System ID不一致。第三一台路由器上可以配置多个NET地址但仅限区域地址不同System ID必须一致。这在区域迁移re-addressing时有用平时配置一个NET就够了。1.3 华为设备上IS-IS进程与区域的配置框架搞清楚了角色和NET地址配置框架就很清晰了。华为设备上IS-IS的基本配置结构是isis 1 is-level level-2 network-entity 49.0001.0000.0000.0001.00这段配置的意思是创建一个IS-IS进程编号1级别为Level-2NET地址为49.0001.0000.0000.0001.00。接口上启用IS-ISinterface GigabitEthernet0/0/0 isis enable 1 isis circuit-level level-2这里有一个细节值得注意——接口上的isis circuit-level只影响该接口的邻居级别而is-level控制的是路由器自身的级别。两者的组合决定了该接口会与对端建立什么级别的邻居关系。实操中我习惯把接口级别和路由器级别配置成一致的避免出现模糊的组网状态。还有一个易错点IS-IS的路由器级别和接口级别配置不一致时会出现一个接口既是Level-1又是Level-2邻居的情况。这在一个物理链路上会同时建立两套邻接关系占用双份的Hello报文和链路状态开销。有人配完发现邻居表里出现了两个邻居还以为是正常的其实如果组网设计没有这种需求最好显式限制成单级别。2. 路由控制的三个核心抓手Metric、TTL与路由泄露IS-IS做路由控制不像访问控制列表那样直接“允许/拒绝”而是通过调整选路参数和路由传播范围来间接实现。最核心的抓手有三个Metric开销、TTL剩余生存时间、路由泄露Route Leaking。2.1 Metric计算一条开销值背后的公式与逻辑IS-IS的默认Metric算法是“窄度量”Narrow Metric取值范围是1到63。这个设计在早期链路速率差异不大的网络里没什么问题但到了千兆、万兆链路时代就不够用了所以华为设备上默认建议使用“宽度量”Wide Metric取值范围是1到16777215。华为设备上宽度量开销的默认计算公式是接口开销 参考带宽 / 接口带宽其中参考带宽默认是10Mbps。举个例子一个GigabitEthernet接口带宽1000Mbps那开销就是10 / 1000 0.01取整后华为设备上显示的默认开销为1。也就是说默认情况下所有超过10Mbps的接口开销基本都会被压到最小值1。这个“默认开销接近1”的现象实际上是个容易被忽略的坑。我在实验中见过两台设备之间的路径一条是千兆直连一条是经过三层交换机的百兆链路因为默认开销都是1路由器会在这两条路径之间做等价负载分担。流量在百兆链路上被大量丢弃而千兆链路却闲得很。所以做选路控制之前一定要先把开销值调成符合物理链路实际情况的数字。手动调整接口开销的方式有两种# 方式一修改参考带宽全局生效 isis 1 bandwidth-reference 1000 # 方式二直接指定接口开销 interface GigabitEthernet0/0/0 isis cost 100我个人更推荐方式二因为方式一改的是全局参考带宽会影响同一进程下所有接口的默认开销计算容易造成“蝴蝶效应”。方式二简单直接只影响指定的接口排查起来也方便。2.2 TTL值理解IS-IS的“过路费”机制除了默认开销IS-IS还有一个非常实用的参数——TTLTagged Value不是IP报文里的TTL。华为设备的IS-IS会给路由条目附加一个TTL值默认是64。它的作用是用来限制路由在区域内传播的跳数。理解TTL值要回到IS-IS的分级设计上。Level-1区域内一台L1路由器将路由信息传给另一台L1路由器时TTL值保持不变但当路由穿过一台L1/2路由器进入Level-2区域时TTL值会增加4。同理从L2区域回到L1区域时TTL值再增加4。这意味着什么意味着一条路由跨越的层级越多TTL值越高。我在实验中观察到一台从区域A经过区域B再到区域C的明细路由TTL值已经被累加到32以上。这个值本身不参与选路计算但它能帮你快速判断一条路由经过了几个层级排查环路和路由来源时非常好用。还有一种实际用途当IS-IS路由与OSPF或静态路由做双向引入时TTL值可以帮助识别路由的真实来源。如果两条等价路由一条TTL是64另一条是72说明后者跨了区域前者的产生位置更接近本设备。实操心得TTL值是IS-IS路由表里的隐藏字段display命令默认不显示。在华为设备上可以用display isis route查看或者在display ip routing-table里通过路由条目的附加信息定位。我在定位一个“多区域路由反复震荡”的问题时就是靠TTL值判断出有一条路由一直在L1/L2之间反复横跳排错效率比在配置里瞎找快得多。2.3 路由泄露IS-IS区域间路由传播的唯一通道IS-IS有一个和OSPF显著不同的机制L1区域内的路由器默认不知道L2区域的路由反之同理。区域间的路由传播靠的是L1/2路由器上的“路由泄露”。路由泄露听起来很高端说白了就是L1/2路由器把L1区域内的路由“泄露”到L2区域或者把L2区域的路由“泄露”到L1区域。默认情况下IS-IS只允许L1路由被上送到L2区域不允许L2路由下放到L1区域。用一句话总结就是默认只上不下。这个默认行为导致的实际问题是L1区域内的路由器只能访问本区域和骨干L2区域的路由访问不了其它L1区域的路由。要解决这个问题必须在L1/2路由器上配置路由泄露。华为设备上的配置是isis 1 import-isis level-2 into level-1这条命令的含义是将Level-2的路由引入到Level-1区域。理解和记忆这条命令注意到英文里的两个level层次分别对应“源”和“目标”。level-2 into level-1就是从L2引到L1方向不会搞反。这里还有一个控制细节——你觉得所有L2路由都需要泄露到L1吗未必。如果某个L2区域的路由是内部管理网段你不想让终端区域访问完全可以在泄露时配合路由策略做过滤。华为设备支持在import-isis命令后接route-policyisis 1 import-isis level-2 into level-1 route-policy allow-some-routes route-policy allow-some-routes permit node 10 if-match ip-prefix mgmt-network这样只有匹配到mgmt-network这个前缀列表的路由才会被泄露到L1区域。这个操作相当于给区域间路由传播装上了一道闸门是IS-IS路由控制最核心的手段之一。3. 实验环境与基础配置搭建一个能跑通的IS-IS网络理论讲了一堆下面进入实验环节。我用的是一套模拟环境拓扑虽然是模拟的但配置命令和现象与真实华为设备一致可以直接套用在你手头的真机或模拟器上。3.1 实验拓扑与IP规划为了把区域间选路、路由泄露、路由聚合这些点都覆盖到我搭建了一个4台路由器的拓扑Level-1区域 | Level-2区域 R1 (L1) --- R2 (L1/2) --- R3 (L2) --- R4 (L2) .1 .2 .23.1 .23.2 .34.1 .34.2 Loopback0: 10.0.1.1/32 Loopback0: 10.0.3.3/32 R1-R2链路: 10.0.12.0/24 R3-R4链路: 10.0.34.0/24 R2-Loopback0: 10.0.2.2/32 R4-Loopback0: 10.0.4.4/32 R2-R3链路: 10.0.23.0/24 R4-LAN: 192.168.10.0/24拓扑说明R1是纯Level-1路由器位于区域49.0001。R2是Level-1-2路由器同时属于区域49.0001和骨干区域。R3、R4是纯Level-2路由器。R4上有一个192.168.10.0/24的LAN网段用来模拟用户侧的末端网络。3.2 全网IS-IS基础配置过程R1的配置sysname R1 isis 1 is-level level-1 network-entity 49.0001.0000.0000.0001.00 # interface Loopback0 ip address 10.0.1.1 255.255.255.255 isis enable 1 # interface GigabitEthernet0/0/0 ip address 10.0.12.1 255.255.255.255.0 isis enable 1 isis circuit-level level-1R2的配置sysname R2 isis 1 is-level level-1-2 network-entity 49.0001.0000.0000.0002.00 # interface Loopback0 ip address 10.0.2.2 255.255.255.255 isis enable 1 # interface GigabitEthernet0/0/0 ip address 10.0.12.2 255.255.255.255.0 isis enable 1 isis circuit-level level-1 # interface GigabitEthernet0/0/1 ip address 10.0.23.2 255.255.255.255.0 isis enable 1 isis circuit-level level-2R3的配置sysname R3 isis 1 is-level level-2 network-entity 49.0002.0000.0000.0003.00 # interface Loopback0 ip address 10.0.3.3 255.255.255.255 isis enable 1 # interface GigabitEthernet0/0/0 ip address 10.0.23.3 255.255.255.255.0 isis enable 1 isis circuit-level level-2 # interface GigabitEthernet0/0/1 ip address 10.0.34.3 255.255.255.255.0 isis enable 1 isis circuit-level level-2R4的配置sysname R4 isis 1 is-level level-2 network-entity 49.0002.0000.0000.0004.00 # interface Loopback0 ip address 10.0.4.4 255.255.255.255 isis enable 1 # interface GigabitEthernet0/0/0 ip address 10.0.34.4 255.255.255.255.0 isis enable 1 isis circuit-level level-2 # interface GigabitEthernet0/0/1 ip address 192.168.10.1 255.255.255.255.0 isis enable 1 isis circuit-level level-2这里需要强调一个配置上的注意点R3和R4虽然和R2在同一条链路上运行IS-IS但R2在这一侧的接口必须配置为Level-2否则R2和R3只会建立Level-1邻居整个L2骨干就断掉了。配置完成后用display isis peer查看邻居状态应该看到R2同时有L1和L2两个邻居R3/R4的邻居都是L2级别。3.3 验证基础连通性与路由表状态配置完成后在R1上执行display ip routing-table重点看IS-IS相关的路由条目。此时你大概率会发现一个问题R1的路由表里只有本区域R2的Loopback0和自身直连网段的路由看不到R3、R4以及192.168.10.0/24网段。这正是默认“只上不下”机制的直接体现——R2虽然是L1/2路由器但它默认不会把L2的路由泄露给L1区域。这就是为什么我们要在后续实验中配置路由泄露和路由策略让这些路由有控制地出现在该出现的地方。4. 核心实验用路由策略控制区域间选路基础配置跑通之后现在开始做真正的“路由控制”。这一节会完整演示一个场景区域间的流量默认走哪条路如何通过修改开销和配置策略来改变它。4.1 场景R4访问R1的回环地址默认走哪条路在R4上查看去往R1回环地址的路由display ip routing-table 10.0.1.1默认情况下由于R1是L1区域的路由器R4L2能通过IS-IS学到10.0.1.1/32这条路由它是被R2从L1区域泄露到L2区域的。路由的下一跳是R3开销是10假设各链路千兆默认开销1加上TTL的累加但实际Metric计算只考虑接口开销值路径为R4 - R3 - R2 - R1这个路径没什么悬念拓扑就一条路。但现实中拓扑往往有冗余链路——假设R3和R1之间还有一条备用链路直达两条路径开销就完全不同了。为了演示路由控制的思路我在这套拓扑上做了一点扩展把链路开销差异模拟出来链路接口开销说明R1-R210手动配置模拟低速链路R2-R31默认开销千兆链路R3-R41默认开销千兆链路R3-R1100手动配置模拟高代价备用链路在R1的接口上执行interface GigabitEthernet0/0/1 isis cost 10在R3的接口上执行interface GigabitEthernet0/0/1 isis cost 100这时在R3上查看去往10.0.1.1/32的路由你会发现下一跳指向R2开销是1 10 11并没有走直达R1的备用链路开销100。这就是IS-IS最短路径优先算法SPF在起作用它永远选择累计开销最小的路径。4.2 调整开销值改变选路结果现在模拟一个场景我们希望R4访问R1时走“直达备用链路”绕开中间设备R2。最简单的做法就是调整路径开销让直达链路的总开销小于经由R2的路径开销。在R3上把通往R1的备用链路开销从100改成5interface GigabitEthernet0/0/1 isis cost 5在R1上同理把直达R3的链路开销改为5。此时R3的路由表里10.0.1.1/32这条路由的下一跳变成了R1开销为5。在R4上执行ping 10.0.1.1流量会从R4 - R3 - R1直达。这个实验虽然简单但它背后的思路值得记录IS-IS的选路控制本质上就是“开销游戏”。你不需要用复杂的策略去指定“必须走哪条路”只需要把该路径的开销调到足够低SPF算法自然会做出你想要的选择。这种控制方式的好处是当备用链路故障时IS-IS会自动重新计算路径并切回主链路无需人工干预。实操提醒调整开销值后一定要同时在两端接口上改否则会出现单向成本不一致的情况导致回程路径和去程路径不对称。特别是在用模拟器做实验时修改一端后记得检查对端接口。4.3 配置路由策略精准控制路由泄露接下来做路由泄露的实战配置。当前网络上R4把192.168.10.0/24这个LAN网段宣告进了IS-IS它是L2区域的路由。默认情况下这条路由不会出现在R1的L1路由表里。我们在R2L1/2路由器上配置路由泄露选择性地让这条路由进入L1区域。在R2上执行isis 1 import-isis level-2 into level-1配置完成后回到R1上查看路由表display ip routing-table 192.168.10.0此时应该能看到这条L2路由已经被泄露到L1区域下一跳为R2开销为2R1-R2链路开销10不对这么说要严谨一些——开销是R1到R2链路的10。这里我有一个建议不要一上来就把所有L2路由全部泄露到L1。在真实网络中L1区域往往有很多分支节点若把所有骨干路由全量下发每个分支节点的路由表都会膨胀跟OSPF完全告别区域设计的初衷没什么区别。更合理的做法是配合route-policy做定向泄露只下发需要访问的网段。回过头来看如果我想只泄露192.168.10.0/24这一条可以在R2上配置acl number 2001 rule 5 permit source 192.168.10.0 0.0.0.255 route-policy leak-lan permit node 10 if-match acl 2001 isis 1 import-isis level-2 into level-1 route-policy leak-lan这样R1只能学到192.168.10.0/24其它L2路由一概不下发。这个“精确制导”式泄露在实际维护中比全量泄露要安全得多。5. 路由汇聚的坑与排查一个真实的错误选路案例路由汇聚Aggregation是收敛路由表的重要手段但IS-IS里做汇聚有一个特别容易踩的坑——汇聚路由和明细路由同时存在时选路会出问题。这一节用一个我实测中遇到的场景来说明。5.1 配置IS-IS路由聚合后出现的问题为了简化R2向L2区域通告的路由数量我在R2上配置了路由聚合isis 1 summary-address 10.0.0.0 255.255.0.0 level-2目的是让R2把L1区域内的所有10.0.x.x路由汇聚成一条10.0.0.0/16的聚合路由只向L2区域通告这一条。这样R3、R4的路由表会非常干净。但聚合配置之后的某个时刻我注意到一个现象R3的路由表里同时存在10.0.0.0/16聚合路由和10.0.1.1/32明细路由。按最长前缀匹配原则访问10.0.1.1应该优先走明细路由这没问题。但当明细路由因某个网段故障被撤销时流量就会瞬间落到聚合路由上如果聚合路由指向的是一个已经不通的方向就形成所谓的“黑洞路由”。实测中我遇到的具体问题是R2上做聚合后L2区域通告了一条10.0.0.0/16下一跳指向R2。而当R1和R2之间的链路短暂震荡时10.0.1.1/32这条明细路由消失了R3上的流量继续按照聚合路由转发到R2R2收到后发现自己根本没有10.0.1.1的明细路由只能把它丢进黑洞。用户侧表现为“时通时断”非常隐蔽。5.2 定位过程从TTL和路由优先级入手排查这个问题的关键不是盯着配置发呆而是先看路由表。在R3上执行display ip routing-table 10.0.1.1 verbose这条命令会展示该路由的详细属性包括路由优先级Preference和TTL值。正常情况下IS-IS内部路由的协议优先级是默认的15华为设备上IS-IS内部路由优先级就是15聚合路由的TTL值会比明细路由更高。我当时的排查步骤是在R3上确认10.0.1.1/32的路由是否存在如果存在就跟踪它的TTL值。在R4上测试目的地址为10.0.1.1的连通性若失败则在R3上注意不是R4再次查看路由表。如果R3上10.0.1.1/32消失而10.0.0.0/16还在基本就能确定“明细路由被聚合路由覆盖”的现象发生了。此时的标准解法是聚合路由不能无脑汇聚所有网段至少要把仍然活跃的关键明细路由用route-policy排除在聚合范围之外。或者在汇聚节点配置一条指向NULL0的缺省路由防止黑洞。华为设备上summary-address命令可以带avoid-feedback和tag等参数结合路由策略做精细控制。5.3 防掉坑的路由聚合配置建议经过这次的折腾我总结了几条IS-IS路由聚合的实战建议第一明确聚合路由的目的。如果只是为了让L2区域的路由表更精简那聚合掩码不要太狠。比如10.0.0.0/16把整段都聚合了一旦有非连续网段消失很容易出现黑洞。更合理的是按实际业务网段逐条汇聚而不是一刀切。第二聚合节点必须是明细路由的必经之路。聚合路由本质上是一个“代表”性质的路由它只适合在网络的汇聚点比如区域边界配置。如果在非边界设备上配置聚合下游设备转发流量时可能把流量引到一个完全无法到达目的地的方向。第三了解IS-IS路由优先级规则。华为设备上直连路由优先级0静态路由60IS-IS内部路由15IS-IS外部路由160。当聚合路由和明细路由同时存在时这才决定了到底选哪条。在排查选路问题时先确认优先级再确认前缀长度不要被表面现象带偏。6. 常见故障排查与速查表IS-IS实验做多了有些问题会反复出现。我把那些出现频率最高、排查思路最典型的整理成一个速查表方便你以后对照排查。6.1 邻居无法建立时的排查清单现象可能原因排查命令与思路邻居状态为Down接口未启用IS-ISdisplay isis interface确认接口下isis enable是否已配置邻居状态为DownLevel不匹配display isis peer查看对端级别确认两端接口的isis circuit-level一致邻居状态为DownNET地址的System ID冲突或区域地址不匹配display isis lsdb和display isis peer对比NET地址重点检查System ID长度和区域地址邻居状态为Flapping链路质量差或接口开销变化频繁检查物理链路误码率关闭接口的自动协商或将开销改为固定值邻居状态为Up但路由不通区域间未做路由泄露在L1/2设备上配置import-isis level-2 into level-1实操案例有一次实验里两台设备无论如何都建立不了邻居display isis peer里看不到任何条目。我检查了接口、进程、区域地址看起来全对。最后用debug isis adjacency定位发现两端接口的Level不匹配——一端是Level-1另一端是Level-2IS-IS不会在接口级别不一致的情况下建立邻居。这种情况在真实设备上配置多个区域时特别常见尤其是那些既有L1又有L2需求的边界设备接口级别稍不注意就会配错。6.2 路由学习不全或某网段不通的排查现象可能原因排查命令与思路L1区域学不到L2路由未配置路由泄露在L1/2路由器上配置import-isis level-2 into level-1部分L2路由下发了部分没下发路由策略过滤检查L1/2路由器上的import-isis是否绑定了route-policy逐条检查ACL和前缀列表明细路由消失只剩聚合路由聚合范围过宽或明细路由被撤销display ip routing-table 目标地址 verbose观察TTL和优先级变化开销相同导致负载分担但链路质量不均未手动调整开销给低速或质量较差的链路配置更高的isis cost外部路由优先级高于IS-IS内部路由路由引入和策略叠加确认路由来源及协议优先级必要时调整preference6.3 一个容易被忽略的细节IS-IS对系统ID的校验IS-IS在建立邻居时系统ID是唯一标识。但很多初学者在配置NET地址时会把System ID写成和IP地址的某一段有关联的数字这没有问题问题出在不同设备上的System ID如果设置成一样邻居能建立但路由计算会错乱。华为设备上同一区域内System ID必须唯一。我建议在规划阶段就把“R1 0000.0000.0001R2 0000.0000.0002”这样的规则写进运维文档。虽然IS-IS不会像OSPF那样直接拒绝相同的Router ID但一旦出现冲突LSDB里会有重复的LSP标识SPF计算的结果会非常诡异而且这种错误很难从表面看出只有对比LSDB才能发现。6.4 关于IS-IS和OSPF的选路差异一句实话很多人在学习IS-IS时会拿OSPF来对比。两者的核心机制确实相似但IS-IS的区域模型更强调“结构化”——L1区域的信息默认不会主动泄漏到L2以外的区域这也是它在大规模网络里更稳定的原因之一。如果你之前只熟悉OSPF做IS-IS实验时容易犯的一个错误就是“默认把路由都放进一个区域”结果IS-IS的分级优势完全没发挥出来。从小型实验环境的视角看IS-IS的复杂度不亚于OSPF但它的设计哲学更贴近“目录树分层收敛”的思路。一旦你把区域角色、NET地址、开销设计、路由泄露这几件事串起来理解再看IS-IS的配置和故障排查就顺畅得多。我在实际设备上折腾IS-IS的过程里最深的一个体会就是IS-IS不是难在命令而是难在把“区域边界”这个概念从纸面落到真实网络里。哪怕只是几台设备的模拟环境只要你能完整走一遍“区域划分 → 邻居建立 → 路由泄露 → 选路调整 → 聚合避坑”这个链路IS-IS的路由控制思路基本就掌握了。最后再分享一个小技巧每次做IS-IS实验我都会把每台设备的NET地址、级别、接口开销整理成一张表格贴在实验笔记的顶部。排查问题的时候先看这张表再去看路由表和LSDB能省掉大量“对着配置反复猜”的时间。IS-IS是一个值得认真对待的协议把它玩透对理解华为设备的“链路状态路由”体系会有极大帮助。