Skip to content

Commit a41d511

Browse files
committed
rename 'intel' mode to 'diag' mode
Signed-off-by: Menglong Dong <imagedong@tencent.com>
1 parent d131249 commit a41d511

2 files changed

Lines changed: 20 additions & 17 deletions

File tree

README.md

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,11 @@ nettrace: a tool to trace skb in kernel and diagnose network problem
139139

140140
Usage:
141141
-s, --saddr filter source ip address
142+
--saddr6 filter source ip v6 address
142143
-d, --daddr filter dest ip address
144+
--daddr6 filter dest ip v6 address
143145
--addr filter source or dest ip address
146+
--addr6 filter source or dest ip v6 address
144147
-S, --sport filter source TCP/UDP port
145148
-D, --dport filter dest TCP/UDP port
146149
-P, --port filter source or dest TCP/UDP port
@@ -150,9 +153,9 @@ Usage:
150153
--ret show function return value
151154
--detail show extern packet info, such as pid, ifname, etc
152155
--basic use 'basic' trace mode, don't trace skb's life
153-
--intel enable 'intel' mode
154-
--intel-quiet only print abnormal packet
155-
--intel-keep don't quit when abnormal packet found
156+
--diag enable 'diagnose' mode
157+
--diag-quiet only print abnormal packet
158+
--diag-keep don't quit when abnormal packet found
156159
--hooks print netfilter hooks if dropping by netfilter
157160
158161
-v show log information
@@ -166,9 +169,9 @@ Usage:
166169
- `ret`:跟踪和显示内核函数的返回值
167170
- `detail`:显示跟踪详细信息,包括当前的进程、网口和CPU等信息
168171
- `basic`:启用`basic`跟踪模式。默认情况下,启用的是生命周期跟踪模式。启用该模式后,会直接打印出报文所经过的内核函数/tracepoint。
169-
- `intel`:启用诊断模式
170-
- `intel-quiet`:只显示出现存在问题的报文,不显示正常的报文
171-
- `intel-keep`:持续跟踪。`intel`模式是下,默认在跟踪到异常报文后会停止跟踪,使用该参数后,会持续跟踪下去。
172+
- `diag`:启用诊断模式
173+
- `diag-quiet`:只显示出现存在问题的报文,不显示正常的报文
174+
- `diag-keep`:持续跟踪。`diag`模式下,默认在跟踪到异常报文后会停止跟踪,使用该参数后,会持续跟踪下去。
172175
- `hooks`:结合netfilter做的适配,详见下文
173176
174177
下面我们首先来看一下默认模式下的工具使用方法。
@@ -301,7 +304,7 @@ begin tracing......
301304
302305
### 3.2 诊断模式
303306
304-
使用方式与上面的一致,加个`intel`参数即可使用诊断模式。上文的生命周期模式对于使用者的要求比较高,需要了解内核协议栈各个函数的用法、返回值的意义等,易用性较差。诊断模式是在生命周期模式的基础上,提供了更加丰富的信息,使得没有网络开发经验的人也可进行复杂网络问题的定位和分析。
307+
使用方式与上面的一致,加个`diag`参数即可使用诊断模式。上文的生命周期模式对于使用者的要求比较高,需要了解内核协议栈各个函数的用法、返回值的意义等,易用性较差。诊断模式是在生命周期模式的基础上,提供了更加丰富的信息,使得没有网络开发经验的人也可进行复杂网络问题的定位和分析。
305308
306309
#### 3.2.1 基本用法
307310
@@ -312,7 +315,7 @@ begin tracing......
312315
- `ERROR`:异常信息,报文发生了问题(比如被丢弃)。
313316
314317
```shell
315-
./nettrace -p icmp --intel --saddr 192.168.122.8
318+
./nettrace -p icmp --diag --saddr 192.168.122.8
316319
begin trace...
317320
***************** ffff889fad356200 ***************
318321
[3445.575957] [__netif_receive_skb_core] ICMP: 192.168.122.8 -> 10.123.119.98 ping request, seq: 0
@@ -344,10 +347,10 @@ begin trace...
344347
NAT happens (packet address will change)
345348
```
346349
347-
如果当前报文存在`ERROR`,那么工具会给出一定的诊断修复建议,并终止当前诊断操作。通过添加`intel-keep`可以在发生`ERROR`事件时不退出,继续进行跟踪分析。下面是发生异常时的日志:
350+
如果当前报文存在`ERROR`,那么工具会给出一定的诊断修复建议,并终止当前诊断操作。通过添加`diag-keep`可以在发生`ERROR`事件时不退出,继续进行跟踪分析。下面是发生异常时的日志:
348351
349352
```shell
350-
./nettrace -p icmp --intel --saddr 192.168.122.8
353+
./nettrace -p icmp --diag --saddr 192.168.122.8
351354
begin trace...
352355
***************** ffff889fb3c64f00 ***************
353356
[4049.295546] [__netif_receive_skb_core] ICMP: 192.168.122.8 -> 10.123.119.98 ping request, seq: 0
@@ -397,7 +400,7 @@ end trace...
397400
网络防火墙是网络故障、网络不同发生的重灾区,因此`netfilter`工具对`netfilter`提供了完美适配,包括老版本的`iptables-legacy`和新版本的`iptables-nft`。诊断模式下,`nettrace`能够跟踪报文所经过的`iptables`表和`iptables`链,并在发生由于iptables导致的丢包时给出一定的提示,上面的示例充分展现出了这部分。出了对iptables的支持,`nettrace`对整个netfilter大模块也提供了支持,能够显示在经过每个HOOK点时对应的协议族和链的名称。除此之外,为了应对一些注册到netfilter中的第三方内核模块导致的丢包问题,nettrace还可以通过添加参数`hooks`来打印出当前`HOOK`上所有的的钩子函数,从而深入分析问题:
398401
399402
```shell
400-
./nettrace -p icmp --intel --saddr 192.168.122.8 --hooks
403+
./nettrace -p icmp --diag --saddr 192.168.122.8 --hooks
401404
begin trace...
402405
***************** ffff889faa054500 ***************
403406
[5810.702473] [__netif_receive_skb_core] ICMP: 192.168.122.8 -> 10.123.119.98 ping request, seq: 943
@@ -451,7 +454,7 @@ end trace...
451454
端口未监听导致的丢包:
452455
453456
```shell
454-
./nettrace --intel --intel-quiet
457+
./nettrace --diag --diag-quiet
455458
begin trace...
456459
***************** ffff888f97730ee0 ***************
457460
[365673.326016] [ip_output ] TCP: 127.0.0.1:40392 -> 127.0.0.1:9999 seq:3067626996, ack:0, flags:S
@@ -485,7 +488,7 @@ begin trace...
485488
XDP导致的丢包(XDP转发会给提示):
486489
487490
```shell
488-
./nettrace -p icmp --intel --intel-quiet
491+
./nettrace -p icmp --diag --diag-quiet
489492
begin trace...
490493
***************** ffff889f015acc00 ***************
491494
[18490.607809] [__netif_receive_skb_core] ICMP: 192.168.122.8 -> 10.123.119.98 ping request, seq: 0

src/nettrace.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,17 @@ static void do_parse_args(int argc, char *argv[])
4949
.desc = "use 'basic' trace mode, don't trace skb's life",
5050
},
5151
{
52-
.lname = "intel", .dest = &trace_args->intel,
52+
.lname = "diag", .dest = &trace_args->intel,
5353
.type = OPTION_BOOL,
54-
.desc = "enable 'intel' mode",
54+
.desc = "enable 'diagnose' mode",
5555
},
5656
{
57-
.lname = "intel-quiet", .dest = &trace_args->intel_quiet,
57+
.lname = "diag-quiet", .dest = &trace_args->intel_quiet,
5858
.type = OPTION_BOOL,
5959
.desc = "only print abnormal packet",
6060
},
6161
{
62-
.lname = "intel-keep", .dest = &trace_args->intel_keep,
62+
.lname = "diag-keep", .dest = &trace_args->intel_keep,
6363
.type = OPTION_BOOL,
6464
.desc = "don't quit when abnormal packet found",
6565
},

0 commit comments

Comments
 (0)