Bug 1276698 - [RFE] IPaddr2: Use IPv6 DAD for collision detection
[RFE] IPaddr2: Use IPv6 DAD for collision detection
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: resource-agents (Show other bugs)
6.8
Unspecified Unspecified
high Severity high
: rc
: ---
Assigned To: Oyvind Albrigtsen
cluster-qe@redhat.com
: FutureFeature
Depends On: 1191247
Blocks: 1172231 1271835 1276699
  Show dependency treegraph
 
Reported: 2015-10-30 10:28 EDT by Oyvind Albrigtsen
Modified: 2016-05-10 15:15 EDT (History)
13 users (show)

See Also:
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 15:15:12 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Working patch (1.77 KB, patch)
2015-10-30 10:33 EDT, Oyvind Albrigtsen
no flags Details | Diff


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2016:0735 normal SHIPPED_LIVE resource-agents bug fix and enhancement update 2016-05-10 18:28:24 EDT

  None (edit)
Comment 1 Oyvind Albrigtsen 2015-10-30 10:33 EDT
Created attachment 1087941 [details]
Working patch

Tested and working patch.
Comment 4 Oyvind Albrigtsen 2015-12-21 08:29:50 EST
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 03:47:43 EST
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 06:06:58 EDT
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 15:15:12 EDT
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

Note You need to log in before you can comment on or make changes to this bug.