我在 net/ipv4/udp.c 和 net/ipv6/udp.c 文件中使用 nf_ct_get(skb, &ctinfo) 函数来获取 udp 数据包的契约(Contract)引用。我注意到我能够在 net/ipv4/udp.c 中获取 IPV4 udp 数据包的“struct conn”引用,但无法在 net/ipv6/udp.c 中获取 IPV6 udp 的“struct conn”引用。你能就此发表一些见解吗?为了您的引用,我在 __udp4_lib_rcv() 和 __udp6_lib_rcv() 函数中放置了 Hook ,以获取对传入 udp 数据包的 conntrack 引用。
最佳答案
IPv6 UDP 协议(protocol)具有 INET6_PROTO_FINAL 特性。因此,这是最终协议(protocol)。
不再需要conntrack。它可能会无限期地加载 conntrack 模块。
查看 net/ipv6/ip6_input.c ip6_input_finish()。 nf_reset() 在 __udp6_lib_recv() 之前调用
关于linux - nf_ct_get(skb,&ctinfo) 函数获取 IPv6 udp 数据包的 netfiter conntrack 'struct conn',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48630242/