On Tue, Feb 03, 2026 at 11:45:40AM +0100, Alexander Bluhm wrote:
> On Sat, Jan 31, 2026 at 01:08:36PM -0800, William B. wrote:
> > I am showing no divert listener for the Suricata package despite following
> > the package documentation and the listener itself being referenced in the
> > Suricata log output.
> 
> Looks like divert packet sockets are not exported by kernel.  Diff
> below adds this feature.
> 
> root@ot29:.../~# suricata -d 700
> i: suricata: This is Suricata version 7.0.7 RELEASE running in SYSTEM mode
> W: detect: No rule files match the pattern /var/suricata/rules/suricata.rules
> W: detect: 1 rule files specified, but no rules were loaded!
> i: threads: Threads created -> RX: 1 W: 6 TX: 1 FM: 1 FR: 1   Engine started.
> 
> root@ot29:.../~# netstat -an -p divert
> Active Internet connections (including servers)
> Proto   Recv-Q Send-Q  Local Address          Foreign Address        IP-Proto
> divert       0      0  *.700                  *.*                    0
> 
> > This prevents IPS functionality from working.
> 
> No, there must be some other reason, why it does not work for you.
> 
> > There is no such listener:
> > netstat -an | grep LISTEN
> 
> It is not a LISTEN socket, they only exists fot TCP.  Your grep is
> wrong.
> 
> bluhm
> 

Makes sense. OK mvs@

> Index: kern/kern_sysctl.c
> ===================================================================
> RCS file: /mount/openbsd/cvs/src/sys/kern/kern_sysctl.c,v
> diff -u -p -r1.483 kern_sysctl.c
> --- kern/kern_sysctl.c        23 Sep 2025 08:00:48 -0000      1.483
> +++ kern/kern_sysctl.c        3 Feb 2026 10:29:05 -0000
> @@ -100,6 +100,7 @@
>  #include <netinet/tcp_var.h>
>  #include <netinet/udp.h>
>  #include <netinet/udp_var.h>
> +#include <netinet/ip_divert.h>
>  #include <netinet6/ip6_var.h>
>  
>  #ifdef DDB
> @@ -1768,6 +1769,12 @@ do {                                                   
>                 \
>                       FILLINPTABLE(&rawcbtable);
>  #ifdef INET6
>                       FILLINPTABLE(&rawin6pcbtable);
> +#endif
> +#if NPF > 0
> +                     FILLINPTABLE(&divbtable);
> +#ifdef INET6
> +                     FILLINPTABLE(&divb6table);
> +#endif
>  #endif
>               }
>               fp = NULL;
> 

Reply via email to