35 lines
1.2 KiB
Diff
35 lines
1.2 KiB
Diff
From 30eeb48b1a0737dc7443fd421fd6613e0d55fd17 Mon Sep 17 00:00:00 2001
|
|
From: "Z. Liu" <liuzx@knownsec.com>
|
|
Date: Tue, 18 Dec 2018 16:38:24 +0800
|
|
Subject: [PATCH] Also skip route not configured with down interface
|
|
|
|
Otherwise, if keepalived has virtual_routes configured, we create
|
|
a virtual interface and bring it up and down, current code will bring
|
|
VRRP state to FAULT and never return.
|
|
|
|
# ip tun add test mode ipip remote 10.0.0.1 local 10.0.0.2
|
|
# ip link set test up
|
|
# ip link set test down
|
|
---
|
|
keepalived/vrrp/vrrp_if.c | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/keepalived/vrrp/vrrp_if.c b/keepalived/vrrp/vrrp_if.c
|
|
index a2087ceb..6ae2666a 100644
|
|
--- a/keepalived/vrrp/vrrp_if.c
|
|
+++ b/keepalived/vrrp/vrrp_if.c
|
|
@@ -1051,7 +1051,9 @@ interface_down(interface_t *ifp)
|
|
/* Any route that has an oif will be tracking the interface,
|
|
* so we only need to check for routes that dont specify an
|
|
* oif */
|
|
- if (!route->oif && route->configured_ifindex != ifp->ifindex)
|
|
+ /* Don't track route if it's not configured with this down
|
|
+ * interface. */
|
|
+ if (!route->oif || route->configured_ifindex != ifp->ifindex)
|
|
continue;
|
|
|
|
route->set = false;
|
|
--
|
|
2.24.1
|
|
|