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工具, 内核驱动, 日志审计, 网络协议, 网络抓包