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 1276698

Summary: [RFE] IPaddr2: Use IPv6 DAD for collision detection
Product: Red Hat Enterprise Linux 6 Reporter: Oyvind Albrigtsen <oalbrigt>
Component: resource-agentsAssignee: Oyvind Albrigtsen <oalbrigt>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: high Docs Contact:
Priority: high    
Version: 6.8CC: abeekhof, agk, cbuissar, cluster-maint, cluster-qe, fdinitto, jkortus, jruemker, mnovacek, royoung, sauchter, tbowling, tlavigne
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: resource-agents-3.9.5-28.el6 Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: 1191247
: 1276699 (view as bug list) Environment:
Last Closed: 2016-05-10 19:15:12 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: 1191247    
Bug Blocks: 1172231, 1271835, 1276699    
Attachments:
Description Flags
Working patch none

Comment 1 Oyvind Albrigtsen 2015-10-30 14:33:43 UTC
Created attachment 1087941 [details]
Working patch

Tested and working patch.

Comment 4 Oyvind Albrigtsen 2015-12-21 13:29:50 UTC
Setup an IPv6 address that collides with one on the network and check /var/log/cluster/corosync.log.

Before:
IPaddr2(IP)[18807]:	2015/12/21_14:25:40 WARNING: XXXX::10 still has 'tentative' status. (ignored)

After:
IPaddr2(IP)[14066]:     2015/12/21_14:19:44 ERROR: IPv6 address collision XXXX::10 [DAD]

Comment 5 Oyvind Albrigtsen 2015-12-24 08:47:43 UTC
Setup an IPv6 address resource that collides with one on the network:
# pcs resource create IPv6 IPaddr2 ip=XXXX::10

Before:
# pcs resource enable IPv6
# tail -f /var/log/cluster/corosync.log
...
IPaddr2(IP)[18807]:	2015/12/21_14:25:40 WARNING: XXXX::10 still has 'tentative' status. (ignored)

After:
# pcs resource enable IPv6
# tail -f /var/log/cluster/corosync.log
...
IPaddr2(IP)[14066]:     2015/12/21_14:19:44 ERROR: IPv6 address collision XXXX::10 [DAD]

Comment 7 michal novacek 2016-03-30 10:06:58 UTC
I have verified that DAD is used for ipv6 address collision detection in
resource-agents-3.9.5-34.el6.x86_64

----
# ping6 -c 2 2620:52:0:2246:1800:ff:fe00:90
PING 2620:52:0:2246:1800:ff:fe00:90(2620:52:0:2246:1800:ff:fe00:90) 56 data bytes
64 bytes from 2620:52:0:2246:1800:ff:fe00:90: icmp_seq=1 ttl=64 time=1.81 ms
64 bytes from 2620:52:0:2246:1800:ff:fe00:90: icmp_seq=2 ttl=64 time=0.697 ms

--- 2620:52:0:2246:1800:ff:fe00:90 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.697/1.254/1.811/0.557 ms

# pcs status
Cluster name: STSRHTS4495
Last updated: Wed Mar 30 11:33:40 2016
Last change: Wed Mar 30 11:29:16 2016 by root via cibadmin on virt-146.cluster-qe.lab.eng.brq.redhat.com
Stack: cman
Current DC: virt-146.cluster-qe.lab.eng.brq.redhat.com (version 1.1.14-3.el6-70404b0) - partition with quorum
2 nodes and 3 resources configured

Online: [ virt-146.cluster-qe.lab.eng.brq.redhat.com virt-147.cluster-qe.lab.eng.brq.redhat.com ]

Full list of resources:

 fence-virt-146 (stonith:fence_xvm):    Started virt-146.cluster-qe.lab.eng.brq.redhat.com
 fence-virt-147 (stonith:fence_xvm):    Started virt-147.cluster-qe.lab.eng.brq.redhat.com

PCSD Status:
  virt-146.cluster-qe.lab.eng.brq.redhat.com: Unable to authenticate
  virt-147.cluster-qe.lab.eng.brq.redhat.com: Unable to authenticate

virt-146# pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=2620:52:0:2246:1800:ff:fe00:90 cidr_netmask=64
virt-146# pcs resource disable ClusterIP
virt-146# pcs resource --full
 Resource: ClusterIP (class=ocf provider=heartbeat type=IPaddr2)
  Attributes: ip=2620:52:0:2246:1800:ff:fe00:90 cidr_netmask=64
  Meta Attrs: target-role=Stopped 
  Operations: start interval=0s timeout=20s (ClusterIP-start-interval-0s)
              stop interval=0s timeout=20s (ClusterIP-stop-interval-0s)
              monitor interval=30s (ClusterIP-monitor-interval-30s)


unpatched: resource-agents-3.9.5-27.el6.x86_64
==============================================
virt-146# pcs resource enable ClusterIP
virt-146# grep IPaddr2 /var/log/messages | tail
Mar 30 11:22:26 virt-147 IPaddr2(ClusterIP)[4256]: INFO: IP status = ok, IP_CIP=
Mar 30 11:39:07 virt-147 IPaddr2(ClusterIP)[4523]: INFO: Adding inet6 address 2620:52:0:2246:1800:ff:fe00:90/64 to device eth0
Mar 30 11:39:07 virt-147 IPaddr2(ClusterIP)[4523]: INFO: Bringing device eth0 up
>>>>> Mar 30 11:39:11 virt-147 IPaddr2(ClusterIP)[4523]: WARNING: 2620:52:0:2246:1800:ff:fe00:90 still has 'tentative' status. (ignored)
Mar 30 11:39:11 virt-147 IPaddr2(ClusterIP)[4523]: INFO: /usr/libexec/heartbeat/send_ua -i 200 -c 5 2620:52:0:2246:1800:ff:fe00:90 64 eth0
Mar 30 11:51:26 virt-147 IPaddr2(ClusterIP)[7046]: INFO: IP status = ok, IP_CIP=
Mar 30 11:59:48 virt-147 IPaddr2(ClusterIP)[7247]: INFO: Adding inet6 address 2620:52:0:2246:1800:ff:fe00:90/64 to device eth0
Mar 30 11:59:48 virt-147 IPaddr2(ClusterIP)[7247]: INFO: Bringing device eth0 up
Mar 30 11:59:52 virt-147 IPaddr2(ClusterIP)[7247]: WARNING: 2620:52:0:2246:1800:ff:fe00:90 still has 'tentative' status. (ignored)
Mar 30 11:59:52 virt-147 IPaddr2(ClusterIP)[7247]: INFO: /usr/libexec/heartbeat/send_ua -i 200 -c 5 2620:52:0:2246:1800:ff:fe00:90 64 eth0

patched: resource-agents-3.9.5-34.el6.x86_64
========---------===========================
virt-146# pcs resource enable ClusterIP
virt-146# grep IPaddr2 /var/log/messages | tail
Mar 30 11:22:45 virt-146 IPaddr2(ClusterIP)[11049]: INFO: Adding inet6 address 2620:52:0:2246:1800:ff:fe00:93/64 to device eth0
Mar 30 11:22:45 virt-146 IPaddr2(ClusterIP)[11049]: INFO: Bringing device eth0 up
Mar 30 11:22:47 virt-146 IPaddr2(ClusterIP)[11049]: INFO: /usr/libexec/heartbeat/send_ua -i 200 -c 5 2620:52:0:2246:1800:ff:fe00:93 64 eth0
Mar 30 11:28:36 virt-146 IPaddr2(ClusterIP)[11733]: INFO: IP status = ok, IP_CIP=
Mar 30 11:35:59 virt-146 IPaddr2(ClusterIP)[12146]: INFO: IP status = ok, IP_CIP=
Mar 30 11:39:06 virt-146 IPaddr2(ClusterIP)[12274]: INFO: Adding inet6 address 2620:52:0:2246:1800:ff:fe00:90/64 to device eth0
Mar 30 11:39:06 virt-146 IPaddr2(ClusterIP)[12274]: INFO: Bringing device eth0 up
>>>>> Mar 30 11:39:07 virt-146 IPaddr2(ClusterIP)[12274]: ERROR: IPv6 address collision 2620:52:0:2246:1800:ff:fe00:90 [DAD]
Mar 30 11:39:07 virt-146 IPaddr2(ClusterIP)[12274]: ERROR: run_send_ua failed.
Mar 30 11:39:07 virt-146 IPaddr2(ClusterIP)[12359]: INFO: IP status = ok, IP_CIP=

Comment 9 errata-xmlrpc 2016-05-10 19:15:12 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/RHBA-2016-0735.html