Bug 1577947
| Summary: | static network configuration putting prefix into IPADDR instead of PREFIX | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Martin Steigerwald <martin.steigerwald> |
| Component: | cloud-init | Assignee: | Ryan McCabe <rmccabe> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | xiachen |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 7.5 | CC: | huzhao, jgreguske, yacao |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-06-19 04:17:35 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
This bug could be reproduced on the old version, cloud-init-0.7.9-24.el7.x86_64, the same behavior as bug description.
but this issue is gone on latest version of cloud-init.
so close it as CURRENTRELEASE.
If anyone find this issue with latest cloud-init please re-open and provide the failing cloud-init version.
-----------------------------------------------------
I tested three latest cloud-init for different RHEL, did not find the issue.
cloud-init-18.2-1.el7_6.3.x86_64 (rhel 7.6.0.z)
cloud-init-18.5-12.el8_2.1.noarch (rhel 8.2.0.z)
cloud-init-19.4-4.el8.noarch (rhel 8.3.0)
Test Details,
Step1. prepare an network-config file,
version: 1
config:
- type: physical
name: eth0
subnets:
- type: static
address: 192.168.23.14/27
gateway: 192.168.23.1
Step2.launch an VM via NoCloud datasource
$ qemu-img create -f qcow2 -o backing_file=rhel-guest-image-8.3-194.x86_64.qcow2 example.qcow2
$ genisoimage -o example_config.iso -V cidata -r -J user-data meta-data network-config
$ virt-install -n example -r 512 --import --disk path=./example.qcow2 --disk path=./example_config.iso,device=cdrom --nographics
Step3.login VM and check network configuration, the value of IPADDR and NETMASK is correct.
[root@myhost network-scripts]# cat ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=none
DEFROUTE=yes
DEVICE=eth0
GATEWAY=192.168.23.1
IPADDR=192.168.23.14
NETMASK=255.255.255.224
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
USERCTL=no
-----------------------------------------------------
BTW, the upstream bug was closed with an confirmation 'no issue with current CentOS 7.6 images' on 2019-08-05.
https://bugs.launchpad.net/cloud-init/+bug/1771116
|
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