Deslocamento para sinalizadores de DNS no pacote ip é de 28 bytes e você precisa verificar os últimos 2 bits no campo de 2 bytes
A regra do u32 para isso é "28&0x000F=0x03"
Minha regra de teste é: iptables -A INPUT -m u32 -p udp --sport 53 --u32 "28&0x000F=0x03" -j LOG
BTW Gosto da idéia de usar essa regra de firewall para o DNS split horizon, testando-a em algumas de minhas redes.