From 30eeb48b1a0737dc7443fd421fd6613e0d55fd17 Mon Sep 17 00:00:00 2001 From: "Z. Liu" 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