NF_NETLINK_CONNTRACK_EXP_DESTROY 和 NF_NETLINK_CONNTRACK_DESTROY 之间有什么区别?

NF_NETLINK_CONNTRACK_EXP_DESTROY 和 NF_NETLINK_CONNTRACK_DESTROY 之间有什么区别?

bind我有一个 Netlink 套接字,通过使用with NF_NETLINK_CONNTRACK_DESTROYOR 到参数中来订阅销毁事件groups

当浏览时nfnetlink_compat.h不过,我发现除了 NEW、UPDATE 和 DESTROY 之外还有更多标志 - 每个标志还有一个 EXP_XYZ 变体:

#define NF_NETLINK_CONNTRACK_NEW            0x00000001
#define NF_NETLINK_CONNTRACK_UPDATE         0x00000002
#define NF_NETLINK_CONNTRACK_DESTROY        0x00000004
#define NF_NETLINK_CONNTRACK_EXP_NEW        0x00000008
#define NF_NETLINK_CONNTRACK_EXP_UPDATE     0x00000010
#define NF_NETLINK_CONNTRACK_EXP_DESTROY    0x00000020

我在任何地方都找不到记录的 EXP_XYZ 标志。我在哪里可以找到有关这些标志的更多信息?

答案1

这些标志的存在是为了处理有关 conntrack 的通知期望RELATED,它们是存储在表中并由内核处理的conntrack状态;如果添加、删除或修改期望,您会收到通知。该表可以由用户程序操作,例如conntrack-tools 工具集但是由 FTP 和 SIP 帮助程序等内核模块使用。

也就是说,我从来没有直接使用过这个功能:它通常是自动处理的。

相关内容