diff options
| author | Christian Breunig <christian@breunig.cc> | 2026-05-26 08:11:55 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-26 08:11:55 +0200 |
| commit | 9534f4202e4430b4a58caa28603e5594178fd745 (patch) | |
| tree | cac0d3076244ada474801d939a394e27c9de4a33 /src | |
| parent | 7b19c149d4edd39bfe441f1d38d602c707fa7ae2 (diff) | |
| parent | 33ac35a45b813ab408c7ce0ccb511608a637fc68 (diff) | |
| download | vyos-1x-9534f4202e4430b4a58caa28603e5594178fd745.tar.gz vyos-1x-9534f4202e4430b4a58caa28603e5594178fd745.zip | |
Merge pull request #5119 from AppMana/T8480
wan: T8480: add suppress_prefixlength ip rules for internal routing
Diffstat (limited to 'src')
| -rwxr-xr-x | src/helpers/vyos-load-balancer.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/helpers/vyos-load-balancer.py b/src/helpers/vyos-load-balancer.py index 4417c04d5..127ce05e5 100755 --- a/src/helpers/vyos-load-balancer.py +++ b/src/helpers/vyos-load-balancer.py @@ -204,7 +204,17 @@ def cleanup(lb): index = 1 for ifname, health_conf in lb['interface_health'].items(): table_num = lb['mark_offset'] + index + suppress_prio = lb['mark_offset'] + index + table_prio = suppress_prio + 100 run(f'ip route del table {table_num} default') + run( + f'ip rule del fwmark {hex(table_num)} table main ' + f'suppress_prefixlength 0 priority {suppress_prio}' + ) + run( + f'ip rule del fwmark {hex(table_num)} table {table_num} ' + f'priority {table_prio}' + ) run(f'ip rule del fwmark {hex(table_num)} table {table_num}') index += 1 @@ -263,7 +273,19 @@ if __name__ == '__main__': else: run(f'ip route replace table {table_num} default dev {ifname} via {health_conf["nexthop"]}') - run(f'ip rule add fwmark {hex(table_num)} table {table_num}') + suppress_prio = lb['mark_offset'] + index + table_prio = suppress_prio + 100 + if 'only_default_route' in lb: + run( + f'ip rule add fwmark {hex(table_num)} table main ' + f'suppress_prefixlength 0 priority {suppress_prio}' + ) + run( + f'ip rule add fwmark {hex(table_num)} table {table_num} ' + f'priority {table_prio}' + ) + else: + run(f'ip rule add fwmark {hex(table_num)} table {table_num}') index += 1 |
