Ответ 1
Формат строки из /proc/net/ip_conntrack
такой же, как для /proc/net/nf_conntrack
, за исключением того, что первые два столбца отсутствуют.
Я попытаюсь обобщить формат последнего файла, так как я понимаю его из net/netfilter/nf_conntrack_standalone.c
, net/netfilter/nf_conntrack_acct.c
и исходные файлы ядра net/netfilter/nf_conntrack_proto_*.c
. Термин layer
относится к модель уровня протокола OSI.
- Первый столбец: имя протокола сетевого уровня (например,
ipv4
). - Второй столбец: номер протокола сетевого уровня.
- Третий столбец: имя протокола уровня передачи (например,
tcp
). - Четвертый столбец: номер протокола уровня передачи.
- Пятый столбец: секунды, пока запись не будет признана недействительной.
- Шестой столбец (Не все протоколы): Состояние подключения.
Все остальные столбцы называются (key=value
) или представляют флаги ([UNREPLIED]
, [ASSURED]
,...). Строка может содержать до двух столбцов с одинаковым именем (например, src
и dst
). Затем первое вхождение относится к направлению запроса, а второе вхождение относится к направлению ответа.
Значение флагов:
-
[ASSURED]
: трафик просматривается в обоих направлениях (т.е. запрос и ответ). -
[UNREPLIED]
: Трафик еще не видел в направлении ответа. В случае переполнения кеша отслеживания соединений эти соединения сначала удаляются.
Обратите внимание, что некоторые имена столбцов отображаются только для определенных протоколов (например, sport
и dport
для TCP и UDP, type
и code
для ICMP). Другие имена столбцов (например, 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
принадлежит установленному TCP-соединению от хоста 1.1.1.2, порт 2000, к хосту 2.2.2.2, порт 80, из которого ответы отправляются на хост 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
принадлежит к пакету запроса эхо ICMP от хоста 1.1.1.2 к хосту 1.1.1.1 с ожидаемым пакетом ответа эха от хоста 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
, udp
и udplite
протоколы уровня передачи:
-
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
-