IPaddr2 resource agent fix for loopback interface

The IPaddr2 resource agent currently assigns addresses
to the loopback interface without specifying the scope,
so they default to the global scope. This fails if the
address is not in the loopback address range.

The fix is to always specify "scope host" when assigning
addresses to the loopback interface.

Change-Id: Ib7c08bfc1c661a9fb347308e55cc806b4dd129ad
Story: 2003910
Task: 26796
Signed-off-by: Bart Wensley <barton.wensley@windriver.com>
This commit is contained in:
Bart Wensley 2018-11-22 15:45:18 -06:00
parent 324b7e7522
commit a26414d982
3 changed files with 70 additions and 0 deletions

View File

@ -11,3 +11,4 @@ spec-add-ipaddr2-ignore-lo-state.patch
Disable-creation-of-the-debug-package.patch
metapatch-for-arp_bg.patch
ipaddr2-avoid-failing-svc-if-down-meta.patch
spec-ipaddr2-use-host-scope-for-addresses-on-loopbac.patch

View File

@ -0,0 +1,32 @@
From d5796dce7ea3bc1a90a3faed3b7acff36583c5e0 Mon Sep 17 00:00:00 2001
From: Bart Wensley <barton.wensley@windriver.com>
Date: Wed, 21 Nov 2018 12:21:41 -0600
Subject: [PATCH 1/1] spec ipaddr2 use host scope for addresses on loopback
---
SPECS/resource-agents.spec | 2 ++
1 file changed, 2 insertions(+)
diff --git a/SPECS/resource-agents.spec b/SPECS/resource-agents.spec
index 959f4db..a98064a 100644
--- a/SPECS/resource-agents.spec
+++ b/SPECS/resource-agents.spec
@@ -284,6 +284,7 @@ Patch1118: ipaddr2_if_down.patch
Patch1119: ipaddr2_ignore_lo_if_state.patch
Patch1120: Re-enable-background-execution-of-arp-commands.patch
Patch1121: ipaddr2-avoid-failing-svc-if-down.patch
+Patch1122: ipaddr2-use-host-scope-for-addresses-on-loopback.patch
Obsoletes: heartbeat-resources <= %{version}
Provides: heartbeat-resources = %{version}
@@ -622,6 +623,7 @@ exit 1
%patch1119 -p1
%patch1120 -p1
%patch1121 -p1
+%patch1122 -p1
%build
if [ ! -f configure ]; then
--
1.8.3.1

View File

@ -0,0 +1,37 @@
From a39c83dbaf4054cc96cd4a0a2b671509dd10af28 Mon Sep 17 00:00:00 2001
From: Bart Wensley <barton.wensley@windriver.com>
Date: Wed, 21 Nov 2018 12:14:20 -0600
Subject: [PATCH 1/1] ipaddr2 use host scope for addresses on loopback
---
heartbeat/IPaddr2 | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/heartbeat/IPaddr2 b/heartbeat/IPaddr2
index 2da5c5e..79dbdcf 100755
--- a/heartbeat/IPaddr2
+++ b/heartbeat/IPaddr2
@@ -584,10 +584,18 @@ add_interface () {
add_ipv6_addrlabel $ipaddr
fi
- cmd="$IP2UTIL -f $FAMILY addr add $ipaddr/$netmask dev $iface"
+ # Addresses assigned to the loopback interfaces must be assigned
+ # using the host scope or assignment is prevented (can't have
+ # multiple global scope addresses on the loopback interface).
+ if [ "$iface" = "lo" ] ;then
+ option="scope host"
+ else
+ option=""
+ fi
+ cmd="$IP2UTIL -f $FAMILY addr add $ipaddr/$netmask dev $iface $option"
msg="Adding $FAMILY address $ipaddr/$netmask to device $iface"
if [ "$broadcast" != "none" ]; then
- cmd="$IP2UTIL -f $FAMILY addr add $ipaddr/$netmask brd $broadcast dev $iface"
+ cmd="$IP2UTIL -f $FAMILY addr add $ipaddr/$netmask brd $broadcast dev $iface $option"
msg="Adding $FAMILY address $ipaddr/$netmask with broadcast address $broadcast to device $iface"
fi
--
1.8.3.1