我有一个 Netlink 套接字,通过在参数中使用bind
with NF_NETLINK_CONNTRACK_DESTROY
OR'd来订阅销毁事件。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 标志。我在哪里可以找到有关这些标志的更多信息?
这些标志的存在是为了处理有关 conntrack期望
RELATED
的通知,这些通知是存储在表中并由内核处理的conntrack状态;如果正在添加、删除或修改期望,您会收到通知。该表可以由用户程序(如conntrack-tools 工具集)操作,但由内核模块(如 FTP 和 SIP 帮助程序)使用。也就是说,我从来不需要直接使用这个功能:它通常是自动处理的。