Solution 1:

Have you tried defining the names in your /etc/hosts file?

10.0.1.1                ns1 ns1.local
10.0.1.200              www www.local
2001:470:20::9999       www ns1 www.example.net ns1.example.net 

What other DNS services are operating on the local subnet? You can resolve a lot of issues by serving local DNS explicitly, and quite simply - with DNSMasq, which I whole-heartedly recommend doing.

You also may simply need to flush things out with a dscacheutil -flushcache ↩ or a good ole sudo killall mDNSResponder ↩. On the extreme end of things, which I don't suggest - you can also disable mDNSResponder (Bonjour, etc) alltogether ↝

launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist
launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Post-10.5 systems provide DNS resolution via a pretty confusing chain of directives, mandated by configd, heir-apparent to the old "system kicker". To get its status ↝ scutil --dns ↩ which shows the system order of DNS resolution, such as ↯

DNS configuration

resolver #1 domain: example.net search domain[0]: example.net nameserver[0]: 127.0.0.1 order: 200000

resolver #2 domain: local options: mdns timeout: 2 order: 300000

resolver #3 domain:254.169.in-addr.arpa options: mdns timeout: 2 order: 300200

resolver #4 domain: 8.e.f.ip6.arpa options: mdns timeout: 2 order: 300400

If you're still having problems, make sure this list "makes sense, for you" - and go from there...