Public bug reported:

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

** Affects: cloud-init
     Importance: Undecided
         Status: New

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

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to