← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1771116] Re: network configuration fails on CentoS 7.5: using dhcp instead of static address

 

I believe the offending code to be in "_write_network" in
/usr/lib/python2.7/site-packages/cloudinit/distros/rhel.py

** Bug watch added: Red Hat Bugzilla #1577947
   https://bugzilla.redhat.com/show_bug.cgi?id=1577947

** Also affects: cloud-init (CentOS) via
   https://bugzilla.redhat.com/show_bug.cgi?id=1577947
   Importance: Unknown
       Status: Unknown

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1771116

Title:
  network configuration fails on CentoS 7.5: using dhcp instead of
  static address

Status in cloud-init:
  New
Status in cloud-init package in CentOS:
  Unknown

Bug description:
  Cloud-Provider: NoCloud via Proxmox and qm set

  I have centostemplate CentOS 7.5 VM on Proxmox and with:

  [root@centostemplate ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
  TYPE=Ethernet
  BOOTPROTO=none
  DEFROUTE=yes
  IPV4_FAILURE_FATAL=no
  IPV6INIT=yes
  IPV6_AUTOCONF=yes
  IPV6_DEFROUTE=yes
  IPV6_FAILURE_FATAL=no
  NAME=eth0
  UUID=9c[…]
  DEVICE=eth0
  ONBOOT=yes
  DNS1=10.0.0.4
  DOMAIN=qs.de
  IPADDR=10.0.88.101
  PREFIX=8
  GATEWAY=10.0.0.4
  IPV6_PRIVACY=no
  PROXY_METHOD=none
  BROWSER_ONLY=no

  I have a script that on Proxmox does:

  - qm clone 2100 2101 --name centos1
  - qm set 2101 --ipconfig0 ip=10.0.88.151/8,gw=10.0.0.4 --cores 2 --memory 4096
  - qm start 2101

  I get

  [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

  [root@centos1 ~]# ip -4 addr show eth0
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
      inet 10.0.0.161/16 brd 10.0.255.255 scope global noprefixroute dynamic eth0
         valid_lft 171536sec preferred_lft 171536sec

  and:

  [root@centos1 ~]# cat /etc/sysconfig/network-scripts/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/8
  ONBOOT=yes
  TYPE=Ethernet
  USERCTL=no
  [root@centos1 ~]# ip link show eth0
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
      link/ether f2:15:c8:e1:0a:49 brd ff:ff:ff:ff:ff:ff

  Yet while this works it is wrong on RedHat. It has to be:

  IPADDR=10.0.88.151
  PREFIX=8

  Otherwise I get this:

  [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

  
  Consequently this little change fixes the issue:

  [root@centos1 ~]# diff -u /etc/sysconfig/network-scripts/ifcfg-eth0.cloud-init.orig /etc/sysconfig/network-scripts/ifcfg-eth0
  --- /etc/sysconfig/network-scripts/ifcfg-eth0.cloud-init.orig   2018-05-14 14:29:42.801000000 +0200
  +++ /etc/sysconfig/network-scripts/ifcfg-eth0   2018-05-14 14:59:48.352000000 +0200
  @@ -5,7 +5,8 @@
   DEVICE=eth0
   GATEWAY=10.0.0.4
   HWADDR=F2:15:C8:E1:0A:49
  -IPADDR=10.0.88.151/8
  +IPADDR=10.0.88.151
  +PREFIX=8
   ONBOOT=yes
   TYPE=Ethernet
   USERCTL=no

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1771116/+subscriptions


References