If, for instance, I go to whatismyip.com, it still shows my ISP ip address. If I go to dnsleaktest.com, that appears to be working, as it shows the DNS servers of the VPN.
I have specified public DNS servers both for my NIC and the vpn connection.
I have used this same VPN on different distros (both on the same physical box and in VMs) and it worked as expected. Traffic routed over the tunnel and no DNS leaks.
You’d do better to troubleshoot and verify packet routing if you inspected your routing table.
Did you mistakenly say you configured public DNS for your VPN connection? Did you really mean private DNS, else of course if you configure public, then you will query public DNS servers.
If you don’t configure private DNS servers, it’s well known that your DNS traffic won’t be private… DNS traffic will be routed outside your tunnel. You also may want to consider where your private DNS servers are and whether they’re reachable (if not, then if you have public DNS configured as secondary DNS, those would be queried).