Thank you for the replies.
I did do the things you suggested.
It turned out I had two firewall rules for the DMZ. One allowed all TCP traffic. Another allowed all ICMP traffic. Of course, DNS uses UDP. I added UDP to the list of allowed traffic, and DNS worked great.
Then I had trouble with Windows Update (Microsoft Update). At that point, I just allowed all protocols, and now that works, too.
I'm in the process of figuring out the virtual IPs, and that seems to be working.
Thanks a lot!