I'm having some trouble with my home network, and was wondering if anyone could shed some light on the causes, and hopefully, solutions, as I'm not clear on how DNS is actually supposed to work, so I'm not sure if I'm doing it right anyway...

I have a dual-homed Linux server running my home network. It does DHCP, NAT, DNS, and other goodies. ETH1 connects to my wireless router, running on it's own subnet. Basically, I run the network my wifi and router on as a DMZ of sorts, so it's all firewalled off from my wired network.

It's the router that seems to be the cause, but only my vista client seems to have an issue.

Because of this, when a wireless client connects, it really needs to use my DNS server to resolve my internal hostnames, as them trying to use the public IP breaks things due to the routing. Annoyingly, the router won't let me specify the DNS servers for the DHCP server it uses, forcing it's own address for the DNS, and proxying it off to those specified.

Problem is, when vista makes a request, it goes off, and my DNS server sees it, and replies. The vista machine gets the reply, but always times out. All of the traffic side of things is monitored using wireshark.

Is vista ignoring the reply because it's come from another host? How can I fix this?

Is this how DNS is supposed to work, or is my router in need of a bugfix?