Confirmed working in my test environment. If I remember correctly from past testing you don’t actually have to use lo for system balancing, but it helps to isolate the system traffic from any traffic you are servicing via the system.
vyos@vyos# show load-balancing wan
enable-local-traffic
interface-health eth0 {
nexthop 10.10.20.1
test 10 {
target 10.10.10.1
type ping
}
}
interface-health eth1 {
nexthop 10.10.20.5
test 10 {
target 10.10.10.5
type ping
}
}
interface-health eth2 {
nexthop 10.10.20.9
test 10 {
target 10.10.10.9
type ping
}
}
rule 10 {
destination {
address 8.8.8.8
}
inbound-interface lo
interface eth0 {
weight 10
}
}
rule 20 {
destination {
address 8.8.4.4
}
inbound-interface lo
interface eth1 {
weight 10
}
}
rule 30 {
destination {
address 1.1.1.1
}
inbound-interface lo
interface eth2 {
weight 10
}
}
rule 40 {
inbound-interface lo
interface eth0 {
weight 10
}
interface eth1 {
weight 10
}
interface eth2 {
weight 10
}
}
vyos@vyos# run show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR, f - OpenFabric,
> - selected route, * - FIB route
S>* 0.0.0.0/0 [1/0] via 10.10.20.1, eth0, 00:02:59
* via 10.10.20.5, eth1, 00:02:59
* via 10.10.20.9, eth2, 00:02:59
S>* 10.10.10.1/32 [1/0] via 10.10.20.1, eth0, 00:04:57
S>* 10.10.10.5/32 [1/0] via 10.10.20.5, eth1, 00:10:49
S>* 10.10.10.9/32 [1/0] via 10.10.20.9, eth2, 00:10:49
C>* 10.10.20.0/30 is directly connected, eth0, 00:20:04
C>* 10.10.20.4/30 is directly connected, eth1, 00:20:04
C>* 10.10.20.8/30 is directly connected, eth2, 00:20:04
vyos@vyos# run show wan-load-balance status
Chain WANLOADBALANCE_PRE (1 references)
pkts bytes target prot opt in out source destination
0 0 ISP_eth0 all -- lo * 0.0.0.0/0 8.8.8.8 state NEW
0 0 CONNMARK all -- lo * 0.0.0.0/0 8.8.8.8 CONNMARK restore
0 0 ISP_eth1 all -- lo * 0.0.0.0/0 8.8.4.4 state NEW
0 0 CONNMARK all -- lo * 0.0.0.0/0 8.8.4.4 CONNMARK restore
0 0 ISP_eth2 all -- lo * 0.0.0.0/0 1.1.1.1 state NEW
0 0 CONNMARK all -- lo * 0.0.0.0/0 1.1.1.1 CONNMARK restore
10 699 ISP_eth0 all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW statistic mode random probability 0.33333300008
17 1191 ISP_eth1 all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW statistic mode random probability 0.50000000000
11 768 ISP_eth2 all -- lo * 0.0.0.0/0 0.0.0.0/0 state NEW
38 3722 CONNMARK all -- lo * 0.0.0.0/0 0.0.0.0/0 CONNMARK restore
vyos@vyos# sudo iptables -t filter -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N VYATTA_POST_FW_FWD_HOOK
-N VYATTA_POST_FW_IN_HOOK
-N VYATTA_POST_FW_OUT_HOOK
-N VYATTA_PRE_FW_FWD_HOOK
-N VYATTA_PRE_FW_IN_HOOK
-N VYATTA_PRE_FW_OUT_HOOK
-A INPUT -j VYATTA_PRE_FW_IN_HOOK
-A INPUT -j VYATTA_POST_FW_IN_HOOK
-A FORWARD -j VYATTA_PRE_FW_FWD_HOOK
-A FORWARD -j VYATTA_POST_FW_FWD_HOOK
-A OUTPUT -j VYATTA_PRE_FW_OUT_HOOK
-A OUTPUT -j VYATTA_POST_FW_OUT_HOOK
-A VYATTA_POST_FW_FWD_HOOK -j ACCEPT
-A VYATTA_POST_FW_IN_HOOK -j ACCEPT
-A VYATTA_POST_FW_OUT_HOOK -j ACCEPT
-A VYATTA_PRE_FW_FWD_HOOK -j RETURN
-A VYATTA_PRE_FW_IN_HOOK -j RETURN
-A VYATTA_PRE_FW_OUT_HOOK -j RETURN
vyos@vyos# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 10.10.20.1 (10.10.20.1) 0.648 ms 0.685 ms 0.384 ms
2 10.10.10.1 (10.10.10.1) 1.016 ms 0.902 ms 0.949 ms
3 192.168.122.1 (192.168.122.1) 1.069 ms 1.651 ms 4.158 ms
4 192.168.220.2 (192.168.220.2) 3.912 ms 4.106 ms 7.379 ms^C
[edit]
vyos@vyos# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 10.10.20.1 (10.10.20.1) 1.167 ms 0.387 ms 0.369 ms
2 10.10.10.1 (10.10.10.1) 1.317 ms 0.919 ms 1.259 ms
3 192.168.122.1 (192.168.122.1) 1.481 ms 2.360 ms 2.190 ms
4 192.168.220.2 (192.168.220.2) 9.797 ms 9.557 ms 8.544 ms^C
[edit]
vyos@vyos# traceroute 8.8.4.4
traceroute to 8.8.4.4 (8.8.4.4), 30 hops max, 60 byte packets
1 10.10.20.5 (10.10.20.5) 0.887 ms 0.494 ms 0.349 ms
2 10.10.10.5 (10.10.10.5) 2.130 ms 1.601 ms 2.018 ms
3 192.168.122.1 (192.168.122.1) 3.642 ms 3.583 ms 3.537 ms
4 192.168.220.2 (192.168.220.2) 2.617 ms 2.857 ms 3.362 ms^C
[edit]
vyos@vyos# traceroute 8.8.4.4
traceroute to 8.8.4.4 (8.8.4.4), 30 hops max, 60 byte packets
1 10.10.20.5 (10.10.20.5) 1.027 ms 0.389 ms 0.414 ms
2 10.10.10.5 (10.10.10.5) 1.399 ms 0.965 ms 1.055 ms
3 192.168.122.1 (192.168.122.1) 2.273 ms 1.280 ms 1.295 ms
4 192.168.220.2 (192.168.220.2) 1.554 ms 1.305 ms 1.965 ms^C
[edit]
vyos@vyos# traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
1 10.10.20.9 (10.10.20.9) 1.056 ms 0.508 ms 0.381 ms
2 10.10.10.9 (10.10.10.9) 1.038 ms 0.831 ms 1.934 ms
3 192.168.122.1 (192.168.122.1) 2.842 ms 2.738 ms 2.381 ms
4 192.168.220.2 (192.168.220.2) 4.454 ms 3.648 ms 2.812 ms^C
[edit]
vyos@vyos# traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
1 10.10.20.9 (10.10.20.9) 0.511 ms 0.412 ms 0.344 ms
2 10.10.10.9 (10.10.10.9) 1.031 ms 3.389 ms 4.590 ms
3 192.168.122.1 (192.168.122.1) 6.687 ms 6.524 ms^C
[edit]
vyos@vyos# traceroute 4.2.2.2
traceroute to 4.2.2.2 (4.2.2.2), 30 hops max, 60 byte packets
1 10.10.20.9 (10.10.20.9) 0.675 ms 10.10.20.5 (10.10.20.5) 0.809 ms 10.10.20.9 (10.10.20.9) 2.383 ms
2 10.10.10.9 (10.10.10.9) 3.460 ms 10.10.10.5 (10.10.10.5) 9.580 ms 10.10.10.9 (10.10.10.9) 3.304 ms
3 192.168.122.1 (192.168.122.1) 9.217 ms 8.753 ms 9.066 ms
4 192.168.220.2 (192.168.220.2) 8.587 ms 8.544 ms 8.895 ms^C
[edit]
vyos@vyos# traceroute 4.2.2.2
traceroute to 4.2.2.2 (4.2.2.2), 30 hops max, 60 byte packets
1 10.10.20.1 (10.10.20.1) 0.629 ms 10.10.20.5 (10.10.20.5) 0.482 ms 1.295 ms
2 10.10.10.5 (10.10.10.5) 6.748 ms 6.667 ms 10.10.10.9 (10.10.10.9) 6.432 ms
3 192.168.122.1 (192.168.122.1) 6.300 ms 6.246 ms 5.833 ms
4 192.168.220.2 (192.168.220.2) 5.736 ms 5.651 ms 5.936 ms^C
[edit]
vyos@vyos# traceroute 4.2.2.2
traceroute to 4.2.2.2 (4.2.2.2), 30 hops max, 60 byte packets
1 10.10.20.5 (10.10.20.5) 0.891 ms 1.661 ms 1.407 ms
2 10.10.10.9 (10.10.10.9) 1.555 ms 3.987 ms 10.10.10.1 (10.10.10.1) 8.570 ms
3 192.168.122.1 (192.168.122.1) 7.953 ms 7.515 ms 7.228 ms
4 192.168.220.2 (192.168.220.2) 7.041 ms 6.598 ms 6.303 ms^C
Specifically for the root of this topic DNS also has no issues with resolution :
vyos@vyos# show service dns
forwarding {
dnssec process-no-validate
listen-address 127.0.0.1
name-server 8.8.8.8
name-server 8.8.4.4
name-server 1.1.1.1
}
[edit]
vyos@vyos# dig @127.0.0.1 A google.com facebook.com yahoo.com gmail.com +short
172.217.6.142
31.13.93.35
72.30.35.9
98.137.246.7
98.138.219.232
72.30.35.10
98.138.219.231
98.137.246.8
216.58.194.133