H3C HCL模拟器实战:IS-IS单区域基础配置与排错指南 1. 实验目标与网络环境准备如果你正在学习网络路由协议特别是运营商级网络常用的IS-IS那么通过模拟器进行实操是绕不开的一步。这次我用H3C的HCL模拟器带大家走一遍IS-IS单区域的基本配置。这个实验的目标很明确不是让你死记硬背命令而是真正理解如何在两台H3C路由器上让IS-IS跑起来并学会验证它是否工作正常。你会掌握三个核心技能一是完成单区域IS-IS的基础配置让两台路由器建立邻居并交换路由二是能看懂IS-IS的路由表和邻居状态知道数据包会怎么走三是能查看神秘的LSDB链路状态数据库理解IS-IS是如何“描绘”网络地图的。无论你是备考认证还是工作中需要接触运营商网络这个实验都是打基础的关键。实验的拓扑很简单但足够典型有两台路由器RTA和RTB它们之间通过一条Serial串行链路模拟广域网连接直连。每台路由器还各自连接着一个局域网RTA连着PCA所在的网段RTB连着PCB所在的网段。我们的任务就是让RTA和RTB通过IS-IS协议互相学习到对方身后的局域网路由最终实现PCA和PCB的跨网段通信。IP地址规划是网络工程的起点这里我们规划如下RTA的G0/0口连接PCA地址是192.168.0.254/24RTB的G0/0口连接PCB地址是192.168.2.254/24而RTA和RTB互联的S1/0口我们使用一个30位掩码的小网段RTA S1/0为192.168.1.1/30RTB S1/0为192.168.1.2/30。记住清晰的地址规划能让你在配置和排错时事半功倍。在动手敲命令之前我们得先把HCL模拟器的实验环境搭起来。打开HCL新建一个拓扑从设备区拖出两台Router这里选择通用的MSR36-20路由器镜像即可和两台PC。用线缆连接注意接口类型路由器之间的连接选择“Serial”串口线这通常会自动将两端的接口设置为S1/0路由器与PC之间选择“Copper”以太网线连接路由器的GigabitEthernet0/0口和PC的以太网口。设备启动后建议先为PC配置好基础的IP地址和网关比如PCA的IP设为192.168.0.1/24网关指向192.168.0.254PCB的IP设为192.168.2.1/24网关指向192.168.2.254。配置PC主要是为了最后测试连通性前期重点还是在路由器上。2. IS-IS协议核心概念与配置思路拆解在开始配置前我们花点时间聊聊IS-IS本身理解“为什么”要这么配比记住命令更重要。IS-ISIntermediate System to Intermediate System和OSPF一样都是链路状态路由协议但它的出身和风格很不一样。它最初是为OSI开放系统互联模型设计的后来被扩展支持TCP/IP。在IS-IS的世界里路由器被称为“中间系统IS”。一个核心概念是“区域Area”IS-IS采用两级的分层结构Level-1和Level-2。Level-1路由器负责区域内的路由类似于OSPF的内部路由器Level-2路由器负责区域间的路由类似于OSPF的骨干路由器。我们这个实验是“单区域”配置所以两台路由器都配置为Level-1路由器它们在同一个区域内部交换链路状态信息。另一个关键概念是“NETNetwork Entity Title网络实体名称”。这是IS-IS路由器的“身份证”格式看起来有点复杂比如10.0000.0000.0001.00。我们来拆解一下最开头的10是区域IDArea ID在我们这个单区域实验中两台路由器的区域ID必须相同否则无法建立Level-1邻居。中间由点分隔的12个十六进制数字0000.0000.0001是系统IDSystem ID它必须唯一地标识一台路由器通常可以用路由器的Loopback地址转换而来或者像我们实验里简单地从0001、0002这样顺序编号。最后的00是SELNSAP选择符对于IP路由而言固定为00。所以配置NET就是告诉路由器“我是哪个区域的Area ID我是谁System ID我是来跑IP路由的SEL00”。我们的配置思路就是基于以上概念展开的。首先为每台路由器的物理接口配置正确的IP地址并确保接口物理和协议状态都是UP的这是通信的基础。然后全局启用IS-IS进程并进入IS-IS视图设置正确的NET和路由器级别is-level。最后在需要运行IS-IS的接口上也就是与邻居相连的接口以及连接需要发布网段的接口启用IS-IS功能。IS-IS默认不会在接口上发送或接收Hello报文必须在接口视图下使用isis enable命令手动激活。这个步骤顺序——先全局后接口——是通用的配置逻辑。3. 路由器基础接口与IS-IS详细配置过程现在我们进入实操环节逐行命令进行配置和讲解。首先从RTA开始。通过system-view命令进入系统视图后第一步是配置接口IP并激活接口。[H3C]interface GigabitEthernet 0/0 [H3C-GigabitEthernet0/0] ip address 192.168.0.254 24 [H3C-GigabitEthernet0/0] undo shutdown [H3C-GigabitEthernet0/0] quit这里ip address 192.168.0.254 24为接口配置了IP地址和24位掩码即255.255.255.0。undo shutdown命令是激活接口在模拟器中物理接口默认可能是UP的但显式执行一次是个好习惯在实际设备上这常常是必须的。接着配置连接RTB的串口[H3C]interface Serial 1/0 [H3C-Serial1/0] ip address 192.168.1.1 30 [H3C-Serial1/0] undo shutdown [H3C-Serial1/0] quit注意串口链路我们用了30位掩码255.255.255.252这个掩码只提供两个可用主机地址.1和.2正好用于点对点链路非常节约地址空间。接口基础配置完成后开始配置IS-IS协议。使用isis命令直接进入IS-IS视图默认进程号是1。[H3C] isis [H3C-isis-1] network-entity 10.0000.0000.0001.00这条命令设置了RTA的NET。区域ID是10系统ID是0000.0000.0001SEL是00。接下来设置路由器级别[H3C-isis-1] is-level level-1因为我们做单区域实验所以设置为Level-1。配置完成后退出IS-IS视图。最后也是最关键的一步在接口上启用IS-IS[H3C] interface Serial 1/0 [H3C-Serial1/0] isis enable 1 [H3C-Serial1/0] quit [H3C] interface GigabitEthernet 0/0 [H3C-GigabitEthernet0/0] isis enable 1 [H3C-GigabitEthernet0/0] quitisis enable 1中的“1”就是IS-IS的进程号必须和全局启用的进程号对应。这意味着IS-IS协议将在S1/0和G0/0这两个接口上发送Hello报文建立邻居并宣告该接口的直连网段。注意接口启用IS-IS的常见遗漏点。很多新手配置完全局IS-IS参数后会忘记在接口下执行isis enable命令。结果就是配置看似完整但邻居始终无法建立。务必记住IS-IS的激活是“按接口”进行的只有配置了isis enable的接口才会参与IS-IS进程。接下来以完全相同的逻辑配置RTB。配置过程是对称的[H3C]interface GigabitEthernet 0/0 [H3C-GigabitEthernet0/0] ip address 192.168.2.254 24 [H3C-GigabitEthernet0/0] undo shutdown [H3C-GigabitEthernet0/0] quit [H3C]interface Serial 1/0 [H3C-Serial1/0] ip address 192.168.1.2 30 [H3C-Serial1/0] undo shutdown [H3C-Serial1/0] quit [H3C] isis [H3C-isis-1] network-entity 10.0000.0000.0002.00 [H3C-isis-1] is-level level-1 [H3C-isis-1] quit [H3C] interface Serial 1/0 [H3C-Serial1/0] isis enable 1 [H3C-Serial1/0] quit [H3C] interface GigabitEthernet 0/0 [H3C-GigabitEthernet0/0] isis enable 1 [H3C-GigabitEthernet0/0] quit重点对比一下RTB的NET区域ID同样是10这保证了它们处于同一个Level-1区域系统ID是0000.0000.0002与RTA的0001区分保证了唯一性。两台路由器的is-level都是level-1接口上也都在S1/0和各自的G0/0上启用了IS-IS进程1。4. 配置验证与关键信息查看解析配置敲完不代表工作就结束了。验证和查看是网络工程师更重要的技能。我们通过一系列display命令来检验成果。首先在任意一台路由器上比如RTA使用display isis命令查看IS-IS的摘要信息。[H3C]display isis这个命令的输出信息量很大我们需要关注几个关键点。首先找到“System Id”和“System ID”字段确认是否与我们配置的NET中的系统ID部分一致RTA应为0000.0000.0001。其次找到“Level”字段确认显示为“Level-1”。接着查看“Cost Style”开销类型在默认配置下这里通常显示为“Narrow”。开销类型关系到IS-IS计算路径代价的方式“Narrow”是传统度量方式后来还有“Wide”等扩展类型以支持TE流量工程。这个实验里我们使用默认即可但知道在哪里查看很重要。接下来查看IS-IS路由表这是验证路由学习是否成功的最直接证据。在RTA上执行[H3C]display isis route你会看到路由表条目。除了直连的192.168.0.0/24和192.168.1.0/30你应该能看到一条通过IS-IS学习到的路由目标网络是192.168.2.0/24。仔细看这条路由的详细信息它的下一跳地址NextHop应该是192.168.1.2即RTB的S1/0接口地址出接口Interface是Serial1/0。这完美符合我们的拓扑预期RTA要去往PCB所在的192.168.2.0/24网络数据包会发给RTB。同样在RTB上执行display isis route应该能看到一条下一跳为192.168.1.1、出接口为S1/0、指向192.168.0.0/24的路由。光有路由还不够我们需要确认邻居关系是否健康。使用display isis peer命令有时也写作display isis neighbor[H3C]display isis peer在RTA上输出会显示它的IS-IS邻居。你应该能看到一个系统ID为0000.0000.0002即RTB的邻居条目。重点关注“State”状态栏这里必须显示为“UP”表示邻居关系正常建立。还有“Type”类型栏这里应该显示为“L1”表示这是一个Level-1邻居。如果状态不是UP或者类型不对说明邻居建立有问题需要回头检查配置特别是接口的isis enable命令和两端的区域ID、IP连通性。最后我们来窥探一下IS-IS的核心——链路状态数据库LSDB。在RTA上执行[H3C]display isis lsdbLSDB就像是区域内所有路由器共同维护的一张网络拓扑地图。命令输出会列出多个链路状态协议数据单元LSP。每个LSP都有一个标识符由“系统ID伪节点ID”构成。你会看到一些LSP前面带有*号这表示这个LSP是由本路由器RTA自己生成的。通过对比RTA和RTB的LSDB在RTB上也执行此命令理论上在同一个Level-1区域内所有路由器的LSDB应该完全同步即内容一模一样。你可以观察LSP的序列号、生存时间等字段理解IS-IS如何通过泛洪和确认机制来保证数据库的一致性。5. 端到端连通性测试与问题排查实录所有的配置和查看命令都指向一个最终目标网络要通。我们回到用户视角从PCA去ping PCB的IP地址192.168.2.1。在HCL的PCA命令行中输入ping 192.168.2.1如果前面所有步骤都正确你应该能看到一连串的“Reply from 192.168.2.1”回复表示ping包成功往返。这个简单的测试背后是完整的路由过程PCA将去往192.168.2.1的数据包发给自己的网关RTA192.168.0.254RTA查询自己的路由表包含了IS-IS学来的192.168.2.0/24路由将数据包从S1/0口发给下一跳192.168.1.2RTBRTB收到后发现目标192.168.2.1是自己的直连网段于是从G0/0口发给PCBPCB回复的路径则完全对称。一次成功的ping是对整个IS-IS配置正确性的终极验证。然而实验过程很少一帆风顺。下面我整理了几个最常见的问题和排查思路这都是实践中容易踩的坑。问题一IS-IS邻居状态无法UP一直停留在“Init”或其他状态。这是最常见的问题。请按照以下顺序排查物理层与IP连通性在RTA上ping 192.168.1.2RTB的接口地址确保底层IP是通的。如果不通检查接口物理状态display interface brief、IP地址配置和掩码是否匹配。接口IS-IS激活使用display isis interface命令确认S1/0接口是否在列表中并且状态是“Up”。如果不在列表里百分之百是忘记了在接口视图下配置isis enable 1。区域ID一致性使用display isis查看两台路由器的区域IDArea Address。对于Level-1邻居区域ID必须完全相同。检查NET配置的第一个字段比如都是10.。接口网络类型串行链路默认是P2P点对点类型IS-IS对P2P和广播Broadcast链路的邻居建立机制不同。在HCL的Serial接口上一般没问题但如果遇到问题可以在接口视图下尝试isis circuit-type p2p显式指定。问题二能学到邻居但学不到对方的路由display isis route看不到远程网段。接口IS-IS激活遗漏确认所有需要发布路由的接口都配置了isis enable。例如如果RTB的G0/0口没有启用IS-IS那么即使邻居正常RTA也学不到192.168.2.0/24这条路由。因为IS-IS只会在启用了协议的接口上将该接口的直连网段主机路由除外发布到链路状态信息中。路由渗透问题我们配置的是单区域Level-1所有路由都应该在区域内泛洪。但如果误将某台路由器的is-level配置成了level-2或者level-1-2而另一台是level-1那么Level-1和Level-2路由器之间默认不会交换Level-1的路由信息除非配置了路由泄漏Route Leaking。本实验确保两台都是level-1即可。查看LSDB细节使用display isis lsdb verbose查看详细的LSP内容。确认对方的LSP里是否包含了我们期望的IP可达性信息即192.168.2.0/24这样的网段。如果没有问题还是出在对方路由器对应接口的IS-IS激活或网络类型上。问题三PCA可以ping通RTB的接口地址但ping不通PCB。这通常不是IS-IS的问题而是末端主机或网关的配置问题。检查PCB的IP和网关确认PCB的IP地址是192.168.2.1/24网关是192.168.2.254RTB的G0/0口。检查RTB的路由表在RTB上执行display ip routing-table确认有到达192.168.0.0/24的路由应该是通过IS-IS学来的并且下一跳正确。检查防火墙或ACL模拟器和某些设备镜像可能默认开启了防火墙。在路由器系统视图下尝试执行undo ip firewall enable暂时关闭防火墙进行测试。在实际环境中则需要检查是否配置了阻止ICMP或相关网段流量的访问控制列表ACL。为了方便对照我把关键检查点和常用命令总结成下面的表格在排错时可以快速查阅排查目标关键检查点常用诊断命令邻居建立1. 接口IP连通性 (ping)2. 接口IS-IS激活状态3. 两端区域ID (Area ID) 一致4. 接口链路类型匹配ping 对端接口IPdisplay isis interfacedisplay isis(查看Area Address)display isis peer路由学习1. 所有需发布网段的接口启用IS-IS2. 路由器级别 (Level) 配置正确3. LSDB中包含目标网段信息display isis interface(确认所有相关接口)display isis(查看Level)display isis lsdb verbose端到端通信1. 末端主机IP/网关配置正确2. 路由器全局路由表完整3. 无防火墙/ACL拦截display ip routing-tableundo ip firewall enable(测试用)display acl all6. 实验深化与理解从配置到协议交互完成基础配置和测试后我们可以再深入一步理解命令背后的协议交互过程。当你在一台路由器的接口上输入isis enable时它就开始周期性地发送IIHIS-IS Hello报文。在点对点链路上双方路由器通过交换IIH报文协商一系列参数如区域ID、系统ID、认证、最大区域地址数等如果匹配邻居状态就会进入“UP”。邻居建立后路由器会创建自己的LSP链路状态PDU描述自己的链路状态信息。对于RTA来说它的LSP里会包含“我通过接口S1/0连接到一个邻居系统ID为0000.0000.0002”以及“我直连的网络有192.168.0.0/24和192.168.1.0/30”。然后RTA通过“泛洪Flooding”过程将这份LSP发送给邻居RTB。RTB收到后将其存入自己的LSDB并继续向其他邻居泛洪本例中没有其他邻居。同时RTB也会将自己的LSP泛洪给RTA。最终两台路由器拥有完全相同的LSDB。每台路由器都基于这份完整的LSDB独立运行SPF最短路径优先算法计算出一棵以自己为根、到达网络中所有节点的最短路径树。然后将这些最短路径转换成具体的路由条目安装到路由表中。这就是为什么你在RTA上能看到下一跳指向RTB的、通往192.168.2.0/24的路由。整个过程完全是分布式的没有像OSPF中DR/BDR那样的选举角色在广播网络中除外这也是IS-IS协议简洁高效的一个体现。实操心得理解默认行为与显式配置。H3C设备的IS-IS有一些默认行为。例如默认的进程号是1所以isis和isis enable 1中的“1”经常可以省略。但我的习惯是即使在实验环境也把进程号显式写出来。这能避免未来在多进程复杂场景下的混淆。另外默认的开销类型是“Narrow”度量值Cost默认是10。在接口视图下你可以使用isis cost命令手动修改接口开销从而影响路由选择。你可以尝试将RTA S1/0接口的IS-IS开销改为50isis cost 50然后观察display isis route的输出虽然本拓扑只有一条路径但你可以理解这个参数的意义。最后当你熟练掌握了这个单区域实验后可以尝试一些扩展挑战比如添加第三台路由器配置一个真正的Level-2骨干区域实现多区域IS-IS或者在接口上启用IS-IS认证增加网络安全性再或者调整接口的开销值观察路由路径的变化。这些都能帮你更深刻地理解这个强大而优雅的链路状态协议。网络技术的学习就是在这一次次配置、验证、排错和拓展中把书本上的概念变成自己手上的真本事。