Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1159000

Summary: netcf ignores any IPv4 address past the first one
Product: Red Hat Enterprise Linux 7 Reporter: Laine Stump <laine>
Component: netcfAssignee: Laine Stump <laine>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: dgilbert, dyuan, honzhang, jsuchane, mzhan, virt-bugs
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: netcf-0.2.8-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1147650 Environment:
Last Closed: 2015-11-19 08:58:21 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:
Bug Depends On: 1147650    
Bug Blocks:    

Description Laine Stump 2014-10-30 16:33:52 UTC
+++ This bug was initially created as a clone of Bug #1147650 +++

Step 2 of the "reproduction" description from Hu Jianwei in Bug 1147650 attempts to add a 2nd IPv4 address to an interface, which is also a bug, but out of the scope of that bug report. This BZ is filed to track support for multiple IPv4 addresses on an interface.

Here is the reproduction case:

[root@localhost ~]# rpm -q libvirt netcf-libs
libvirt-1.2.8-5.el7.x86_64
netcf-libs-0.2.6-1.el7.x86_64

[...]

2. Add a new IP using nmtui  
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp16s0f1
DEVICE=enp16s0f1
ONBOOT=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME="System enp16s0f1"
UUID=c5a180f8-a44b-bfc8-6f45-0f171f275fac
IPADDR=192.168.1.22
PREFIX=24
GATEWAY=192.168.1.1
IPADDR1=192.168.1.88                      <====here
PREFIX1=24                                <====here
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

[root@localhost ~]# virsh iface-dumpxml enp16s0f1
<interface type='ethernet' name='enp16s0f1'>
  <protocol family='ipv4'>
    <ip address='192.168.1.22' prefix='24'/>
    <ip address='192.168.1.88' prefix='24'/>
  </protocol>
  <link speed='10' state='up'/>
  <mac address='00:1b:21:55:b3:bd'/>
</interface>

[root@localhost ~]# ip ad show enp16s0f1
7: enp16s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:1b:21:55:b3:bd brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.22/24 brd 192.168.1.255 scope global enp16s0f1
       valid_lft forever preferred_lft forever
    inet 192.168.1.88/24 brd 192.168.1.255 scope global secondary enp16s0f1
       valid_lft forever preferred_lft forever


[root@localhost ~]# virsh iface-bridge enp16s0f1 br66 --no-stp
Created bridge br66 with attached device enp16s0f1
Bridge interface br66 started

[root@localhost ~]# virsh iface-dumpxml br66
<interface type='bridge' name='br66'>
  <protocol family='ipv4'>
    <ip address='192.168.1.22' prefix='24'/>
  </protocol>
  <protocol family='ipv6'>
    <ip address='fe80::21b:21ff:fe55:b3bd' prefix='64'/>
  </protocol>
  <bridge>
    <interface type='ethernet' name='enp16s0f1'>
      <link speed='10' state='up'/>
      <mac address='00:1b:21:55:b3:bd'/>
    </interface>
  </bridge>
</interface>

[root@localhost ~]# virsh iface-list --all
 Name                 State      MAC Address
---------------------------------------------------
 br66                 active     00:1b:21:55:b3:bd
..

[root@localhost ~]# ip ad show br66
27: br66: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 00:1b:21:55:b3:bd brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.22/24 brd 192.168.1.255 scope global br66
       valid_lft forever preferred_lft forever
    inet6 fe80::21b:21ff:fe55:b3bd/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# virsh iface-unbridge br66 
Device enp16s0f1 un-attached from bridge br66
Interface enp16s0f1 started

[root@localhost ~]# virsh iface-dumpxml enp16s0f1
<interface type='ethernet' name='enp16s0f1'>
  <protocol family='ipv4'>
    <ip address='192.168.1.22' prefix='24'/>
  </protocol>
  <link speed='10' state='up'/>
  <mac address='00:1b:21:55:b3:bd'/>
</interface>

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp16s0f1
DEVICE=enp16s0f1
ONBOOT=no
BOOTPROTO=none
IPADDR=192.168.1.22
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
IPV6INIT=yes
IPV6_AUTOCONF=yes
DHCPV6C=no                                 <=== the second IP is disappeared.

Comment 1 Laine Stump 2014-10-30 16:36:07 UTC
The grammars for the <interface> xml in netcf and libvirt already support multiple <ip> elements, so all that is needed for this is to make redhat-(get|put).xsl recognize and emit IPADDRn/PREFIXn/NETMASKn/GATEWAYn. This cries out for someone with a better understanding of xslt than me.

Comment 2 Laine Stump 2015-05-16 00:44:43 UTC
Fix pushed upstream:

commit 4b4193c6d0bdbf96f63473a90d65bb4480c14aef
Author: Laine Stump <laine>
Date:   Mon Mar 16 10:50:33 2015 -0400

    support multiple IPv4 addresses in redhat driver

Comment 6 Hu Jianwei 2015-05-21 06:45:22 UTC
Verified as below:

[root@localhost ~]# rpm -q libvirt netcf
libvirt-1.2.15-2.el7.x86_64
netcf-0.2.8-1.el7.x86_64

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0
DEVICE="enp2s0"
ONBOOT="no"
BOOTPROTO="none"
IPADDR="192.168.1.22"
NETMASK="255.255.255.0"
IPADDR1="192.168.1.88"
NETMASK1="255.255.255.0"
GATEWAY="192.168.1.1"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
[root@localhost ~]# virsh iface-dumpxml enp2s0
<interface type='ethernet' name='enp2s0'>
  <protocol family='ipv4'>
    <ip address='192.168.1.22' prefix='24'/>
    <ip address='192.168.1.88' prefix='24'/>
  </protocol>
  <link speed='100' state='up'/>
  <mac address='00:1b:21:27:4e:ce'/>
</interface>

[root@localhost ~]# ip ad show enp2s0
3: enp2s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
    link/ether 00:1b:21:27:4e:ce brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.22/24 brd 192.168.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet 192.168.1.88/24 brd 192.168.1.255 scope global secondary enp2s0
       valid_lft forever preferred_lft forever

[root@localhost ~]# virsh iface-bridge enp2s0 br66 --no-stp
Created bridge br66 with attached device enp2s0
Bridge interface br66 started

[root@localhost ~]# virsh iface-dumpxml br66
<interface type='bridge' name='br66'>
  <protocol family='ipv4'>
    <ip address='192.168.1.22' prefix='24'/>
    <ip address='192.168.1.88' prefix='24'/>
  </protocol>
  <protocol family='ipv6'>
    <ip address='fe80::7c2b:bff:fef0:fe1f' prefix='64'/>
  </protocol>
  <bridge>
  </bridge>
</interface>

[root@localhost ~]# virsh iface-list --all
 Name                 State      MAC Address
--------------------------------------------------- 
 br66                 active     7e:2b:0b:f0:fe:1f
 eno1                 active     24:be:05:18:81:ce

[root@localhost ~]# ip ad show br66
148: br66: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 7e:2b:0b:f0:fe:1f brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.22/24 brd 192.168.1.255 scope global br66
       valid_lft forever preferred_lft forever
    inet 192.168.1.88/24 brd 192.168.1.255 scope global secondary br66
       valid_lft forever preferred_lft forever
    inet6 fe80::7c2b:bff:fef0:fe1f/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# virsh iface-unbridge br66
Device enp2s0 un-attached from bridge br66
Interface enp2s0 started

[root@localhost libvirt-1.2.15]# virsh iface-list --all
 Name                 State      MAC Address
---------------------------------------------------
 eno1                 active     24:be:05:18:81:ce
 enp2s0               active     00:1b:21:27:4e:ce

[root@localhost ~]# virsh iface-dumpxml enp2s0
<interface type='ethernet' name='enp2s0'>
  <protocol family='ipv4'>
    <ip address='192.168.1.22' prefix='24'/>
    <ip address='192.168.1.88' prefix='24'/>
  </protocol>
  <link speed='100' state='up'/>
  <mac address='00:1b:21:27:4e:ce'/>
</interface>

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0
DEVICE="enp2s0"
ONBOOT="no"
BOOTPROTO="none"
IPADDR="192.168.1.22"
NETMASK="255.255.255.0"
IPADDR1="192.168.1.88"
NETMASK1="255.255.255.0"
GATEWAY="192.168.1.1"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"

Comment 8 errata-xmlrpc 2015-11-19 08:58:21 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-2248.html