mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-20 13:50:45 +08:00
fix erro command
This commit is contained in:
parent
557b675fe8
commit
07002caeb8
4 changed files with 554 additions and 790 deletions
|
|
@ -1,400 +1,169 @@
|
|||
# 命令探索方法论:通过 `?` 在线帮助发现真实命令
|
||||
# 命令探索方法论:使用 `?` 在线帮助
|
||||
|
||||
## 为什么需要命令探索?
|
||||
## 核心价值
|
||||
|
||||
在实际网络运维中,我们经常遇到以下问题:
|
||||
- **文档过时**:厂商设备版本升级后命令语法变化
|
||||
- **记忆模糊**:记不清完整命令路径和参数格式
|
||||
- **设备差异**:不同厂商(ZTE/Huawei/Cisco)命令体系不同
|
||||
- **上下文依赖**:某些命令只在特定模式下可用
|
||||
在网络运维中,通过设备内置的 `?` 帮助系统逐层探索命令,比记忆命令更可靠。
|
||||
|
||||
**解决方案**:使用设备内置的 `?` 在线帮助系统,像"剥洋葱"一样逐层探索。
|
||||
**适用场景**:
|
||||
- 文档过时或版本不匹配
|
||||
- 记不清完整命令路径
|
||||
- 不同厂商命令差异
|
||||
- 特定模式下可用命令
|
||||
|
||||
---
|
||||
|
||||
## 核心原则:从宽到窄,逐步细化
|
||||
## 五步探索法
|
||||
|
||||
### 探索路径示例:以BGP VPNv4路由查询为例
|
||||
|
||||
#### 第一步:确定顶层命令
|
||||
### Step 1: 定方向 - 从顶层开始
|
||||
```bash
|
||||
MER1#show ?
|
||||
```
|
||||
输出会列出所有 `show` 开头的命令类别:
|
||||
```
|
||||
bgp Show BGP information
|
||||
ip Show IP information
|
||||
mpls Show MPLS information
|
||||
isis Show IS-IS routing information
|
||||
...
|
||||
```
|
||||
列出所有 `show` 开头的命令类别。
|
||||
|
||||
#### 第二步:进入子命令层级
|
||||
### Step 2: 剥洋葱 - 逐层深入
|
||||
```bash
|
||||
MER1#show bgp ?
|
||||
```
|
||||
输出显示BGP相关的地址族:
|
||||
```
|
||||
ipv4 IPv4 address family
|
||||
vpnv4 VPNv4 address family
|
||||
evpn Display information about all EVPN NLRIs
|
||||
...
|
||||
MER1#show bgp ? # BGP相关地址族
|
||||
MER1#show bgp vpnv4 ? # VPNv4的单播/组播
|
||||
MER1#show bgp vpnv4 unicast ? # 可用的操作符和参数
|
||||
```
|
||||
|
||||
#### 第三步:继续深入具体类型
|
||||
```bash
|
||||
MER1#show bgp vpnv4 ?
|
||||
```
|
||||
输出显示VPNv4的单播/组播分类:
|
||||
```
|
||||
unicast Display information about all VPNv4 NLRIs
|
||||
multicast Display information about all VPNv4 multicast NLRIs
|
||||
flowspec Flow specification address family modifier
|
||||
...
|
||||
```
|
||||
### Step 3: 看提示 - 理解元符号
|
||||
关键输出中的特殊标记:
|
||||
- `<cr>` - 可直接回车执行(命令已完整)
|
||||
- `A.B.C.D` - IPv4地址占位符
|
||||
- `X:X::X:X` - IPv6地址占位符
|
||||
- `WORD` - 任意字符串(如VRF名、邻居IP)
|
||||
- `<0-32>` - 数字范围
|
||||
- `|` - 管道符,用于过滤输出
|
||||
|
||||
#### 第四步:查看可用的操作符和参数
|
||||
```bash
|
||||
MER1#show bgp vpnv4 unicast ?
|
||||
```
|
||||
**关键输出**(这是最有价值的一步):
|
||||
```
|
||||
as Autonomous system
|
||||
community Show route community information
|
||||
dampened-paths Show paths suppressed due to dampening
|
||||
detail Display detailed information about an ip prefix
|
||||
flap Show flap info
|
||||
in Show route information received from all neighbors
|
||||
labels Display BGP labels for prefixes
|
||||
neighbor Detailed information on TCP and BGP neighbor connections
|
||||
network Show route information
|
||||
rd Specify route distinguisher
|
||||
rd-by-vrf Specify route distinguisher by VRF name
|
||||
vrf Display information for a VPN Routing/Forwarding instance
|
||||
| Output modifiers (管道符,用于过滤)
|
||||
> Redirect the output to a file (重定向到文件)
|
||||
<cr> Carriage return (直接回车执行)
|
||||
```
|
||||
|
||||
#### 第五步:选择VRF相关选项继续探索
|
||||
```bash
|
||||
MER1#show bgp vpnv4 unicast vrf ?
|
||||
```
|
||||
输出显示可用的VRF实例名称:
|
||||
```
|
||||
5G_MEC VPN Routing/Forwarding instance name
|
||||
IP_RAN VPN Routing/Forwarding instance name
|
||||
test VPN Routing/Forwarding instance name
|
||||
WORD VPN Routing/Forwarding instance name (任意字符串)
|
||||
```
|
||||
|
||||
#### 第六步:查看VRF下的具体操作
|
||||
```bash
|
||||
MER1#show bgp vpnv4 unicast vrf test ?
|
||||
```
|
||||
最终得到精确命令:
|
||||
```
|
||||
detail Show route detail information
|
||||
export-unicast Export VRF routes to unicast routing table
|
||||
import-unicast Import unicast routes to VRF routing table
|
||||
in Show route information received from all neighbors
|
||||
labels Display BGP labels for prefixes
|
||||
local Display local information of a BGP neighbor
|
||||
neighbor Detailed information on TCP and BGP neighbor connections
|
||||
policy Display information about bgp advertisements under a proposed policy
|
||||
received Display information received from a BGP neighbor
|
||||
route Show route information ← 这就是我们要的!
|
||||
summary Summary of BGP neighbor status
|
||||
```
|
||||
|
||||
#### 第七步:执行最终命令
|
||||
### Step 4: 试执行 - 验证命令
|
||||
看到 `<cr>` 提示时,说明命令已完整:
|
||||
```bash
|
||||
MER1#show bgp vpnv4 unicast vrf test route
|
||||
```
|
||||
输出完整的BGP VPNv4路由表:
|
||||
|
||||
### Step 5: 记笔记 - 记录成功路径
|
||||
将验证通过的命令记录下来,形成自己的知识库。
|
||||
|
||||
---
|
||||
|
||||
## 实战案例
|
||||
|
||||
### 案例1:BGP VPNv4路由查询
|
||||
```bash
|
||||
# 7层探索路径
|
||||
show bgp ? # ipv4, vpnv4, evpn...
|
||||
-> show bgp vpnv4 ? # unicast, multicast...
|
||||
-> show bgp vpnv4 unicast ? # neighbor, network, rd, vrf...
|
||||
-> show bgp vpnv4 unicast vrf ? # VRF实例名
|
||||
-> show bgp vpnv4 unicast vrf test ? # detail, in, route...
|
||||
-> show bgp vpnv4 unicast vrf test route # 执行
|
||||
```
|
||||
15:21:26 Beijing Mon Jul 20 2026
|
||||
Current AS: 100. Other AS: 64580, 64600, 64900
|
||||
|
||||
Status codes: * valid, > best, i - internal, s - stale
|
||||
Origin codes: i - IGP, e - EGP, ? - incomplete
|
||||
Network Next Hop Metric LocPrf RtPrf Path
|
||||
### 案例2:MPLS LDP邻居查询
|
||||
```bash
|
||||
show mpls ldp ? # backoff, bindings, discovery, neighbor...
|
||||
-> show mpls ldp neighbor ? # brief, detail, instance...
|
||||
-> show mpls ldp neighbor brief instance ? # <1-65535>
|
||||
-> show mpls ldp neighbor brief instance 1 # 执行
|
||||
```
|
||||
|
||||
### 案例3:VRF环境下的Ping
|
||||
```bash
|
||||
ping ? # A.B.C.D, vrf, mpls...
|
||||
-> ping vrf ? # VRF实例名
|
||||
-> ping vrf test ? # A.B.C.D, domain
|
||||
-> ping vrf test 4.1.1.1 # 执行
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 实战案例:探索Ping和Trace命令
|
||||
## 高级技巧
|
||||
|
||||
### 案例1:VRF环境下的Ping命令
|
||||
|
||||
#### 探索过程记录
|
||||
### 技巧1:组合管道符过滤
|
||||
```bash
|
||||
# 第1层:ping后面可以跟什么?
|
||||
MER1#ping ?
|
||||
A.B.C.D Target IP address
|
||||
bier Send BIER echo messages
|
||||
ce Customer edge
|
||||
dcn DCN VRF
|
||||
domain Domain name
|
||||
evpn Send EVPN echo messages
|
||||
mpls Send MPLS echo messages
|
||||
satellite Specify satellite ID
|
||||
vpls VPLS instance
|
||||
vpws Kompella VPWS
|
||||
vrf VPN Routing/Forwarding instance name
|
||||
|
||||
# 第2层:ping vrf后面跟什么?
|
||||
MER1#ping vrf ?
|
||||
5G_MEC VRF name (1-32 characters)
|
||||
5G_OAM VRF name (1-32 characters)
|
||||
IP_RAN VRF name (1-32 characters)
|
||||
test VRF name (1-32 characters)
|
||||
WORD VRF name (1-32 characters)
|
||||
|
||||
# 第3层:ping vrf test后面跟什么?
|
||||
MER1#ping vrf test ?
|
||||
A.B.C.D Target IP address
|
||||
domain Domain name
|
||||
|
||||
# 第4层:执行完整命令
|
||||
MER1#ping vrf test 4.1.1.1
|
||||
sending 5,100-byte ICMP echo(es) to 4.1.1.1,timeout is 2 second(s).
|
||||
.....
|
||||
Success rate is 0 percent(0/5).
|
||||
show bgp vpnv4 unicast vrf test route | include 4.1.1
|
||||
show bgp ipv4 unicast summary | begin Neighbor
|
||||
```
|
||||
|
||||
### 案例2:探索MPLS LDP邻居查询
|
||||
|
||||
### 技巧2:配置模式同样适用
|
||||
```bash
|
||||
# 第1层:mpls ldp后面有什么?
|
||||
MER1#show mpls ldp ?
|
||||
backoff Show LDP session setup backoff table
|
||||
bindings Show the LDP label information base (LIB)
|
||||
discovery Show sources for locally generated LDP discovery hello PDUs
|
||||
graceful-restart Show MPLS LDP GR
|
||||
iccp Show LDP session and ICCP state information
|
||||
igp Show LDP IGP synchronization status
|
||||
instance Show LDP instance information
|
||||
interface Show per-interface LDP forwarding information
|
||||
log Show LDP log info
|
||||
neighbor Show LDP neighbor information ← 目标在这里
|
||||
parameters Show LDP configuration parameters
|
||||
|
||||
# 第2层:neighbor后面有什么?
|
||||
MER1#show mpls ldp neighbor ?
|
||||
A.B.C.D Neighbor address
|
||||
brief Brief neighbor information ← 要这个简洁版
|
||||
bvi Bvi interface
|
||||
detail Detailed neighbor information
|
||||
graceful-restart The information of LDP graceful restart neighbor
|
||||
instance The information of LDP instance ← 还可以指定实例
|
||||
|
||||
# 第3层:instance后面跟什么?
|
||||
MER1#show mpls ldp neighbor brief instance ?
|
||||
<1-65535> LDP instance id
|
||||
|
||||
# 第4层:执行完整命令
|
||||
MER1#show mpls ldp neighbor brief instance 1
|
||||
15:20:54 Beijing Mon Jul 20 2026
|
||||
Codes: D:Direct, T:Targeted, D&T:Direct&Targeted
|
||||
Total number of neigbors:0
|
||||
Operational:0 (D:0,T:0,D&T:0) (IPv4:0,IPv6:0,IPv4&IPv6:0)
|
||||
Not operational:0 (D:0,T:0,D&T:0) (IPv4:0,IPv6:0,IPv4&IPv6:0)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 高级技巧:组合使用 `?` 和其他工具
|
||||
|
||||
### 技巧1:利用 `<cr>` 提示判断命令完整性
|
||||
|
||||
当 `?` 输出中包含 `<cr>` 时,表示当前命令已经完整,可以直接执行:
|
||||
```bash
|
||||
MER1#show mpls ldp neighbor brief instance 1 ?
|
||||
<cr> ← 看到这个,就知道可以直接回车执行了
|
||||
```
|
||||
|
||||
### 技巧2:使用管道符 `|` 过滤大量输出
|
||||
|
||||
当某个命令输出太多时,用 `?` 查看可用的过滤选项:
|
||||
```bash
|
||||
MER1#show bgp vpnv4 unicast vrf test route ?
|
||||
| Output modifiers
|
||||
|
||||
MER1#show bgp vpnv4 unicast vrf test route | ?
|
||||
begin Begin with the line that matches
|
||||
count Count the number of lines that match
|
||||
exclude Exclude lines that match
|
||||
include Include lines that match
|
||||
section Print only the section that matches
|
||||
|
||||
# 实际应用:只看包含特定前缀的路由
|
||||
MER1#show bgp vpnv4 unicast vrf test route | include 4.1.1
|
||||
```
|
||||
|
||||
### 技巧3:在配置模式下同样适用
|
||||
|
||||
`?` 不仅适用于特权模式(`#`),也适用于配置模式(`(config)#`):
|
||||
```bash
|
||||
MER1#configure terminal
|
||||
MER1(config)#router bgp 100
|
||||
MER1(config-bgp-router)#neighbor ?
|
||||
A.B.C.D Neighbor IPv4 address
|
||||
X:X::X:X Neighbor IPv6 address
|
||||
peer-group Name of peer group
|
||||
|
||||
MER1(config-bgp-router)#neighbor 10.26.63.152 ?
|
||||
activate Enable the neighbor
|
||||
advertisement-interval Set minimum interval between sending routing updates
|
||||
allowas-in Allow AS in path
|
||||
...
|
||||
next-hop-self Disable the next hop calculation for this neighbor ← 关键配置!
|
||||
...
|
||||
```
|
||||
|
||||
### 技巧4:识别命令缩写规则
|
||||
|
||||
通过 `?` 可以发现命令的简写形式:
|
||||
### 技巧3:识别命令缩写
|
||||
```bash
|
||||
MER1#sh ?
|
||||
show Show running system information
|
||||
|
||||
MER1#show mpls forw ?
|
||||
forwarding-table Show MPLS forwarding-table information ← forw是forwarding的合法缩写
|
||||
sh ? # show的合法缩写
|
||||
forw ? # forwarding的合法缩写
|
||||
conf t # configure terminal的缩写
|
||||
```
|
||||
|
||||
**规律**:只要输入的字母能唯一标识一个命令,就可以缩写。例如:
|
||||
- `show` → `sh`
|
||||
- `forwarding-table` → `forw`
|
||||
- `configuration` → `conf`
|
||||
|
||||
---
|
||||
|
||||
## 常见命令树结构对比
|
||||
|
||||
### ZTE vs Huawei vs Cisco
|
||||
|
||||
| 功能 | ZTE (ZXROS) | Huawei (VRP) | Cisco (IOS) |
|
||||
|------|-------------|--------------|-------------|
|
||||
| 查看BGP VPNv4路由 | `show bgp vpnv4 unicast vrf <name> route` | `display bgp vpnv4 routing-table vpn-instance <name>` | `show bgp vpnv4 unicast vrf <name>` |
|
||||
| 查看MPLS转发表 | `show mpls forwarding-table` | `display mpls lsp` | `show mpls forwarding-table` |
|
||||
| 查看LDP邻居 | `show mpls ldp neighbor brief instance 1` | `display mpls ldp session` | `show mpls ldp neighbor` |
|
||||
| Ping VRF内地址 | `ping vrf <name> <ip>` | `ping -vpn-instance <name> <ip>` | `ping vrf <name> <ip>` |
|
||||
|
||||
**结论**:虽然命令相似,但细节有差异。**必须针对每种设备单独探索**。
|
||||
|
||||
---
|
||||
|
||||
## 错误处理与注意事项
|
||||
|
||||
### 注意1:命令前缀限制
|
||||
|
||||
某些平台可能限制特定命令的使用:
|
||||
### 技巧4:区分错误类型
|
||||
```bash
|
||||
# 如果收到 "command_not_allowed_prefix" 错误
|
||||
MER1#trace vrf test 4.1.1.1
|
||||
%Error: command_not_allowed_prefix
|
||||
```
|
||||
**原因**:`trace` 命令可能被netx等平台限制。此时应尝试:
|
||||
- 改用完整路径 `traceroute`
|
||||
- 检查权限级别
|
||||
- 使用替代命令(如通过ping逐跳测试)
|
||||
|
||||
### 注意2:区分"不完整命令"和"无匹配"
|
||||
|
||||
```bash
|
||||
# 不完整命令(Incomplete command)- 说明方向对,继续用?探索
|
||||
MER1#show bgp vpnv4 unicast vrf test
|
||||
# Incomplete command - 命令不完整,继续用?探索
|
||||
%Error 140305: Incomplete command.
|
||||
|
||||
# 无匹配(Unrecognized command)- 说明走错路了,退回上一层
|
||||
MER1#show bgp vpnv4 unicast vrf test xyz
|
||||
%Error: Unrecognized command.
|
||||
```
|
||||
|
||||
### 注意3:空格敏感性
|
||||
|
||||
```bash
|
||||
# 正确:每个层级之间有空格
|
||||
MER1#show mpls ldp neighbor brief instance 1
|
||||
|
||||
# 错误:连在一起会当成一个单词
|
||||
MER1#show mplsldpneighborbriefinstance1
|
||||
# Unrecognized command - 走错路了,退回上一层
|
||||
%Error: Unrecognized command.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 练习:自主探索以下命令
|
||||
## 常见命令树深度对比
|
||||
|
||||
请用 `?` 方法探索下列命令的完整语法(答案不唯一):
|
||||
| 功能 | ZTE (ZXROS) | 深度 |
|
||||
|------|-------------|------|
|
||||
| BGP VPNv4路由 | `show bgp vpnv4 unicast vrf <name> route` | 7层 |
|
||||
| MPLS LDP邻居 | `show mpls ldp neighbor brief instance <id>` | 6层 |
|
||||
| ISIS邻接 | `show isis adjacency` | 3层 |
|
||||
| Ping VRF | `ping vrf <name> <ip>` | 4层 |
|
||||
|
||||
---
|
||||
|
||||
## 快速参考卡片
|
||||
|
||||
```bash
|
||||
# 通用模板
|
||||
<command> ? # 查看下一级
|
||||
<command> <subcommand> ? # 继续深入
|
||||
...
|
||||
<full-command> <cr> # 执行
|
||||
|
||||
# 元符号速查
|
||||
<cr> - 直接回车执行
|
||||
WORD - 任意字符串
|
||||
A.B.C.D - IPv4地址
|
||||
X:X::X:X - IPv6地址
|
||||
<1-65535> - 数字范围
|
||||
| - 管道符(begin/include/exclude/count)
|
||||
> - 重定向到文件
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 练习任务
|
||||
|
||||
用 `?` 方法探索以下命令:
|
||||
1. 查看ISIS邻接关系
|
||||
2. 查看OSPF邻居详细信息
|
||||
3. 查看VRF IP_RAN的路由表
|
||||
4. 查看MPLS标签绑定信息
|
||||
5. 查看BGP从邻居10.26.63.152收到的路由
|
||||
|
||||
**参考答案**(实际以设备为准):
|
||||
**参考答案**:
|
||||
```bash
|
||||
# 1. ISIS邻接
|
||||
MER1#show isis adjacency
|
||||
|
||||
# 2. OSPF邻居详细
|
||||
MER1#show ip ospf neighbor detail
|
||||
|
||||
# 3. VRF IP_RAN路由
|
||||
MER1#show ip forwarding route vrf IP_RAN
|
||||
|
||||
# 4. MPLS标签绑定
|
||||
MER1#show mpls ldp bindings
|
||||
|
||||
# 5. BGP从邻居收到的路由
|
||||
MER1#show bgp vpnv4 unicast vrf test received 10.26.63.152
|
||||
show isis adjacency
|
||||
show ip ospf neighbor detail
|
||||
show ip forwarding route vrf IP_RAN
|
||||
show mpls ldp bindings
|
||||
show bgp vpnv4 unicast vrf test received 10.26.63.152
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 总结:命令探索五步法
|
||||
|
||||
1. **定方向**:从最顶层开始(`show ?`, `ping ?`, `configure ?`)
|
||||
2. **剥洋葱**:每层用 `?` 查看下一级选项,选择最相关的分支
|
||||
3. **看提示**:注意 `<cr>`、`WORD`、`A.B.C.D` 等元提示
|
||||
4. **试执行**:看到 `<cr>` 就执行,观察输出验证猜测
|
||||
5. **记笔记**:把成功的命令路径记录下来(就像本文档做的)
|
||||
|
||||
**终极心法**:不要怕敲错,`?` 永远不会嘲笑你。每个网络专家都是从不停地敲 `?` 开始的。
|
||||
|
||||
---
|
||||
|
||||
## 附录:快速参考卡片
|
||||
|
||||
```bash
|
||||
# 通用探索模板
|
||||
<command> ? # 查看下一级选项
|
||||
<command> <subcommand> ? # 继续深入
|
||||
...
|
||||
<full-command> <cr> # 看到<cr>就可以执行
|
||||
|
||||
# 特殊符号含义
|
||||
<cr> - 可以直接回车执行
|
||||
WORD - 任意字符串(通常是名字、ID等)
|
||||
A.B.C.D - IPv4地址格式
|
||||
X:X::X:X - IPv6地址格式
|
||||
<1-65535> - 数字范围
|
||||
| - 管道符,用于过滤输出
|
||||
> - 重定向到文件
|
||||
|
||||
# 经典命令树深度
|
||||
show bgp vpnv4 unicast vrf <name> route # 7层
|
||||
show mpls ldp neighbor brief instance <id> # 6层
|
||||
ping vrf <name> <ip> # 4层
|
||||
configure terminal # 2层
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**文档版本**:v1.0
|
||||
**最后更新**:2026-07-20
|
||||
**维护者**:基于真实设备(MER1)验证
|
||||
**文档版本**:v2.0(精简版)
|
||||
**最后更新**:2026-07-29
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue