Bug 1147650
Summary: | virsh iface-bridge eat my ip address config | |||
---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Dr. David Alan Gilbert <dgilbert> | |
Component: | netcf | Assignee: | Laine Stump <laine> | |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | |
Severity: | unspecified | Docs Contact: | ||
Priority: | unspecified | |||
Version: | 7.0 | CC: | dyuan, honzhang, jiahu, jsuchane | |
Target Milestone: | rc | |||
Target Release: | --- | |||
Hardware: | Unspecified | |||
OS: | Unspecified | |||
Whiteboard: | ||||
Fixed In Version: | netcf-0.2.6-2.el7 | Doc Type: | Bug Fix | |
Doc Text: |
On hosts using IPADDR0/NETMASK0/PREFIX0 (instead of the more traditional IPADDR/NETMASK/PREFIX) in the ifcfg file in /etc/sysconfig/network-scripts, the "virsh iface-dumpxml" command would not show the interfaces' IP configuration, and the "virsh iface-bridge" command would not propagate the IP configuration from the physical ethernet to the newly created bridge device. netcf now recognizes IPADDR0/NETMASK0/PREFIX0, so the IP configuration is properly recognized and propagated with "virsh iface-bridge"
|
Story Points: | --- | |
Clone Of: | ||||
: | 1159000 (view as bug list) | Environment: | ||
Last Closed: | 2015-03-05 08:51:20 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: | ||||
Bug Blocks: | 1159000 |
Description
Dr. David Alan Gilbert
2014-09-29 18:01:55 UTC
This is due to netcf using IPADDR and PREFIX/NETMASK in the ifcfg file rather than IPADDR0 and PREFIX0. netcf should alter all occurrences of IPADDR/PREFIX/NETMASK to IPADDR0/PREFIX0/NETMASK0 wherever they are found, as the latter is now supported in every version of OS that both supports netcf and is also still itself being supported (i.e. RHEL6+, CentOS6+, Fedora18+). Related to this - note that there is now also a GATEWAY0 that is used by NetworkManager, but the network service (i.e. the initscripts files) still use GATEWAY and ignore GATEWAY0. This means that it is impossible to write a single ifcfg file that can be used by both NM and the network service (if you want to specify a default route, that is). I can reproduce it. [root@localhost ~]# rpm -q libvirt netcf-libs libvirt-1.2.8-5.el7.x86_64 netcf-libs-0.2.6-1.el7.x86_64 1. Using IPADDR0/NETMASK0/GATEWAY0 instead of IPADDR/NETMASK/GATEWAY [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp16s0f1 DEVICE=enp16s0f1 ONBOOT=no BOOTPROTO=none IPADDR0=10.66.5.124 NETMASK0=255.255.252.0 GATEWAY0=10.66.7.254 IPV6INIT=yes IPV6_AUTOCONF=yes DHCPV6C=no [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='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 ~]# ip ad show br66 26: 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 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 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp16s0f1 DEVICE=enp16s0f1 ONBOOT=no IPV6INIT=yes IPV6_AUTOCONF=yes DHCPV6C=no <==== All static config disappeared 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. I've posted a patch upstream which causes netcf to recognize IPADDR0/PREFIX0/NETMASK0/GATEWAY0 (but still writes them back as IPADDR/PREFIX/GATEWAY): https://lists.fedorahosted.org/pipermail/netcf-devel/2014-October/000911.html This solves the originally reported problem, but does not address what happened in reproduction case 2 described in Comment 3 (where multiple IP addresses were assigned to the same interface using IPADDR1 etc). I've cloned this BZ as Bug 1159000 to track that functionality. Fix pushed upstream>: commit c0e7734cb3c616c102cfff4ce1aeee023e85659a Author: Laine Stump <laine> Date: Thu Oct 30 11:45:23 2014 -0400 Recognize IPADDR0/PREFIX0/NETMASK0/GATEWAY0 in redhat and suse backends I can not reproduce it on below version. [root@dhcp-66-71-181 ~]# rpm -q netcf libvirt netcf-0.2.6-2.el7.x86_64 libvirt-1.2.8-6.el7.x86_64 [root@dhcp-66-71-181 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0 DEVICE=enp2s0 ONBOOT=yes MTU=1500 BOOTPROTO=none IPADDR0=10.66.71.181 NETMASK0=255.255.254.0 GATEWAY0=10.66.71.254 [root@dhcp-66-71-181 ~]# virsh iface-bridge enp2s0 br66 --no-stp Created bridge br66 with attached device enp2s0 Bridge interface br66 started [root@dhcp-66-71-181 ~]# virsh iface-dumpxml br66 <interface type='bridge' name='br66'> <protocol family='ipv4'> <ip address='10.66.71.181' prefix='23'/> </protocol> <protocol family='ipv6'> <ip address='fe80::21b:21ff:fe27:4ece' prefix='64'/> </protocol> <bridge> <interface type='ethernet' name='enp2s0'> <link speed='1000' state='up'/> <mac address='00:1b:21:27:4e:ce'/> </interface> </bridge> </interface> [root@dhcp-66-71-181 ~]# virsh iface-unbridge br66 Device enp2s0 un-attached from bridge br66 Interface enp2s0 started [root@dhcp-66-71-181 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0 DEVICE=enp2s0 ONBOOT=yes MTU=1500 BOOTPROTO=none IPADDR=10.66.71.181 NETMASK=255.255.254.0 GATEWAY=10.66.71.254 Do test again without suffix 0 [root@dhcp-66-71-181 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0 DEVICE=enp2s0 ONBOOT=yes MTU=1500 BOOTPROTO=none IPADDR=10.66.71.181 NETMASK=255.255.254.0 GATEWAY=10.66.71.254 [root@dhcp-66-71-181 ~]# virsh iface-bridge enp2s0 br66 --no-stp Created bridge br66 with attached device enp2s0 Bridge interface br66 started [root@dhcp-66-71-181 ~]# virsh iface-dumpxml br66 <interface type='bridge' name='br66'> <protocol family='ipv4'> <ip address='10.66.71.181' prefix='23'/> </protocol> <protocol family='ipv6'> <ip address='fe80::21b:21ff:fe27:4ece' prefix='64'/> </protocol> <bridge> <interface type='ethernet' name='enp2s0'> <link speed='1000' state='up'/> <mac address='00:1b:21:27:4e:ce'/> </interface> </bridge> </interface> [root@dhcp-66-71-181 ~]# virsh iface-unbridge br66 Device enp2s0 un-attached from bridge br66 Interface enp2s0 started [root@dhcp-66-71-181 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0 DEVICE=enp2s0 ONBOOT=yes MTU=1500 BOOTPROTO=none IPADDR=10.66.71.181 NETMASK=255.255.254.0 GATEWAY=10.66.71.254 Can get expected results, changed to Verified. 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/RHBA-2015-0363.html |