#netlink #order #family #netlink-family #nlmsghdr #nlmsg #nlmsg-flags

app nl-dump

一个netlink(主要是RT_NETLINK)解封装器

2个版本

使用旧的Rust 2015

0.1.3 2016年2月19日
0.1.2 2016年2月6日

#45 in #netlink

Apache-2.0/BSD-3-Clause-Clear/MIT

43KB
1K SLoC

nl-dump

为了构建nl-dump,您必须在您的路径中安装rust-enum-derive(可执行文件)v0.3.3或更高版本。例如

$ git clone https://github.com/TaborKelly/rust-enum-derive
$ cd rust-enum-derive
$ cargo build
$ export PATH=$PATH:`pwd`/target/debug

更好的做法是,在您的路径中的某个地方添加一个指向rust-enum-derive的符号链接。 nl-dump是netlink(主要是NETLINK_ROUTE)数据包的解封装器。它从命令行运行,为已捕获到pcap文件中的NETLINK_ROUTE提供主要是可读的输出。

Usage: nl-dump [options]

Options:
    -i, --input NAME    pcap input file
        --netlink_family FAMILY
                        filter for one netlink_family (NETLINK_ROUTE,
                        NETLINK_GENERIC, etc)
    -h, --help          print this help menu

例如

$ nl-dump -i netlink.pcapng
packet[1] = [ {
        netlink_family: NETLINK_ROUTE,
        nlmsghdr: {
            nlmsg_len: 32,
            nlmsg_type: NrMsgType(RTM_NEWLINK),
            nlmsg_flags: 0x5 (NLM_F_REQUEST|NLM_F_ACK),
            nlmsg_seq: 1452822917,
            nlmsg_pid: 3128951544,
        },
        nlmsg: Ifinfomsg( {
                ifi_family: AF_UNSPEC,
                ifi_type: 0,
                ifi_index: 2,
                ifi_flags: 0x1003 (IFF_UP|IFF_BROADCAST|IFF_MULTICAST),
                ifi_change: 0,
                ifi_attr: [  ],
            } )
    }
]
packet[2] = [ {
        netlink_family: NETLINK_GENERIC,
        nlmsghdr: {
...

依赖项

~5MB
~93K SLoC