Huawei VPN 实例:从 CLI 读,而不是从 STelnet 读
STelnet 只把你送到命令行提示符。实例是设备内部的独立路由上下文,要用 display 命令查看,两个答案来自不同的地方。
关于 Huawei VPN 实例的问题,往往带着错误的工具而来。有人想读实例的路由表,却问怎么通过 SSH 登录设备。这是两个问题,而后者只能把你送到提示符前。
把管理会话和路由对象分开,命令就不再显得神秘。
人们常混为一谈的两件事:会话与对象
STelnet 是 Huawei 的 SSH 管理服务:它接受登录并给你一个 VRP 提示符。VPN 实例是设备内部独立的路由与服务上下文。前者是你如何到达,后者是你到达之后要查看的东西。把两者混为一谈,就会在真正的问题其实是路由表时去改动 SSH 服务器的配置。
SSH 会话里没有任何东西告诉你数据包会用哪个实例。
先列出实例
从清单开始。display ip vpn-instance 会列出该平台和版本上已配置的实例标识。要读输出,而不是假设某个名字,因为你听说的那个实例可能并不在这台设备上。
变更单上的名字不是运行配置里的名字。如果列表中没有该名字,先停下来确认变更单指的是哪台设备,再去猜相似的名字。一个真实存在但选错的实例,会给出输出,也会给出自信的错误答案。
在实例内部查一个目的地
拿到真实名字后,查询实例自己的路由表。display ip routing-table vpn-instance BLUE 192.0.2.20 会请求该上下文内到某个目的地的路由,这通常比把整张表倒出来更有信息量。
把示例地址换成你真正关心的目的地,并保持实例名完全一致。
公网表中的路由和 BLUE 中的路由是两次不同的查询。如果目的地在一张表里能解析、在另一张里不能,你找到的是边界,而不是坏掉的命令。
相信输出之前先看提示符
提示符告诉你正在读哪台设备。如果你从第一个会话里又开了第二个 SSH 会话,之后每条命令看的都是远端,而不是你起步的那台设备。有些客户端允许为 SSH 连接本身选择路由上下文,这改变的是管理会话如何到达目的地,而不是它显示什么。每次跳转都要读提示符。
两台主机名相似的设备,会让这个错误代价很高。
把上下文和结论一起记下来
记录设备、实例名、目的地,以及所选定的下一跳或接口。还要记下版本,因为命令族和输出字段在 Huawei 各条产品线之间并不相同。
实例存在,并不意味着远程访问隧道是通的。会话状态要查该功能自己的状态视图,并且把它和路由答案分开。
正是这份记录让下一个问题变得便宜,因为有人可以在变更之后比较同一个实例和同一个目的地,而不必重做一遍排查。Huawei 的 按实例查路由的流程 走的是同一种检查形态。