I'm trying to connect a Windows XP machine to the Internet via my router / ADSL modem at home. When I set up a dialup connection, the machine is able to resolve external domain names. When I just plug it in without dialling up, it will not resolve the names. It can resolve names of other machines internal to the network, and other machines can ping it. It can ping the router and external IPs without needing to dial up.
The router and network are absolutely fine for 4 other machines on the network - Windows 7 and Linux boxes, as well as my Android phone, none of which require dial-up connections.
The same behaviour occurs regardless of whether the firewall is on or off.
EDIT: Everything works when I hardcode in the correct default gateway and DNS server. When I leave all the stuff blank, it breaks again.