If you're looking to try your own DNS server, I actually wrote one of those for PSO, if you want to try it out... I'm assuming your PC runs Windows here (if not, then I can give you instructions for how to build the DNS server from source)...
Grab this file
and this file
and put them in the same directory together. Then, run the .exe file (I think it should pop up a DOS window, but it probably won't say anything in it). Then, instead of setting your DNS server on the Gamecube to the Sylverant one, set it to the IP address of your PC.
I can't guarantee it'll do anything, but at least it's worth a shot (and shouldn't require trying to run your Gamecube's connection through your laptop or whatnot).
This PSO_DNS program by BlueCrab works and makes MR_DNS unnecessary for connecting to Sylverant (and maybe others, too) via GC. However, it contains the old IP Address from before the server moved sometime last year while I was away. So, you have to open the CONF file with Notepad and paste the new IP Address over the old ones and save for it to connect properly. Otherwise you get a 101/102 error (I already forgot which).
Also regarding my post above about Bridge settings: I was wrong about the DNS Gateway. It should be the same as the one listed in the Network Bridge Details: 10.0.0.1. For the DNS Server, you would still use the Network Bridge IP, which is probably 10.0.0.2, but check to be sure because I don't know what else you have connected to your Router. It has been some time since I used this setup, and I feel as though I'm forgetting something... But it worked anyway.
Lastly, I attempted to connect to L33tserv to test if this fixed my hanging upon login, but I suspect the server was down because I couldn't connect no matter what I tried. Oh well.
EDIT: HAHA! I just remembered what I forgot to mention! Using MR_DNS or even when trying to connect to something like PSOserver/khyller, you ideally don't want to start the program early and have it waiting for the GC connection for too long. In my experience, it seems to go 'stale' for lack of a better term and has less likelihood of performing as intended if even connects at all if you let it hang too long without GC pinging (?) it. I don't know if this also applies to PSO_DNS, as I only just began to use it, but just a heads up anyway.