7

Ubuntu 17.10 Server uses the package netplan instead of /etc/network/interfaces.

I have created the /etc/netplan/01-netcfg.yaml

Like described here: Ubuntu 17.10 will not accept static IP

# 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]

The default netmask in netplan is: 255.255.255.0

How can I change/set the netmask e.g. 255.255.255.1?

16

Netmask cannot be 255.255.255.1. Netmask for class C addresses can be:

Prefix size         | Subnet mask   
/24                 | 255.255.255.0 
/25                 | 255.255.255.128
/26                 | 255.255.255.192
/27                 | 255.255.255.224
/28                 | 255.255.255.240
/29                 | 255.255.255.248
/30                 | 255.255.255.252

Based on this you configuration in .yaml can be

# 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/25]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]

Or some appropriate netmask.

Please keep in mind that ip address of host and gateway must be in the same subnet.

1
  • I had to configure netmask 255.255.255.192 and with /26 works. Great, thanks! – alpha kevin Nov 5 '17 at 15:04
4

You set the netmask with CIDR notation in the addresses, so /24 is 255.255.255.0, /25 is 255.255.255.128, /28 is 255.255.255.240, etc.

Here is a working example from https://netplan.io/examples

network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      addresses:
        - 10.10.10.2/24
      dhcp4: no
      gateway4: 10.10.10.1
      nameservers:
          addresses: [8.8.8.8, 1.1.1.1]

Or like this:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      addresses: [10.10.10.2/25]
      dhcp4: no
      gateway4: 10.10.10.1
      nameservers:
          addresses: [8.8.8.8, 1.1.1.1]

Or with aliases:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      addresses: [10.10.10.2/25, 10.10.10.3/25]
      gateway4: 10.10.10.1
      nameservers:
          addresses: [8.8.8.8, 1.1.1.1]

And this also works:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp2s0:
      addresses:
        - 10.10.10.2/25
        - 10.10.10.3/25
      gateway4: 10.10.10.1
      nameservers:
          addresses: [8.8.8.8, 1.1.1.1]
1

255.255.255.0 is decimal representation of IPv4 netmask for masking out 24 of 32 bits.

11111111.11111111.11111111.00000000 (there are 24 masking bits and 8 unmasking bits).

255.255.255.1 in binary is 11111111.11111111.11111111.00000001 (there are 25 masking bits and 7 unmasking bits).

Such bitmask is not valid for netmask as it has 'hole' of unmasking bits ('0') between masking bits ('1').

11111111.11111111.11111111.10000000 (binary) = 255.255.255.128 (decimal) is valid and represent 25 masking bits (/25)

Not the answer you're looking for? Browse other questions tagged or ask your own question.