21

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

是的,我知道,有许多实用程序可以以人类可读的格式向我显示这些文件的内容,但是......我想在 SOHO 路由器上使用 Tomato USB 固件(由 Shibby 提供)。optware AFAIK 已弃用,entware 不包含任何这些实用程序,所以我想编写一个脚本而不是它们,但我没有找到这些文件的详细描述:(

4

2 回答 2

46

from 行的格式/proc/net/ip_conntrack与 for 相同/proc/net/nf_conntrack,只是缺少前两列。

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

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

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

标志的含义:

  • [ASSURED]:在两个(即请求和响应)方向上都看到了流量。
  • [UNREPLIED]: 在响应方向上还没有看到流量。万一连接跟踪缓存溢出,这些连接首先被丢弃。

请注意,某些列名仅针对特定协议出现(例如TCPsportdportUDPtype以及codeICMP)。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启用)

dccpsctptcp和传输层协议可用的字段udpudplite

  • 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
于 2013-04-24T16:59:28.463 回答
-1

该文件ip_conntrack仅包含ipv4特定的 conntrack 条目,而同时nf_conntrack包含ipv4ipv6协议 conntrack 条目。

nf_conntrack使用
net/netfilter/nf_conntrack_standalone.c
中的代码向 proc 文件系统注册文件, 而通过net/netfilter/nf_conntrack_l3proto_ipv4_compat.cip_conntrack中的代码向 proc 文件系统注册文件

于 2018-05-31T07:45:21.277 回答