10

My Ubuntu server will not accept my static IP assignment. Instead, I keep getting a DHCP lease. Network Manager is not installed. Below is the output of cat /etc/network/interfaces

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.128
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.120 192.168.1.125
dns-domain mynetwork.local
dns-search mynetwork.local

Output of ip addr

Questions:

  1. Why doesn't Ubuntu accept the static IP assignment? The Interfaces file seems to be ignored.

  2. What is allowing a DHCP lease to be assigned?

Sajad Bahmani
  • 1,097
  • 1
  • 14
  • 30
Paul H
  • 103
  • 1
  • 1
  • 5

1 Answers1

25

The package ifupdown and so /etc/network/interfaces are no longer used. Ubuntu 17.10 Server uses the package netplan instead, which configures systemd-networkd.

Make sure you use the default content for the config file /etc/network/interfaces

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# Generated by debian-installer.
# The loopback interface
auto lo
iface lo inet loopback

And create this netplan config file for a static IPV4 address (works for me): /etc/netplan/01-netcfg.yaml.

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.0.97/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]

Make sure you use the correct network interface name ("ens3" in this example).

Make sure you use the correct DNS servers (nameservers->addresses) for your network environment.

Once this file has been created, run the following commands as root to test & activate the configuration:

sudo netplan --debug generate
sudo netplan apply
Aaron N. Brock
  • 113
  • 1
  • 6
Rolf
  • 635
  • 7
  • 7
  • 1
    Can also stick to eth0 naming conventions(needed by some scripts/programs) by adding the quoted section to your `/etc/defaults/grub` and running `update-grub`. `GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0"` – m_krsic Nov 03 '17 at 18:18
  • @m_krsic No. You can change the interface name via `netplan` by using `set-name`. More info is [here](http://manpages.ubuntu.com/manpages/en/man5/netplan.5.html). – Andrejs Cainikovs Nov 08 '17 at 14:33
  • 1
    @AndrejsCainikovs Many wish to disable PNIN all together, hence the official upstream method I posted https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ – m_krsic Nov 08 '17 at 17:15
  • Or just `apt-get install ifupdown` and `/etc/network/interfaces` will continue to work like in the past – Chris Mar 25 '18 at 19:17