hwipl/smc-llc
GitHub: hwipl/smc-llc
smc-llc 是一个用 Go 编写的 SMC LLC 协议流量捕获与解析工具,帮助开发者和网络工程师分析基于 RoCE 的 SMC 连接建立过程。
Stars: 1 | Forks: 0
# smc-llc
smc-llc 是一个命令行工具,用于从网络接口捕获 SMC LLC 流量,或者从 pcap 文件中读取并解析 SMC LLC 消息。LLC 消息是 [SMC 协议](https://www.rfc-editor.org/info/rfc7609) 的一部分,用于在通信双方之间通过 RoCE 设备建立 SMC 连接。尽管 LLC 消息是该工具的主要关注点,但它也能捕获并解析 RoCEv1 和 RoCEv2 的 GRH 与 BTH,以及 SMC CDC 消息。
## 安装
你可以使用 go 工具将 smc-llc 及其依赖下载并安装到你的 GOPATH 或 GOBIN 中:
```
$ go install github.com/hwipl/smc-llc/cmd/smc-llc
```
## 用法
你可以使用以下命令行参数运行 `smc-llc`:
```
-f file
read packets from a pcap file and set it to file
-http address
use http server output and listen on address (e.g.: :8000 or
127.0.0.1:8080)
-i interface
read packets from a network interface (default) and set it to interface
-pcap-filter filter
set pcap packet filter to filter (e.g.: "not port 22")
-pcap-maxpkts number
set maximum packets to capture to number (may require pcap-timeout
argument)
-pcap-maxtime seconds
set maximum capturing time to seconds (may require pcap-timeout
argument)
-pcap-promisc
set network interface to promiscuous mode (default true)
-pcap-snaplen milliseconds
set pcap timeout to milliseconds (default 2048)
-pcap-timeout milliseconds
set pcap timeout to milliseconds
-show-bth
show BTH of messages
-show-grh
show GRH of messages
-show-hex
show hex dumps of messages
-show-other
show non-LLC/CDC messages
-show-reserved
show reserved message fields
-show-timestamps
show timestamps of messages (default true)
```
### 示例
你可以使用命令行参数 `-i` 来指定网络接口。请确保你的用户有权限在该网络接口上捕获流量。例如,你可以以 root 用户身份使用以下命令在 `eth0` 接口上捕获数据包:
```
# smc-llc -i eth0
```
或者,你可以使用命令行参数 `-f` 从 pcap 文件中读取数据包。例如,你可以使用以下命令从 pcap 文件 `dump.pcap` 中读取数据包:
```
$ smc-llc -f dump.pcap
```
你还可以使用 [ibdump](https://github.com/Mellanox/ibdump) 工具直接从本地 Mellanox infiniband 设备捕获数据包,并使用以下命令将生成的 pcap 文件(例如 `sniffer.pcap`)加载到 smc-llc 中:
```
$ smc-llc -f sniffer.pcap
```
标签:Go, Ruby工具, 内核驱动, 日志审计, 网络协议, 网络抓包