Using CentOS but reporting here as the fix needs to go into the upstream source and then RHEL RPM anyway before going into CentOS, also reported there, see under "Additional info". Description of problem: cloud-init configures static network wrongly as: IPADDR=10.0.88.151/8 instead of IPADDR=10.0.88.151 PREFIX=8 Version-Release number of selected component (if applicable): cloud-init-0.7.9-24.el7.centos.x86_64 How reproducible: Always. Steps to Reproduce: 1. Have a network configuration like (here via NoCloud source on Proxmox): [root@centos1 ~]# mount | grep sr0 /dev/sr0 on /mnt/zeit type iso9660 (ro,relatime) [root@centos1 ~]# cat /mnt/zeit/ meta-data network-config user-data [root@centos1 ~]# cat /mnt/zeit/network-config version: 1 config: - type: physical name: eth0 mac_address: F2:15:C8:E1:0A:49 subnets: - type: static address: 10.0.88.151/8 gateway: 10.0.0.4 - type: nameserver address: - 10.0.0.4 search: - somedomain.de 2. Boot the image with this cloud init configuration Actual results: [root@centos1 network-scripts]# cat ifcfg-eth0.cloud-init.orig # Created by cloud-init on instance boot automatically, do not edit. # BOOTPROTO=none DEFROUTE=yes DEVICE=eth0 GATEWAY=10.0.0.4 HWADDR=F2:15:C8:E1:0A:49 IPADDR=10.0.88.151/8 ONBOOT=yes TYPE=Ethernet USERCTL=no Which leads to: [root@centos1 ~]# LANG=C ifup eth0 ipcalc: both netmask and prefix specified Usage: ipcalc [OPTION...] -c, --check Validate IP address for specified address family -4, --ipv4 IPv4 address family (default) -6, --ipv6 IPv6 address family -b, --broadcast Display calculated broadcast address -h, --hostname Show hostname determined via DNS -m, --netmask Display default netmask for IP (class A, B, or C) -n, --network Display network address -p, --prefix Display network prefix -s, --silent Don't ever display error messages Help options: -?, --help Show this help message --usage Display brief usage message ipcalc: both netmask and prefix specified Usage: ipcalc [OPTION...] -c, --check Validate IP address for specified address family -4, --ipv4 IPv4 address family (default) -6, --ipv6 IPv6 address family -b, --broadcast Display calculated broadcast address -h, --hostname Show hostname determined via DNS -m, --netmask Display default netmask for IP (class A, B, or C) -n, --network Display network address -p, --prefix Display network prefix -s, --silent Don't ever display error messages Help options: -?, --help Show this help message --usage Display brief usage message ipcalc: both netmask and prefix specified Usage: ipcalc [OPTION...] -c, --check Validate IP address for specified address family -4, --ipv4 IPv4 address family (default) -6, --ipv6 IPv6 address family -b, --broadcast Display calculated broadcast address -h, --hostname Show hostname determined via DNS -m, --netmask Display default netmask for IP (class A, B, or C) -n, --network Display network address -p, --prefix Display network prefix -s, --silent Don't ever display error messages Help options: -?, --help Show this help message --usage Display brief usage message arping: 10.0.88.151/8: Name or service not known Error: any valid prefix is expected rather than "10.0.88.151/8/". ERROR : [/etc/sysconfig/network-scripts/ifup-eth] Error adding address 10.0.88.151/8 for eth0. arping: 10.0.88.151/8: Name or service not known Error: any valid prefix is expected rather than "10.0.88.151/8/". RTNETLINK answers: File exists Expected results: [root@centos1 network-scripts]# cat ifcfg-eth0 # Created by cloud-init on instance boot automatically, do not edit. # BOOTPROTO=none DEFROUTE=yes DEVICE=eth0 GATEWAY=10.0.0.4 HWADDR=F2:15:C8:E1:0A:49 IPADDR=10.0.88.151 PREFIX=8 ONBOOT=yes TYPE=Ethernet USERCTL=no Additional info: Upstream bug report: network configuration fails on CentOS 7.5: using dhcp instead of static address https://bugs.launchpad.net/cloud-init/+bug/1771116 I believe the offending code to be in "_write_network" in /usr/lib/python2.7/site-packages/cloudinit/distros/rhel.p