Ubuntu 17.10 Server static IP netplan - how to set netmask

30,952

Solution 1

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.

Solution 2

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]

Solution 3

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)

Share:
30,952

Related videos on Youtube

alpha kevin
Author by

alpha kevin

Updated on September 18, 2022

Comments

  • alpha kevin
    alpha kevin over 1 year

    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?

  • alpha kevin
    alpha kevin over 6 years
    I had to configure netmask 255.255.255.192 and with /26 works. Great, thanks!