resolv.conf doesn't get set on reboot when networking is configured for static ip

30,284

Solution 1

As per the resolvconf man page (example provided in man page), add the following to your /etc/network/interfaces under your static configuration:

dns-nameservers [IP address(es) of your DNS]     
dns-search      [your dns-search strings (optional)]

Solution 2

Are you sure that you provided 192.168.1.1 as the value for the DNS when you set up the static IP?

I don't know how to do this from the command line, but using the System Settings -> Network GUI should work too, no? All I'm thinking is that you want something like the screen capture below? Or am I not understanding what you are trying to do?

Network config with static IP, default route, DNS server

Note: Ignore the values in the left-hand window. Those are just my values from DHCP. I didn't bother to save the static config since I was just trying to illustrate what I was thinking.

By the way, I used 192.168.1.1 because that's what you were using. But you could also use the IPs for any valid DNS servers. For example, 8.8.8.8 and/or 208.67.222.222 should also work.

Share:
30,284

Related videos on Youtube

kenneth koontz
Author by

kenneth koontz

Updated on September 18, 2022

Comments

  • kenneth koontz
    kenneth koontz over 1 year

    I'm experiencing what appears to be a name resolution issue in Ubuntu 12.04 Server edition when configuring my computer to use static ip.

    In /etc/network/interfaces:

    # The primary network interface
    auto eth0
    iface eth0 inet static
    address 192.168.1.28
    netmask 255.255.255.0
    gateway 192.168.1.1
    

    Running $ sudo apt-get upgrade, results in a 'Failed to fetch...':

    . . . W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/universe/i18n/Translation-en_US Something wicked happened resolving 'us.archive.ubuntu.com:http' (-5 - No address associated with hostname)
    [...]
    

    When I change my /etc/network/interfaces to:

    auto eth0
    iface eth0 inet dhcp
    

    Everything works fine.

    Looking into /etc/resolv.conf provides some more hints.

    In cases where I was getting the resolving issue, resolv.conf was empty; no nameservers were specified. Then I changed to DHCP from static and restarted networking; /etc/resolv.conf got changed to: 'nameserver 192.168.1.1'.

    Switching back from DHCP to static and restarting doesn't remove the nameserver entry. But when I restarted the system with static set, resolv.conf was empty. When I restart the system with DHCP set, resolv.conf has nameserver 192.168.1.1. So, it appears that the issue is that resolve.conf is not getting written to correctly? Which package/code is responsible for writing to resolv.conf? Is there a particular package that I can take a look at open issues?

    UPDATE: istream posted a good article discussing changes to resolve.conf in 12.04. http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

    • Admin
      Admin about 12 years
      If everything works fine when you use DHCP, then what "problem" is it that you want suggestions to "fix". What does you LAN look like? What type of router are you using? (What's at 192.168.1.1?) What DNS servers do you specify when you use a static IP?
    • Admin
      Admin about 12 years
      Updated title to more accurately reflect symptom and adding more findings
    • Admin
      Admin about 12 years
      +1 for editing question and title to improve them even though you already had your answer!
  • kenneth koontz
    kenneth koontz about 12 years
    Thanks for the solution. However, I'm not using a desktop.
  • kenneth koontz
    kenneth koontz about 12 years
    What's odd though is in 11.10 I didn't have to specify dns-nameservers.
  • irrational John
    irrational John about 12 years
    @kennethkoontz I don't understand. Are you using Ubuntu server? If you are not using the typical desktop install of 12.04, please edit your question and add this information to it.
  • kenneth koontz
    kenneth koontz about 12 years
    Sorry for the confusion. I should have said, "I'm not using the desktop edition. I'm using the server edition." I'll update the question post to remove ambiguity.
  • jdthood
    jdthood almost 11 years
    That's right. In 12.04 Ubuntu started using resolvconf to handle resolv.conf. It's resolvconf that reads the dns-nameservers option in /e/n/i.