How to prevent DNS leak on Windows, Mac and iOS?

Hi.

I have the same problem on all platforms, so I decided to open this singe topic to ask for help on multi-platform.

I’m using Avast Premium Security on Windows, iOS and macOS.
I have noticed recently on all 3 platforms my DNS is leaking. I’ve been using safer.com and dnsleaktest.com to test.

On iOS, If I turn on the VPN and also web protection it is show that my queries are going through my ISP DNS servers and Cisco OpenDNS servers. Every single time I load a page, it is different. One time ISP, other time OpenDNS. Never use the Avast DNS server.
If I turn on the VPN and turn off web protection, then my queries are going through the Avast DNS server only. But I have web protection turned off.

On Windows and macOS it is show that my queries are going through my ISP DNS servers and Avast DNS server. In this case I almost never use the Avast DNS server, 99.99% of times my requests are going through my ISP DNS server and never the Avast DNS server.

Could anyone please share some ideas how to solve this problem? Or is it normal, am I supposed to subscribe to SecureLine VPN to avoid DNS leaks?

Thanks.