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

17 python linux kernel

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

是的,我知道,有许多实用工具可以用人类可读的格式向我展示这些文件的内容,但是......我想在SOHO路由器上使用Tomato USB固件(Shibby).软件AFAIK已弃用且entware不包含任何实用程序,因此我想编写脚本而不是它们,但我没有找到这些文件的详细说明.:(

Abr*_*as2 34

除了前两列缺失之外,行的格式/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]:尚未在响应方向上看到流量.如果连接跟踪缓存溢出,则首先删除这些连接.

请注意,一些列名只针对特定的协议(例如,sportdport对TCP和UDP,typecodeICMP协议).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已启用)

可用于字段dccp,sctp,tcp,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