Page MenuHomeVyOS Platform

WAN load-balance status failed on all interfaces if one of them failed
Open, Requires assessmentPublicBUG

Description

The following config works as expected (since nexthop dhcp was fixed in T3395):

load-balancing {
    wan {
        interface-health eth0 {
            nexthop dhcp
            test 1 {
                target 8.8.8.8
                type ping
            }
        }
        interface-health eth1 {
            nexthop dhcp
            test 1 {
                target 1.1.1.1
                type ping
            }
        }
        rule 1 {
            inbound-interface br0
            interface eth0 {
            }
            interface eth1 {
            }
        }
    }
}

Running show wan-load-balance:

Interface:  eth0
  Status:  active
  Last Status Change:  Tue May 10 11:04:42 2022
  +Test:  ping  Target: 8.8.8.8
    Last Interface Success:  0s
    Last Interface Failure:  1h21m14s
    # Interface Failure(s):  0

Interface:  eth1
  Status:  failed
  Last Status Change:  Tue May 10 11:05:29 2022
  -Test:  ping  Target: 1.1.1.1
    Last Interface Success:  n/a
    Last Interface Failure:  0s
    # Interface Failure(s):  1986

But if additional tests are performed to the same address into the health check of every interface, it will fail for all interfaces when one interface fails its checks:

load-balancing {
    wan {
        interface-health eth0 {
            nexthop dhcp
            test 1 {
                target 8.8.8.8
                type ping
            }
        }
        interface-health eth1 {
            nexthop dhcp
            test 1 {
                target 8.8.8.8
                type ping
            }
        }
        rule 1 {
            inbound-interface br0
            interface eth0 {
            }
            interface eth1 {
            }
        }
    }
}
Interface:  eth0
  Status:  failed
  Last Status Change:  Tue May 10 17:15:59 2022
  -Test:  ping  Target: 8.8.8.8
    Last Interface Success:  n/a
    Last Interface Failure:  0s
    # Interface Failure(s):  5

Interface:  eth1
  Status:  failed
  Last Status Change:  Tue May 10 17:15:59 2022
  -Test:  ping  Target: 8.8.8.8
    Last Interface Success:  n/a
    Last Interface Failure:  0s
    # Interface Failure(s):  5

This bug can be reproduced in 1.3.0-rc6, 1.3-rolling-202205100648 and in 1.4-rolling-202205080844.

Version:          VyOS 1.3.0-rc6
Release Train:    equuleus

Built by:         Sentrium S.L.
Built on:         Sun 22 Aug 2021 15:37 UTC
Build UUID:       965518de-857d-4e61-ab09-381aadf24eb1
Build Commit ID:  75b37b28b2e9ab

Architecture:     x86_64
Boot via:         installed image
System type:      bare metal

Hardware vendor:  Supermicro
Hardware model:   X10SLH-N6-ST031
Hardware S/N:     0123456789
Hardware UUID:    Unknown

Copyright:        VyOS maintainers and contributors

Details

Difficulty level
Unknown (require assessment)
Version
1.3.0-rc6
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)

Event Timeline

@zedalert Tested addresses should be different, as I remember it send pings with "interface" option
So targets should be different

@Viacheslav But in this case there is no point to use different test addresses, if the target is pinged with "interface" option.

I could be wrong
1.3.0-rc6 old release
Could you check it on more actual version?

Already tested config in the 1.3-rolling-202205100648 and 1.4-rolling-202205080844, behavior remains the same.