Nếu các clients mặc dù có tự set DNS servers, nhưng vẫn chỉ dùng DNS53, chứ không phải Secure DNS kiểu DoH hay DoT thì bác có thể add rules lên router, ép tất cả các kết nối tới cổng TCP và UDP 53 phải đi qua con pihole của bác. Giả sử con pihole có địa chỉ 192.168.10.41.
Code:
/ip firewall nat
add action=dst-nat chain=dstnat dst-port=53 in-interface-list=LAN protocol=udp \
src-address=!192.168.10.41 to-addresses=192.168.10.41
add action=dst-nat chain=dstnat dst-port=53 in-interface-list=LAN protocol=tcp \
src-address=!192.168.10.41 to-addresses=192.168.10.41
add action=masquerade chain=srcnat dst-address=192.168.10.41 \
src-address=192.168.10.0/24
Interface list LAN bác cho các interface lan (thí dụ cái bridge) và vlan của bác vào. Rule cuối là để hairpin nat trong trường hợp các thiết bị client trong dải 192.168.10.0/24 cùng với con pihole.
Nếu bác có các rules mangle thí dụ chỉnh sửa routing mark cho các thiết bị đi qua đường WireGuard, thì bác cũng nên tạo 2 rule mangles này và kéo chúng lên trên đỉnh của bảng
Code:
/ip firewall mangle
add action=accept chain=prerouting dst-port=53 protocol=udp
add action=accept chain=prerouting dst-port=53 protocol=tcp
Như thế các queries DNS sẽ không bị tác động bởi các rules còn lại của bảng mangle.
Nếu bác có cả IPv6 thì thêm 1 rules bên bảng filter, chain forward bên đó, drop tất cả kết nối ra ngoài WAN cổng UDP và TCP 53. Như thế để các thiết bị không dùng địa chỉ IPv6 của DNS resolver bên ngoài được (thí dụ 2001:4860:4860::8888 của Google), fallback về dùng DNS server IPv4. Không cần mất công cấu hình dstnat bên IPv6 làm gì, vì nếu mạng của bác nhận được prefix IPv6 động thì lại phải sửa rules mỗi khi nhà mạng cấp cho prefix mới.
Ngoài ra bác có thể "block" DoH và DoT với một số nhà cung cấp quen thuộc. Block DoT thì block luôn dst-port 853. Còn block DoH thì bác tìm một số cái DoH hay dùng, cho địa chỉ IPv4, IPv6 của bon nó vào address list rồi tạo filter rules drop dst-address-list đó với dst-port 443 trên cả 2 tường lửa IPv4 và IPv6. Bác có thể tham khảo danh sách địa chỉ IP ở đây
GitHub - crypt0rr/public-doh-servers: A simple list with public DNS-over-HTTPS (DOH) providers so you can easily block them. (https://github.com/crypt0rr/public-doh-servers). Như thế các thiết bị đó sẽ phải tạm thời tắt secure DNS và quay sang dùng DNS53. Các rules drop bên IPv4 bác nên thêm
src-address=!192.168.10.41 (thay bằng địa chỉ con pihole) để tạo ngoại lệ cho trường hợp pihole có cấu hình sử dụng DoH/DoT.