Estoy escribiendo un código para crear una "red Wi-Fi semipública" con credenciales de usuario.
Digo semipública porque sigue siendo una red Wi-Fi privada (todo el tráfico está encriptado) pero está configurada como pública en la interfaz Wi-Fi, para poder conectarse sin contraseña de Wi-Fi.
En el lado de mi servidor/enrutador, necesito interceptar cada paquete, verificar sus derechos y luego volver a enviarlo o descartarlo. Para eso, utilicé IOCTL y configuré una interfaz tap ("enrutador intermedio") que captura paquetes en cada subred y los reenvía o descarta según corresponda. Eso funciona muy bien: los paquetes en una subred no pueden ir a otra sin ser procesados por mi código. Pero no puedo evitar que una aplicación envíe paquetes no autorizados y sin cifrar a las redes (sin establecer una regla en iptables para redirigir todo a mi interfaz tap, excepto mi API).
Pero creo que esa manera parece ser una especie de "truco". Lo que me gustaría hacer es hacer que el kernel llame a mi código para realizar el paso de enrutamiento.