diff options
| author | Adam Rogers <arogers0311@gmail.com> | 2026-09-18 09:09:01 +1000 |
|---|---|---|
| committer | Adam Rogers <arogers0311@gmail.com> | 2026-09-18 09:09:01 +1000 |
| commit | 92c2d6ec5ebd1a721f725473c92a24a737de9cfe (patch) | |
| tree | 3afa3301449d49641d7b72b64f929871b5ea9420 /src/migration-scripts/interfaces | |
| parent | 03500232bca1e1e2eda017428171faf9b4a3dc27 (diff) | |
| download | vyos-1x-92c2d6ec5ebd1a721f725473c92a24a737de9cfe.tar.gz vyos-1x-92c2d6ec5ebd1a721f725473c92a24a737de9cfe.zip | |
firewall: T9332: fix GeoIP source/destination nftables set name collision
GeoIP (country-code/ASN) match sets were named
GEOIP_{CC|ASN}{6}_{hook}_{name}_{rule} with no source/destination
discriminator, unlike the sibling FQDN-match naming which already
appends one. A rule matching GeoIP on both source and destination
computed the same set name for both sides, so geoip_update() silently
overwrote one side's IP-range list with the other's, and the generated
rule matched both saddr and daddr against the same single set -
silently dropping one of the two configured constraints with no error
at commit or runtime.
Append the existing source/destination prefix (already in scope,
matching the FQDN convention) to the set name in firewall.py, and
thread the same discriminator through geoip.py's set-name construction
so the rule's match expression and the set it references always agree.
Also updates the non-load-bearing geoip_sets() name construction in
conf_mode/firewall.py and conf_mode/policy_route.py for consistency.
Diffstat (limited to 'src/migration-scripts/interfaces')
0 files changed, 0 insertions, 0 deletions
