/ proc / net / ip_conntrack / nf_conntrack的详细信息

我正在寻找有关linux系统上文件/ proc / net / nf_conntrack和/或/ proc / net / ip_contrack内容的详细文档。

是的,我知道,有很多实用程序可以以可读的格式向我显示这些文件的内容,但是…我想在SOHO路由器上使用Tomato USB固件(Shibby)。 软件AFAIK弃用,entware不包含任何的工具,所以我想写一个脚本,而不是他们,但我没有find这些文件的详细说明。 🙁

/proc/net/ip_conntrack的行格式与/proc/net/nf_conntrack ,只是前两列缺失。

我将尝试总结后一个文件的格式,正如我从net/netfilter/nf_conntrack_standalone.cnet/netfilter/nf_conntrack_acct.cnet/netfilter/nf_conntrack_proto_*.c内核源文件中了解的那样。 术语layer是指OSI协议层模型。

  • 第一列:网络层协议名称(例如ipv4 )。
  • 第二列:网络层协议号。
  • 第三列:传输层协议名称(例如tcp )。
  • 第四列:传输层协议号。
  • 第五列:直到输入无效的秒数。
  • 第六列(不是所有的协议):连接状态。

所有其他列都被命名( key=value )或表示标志( [UNREPLIED][ASSURED] ,…)。 一行最多可以包含两个具有相同名称的列(例如, srcdst )。 然后,第一次出现涉及请求方向,第二次出现涉及响应方向。

标志的含义:

  • [ASSURED] :在两个(即,请求和响应)方向上已经看到了流量。
  • [UNREPLIED] :还没有看到交通方面的响应。 如果连接跟踪缓存溢出,则首先丢弃这些连接。

请注意,某些列名仅出现在特定的协议中(例如,用于TCP和UDP的sportdport ,用于ICMP的typecode )。 其他列名称(如。 mark )只有在内核是使用特定选项构建时才会出现。

例子:

  • ipv4 2 tcp 6 300 ESTABLISHED src=1.1.1.2 dst=2.2.2.2 sport=2000 dport=80 src=2.2.2.2 dst=1.1.1.1 sport=80 dport=12000 [ASSURED] mark=0 use=2属于一个从主机1.1.1.2,端口2000到主机2.2.2.2,端口80建立TCP连接,响应发送到主机1.1.1.1,端口12000,在五分钟内超时。 为了这个连接,数据包在两个方向都被看到了。
  • ipv4 2 icmp 1 3 src=1.1.1.2 dst=1.1.1.1 type=8 code=0 id=32354 src=1.1.1.1 dst=1.1.1.2 type=0 code=0 id=32354 mark=0 use=2所属从主机1.1.1.2到主机1.1.1.1的一个ICMP回应请求数据包,以及从主机1.1.1.1到主机1.1.1.2的预期回应应答数据包,在三秒内超时。

响应目标主机不一定与请求源主机相同,因为请求源地址可能已被响应目标主机伪装。


请注意,以下信息可能不是最新的!

可用于所有条目的字段:

  • bytes (如果启用计费,请求和响应)
  • delta-time (如果CONFIG_NF_CONNTRACK_TIMESTAMP被使能)
  • dst (请求和响应)
  • mark (如果CONFIG_NF_CONNTRACK_MARK被启用)
  • packets (如果启用计费,请求和响应)
  • secctx (如果CONFIG_NF_CONNTRACK_SECMARK被启用)
  • src (请求和响应)
  • use
  • zone (如果CONFIG_NF_CONNTRACK_ZONES被启用)

可用于dccpsctptcpudpudplite

  • dport (请求和响应)
  • sport (要求和回应)

可用于icmp传输层协议的字段:

  • code (请求和响应)
  • id (请求和响应)
  • type (请求和响应)

可用于gre传输层协议的字段:

  • dstkey (请求和响应)
  • srckey (请求和响应)
  • stream_timeout
  • timeout

第六个字段的允许值:

  • dccp传输层协议
    • CLOSEREQ
    • CLOSING
    • IGNORE
    • INVALID
    • NONE
    • OPEN
    • PARTOPEN
    • REQUEST
    • RESPOND
    • TIME_WAIT
  • sctp传输层协议
    • CLOSED
    • COOKIE_ECHOED
    • COOKIE_WAIT
    • ESTABLISHED
    • NONE
    • SHUTDOWN_ACK_SENT
    • SHUTDOWN_RECD
    • SHUTDOWN_SENT
  • tcp传输层协议
    • CLOSE
    • CLOSE_WAIT
    • ESTABLISHED
    • FIN_WAIT
    • LAST_ACK
    • NONE
    • SYN_RECV
    • SYN_SENT
    • SYN_SENT2
    • TIME_WAIT