windows 7 - Can ping IP address and nslookup hostname but cannot ping hostname

06
2014-04
  • Puddingfox

    I have a DNS server set up on one of my machines using BIND 9.7 Everything works fine with it. On my Windows 7 desktop, I have statically-assigned all network values. I have one DNS server set -- my DNS server. On my desktop,

     I can ping a third machine by IP fine.
     I can nslookup the hostname of the third machine fine.
     When I ping the hostname, it says it cannot find the host.
    

    /

    C:\Users\James>nslookup icecream
    Server:  cake.my.domain
    Address:  xxx.xxx.6.3
    
    Name:    icecream.my.domain
    Address:  xxx.xxx.6.9
    
    
    C:\Users\James>ping xxx.xxx.6.9
    
    Pinging xxx.xxx.6.9 with 32 bytes of data:
    Reply from xxx.xxx.6.9: bytes=32 time<1ms TTL=255
    Reply from xxx.xxx.6.9: bytes=32 time<1ms TTL=255
    Reply from xxx.xxx.6.9: bytes=32 time<1ms TTL=255
    Reply from xxx.xxx.6.9: bytes=32 time<1ms TTL=255
    
    Ping statistics for xxx.xxx.6.9:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 0ms, Maximum = 0ms, Average = 0ms
    
    C:\Users\James>ping icecream
    Ping request could not find host icecream. Please check the name and try again.
    

    I have also specified the search domain as my.domain

    • xxx.xxx and my.domain substituted for security

    Why can I not ping by hostname? I also can not ping using the FQDN. The problem is that this problem is shared by all applications that resolve hostnames. I cannot use PuTTY to SSH to my machines by hostname; only by IP

  • Answers
  • Diskilla

    You could try editing your hosts file. Put there the hostnames and ip-adresses of your other machines. If thats not working try this: Your Router should be able to handle dns-tables for itself. Try to temporarly shut down your dns-server and clear all dns caches on all machines. Then restart your router and try it again.

  • 8088

    I faced the same problem in my network. When you use this command:

    ping icecream
    

    It uses WINS server since you have used icecream not icecream.my.domain.

    When looking for such words, Windows looks for NETBIOS names, but when you look for complete domain records, it will look in the DNS server. You can use one of the solutions below:

    1. Make sure you have correct records for that station in your WINS server.
    2. Use the complete domain name instead of using the host file. E.g. icecream.my.domain
  • 8088

    You don't have DNS suffixes configured. Either configure them, or use FQDN like this and it should work:

    ping icecream.my.domain
    
  • bendiy

    I'm looking for a permanent solution to this problem. I don't just have a problem with ping icecream, but also ping icecream.my.domain. It doesn't happen all the time, just randomly on one computer. ipconfig /flushdns fixes it sometimes and rebooting work as well, but it's not a permanent solution.

    I just tried this:

    Based on this:

  • user165568

    To disable this behaviour, disable Negative Caching by setting the value of NegativeCacheTime to 0 at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ Dnscache\Parameter


  • Related Question

    linux - added entry to hosts file (ubuntu); can ping ok; cannot nslookup
  • user2897

    added entry to /etc/hosts

     127.0.0.1    testjd.com
    

    can ping ok

    ping testjd.com
    
    PING test.com (127.0.0.1) 56(84) bytes of data.
    64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.100 ms
    

    but nslookup (and apache2 config) can't resolve the new name...

    nslookup testjd.com
    ;; connection timed out; no servers could be reached
    
    sudo /etc/init.d/apache2 reload
    [error] (EAI 2)Name or service not known: Could not resolve host name > -- ignoring!
    

    note: cat /etc/host.conf

    order hosts,bind
    multi on
    

    what i ultimately want to achieve is for my apache2 config to be able to resolve the new local name (note: i configured a virtualhost for testjd.com, but i can't get past the "resolve host name" problem shown above)

    thanks.


  • Related Answers
  • John T

    This is because the nslookup command works with a DNS, and your DNS can't find testjd.com. You can use the host command instead, which will interact with your hosts file.

    john@awesome:~$ host localhost
    localhost has address 127.0.0.1
    localhost has IPv6 address ::1
  • Thomas Bratt

    To use both the hosts file and a DNS Server, use getent. For example:

    getent ahosts <hostname>


    Notes:

    • As John T answered, nslookup will use a DNS server and the /etc/hosts file is not a DNS server
    • DNS configuration can be found in /etc/resolv.conf
    • Name service (including the hosts file) can be found at /etc/nsswitch.conf